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

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.mosty.common.base.entity.log.Excel;
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.util.Date;

/**
 * @author zhangzhao
 * @description 指导巡逻方格巡逻任务表
 * @modifier zhangzhao
 * @modifiedTime 2025/05/10 19:33
 * @since 2025/05/10 19:33
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("tb_zdxl_fgxlrw")
@ApiModel(value = "TbZdxlFgxlrw对象", description = "指导巡逻方格巡逻任务表")
public class TbZdxlFgxlrw extends BaseEntity implements Serializable, Cloneable {

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    @ApiModelProperty(value = "主键ID")
    @TableId(value = "id", type = IdType.ASSIGN_ID)
    @Excel(name = "主键ID", sort = 1)
    private String id;

    @ApiModelProperty(value = "任务类型 D_BZ_RWBLX 1日常 2自定义 3下发")
    @TableField(value = "rwlx")
    private String rwlx;

    @ApiModelProperty(value = "任务标题 D_BZ_RWBLX 1日常 2自定义")
    @TableField(value = "fg_rwbt")
    private String fgRwbt;

    @ApiModelProperty(value = "任务内容 D_BZ_RWBLX 1日常 2自定义")
    @TableField(value = "fg_rwnr")
    private String fgRwnr;
    /**
     * 方格ID
     */
    @ApiModelProperty(value = "方格ID")
    @TableField(value = "fg_id")
    @Excel(name = "方格ID", sort = 2, cellType = Excel.ColumnType.NUMERIC)
    private Long fgId;

    /**
     * 方格排序
     */
    @ApiModelProperty(value = "方格排序")
    @TableField(value = "fg_px")
    @Excel(name = "方格排序", sort = 3, cellType = Excel.ColumnType.NUMERIC)
    private Integer fgPx;

    /**
     * 方格预警等级 D_ZDXL_FGXLRW_YJDJ
     */
    @ApiModelProperty(value = "方格预警等级 D_ZDXL_FGXLRW_YJDJ")
    @TableField(value = "fg_yjdj")
    @Excel(name = "方格预警等级", sort = 4)
    private String fgYjdj;

    /**
     * 方格预警颜色 D_ZDXL_FGXLRW_YJYS
     */
    @ApiModelProperty(value = "方格预警颜色 D_ZDXL_FGXLRW_YJYS")
    @TableField(value = "fg_yjys")
    @Excel(name = "方格预警颜色", sort = 5)
    private String fgYjys;

    /**
     * 方格预警警情数量
     */
    @ApiModelProperty(value = "方格预警警情数量")
    @TableField(value = "fg_yjjqsl")
    @Excel(name = "方格预警警情数量", sort = 6, cellType = Excel.ColumnType.NUMERIC)
    private Integer fgYjjqsl;

    /**
     * 方格预警高发时段
     */
    @ApiModelProperty(value = "方格预警高发时段")
    @TableField(value = "fg_yjgfsd")
    @Excel(name = "方格预警高发时段", sort = 7)
    private String fgYjgfsd;

    /**
     * 方格预警高发警情
     */
    @ApiModelProperty(value = "方格预警高发警情")
    @TableField(value = "fg_gfjq")
    @Excel(name = "方格预警高发警情", sort = 8)
    private String fgGfjq;

    /**
     * 方格警情小时统计
     */
    @ApiModelProperty(value = "方格警情小时统计")
    @TableField(value = "fg_jqtj_xs")
    @Excel(name = "方格警情小时统计", sort = 9)
    private String fgJqtjXs;

    /**
     * 方格警情类型统计
     */
    @ApiModelProperty(value = "方格警情类型统计")
    @TableField(value = "fg_jqtj_lx")
    @Excel(name = "方格警情类型统计", sort = 10)
    private String fgJqtjLx;

    /**
     * 任务日期
     */
    @ApiModelProperty(value = "任务日期")
    @TableField(value = "rw_rq")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "任务日期", sort = 11, dateFormat = "yyyy-MM-dd")
    private Date rwRq;

    /**
     * 任务状态 D_ZDXL_FGXLRW_RWZT
     */
    @ApiModelProperty(value = "任务状态 D_ZDXL_FGXLRW_RWZT")
    @TableField(value = "rw_zt")
    @Excel(name = "任务状态", sort = 12)
    private String rwZt;


    @ApiModelProperty(value = "任务状态 D_BZ_QWRWZT")
    @TableField(value = "rw_lq_zt")
    @Excel(name = "任务领取状态", sort = 12)
    private String rwLqZt;
    /**
     * 巡逻规划时长（分钟）
     */
    @ApiModelProperty(value = "巡逻规划时长（分钟）")
    @TableField(value = "xlgh_sc")
    @Excel(name = "巡逻规划时长（分钟）", sort = 13, cellType = Excel.ColumnType.NUMERIC)
    private Double xlghSc;

    /**
     * 巡逻规划开始时间
     */
    @ApiModelProperty(value = "巡逻规划开始时间")
    @TableField(value = "xlgh_sj_ks")
    @JsonFormat(pattern = "HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "HH:mm:ss")
    @Excel(name = "巡逻规划开始时间", sort = 14, dateFormat = "HH:mm:ss")
    private Date xlghSjKs;

    /**
     * 巡逻规划结束时间
     */
    @ApiModelProperty(value = "巡逻规划结束时间")
    @TableField(value = "xlgh_sj_js")
    @JsonFormat(pattern = "HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "HH:mm:ss")
    @Excel(name = "巡逻规划结束时间", sort = 15, dateFormat = "HH:mm:ss")
    private Date xlghSjJs;

    /**
     * 巡逻规划巡逻里程（公里）
     */
    @ApiModelProperty(value = "巡逻规划巡逻里程（公里）")
    @TableField(value = "xlgh_xllc")
    @Excel(name = "巡逻规划巡逻里程（公里）", sort = 16, cellType = Excel.ColumnType.NUMERIC)
    private Double xlghXllc;

    /**
     * 巡逻规划盘查车辆
     */
    @ApiModelProperty(value = "巡逻规划盘查车辆")
    @TableField(value = "xlgh_pc_cl")
    private Integer xlghPcCl;

    /**
     * 巡逻规划盘查人员
     */
    @ApiModelProperty(value = "巡逻规划盘查人员")
    @TableField(value = "xlgh_pc_ry")
    private Integer xlghPcRy;

    /**
     * 巡逻实际时长（分钟）
     */
    @ApiModelProperty(value = "巡逻实际时长（分钟）")
    @TableField(value = "xlsj_sc")
    @Excel(name = "巡逻实际时长（分钟）", sort = 17, cellType = Excel.ColumnType.NUMERIC)
    private Double xlsjSc;

    /**
     * 巡逻实际开始时间
     */
    @ApiModelProperty(value = "巡逻实际开始时间")
    @TableField(value = "xlsj_sj_ks")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "巡逻实际开始时间", sort = 18, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date xlsjSjKs;

    /**
     * 巡逻实际结束时间
     */
    @ApiModelProperty(value = "巡逻实际结束时间")
    @TableField(value = "xlsj_sj_js")
    @Excel(name = "巡逻实际结束时间", sort = 19, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date xlsjSjJs;

    /**
     * 巡逻实际巡逻里程（公里）
     */
    @ApiModelProperty(value = "巡逻实际巡逻里程（公里）")
    @TableField(value = "xlsj_xllc")
    @Excel(name = "巡逻实际巡逻里程（公里）", sort = 20, cellType = Excel.ColumnType.NUMERIC)
    private Double xlsjXllc;

    /**
     * 巡逻实际盘查车辆
     */
    @ApiModelProperty(value = "巡逻实际盘查车辆")
    @TableField(value = "xlsj_pc_cl")
    private Integer xlsjPcCl;

    /**
     * 巡逻实际盘查人员
     */
    @ApiModelProperty(value = "巡逻实际盘查人员")
    @TableField(value = "xlsj_pc_ry")
    private Integer xlsjPcRy;

    /**
     * 巡防报备ID
     */
    @ApiModelProperty(value = "巡防报备ID")
    @TableField(value = "xfbb_id")
    private String xfbbId;

    /**
     * 巡防报备勤务警力ID
     */
    @ApiModelProperty(value = "巡防报备勤务警力ID")
    @TableField(value = "xfbb_qw_jl_id")
    private String xfbbQwJlId;


    /**
     * 主键ID字段名
     */
    public static String ID_FIELD = "id";

    /**
     * 方格ID字段名
     */
    public static String FG_ID_FIELD = "fg_id";


    public static String FG_RWLX_FIELD = "rwlx";

    /**
     * 方格排序字段名
     */
    public static String FG_PX_FIELD = "fg_px";

    /**
     * 方格预警等级字段名
     */
    public static String FG_YJDJ_FIELD = "fg_yjdj";

    /**
     * 方格预警颜色字段名
     */
    public static String FG_YJYS_FIELD = "fg_yjys";

    /**
     * 方格预警警情数量字段名
     */
    public static String FG_YJJQSL_FIELD = "fg_yjjqsl";

    /**
     * 方格预警高发时段字段名
     */
    public static String FG_YJGFSD_FIELD = "fg_yjgfsd";

    /**
     * 方格预警高发警情字段名
     */
    public static String FG_GFJQ_FIELD = "fg_gfjq";

    /**
     * 方格警情小时统计字段名
     */
    public static String FG_JQTJ_XS_FIELD = "fg_jqtj_xs";

    /**
     * 方格警情类型统计字段名
     */
    public static String FG_JQTJ_LX_FIELD = "fg_jqtj_lx";

    /**
     * 任务日期字段名
     */
    public static String RW_RQ_FIELD = "rw_rq";

    /**
     * 任务状态字段名
     */
    public static String RW_ZT_FIELD = "rw_zt";

    /**
     * 巡逻规划时长字段名
     */
    public static String XLGH_SC_FIELD = "xlgh_sc";

    /**
     * 巡逻规划开始时间字段名
     */
    public static String XLGH_SJ_KS_FIELD = "xlgh_sj_ks";

    /**
     * 巡逻规划结束时间字段名
     */
    public static String XLGH_SJ_JS_FIELD = "xlgh_sj_js";

    /**
     * 巡逻规划巡逻里程字段名
     */
    public static String XLGH_XLLC_FIELD = "xlgh_xllc";

    /**
     * 巡逻规划盘查车辆字段名
     */
    public static String XLGH_PC_CL_FIELD = "xlgh_pc_cl";

    /**
     * 巡逻规划盘查人员字段名
     */
    public static String XLGH_PC_RY_FIELD = "xlgh_pc_ry";

    /**
     * 巡逻实际时长字段名
     */
    public static String XLSJ_SC_FIELD = "xlsj_sc";

    /**
     * 巡逻实际开始时间字段名
     */
    public static String XLSJ_SJ_KS_FIELD = "xlsj_sj_ks";

    /**
     * 巡逻实际结束时间字段名
     */
    public static String XLSJ_SJ_JS_FIELD = "xlsj_sj_js";

    /**
     * 巡逻实际巡逻里程字段名
     */
    public static String XLSJ_XLLC_FIELD = "xlsj_xllc";

    /**
     * 巡逻实际盘查车辆字段名
     */
    public static String XLSJ_PC_CL_FIELD = "xlsj_pc_cl";

    /**
     * 巡逻实际盘查人员字段名
     */
    public static String XLSJ_PC_RY_FIELD = "xlsj_pc_ry";

    /**
     * 巡防报备ID字段名
     */
    public static String XFBB_ID_FIELD = "xfbb_id";

    /**
     * 巡防报备勤务警力ID字段名
     */
    public static String XFBB_QW_JL_ID_FIELD = "xfbb_qw_jl_id";

}
