package com.mosty.base.model.dto.qwzx;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mosty.base.model.entity.qwzx.TbQwCl;
import com.mosty.base.model.entity.qwzx.TbQwJl;
import com.mosty.base.model.entity.qwzx.TbQwJyqx;
import com.mosty.base.model.entity.qwzx.TbQwZnzb;
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;
import java.util.List;

/**
 * <p>
 * 巡防报备表
 * </p>
 *
 * @author zengbo
 * @since 2022-06-27
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("tb_qw_xfbb")
@ApiModel(value = "TbQwXfbb对象", description = "巡防报备表")
public class TbQwXfbbVo implements Serializable, Cloneable {

    private static final long serialVersionUID = 1L;

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

    @ApiModelProperty(value = "--D_BZ_QWLX(勤务类型) 00-日常巡防 01-处突 02-维稳 03-警卫 04-安保 05-展会 06-设卡 07-加巡 99-其他")
    private String qwlx;

    @ApiModelProperty(value = "报备类型  01.正常报备  02.特殊勤务报备")
    private String bblx;

    @ApiModelProperty(value = "方案类型  01.日常方案  02 特殊方案")
    private String xlfaLx;

    @ApiModelProperty(value = "巡逻方案Id")
    private String xlfaId;

    @ApiModelProperty(value = "巡逻方案Id")
    private String xlfaMc;

    @ApiModelProperty(value = "巡防排班ID")
    private String xfpbId;

    @ApiModelProperty(value = "勤务等级ID")
    private String qwdjId;

    @ApiModelProperty(value = "勤务等级：1.一级勤务 2.二级勤务 3.三级勤务")
    private String qwdj;

    @ApiModelProperty(value = "勤务班次ID")
    private String qwbcId;

    @ApiModelProperty(value = "警组ID")
    private String jzId;

    @ApiModelProperty(value = "警组名称")
    private String jzMc;

    @ApiModelProperty(value = "巡防部门")
    private String xfbm;

    @ApiModelProperty(value = "巡防部门代码")
    private String xfbmdm;

    @ApiModelProperty(value = "巡防部门ID")
    private String xfbmid;

    @ApiModelProperty(value = "负责人姓名")
    private String fzrXm;

    @ApiModelProperty(value = "负责人身份证号")
    private String fzrSfzh;

    @ApiModelProperty(value = "负责人ID")
    private String fzrId;

    @ApiModelProperty(value = "负责人联系电话")
    private String fzrLxdh;

    @ApiModelProperty(value = "巡防日期")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date xfrq;

    @ApiModelProperty(value = "开始时间")
    @DateTimeFormat(pattern = "HH:mm:ss")
    @JsonFormat(pattern = "HH:mm:ss", timezone = "GMT+8")
    private Date kssj;

    @ApiModelProperty(value = "结束时间")
    @JsonFormat(pattern = "HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "HH:mm:ss")
    private Date jssj;

    @ApiModelProperty(value = "执勤时长（分钟）")
    private Integer zqsc;

    @ApiModelProperty(value = "间隔天数")
    private Integer jgts;

    @ApiModelProperty(value = "民警数量（冗余存储方便统计）")
    private Integer mjsl;

    @ApiModelProperty(value = "排班民警（此处存民警id、姓名、警号、呼号json数据，详细数据从关联表获取tb_qw_jl）")
    private String pbmj;

    @ApiModelProperty(value = "辅警数量（冗余存储方便统计）")
    private Integer fjsl;

    @ApiModelProperty(value = "排班辅警（此处存辅警id、姓名、警号、呼号json数据，详细数据从关联表获取tb_qw_jl）")
    private String pbfj;

    @ApiModelProperty(value = "警车数量（冗余存储方便统计）")
    private Integer jcsl;

    @ApiModelProperty(value = "排班车辆（此处存车辆id、车牌号json数据，详细数据从关联表获取tb_qw_cl）")
    private String pbcl;

    @ApiModelProperty(value = "通讯装备数量（冗余存储方便统计）")
    private Integer txzbsl;

    @ApiModelProperty(value = "智能通讯装备 （此处存装备id、呼号、设备名json数据，详细数据从关联表获取tb_qw_txzb）")
    private String txzb;

    @ApiModelProperty(value = "警用器械数量（冗余存储方便统计）")
    private Integer jyqxsl;

    @ApiModelProperty(value = "警用器械（此处存器械类型、器械数量json数据，详细数据从关联表获取tb_qw_jyqx）")
    private String jyqx;

    @ApiModelProperty(value = "警用器械是否按规定携带")
    private String jyqxSfagdxd;

    @ApiModelProperty(value = "武装类型：0-武装 1-非武装（字典）")
    private String wzlx;

    @ApiModelProperty(value = "着装类型（0.制服 1.便衣）（字典）")
    private String zzlx;

    @ApiModelProperty(value = "巡逻方式（0.车巡 1.步巡）（字典）")
    private String xlfs;

    @ApiModelProperty(value = "巡逻状态（0 巡逻中、1 处警中、2 执行指令中）（字典）")
    private String xfzt;

    @ApiModelProperty(value = "报备开始时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date bbkssj;

    @ApiModelProperty(value = "报备开始时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date bbjssj;

    @ApiModelProperty(value = "--D_ZDY_BBZT（报备状态）报备状态（0 报备中、1 结束报备）（字典）")
    private String bbzt;

    @ApiModelProperty(value = "当前位置")
    private String dqwz;

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

    @ApiModelProperty(value = "地球维度")
    private BigDecimal wd;

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

    @ApiModelProperty(value = "坐标更新时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date zbsj;

    @ApiModelProperty(value = "巡防时长")
    private Integer xfsc;

    @ApiModelProperty(value = "巡防里程（米）")
    private Integer xflc;

    @ApiModelProperty(value = "巡防范围类型")
    private String xffwlx;

    @ApiModelProperty(value = "巡防范围id")
    private String xffwid;

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

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

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

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

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

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

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

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

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

    @ApiModelProperty(value = "备注")
    private String bz;

    @ApiModelProperty(value = "警力集合")
    List<TbQwJl> jlList;

    @ApiModelProperty(value = "车辆集合")
    List<TbQwCl> clList;

    @ApiModelProperty(value = "智能装备集合")
    List<TbQwZnzb> znzbList;

    @ApiModelProperty(value = "警用器械集合")
    List<TbQwJyqx> jyqxList;

    @ApiModelProperty(value = "巡防范围List")
    List<TbQwXffwDto> xffwList;

    @ApiModelProperty(value = "组员类型")
    private String zylx;

    @ApiModelProperty(value = "动中备勤")
    private String dzbq;

    @ApiModelProperty(value = "武器装备")
    private String wqzb;
}
