package com.mosty.common.core.business.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mosty.common.base.entity.log.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import org.apache.poi.ss.usermodel.IndexedColors;
import org.springframework.validation.annotation.Validated;

import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.sql.Timestamp;
import java.util.Date;

/**
 * 巡防力量表;
 *
 * @author : Lhh
 * @date : 2022-6-4
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = true)
@ApiModel(value = "巡防力量表", description = "")
@TableName("tb_jcgl_xfll")
@Validated
public class TbJcglXfll implements Serializable, Cloneable {

    private static final long serialVersionUID = 6556387960466677177L;

    @ApiModelProperty(name = "警员管理表标识ID", notes = "", hidden = true)
    @TableId(type = IdType.ASSIGN_UUID)
    private String id;

    @ApiModelProperty(value = "人员ID（民警对应sys_user表中的ID，辅警为null）", notes = "")
    private String ryid;

    @ApiModelProperty(name = "警员分类", notes = "01、民警，02、辅警")
    private String fl;

    @ApiModelProperty(name = "警员类型", notes = "01、社区民警，02、治安民警，03、刑侦民警，04、内勤民警，05、巡逻民警")
    private String lx;

    @ApiModelProperty(name = "姓名", notes = "")
    @Excel(name = "姓名",sort = 3,headerColor= IndexedColors.RED1 )
    @NotBlank(message = "用户账号不能为空")
    private String xm;

    @ApiModelProperty(name = "性别代码", notes = "")
    @Excel(name = "性别代码",dictType="D_BZ_XB",type= Excel.Type.EXPORT)
    private String xbdm;

    @ApiModelProperty(name = "身份证号", notes = "")
    @Excel(name = "身份证号",width = 20,sort = 4,headerColor= IndexedColors.RED1 )
    @NotBlank(message = "用户账号不能为空")
    private String sfzh;

    @ApiModelProperty(name = "警号", notes = "")
    @Excel(name = "警号",sort = 5,headerColor= IndexedColors.RED1 )
    @NotBlank(message = "用户账号不能为空")
    private String jh;

    @ApiModelProperty(name = "警衔", notes = "")
    private String jx;

    @ApiModelProperty(name = "政治面貌", notes = "")
    @Excel(name = "政治面貌", dictType = "D_BZ_ZZMM")
    private String zzmm;

    @ApiModelProperty(name = "婚姻状况", notes = "0、未婚，1、已婚，2、离异")
    @Excel(name = "婚姻状况",dictType = "D_BZ_HYZK")
    private String hyzk;

    @ApiModelProperty(name = "入职时间", notes = "")
//    @Excel(name = "入职时间(yyyy-MM-dd)", width = 30, dateFormat = "yyyy-MM-dd")
    private Date rzsj;

    @ApiModelProperty(name = "出生日期", notes = "")
    private Date csrq;

    @ApiModelProperty(name = "民族编码", notes = "")
    @Excel(name = "民族编码",dictType = "D_BZ_MZ")
    private String mzdm;

    @ApiModelProperty(name = "文化程度", notes = "")
    @Excel(name = "文化程度",dictType = "D_BZ_WHCD")
    private String whcddm;

    @ApiModelProperty(name = "籍贯", notes = "")
//    @Excel(name = "籍贯",dictType = "D_BZ_XZQHDM")
    private String jgdm;

    @ApiModelProperty(name = "家庭住址", notes = "")
    private String jtzz;

    @ApiModelProperty(name = "联系电话", notes = "")
    @Excel(name = "联系电话",sort = 6,headerColor= IndexedColors.RED1 )
    @NotBlank(message = "联系电话不能为空")
    private String lxdh;

    @ApiModelProperty(name = "电子邮箱", notes = "")
    @Excel(name = "电子邮箱")
    private String dzyx;

    @ApiModelProperty(name = "巡防力量图片")
    private String tp;

    @ApiModelProperty(name = "密码")
    private String password;

    @ApiModelProperty(name = "盐加密")
    private String salt;

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

    @ApiModelProperty(value = "所属部门")
    @Excel(name = "所属部门",width = 35,sort = 2)
    private String ssbm;

    @ApiModelProperty(value = "所属部门代码")
    @Excel(name = "所属部门代码",sort = 1,headerColor= IndexedColors.RED1 )
    @NotBlank(message = "所属部门代码不能为空")
    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 = "图片id")
    private String tpid;

    @ApiModelProperty(value = "数据来源：1、PC，2、手机端", name = "xtSjly")
    private String xtSjly;

    @TableField(fill = FieldFill.INSERT)
    @ApiModelProperty(value = "数据状态：0、注销，1、正常，-1、封存", name = "xtSjzt")
    private String xtSjzt;

    @TableLogic
    @TableField(fill = FieldFill.INSERT)
    @ApiModelProperty(value = "删除标识：0、未删除，1、已删除", name = "xtScbz")
    private String xtScbz;

    @TableField(fill = FieldFill.INSERT)
    @ApiModelProperty(value = "创建IP", name = "xtCjip")
    private String xtCjip;

    @TableField(fill = FieldFill.INSERT)
    @ApiModelProperty(value = "创建时间", name = "xtCjsj")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Timestamp xtCjsj;

    @TableField(fill = FieldFill.INSERT)
    @ApiModelProperty(value = "创建人ID", name = "xtCjrId")
    private String xtCjrId;

    @TableField(fill = FieldFill.INSERT)
    @ApiModelProperty(value = "创建人名称", name = "xtCjr")
    private String xtCjr;

    @TableField(fill = FieldFill.INSERT)
    @ApiModelProperty(value = "创建部门代码", name = "xtCjbmdm")
    private String xtCjbmdm;

    @TableField(fill = FieldFill.INSERT)
    @ApiModelProperty(value = "创建部门名称", name = "xtCjbmmc")
    private String xtCjbmmc;

    @TableField(fill = FieldFill.UPDATE)
    @ApiModelProperty(value = "最后更新IP", name = "xtZhgxip")
    private String xtZhgxip;

    @TableField(fill = FieldFill.UPDATE)
    @ApiModelProperty(value = "最后更新时间", name = "xtZhgxsj")
    private Timestamp xtZhgxsj;

    @TableField(fill = FieldFill.UPDATE)
    @ApiModelProperty(value = "最后更新人ID", name = "xtZhgxrid")
    private String xtZhgxrid;

    @TableField(fill = FieldFill.UPDATE)
    @ApiModelProperty(value = "最后更新人名称", name = "xtZhgxr")
    private String xtZhgxr;

    @TableField(fill = FieldFill.UPDATE)
    @ApiModelProperty(value = "最后更新部门代码", name = "xtZhgxbmdm")
    private String xtZhgxbmdm;

    @TableField(fill = FieldFill.UPDATE)
    @ApiModelProperty(value = "最后更新部门名称", name = "xtZhgxbm")
    private String xtZhgxbm;

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

}