package com.chinaweal.aiccs.aiccs.seriousillegalPerson.entity;

import cn.afterturn.easypoi.excel.annotation.Excel;
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.chinaweal.youfool.framework.springboot.json.LocalDateTimeStringSerializer;
import com.chinaweal.youfool.framework.springboot.mybatis.plus.SuperEntity;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * 严重违法失信自然人名单表
 *
 * @author zhouxy
 * @since 2025-07-23
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName(value = "xr_serious_illegal_person_list")
@ApiModel(value = "XrSeriousIllegalPersonList", description = "严重违法失信自然人名单表")
public class XrSeriousIllegalPersonList extends SuperEntity implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 严重违法失信自然人名单表ID
     */
    @ApiModelProperty("严重违法失信自然人名单表ID")
    @TableId(value = "illegal_list_id", type = IdType.ASSIGN_UUID)
    private String illegalListId;

    /**
     * 列入严重违法自然人名单业务号
     */
    @ApiModelProperty("列入严重违法自然人名单业务号")
    @TableField("biz_seq")
    private String bizSeq;

    /**
     * 姓名
     */
    @ApiModelProperty("姓名")
    @TableField("inv")
    @Excel(name = "姓名", width = 50, orderNum = "1")
    private String inv;

    /**
     * 证件类型(CB16)
     */
    @ApiModelProperty("证件类型(CB16)")
    @TableField("cer_type")
    @Excel(name = "证件类型(CB16)", width = 50, orderNum = "2")
    private String cerType;

    /**
     * 证件号码
     */
    @ApiModelProperty("证件号码")
    @TableField("cer_no")
    @Excel(name = "证件号码", width = 50, orderNum = "3")
    private String cerNo;

    /**
     * 登记机关
     */
    @ApiModelProperty("登记机关")
    @TableField("reg_org")
    private String regOrg;

    /**
     * 列入严重违法名单原因（国标：CD73）
     */
    @ApiModelProperty("列入严重违法名单原因（国标：CD73）")
    @TableField("ser_ill_rea")
    private String serIllRea;

    /**
     * 列入严重违法名单原因（中文）
     */
    @ApiModelProperty("列入严重违法名单原因（中文）")
    @TableField("ser_ill_rea_cn")
    @Excel(name = "列入原因", width = 100, orderNum = "4")
    private String serIllReaCn;

    /**
     * 列入日期
     */
    @ApiModelProperty("列入日期")
    @JsonSerialize(using = LocalDateTimeStringSerializer.class)
    @TableField("abn_time")
    @Excel(name = "列入日期", width = 50, orderNum = "5", format = "yyyy-MM-dd")
    private LocalDate abnTime;

    /**
     * 移出严重违法自然人名单原因（国标：CD74）
     */
    @ApiModelProperty("移出严重违法自然人名单原因（国标：CD74）")
    @TableField("rem_excp_res")
    private String remExcpRes;

    /**
     * 移出严重违法自然人名单原因（中文）
     */
    @ApiModelProperty("移出严重违法自然人名单原因（中文）")
    @TableField("rem_excp_res_cn")
    private String remExcpResCn;

    /**
     * 移出日期
     */
    @ApiModelProperty("移出日期")
    @JsonSerialize(using = LocalDateTimeStringSerializer.class)
    @TableField("rem_date")
    @Excel(name = "移出日期", width = 50, orderNum = "6", format = "yyyy-MM-dd")
    private LocalDate remDate;

    /**
     * 列入决定机关
     */
    @ApiModelProperty("列入决定机关")
    @TableField("dec_org")
    private String decOrg;

    /**
     * 地区代码
     */
    @ApiModelProperty("地区代码")
    @TableField("area_code")
    private String areaCode;

    /**
     * 最后更新时间
     */
    @ApiModelProperty("最后更新时间")
    @JsonSerialize(using = LocalDateTimeStringSerializer.class)
    @TableField("laup_time")
    private LocalDateTime laupTime;

    /**
     * 列入事实和法律依据
     */
    @ApiModelProperty("列入事实和法律依据")
    @TableField("lost_credit_explain")
    private String lostCreditExplain;

    /**
     * 移出事实和法律依据
     */
    @ApiModelProperty("移出事实和法律依据")
    @TableField("lost_credit_explain_rem")
    private String lostCreditExplainRem;

    /**
     * 行政复议机关
     */
    @ApiModelProperty("	行政复议机关")
    @TableField("reconsideration_org")
    private String reconsiderationOrg;

    /**
     * 人民政府
     */
    @ApiModelProperty("人民政府")
    @TableField("government_org")
    private String governmentOrg;

    /**
     * 诉讼机关
     */
    @ApiModelProperty("诉讼机关")
    @TableField("liti_org")
    private String litiOrg;

    /**
     * 列入主办人
     */
    @ApiModelProperty("列入主办人")
    @TableField("into_sponsor_illegal")
    private String intoSponsorIllegal;

    /**
     * 移出主办人
     */
    @ApiModelProperty("移出主办人")
    @TableField("rem_sponsor_illegal")
    private String remSponsorIllegal;

    /**
     * 批量与个案标识
     */
    @ApiModelProperty("批量与个案标识")
    @TableField("batch_and_case")
    private String batchAndCase;

    /**
     * 操作状态操作状态（0列入，1已修复，2移出, 3撤销）
     */
    @ApiModelProperty("操作状态操作状态（0列入，1已修复，2移出, 3撤销）")
    @TableField("operation_status")
    private String operationStatus;

    /**
     * 移出决定机关
     */
    @ApiModelProperty("移出决定机关")
    @TableField("rem_dec_org")
    private String remDecOrg;

    /**
     * 移出决定机关(中文名)
     */
    @ApiModelProperty("移出决定机关(中文名)")
    @TableField("rem_dec_org_cn")
    private String remDecOrgCn;

    /**
     * 列入文书id
     */
    @ApiModelProperty("列入文书id")
    @TableField("into_writ_id")
    private String intoWritId;

    /**
     * 移除文书id
     */
    @ApiModelProperty("移除文书id")
    @TableField("rem_writ_id")
    private String remWritId;

    /**
     * 列入主办人id
     */
    @ApiModelProperty("列入主办人id")
    @TableField("into_sponsor_illegal_id")
    private String intoSponsorIllegalId;

    /**
     * 移除严重违法名单业务号
     */
    @ApiModelProperty("移除严重违法名单业务号")
    @TableField("rem_biz_seq")
    private String remBizSeq;

    /**
     * 列入决定机关（中文名）
     */
    @ApiModelProperty("列入决定机关（中文名）")
    @TableField("dec_org_cn")
    private String decOrgCn;

    /**
     * 是否经过异议(1是0否)
     */
    @ApiModelProperty("是否经过异议(1是0否)")
    @TableField("is_rev")
    private String isRev;

    /**
     * 当事人异议主要意见
     */
    @ApiModelProperty("当事人异议主要意见")
    @TableField("rev_op")
    private String revOp;

    /**
     * 是否经过听证程序(1是0否)
     */
    @ApiModelProperty("是否经过听证程序(1是0否)")
    @TableField("is_hea")
    private String isHea;

    /**
     * 当事人听证中提出的主要意见
     */
    @ApiModelProperty("当事人听证中提出的主要意见")
    @TableField("hea_op")
    private String heaOp;

    /**
     * 作出判决的人民法院司法文书标题
     */
    @ApiModelProperty("作出判决的人民法院司法文书标题")
    @TableField("jud_doc_title")
    private String judDocTitle;

    /**
     * 作出判决的人民法院司法文书文号
     */
    @ApiModelProperty("作出判决的人民法院司法文书文号")
    @TableField("jud_doc_no")
    private String judDocNo;

    /**
     * 是否公示，1 公示
     */
    @ApiModelProperty("是否公示，1 公示")
    @TableField("is_displayed")
    private String displayed;

    /**
     * 创建部门id
     */
    @ApiModelProperty("创建部门id")
    @TableField("add_dep_id")
    private String addDepId;

    /**
     * 创建部门名称
     */
    @ApiModelProperty("创建部门名称")
    @TableField("add_dep_name")
    private String addDepName;

    /**
     * 移出类型：1-撤销行政管理，2-期限届满移出，3-提前移出管理
     */
    @ApiModelProperty("移出类型：1-撤销行政管理，2-期限届满移出，3-提前移出管理")
    @TableField("rem_type")
    private String remType;

    /**
     * 是否正在办理业务：1是0否
     */
    @ApiModelProperty("是否正在办理业务：1是0否")
    @TableField("is_handling")
    private String isHandling;

}
