package com.zc.business.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 预警信息对象 dc_warning
 *
 * @author ruoyi
 * @date 2024-01-13
 */
public class DcWarning extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 预警编号 */
    private String id;

    /** 所在桩号 */
    @Excel(name = "所在桩号")
    private String stakeMark;

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

    /** 所属部门 */
    private Long deptId;

    /** 警情状态:1-上报2-已完成3-已终止4-自动结束 */
    @Excel(name = "警情状态",readConverterExp = "1=上报,2=已完成,3=已终止,4=自动结束")
    private Integer warningState;

    /** 预警时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    @Excel(name = "预警时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date warningTime;

    /** 处理人员 */
    private Long userId;

    /** 信息来源:1-视频AI2-雷达识别3-锥桶4-护栏碰撞5-扫码报警6-非机预警 */
    @Excel(name = "信息来源", readConverterExp = "1=视频AI,2=雷达识别,3=锥桶,4=护栏碰撞,5=扫码报警,6=非机预警")
    private Integer warningSource;

    /** 预警级别 */
    private Integer warningLevel;

    /** 事件主类:1-交通拥堵2-行人3-非机动车4-停车5-倒车/逆行6-烟火7-撒落物8-异常天气9-护栏碰撞 */
    @Excel(name = "事件主类", readConverterExp = "1=交通拥堵,2=行人,3=非机动车,4=停车,5=违规驾驶,6=路障,7=道路施工,8=异常天气,9=护栏碰撞,10=交通事故,11=车辆故障,99=其它")
    private Integer warningType;

    /** 事件子类:1-1 拥堵1-2 缓行 */
    @Excel(name = "事件子类", readConverterExp ="1-1=拥堵,1-2=缓行,2-1=普通行人,2-2=工作人员,3-1=摩托车,3-2=自行车,3-3=三轮车,4-1=非工程车,4-2=工程车,4-3=主路有车,4-4=匝道有车,4-5=车辆故障(弃用),4-6=交通事故(弃用),4-7=应急车道被占用,4-8=车离开应急车道,4-9=其他,4-10=未知车辆,5-1=倒车/逆行,5-2=压线,5-3=掉头,5-4=超速,5-5=低速,5-6=违规变道,5-7=未保持安全距离,6-1=烟火,6-2=火灾,6-3=障碍物,6-4=抛洒物,7-1=道路施工,8-1=雨,8-2=冰雹,8-3=风,8-4=雾,8-5=高温,8-6=积水,8-7=路面湿滑,8-8=路面结冰,8-9=道路能见度低,8-10=道路团雾,9-1=只碰撞不倾斜,9-2=只倾斜无碰撞,9-3=碰撞后倾斜,10-1=未知,10-2单车事故,10-3=多车事故,11-1=车辆抛锚,11-2=车辆炸胎(有备胎),11-3=车辆炸胎(无备胎),99-1=其它")
    private String warningSubclass;

    /** 事件解除原因 */
    private String relieveReason;
    /** 事件解除类型: 1-误报解除2-事件已结束3-无需处理事件4-其它 */
    //@Excel(name = "事件解除类型", readConverterExp = "1=误报解除2,2=事件已结束3,3=无需处理事件,4=其它")
    private Integer relieveType;


    /** 事件标题 */
    @Excel(name = "事件标题")
    private String warningTitle;

    /** $column.columnComment */
    private String otherConfig;
     /** 车道0-应急 1-行1 2-行2 3-行3 4-行4 */
    @Excel(name = "车道",readConverterExp="0=应急,1=行1,2=行2,3=行3,4=行4")
    private String lane;

    @Excel(name="审核人")
    private String  auditor;

    public String getAuditor() {
        return auditor;
    }

    public void setAuditor(String auditor) {
        this.auditor = auditor;
    }

    public Date getAuditTime() {
        return auditTime;
    }

    public void setAuditTime(Date auditTime) {
        this.auditTime = auditTime;
    }

    public Integer getAuditFlag() {
        return auditFlag;
    }

    public void setAuditFlag(Integer auditFlag) {
        this.auditFlag = auditFlag;
    }

    @Excel(name="审核时间")
    private Date  auditTime;

    @Excel(name="审核状态",readConverterExp = "1=正确,2=错误")
    private Integer auditFlag;


    /** 所属辖区路段名称 */

    private  String sectionName;
    /** 数量 */
    private int number;

    private String type;
    private String sectionId;

    private String longitude;

    private String latitude;
    /** 车辆类型  */
    private String vehicleType;
    /** 持续时长  */
    private int duration;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date startTime;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date completeTime;
    //月度参数
    private String quarter;

    //事件原因
    private String eventCause;
    //完结时间
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date endTime;
    //操作员
    private String userName;

    //范围查询参数
    private String startStakeMark;
    private String endStakeMark;

    //开始日期
    private String startDate;
    //结束日期
    private String endDate;
    //收费站
    private String facilityName;

    //去年同期时间参数
    @JsonFormat(pattern = "yyyy-MM-dd",timezone="GMT+8")
    private Date lastYear;
    //当下时间参数
    @JsonFormat(pattern = "yyyy-MM-dd",timezone="GMT+8")
    private Date currently;

    private Long facilityId;

    public Long getFacilityId() {
        return facilityId;
    }

    public void setFacilityId(Long facilityId) {
        this.facilityId = facilityId;
    }

    public Date getCurrently() {
        return currently;
    }

    public void setCurrently(Date currently) {
        this.currently = currently;
    }

    public Date getLastYear() {
        return lastYear;
    }

    public void setLastYear(Date lastYear) {
        this.lastYear = lastYear;
    }

    public String getRelieveReason() {
        return relieveReason;
    }

    public void setRelieveReason(String relieveReason) {
        this.relieveReason = relieveReason;
    }

    public Integer getRelieveType() {
        return relieveType;
    }

    public void setRelieveType(Integer relieveType) {
        this.relieveType = relieveType;
    }

    public String getStartStakeMark() {
        return startStakeMark;
    }

    public String getFacilityName() {
        return facilityName;
    }

    public void setFacilityName(String facilityName) {
        this.facilityName = facilityName;
    }

    public void setStartStakeMark(String startStakeMark) {
        this.startStakeMark = startStakeMark;
    }

    public String getEndStakeMark() {
        return endStakeMark;
    }

    public void setEndStakeMark(String endStakeMark) {
        this.endStakeMark = endStakeMark;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public Date getCompleteTime() {
        return completeTime;
    }

    public void setCompleteTime(Date completeTime) {
        this.completeTime = completeTime;
    }

    public String getEventCause() {
        return eventCause;
    }

    public void setEventCause(String eventCause) {
        this.eventCause = eventCause;
    }

    public String getQuarter() {
        return quarter;
    }

    public void setQuarter(String quarter) {
        this.quarter = quarter;
    }

    public Date getStartTime() {
        return startTime;
    }

    public void setStartTime(Date startTime) {
        this.startTime = startTime;
    }

    public Date getEndTime() {
        return endTime;
    }

    public void setEndTime(Date endTime) {
        this.endTime = endTime;
    }

    public int getDuration() {
        return duration;
    }

    public void setDuration(int duration) {
        this.duration = duration;
    }

    public String getVehicleType() {
        return vehicleType;
    }

    public void setVehicleType(String vehicleType) {
        this.vehicleType = vehicleType;
    }

    public String getLane() {
        return lane;
    }

    public void setLane(String lane) {
        this.lane = lane;
    }

    public String getLongitude() {
        return longitude;
    }

    public void setLongitude(String longitude) {
        this.longitude = longitude;
    }

    public String getLatitude() {
        return latitude;
    }

    public void setLatitude(String latitude) {
        this.latitude = latitude;
    }

    public String getSectionId() {
        return sectionId;
    }

    public void setSectionId(String sectionId) {
        this.sectionId = sectionId;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }



    public int getNumber() {
        return number;
    }

    public void setNumber(int number) {
        this.number = number;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getSectionName() {
        return sectionName;
    }

    public void setSectionName(String sectionName) {
        this.sectionName = sectionName;
    }


    public void setStakeMark(String stakeMark)
    {
        this.stakeMark = stakeMark;
    }

    public String getStakeMark()
    {
        return stakeMark;
    }
    public void setDirection(String direction)
    {
        this.direction = direction;
    }

    public String getDirection()
    {
        return direction;
    }
    public void setDeptId(Long deptId)
    {
        this.deptId = deptId;
    }

    public Long getDeptId()
    {
        return deptId;
    }
    public void setWarningState(Integer warningState)
    {
        this.warningState = warningState;
    }

    public Integer getWarningState()
    {
        return warningState;
    }
    public void setWarningTime(Date warningTime)
    {
        this.warningTime = warningTime;
    }

    public Date getWarningTime()
    {
        return warningTime;
    }
    public void setUserId(Long userId)
    {
        this.userId = userId;
    }

    public Long getUserId()
    {
        return userId;
    }
    public void setWarningSource(Integer warningSource)
    {
        this.warningSource = warningSource;
    }

    public Integer getWarningSource()
    {
        return warningSource;
    }
    public void setWarningLevel(Integer warningLevel)
    {
        this.warningLevel = warningLevel;
    }

    public Integer getWarningLevel()
    {
        return warningLevel;
    }
    public void setWarningType(Integer warningType)
    {
        this.warningType = warningType;
    }

    public Integer getWarningType()
    {
        return warningType;
    }
    public void setWarningSubclass(String warningSubclass)
    {
        this.warningSubclass = warningSubclass;
    }

    public String getWarningSubclass()
    {
        return warningSubclass;
    }
    public void setWarningTitle(String warningTitle)
    {
        this.warningTitle = warningTitle;
    }

    public String getWarningTitle()
    {
        return warningTitle;
    }
    public void setOtherConfig(String otherConfig)
    {
        this.otherConfig = otherConfig;
    }

    public String getOtherConfig()
    {
        return otherConfig;
    }

    public String getStartDate() {
        return startDate;
    }

    public void setStartDate(String startDate) {
        this.startDate = startDate;
    }

    public String getEndDate() {
        return endDate;
    }

    public void setEndDate(String endDate) {
        this.endDate = endDate;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("stakeMark", getStakeMark())
            .append("direction", getDirection())
            .append("deptId", getDeptId())
            .append("warningState", getWarningState())
            .append("warningTime", getWarningTime())
            .append("userId", getUserId())
            .append("warningSource", getWarningSource())
            .append("warningLevel", getWarningLevel())
            .append("remark", getRemark())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .append("warningType", getWarningType())
            .append("warningSubclass", getWarningSubclass())
            .append("warningTitle", getWarningTitle())
            .append("otherConfig", getOtherConfig())
            .append("duration", getDuration())
            .toString();
    }
}