package com.zc.business.domain;

import java.util.Date;
import java.util.List;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import com.ruoyi.common.annotation.Excel;

/**
 * 事件信息对象 dc_event
 *
 * @author ruoyi
 * @date 2024-01-12
 */

@ApiModel("事件信息实体")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class DcEvent {
    private static final long serialVersionUID = 1L;
    private static final long event_state = 0L;
    /**
     * 事件编号
     */
    @Excel(name = "事件编号")
    @ApiModelProperty("事件编号")
    private String id;
    /**
     * 所属部门
     */
    @ApiModelProperty("所属部门")
    private Long deptId;
    @Excel(name = "所属部门")
    @TableField(exist = false)
    private String deptName;

    /**
     * 所在桩号
     */
    @Excel(name = "所在桩号")
    @ApiModelProperty(" 所在桩号 and 条件搜索 开始桩号")
    private String stakeMark;
    @ApiModelProperty("条件搜索 结束桩号")
    @TableField(exist = false)
    private String endStakeMark;


    /**
     * 方向:
     * 1-上
     * 2-中
     * 3-下
     */
   @Excel(name = "方向", readConverterExp = "1=菏泽方向,3=济南方向")
   //@Excel(name = "方向")
    @ApiModelProperty("方向")
    private String direction;

    /**
     * 处理人员
     */

    @ApiModelProperty("处理人员")
    private Long userId;
    /**
     * 开始时间
     */
    @Excel(name = "开始时间", dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("开始时间")
    private Date startTime;
    /**
     * 结束时间
     */
    @Excel(name = "结束时间", dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("结束时间")
    private Date endTime;
    /**
     * 预计解除时间
     */
    @Excel(name = "预计解除时间", dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("预计解除时间")
    private Date estimatedEndTime;
    /**
     * 事件等级
     */
    @Excel(name = "事件等级")
    @ApiModelProperty("事件等级")
    private Long eventLevel;
    /**
     * 事件主类:
     * 1-交通事故
     * 2-车辆故障
     * 3-交通管制
     * 4-交通拥堵
     * 5-非法上路
     * 6-路障清除
     * 7-施工建设
     * 8-服务区异常
     * 9-设施设备隐患
     * 10-异常天气
     * 11-其他事件
     */

    @ApiModelProperty("事件主类:1-交通事故 2-车辆故障 3-交通管制 4-交通拥堵  5-非法上路 6-路障清除 7-施工建设 8-服务区异常9-设施设备隐患 10-异常天气11-其他事件")

    private Long eventType;
    @ApiModelProperty("事件主类")
    @Excel(name = "事件主类")
    @TableField(exist = false)
    private String stringEventType;
    /**
     * 事件子类:
     * 1-1 追尾
     * 1-2 侧翻
     * 1-3 撞护栏
     * 1-4 自然
     * 1-5 其他事故
     * <p>
     * 2-1 车辆故障
     * <p>
     * 3-1 主线封闭和限行
     * 3-2 收费站封闭和限行
     * 3-3 立交封闭和限行
     * 3-4 服务区封闭和限行
     */
    @Excel(name = "事件类型")
    @ApiModelProperty("事件子类 例:事件子类:* 1-1 追尾* 1-2 侧翻* 1-3 撞护栏* 1-4 自然* 1-5 其他事故* 2-1 车辆故障")

    private String eventSubclass;
    /**
     * 事件原因
     */
    @ApiModelProperty("事件原因")

    @Excel(name = "事件原因")
    private String eventCause;
    /**
     * 事件描述
     */
    @ApiModelProperty("事件描述")

    @Excel(name = "事件描述")
    private String description;
    /**
     * 事件状态:
     事件状态:
     0-待确认
     1-已确认
     2-处理中
     3-已完成
     4-已撤销
     */
    @ApiModelProperty("事件状态 事件状态:*      0-未解决1-已解决2-已关闭")
    private Long eventState;
    /**
     * 事件来源:
     * 1-96659
     * 2-交警转接
     * 3-道路巡查
     * 4-视频巡查
     * 5-视频AI
     * 6-一键救援
     * 7-其他
     */
    @ApiModelProperty("事件来源   * 1-96659* 2-交警转接* 3-道路巡查* 4-视频巡查* 5-视频AI* 6-一键救援* 7-其他")

    private Long eventSource;
    @Excel(name = "事件来源")
    @TableField(exist = false)
    @ApiModelProperty("事件来源")
    private String stringEventSource;
    /**
     * 事件性质:
     * 1-首发事件
     * 2-关联事件
     */
    @ApiModelProperty("事件性质      * 1-首发事件* 2-关联事件")
    @Excel(name = "事件性质")
    private Long eventNature;

    /**
     * 事件来源补充说明
     */
    @Excel(name = "事件来源补充说明")
    @ApiModelProperty("事件来源补充说明")
    private String eventSourceTips;
    /**
     * 是否处在隧道
     */
    @Excel(name = "是否处在隧道" , readConverterExp = "0=否,1=是")
    @ApiModelProperty("是否处在隧道  0 表示 false,1 表示 true")
    private Integer inTunnel;
    //@Excel(name = "高速")
    @ApiModelProperty("高速公路")
    private Long roadId;

    /**
     * 2024-1-24新增
     */
    @Excel(name = "发生时间", dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("发生时间")
    private Date occurrenceTime;
    @Excel(name = "是否是感知事件" , readConverterExp = "0=否,1=是")
    @ApiModelProperty("是否是感知事件  0 表示 false,1 表示 true")
    private Integer isPerceived;

    @Excel(name = "影响车道")
 @ApiModelProperty("影响车道 车道占用:0-应急1-行1,2-行2,3-行3,4-行4")
    private String lang;
    @ApiModelProperty("高速名")
    @TableField(exist = false)
 private String roadName;
    @ApiModelProperty("机构")
    @TableField(exist = false)
 private String organizationName;
    @ApiModelProperty("事件流程")
    @TableField(exist = false)
 private List<DcProcessConfig> processConfigList;
@ApiModelProperty("事件标题")
    private String eventTitle;
@ApiModelProperty("维度")
    private String dimension;
@ApiModelProperty("经度")
    private String longitude;
/**
 * 2014/2/21新增
 */

    /**
     *
     */
    @ApiModelProperty("事件详情参数")
    @TableField(exist = false)
    private DcEventMap dcEventMap;
    @ApiModelProperty("异常天气事件实体")
    @TableField(exist = false)
    private DcEventAbnormalWeather dcEventAbnormalWeather;
    @ApiModelProperty("交通事故事件实体")
    @TableField(exist = false)
    private DcEventAccident dcEventAccident;
    @ApiModelProperty("施工建设事件实体")
    @TableField(exist = false)
    private DcEventConstruction dcEventConstruction;
    @ApiModelProperty("服务区异常事件实体")
    @TableField(exist = false)
    private DcEventServiceArea dcEventServiceArea;
    @ApiModelProperty("交通拥堵事件")
    @TableField(exist = false)
    private DcEventTrafficCongestion dcEventTrafficCongestion;
    @ApiModelProperty("车辆事故事件")
    @TableField(exist = false)
    private DcEventVehicleAccident dcEventVehicleAccident;
    @ApiModelProperty("交通管制事件实体")
    @TableField(exist = false)
    private DcEventTrafficControl dcEventTrafficControl;
    @Excel(name = "处理人员")
    @ApiModelProperty("处理人员")
    @TableField(exist = false)
    private String nickName;
    @Excel(name = "事件状态")
    @ApiModelProperty("string事件状态")
    @TableField(exist = false)
    private String stringEventState;


    @ApiModelProperty("常用语")
    @TableField(exist = false)
    private String commonPhrases;
    @ApiModelProperty("节点名称")
    @TableField(exist = false)
    private String nodeNode;
    @ApiModelProperty("事件类型名称")
    @TableField(exist = false)
    private String eventName;
    @ApiModelProperty("流程节点")
    @TableField(exist = false)
    private String processNode;



    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date updateTime;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date createTime;

    /** 备注 */

    private String remark;

    private String subclass;
@ApiModelProperty("关联管制事件id")
private String linkId;
}