package com.mosty.base.model.entity.yjzl;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mosty.base.model.BaseEntity;
import com.vividsolutions.jts.geom.Point;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * @Author dw
 * @Date 2022-10-13
 */
@Data
@TableName("tb_zlxx")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "TbZlxx 对象", description = "指令实体表")
public class TbZlxx extends BaseEntity implements Serializable, Cloneable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "指令表标识ID")
    @TableId(value = "id", type = IdType.ASSIGN_ID)
    private String id;

    @ApiModelProperty(value = "业务ID")
    private String ywId;

    @ApiModelProperty(value = "指令类型--D_BZ_ZLLX(01-巡防指令、02-人员预警核查指令、03-车辆预警核查指令、" +
            "04-事件预警处置指令、05-警情处置指令、06-人工指令、07-人员管控指令、08.事务指令、09.犯罪预测指令、10.手机求助指令")
    private String zllx;

    @ApiModelProperty(value = "指令来源--D_BZ_ZLLY（01-巡逻方案，02-人员预警，03-车辆预警，04-事件预警，" +
            "05-警情，06-人工，07-人员管控，08-事务，09-犯罪预测，10-手机求助）")
    private String zlly;

    @ApiModelProperty(value = "指令执行类型--D_BZ_ZLZXLX（1-单人执行，2-多人执行）")
    private String zlzxlx;

    @ApiModelProperty(value = "指令标题")
    private String zlbt;

    @ApiModelProperty(value = "指令内容")
    private String zlnr;

    @ApiModelProperty(value = "指令执行情况")
    private String zlzxqk;

    @ApiModelProperty(value = "指令发起日期")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date zlfqrq;

    @ApiModelProperty(value = "指令发起时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date zlfqsj;

    @ApiModelProperty(value = "指令等级--D_BZ_TYJB（10-红色,20-橙色,30-黄色,40-蓝色）")
    private String zldj;

    @ApiModelProperty(value = "指令接收对象--D_BZ_ZLJSDX，如：01：人员，02：部门，03-巡组")
    private String zljsdx;

    @ApiModelProperty(value = "指令签收有效时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date qsyxsj;

    @ApiModelProperty(value = "签收时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date qssj;

    @ApiModelProperty(value = "签收状态--D_BZ_ZXZTAI（01-待签收，02-正常签收，03-超时签收，04-已转发）")
    private String qszt;

    @ApiModelProperty(value = "到达现场有效时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date ddxcyxsj;

    @ApiModelProperty(value = "到达现场时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date ddxcsj;

    @ApiModelProperty(value = "到达现场状态--D_BZ_ZXZTAI（21-待到达现场，22-自动确认到达现场，" +
            "23-手动确认到达现场，24-手动确认到达现场）采用指令执行状态字典")
    private String ddxczt;

    @ApiModelProperty(value = "指令完结有效时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date zlwjyxsj;

    @ApiModelProperty(value = "指令完结时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date zlwjsj;

    @ApiModelProperty(value = "指令完结说明")
    private String zlwjsm;

    @ApiModelProperty(value = "指令完结状态--D_BZ_ZXZTAI（91-未完成，92-已完成，93-超时完成，" +
            "94-已结束未完成）采用指令执行状态字典")
    private String zlwjzt;

    @ApiModelProperty(value = "指令执行状态--D_BZ_ZXZTAI（01-待签收，02-正常签收，03-超时签收；04-已转发；11-巡逻中，" +
            "21-待到达现场，22-自动确认到达现场，23-手动确认到达现场，24-手动确认到达现场(实际未到达)；25-超时到达现场 ，" +
            "26-已研判，27-已反馈，31-待处置，32-处置完成；91-未完成，92-已完成，93-超时完成，94-已结束未完成）")
    private String zlzxzt;

    @ApiModelProperty(value = "经度")
    private BigDecimal jd;

    @ApiModelProperty(value = "纬度")
    private BigDecimal wd;

    @ApiModelProperty(value = "坐标")
    private Point zb;

    @ApiModelProperty(value = "坐标hash")
    private String zbhash;

    @ApiModelProperty(value = "指令发生地址行政区划代码--D_BZ_XZQHDM")
    private String zlfsddxzqh;

    @ApiModelProperty(value = "指令发生地址")
    private String zlfsdd;

    @ApiModelProperty(value = "指令发起人ID")
    private String zlfqrId;

    @ApiModelProperty(value = "指令发起人姓名")
    private String zlfqr;

    @ApiModelProperty(value = "指令发起人身份证")
    private String zlfqrSfzh;

    @ApiModelProperty(value = "指令发起人电话")
    private String zlfqrDh;

    @ApiModelProperty(value = "附件ID")
    private String fjId;

    @ApiModelProperty(value = "指令接收人数")
    private Integer zljsrs;

    @ApiModelProperty(value = "指令图片")
    private String zltp;

    @ApiModelProperty(value = "所属部门")
    private String ssbm;

    @ApiModelProperty(value = "所属部门代码")
    private String ssbmdm;

    @ApiModelProperty(value = "所属部门ID")
    private String ssbmid;

    @ApiModelProperty(value = "所属县公安局")
    private String ssxgaj;

    @ApiModelProperty(value = "所属县公安局代码")
    private String ssxgajdm;

    @ApiModelProperty(value = "所属县公安局ID")
    private String ssxgajid;

    @ApiModelProperty(value = "所属市公安局")
    private String sssgaj;

    @ApiModelProperty(value = "所属市公安局代码")
    private String sssgajdm;

    @ApiModelProperty(value = "所属市公安局id")
    private String sssgajid;

    @ApiModelProperty(value = "指令下发类型")
    private String zlxflx;

    @ApiModelProperty(value = "范围")
    @TableField(exist = false)
    private BigDecimal distance;
}
