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

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;
import java.util.HashMap;

/**
 * 列入严重违法失信自然人名单（业务表）
 *
 * @author zhouxy
 * @since 2025-07-23
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName(value = "xr_serious_illegal_person_spe_list")
@ApiModel(value = "XrSeriousIllegalPersonSpeList对象", description = "列入严重违法失信自然人名单（业务表）")
public class XrSeriousIllegalPersonSpeList extends SuperEntity implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 编号ID
     */
    @ApiModelProperty(value = "编号ID")
    @TableId(value = "illegal_list_id", type = IdType.ASSIGN_UUID)
    private String illegalListId;

    /**
     * 业务号
     */
    @ApiModelProperty(value = "业务号")
    @TableField("biz_seq_no")
    private String bizSeqNo;

    /**
     * 姓名
     */
    @ApiModelProperty(value = "姓名")
    @TableField("inv")
    private String inv;

    /**
     * 证件类型(CB16)
     */
    @ApiModelProperty(value = "证件类型(CB16)")
    @TableField("cer_type")
    private String cerType;

    /**
     * 证件号码
     */
    @ApiModelProperty(value = "证件号码")
    @TableField("cer_no")
    private String cerNo;

    /**
     * 列入严重违法名单原因码值（国标：CD73）
     */
    @ApiModelProperty(value = "列入严重违法名单原因码值（国标：CD73）")
    @TableField("serill_rea")
    private String serillRea;

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

    /**
     * 核准日期
     */
    @ApiModelProperty(value = "核准日期")
    @JsonSerialize(using = LocalDateTimeStringSerializer.class)
    @TableField("approval_date")
    private LocalDate approvalDate;

    /**
     * 作出决定机关
     */
    @ApiModelProperty(value = "作出决定机关")
    @TableField("dec_org")
    private String decOrg;

    /**
     * 作出决定机关中文
     */
    @ApiModelProperty(value = "作出决定机关中文")
    @TableField("dec_org_cn")
    private String decOrgCn;

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

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

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

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

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

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

    /**
     * 流程状态：0待受理 1待审核 2待审批 3审批通过 4审批不通过 5已作废 7待执法
     */
    @ApiModelProperty(value = "流程状态：0待受理 1待审核 2待审批 3审批通过 4审批不通过 5已作废 7待执法")
    @TableField("status")
    private String status;

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

    /**
     * 是否申请结束 1.列入 2.结束
     */
    @ApiModelProperty(value = "是否申请结束 1.列入 2.结束")
    @TableField("end_apply")
    private String endApply;

    /**
     * 结束原因
     */
    @ApiModelProperty(value = "结束原因")
    @TableField("end_reason")
    private String endReason;

    /**
     * 核准日期
     */
    @ApiModelProperty(value = "核准日期")
    @JsonSerialize(using = LocalDateTimeStringSerializer.class)
    @TableField("abn_time")
    private LocalDate abnTime;

    /**
     * 文书号（行政处罚线下进行录入）
     */
    @ApiModelProperty(value = "文书号（行政处罚线下进行录入）")
    @TableField("writs_no")
    private String writsNo;

    /**
     * 当事人（行政处罚线下进行录入）
     */
    @ApiModelProperty(value = "当事人（行政处罚线下进行录入）")
    @TableField("party")
    private String party;

    /**
     * 主体资格证照名称（行政处罚线下进行录入）
     */
    @ApiModelProperty(value = "主体资格证照名称（行政处罚线下进行录入）")
    @TableField("certificate")
    private String certificate;

    /**
     * 统一信用代码/身份证件号码（行政处罚线下进行录入）
     */
    @ApiModelProperty(value = "统一信用代码/身份证件号码（行政处罚线下进行录入）")
    @TableField("uscc_id")
    private String usccId;

    /**
     * 法定代表人姓名（行政处罚线下进行录入）
     */
    @ApiModelProperty(value = "法定代表人姓名（行政处罚线下进行录入）")
    @TableField("legal_name")
    private String legalName;

    /**
     * 身份证件号码（行政处罚线下进行录入）
     */
    @ApiModelProperty(value = "身份证件号码（行政处罚线下进行录入）")
    @TableField("id_number")
    private String idNumber;

    /**
     * 联系电话（行政处罚线下进行录入）
     */
    @ApiModelProperty(value = "联系电话（行政处罚线下进行录入）")
    @TableField("phone")
    private String phone;

    /**
     * 其他联系方式（行政处罚线下进行录入）
     */
    @ApiModelProperty(value = "其他联系方式（行政处罚线下进行录入）")
    @TableField("other_cert")
    private String otherCert;

    /**
     * 住所/经营场所（住址）（行政处罚线下进行录入）
     */
    @ApiModelProperty(value = "住所/经营场所（住址）（行政处罚线下进行录入）")
    @TableField("residence")
    private String residence;

    /**
     * 表单传参-拟列入严重违法失信企业录入表的主键id
     */
    @ApiModelProperty(value = "表单传参-拟列入严重违法失信企业录入表的主键id")
    @TableField("ill_operating_id")
    private String illOperatingId;

    /**
     * 表单传参-意见文本框
     */
    @ApiModelProperty(value = "表单传参-意见文本框")
    @TableField("opinion")
    private String opinion;

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

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

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

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

    /**
     * 行政处罚案件基本信息ID
     */
    @ApiModelProperty(value = "行政处罚案件基本信息ID")
    @TableField("case_id")
    private String caseId;

    /**
     * 最新勘误业务号
     */
    @ApiModelProperty(value = "最新勘误业务号")
    @TableField("correct_biz_seq")
    private String correctBizSeq;

    /**
     * 听证意见
     */
    @ApiModelProperty(value = "听证意见")
    @TableField("hea_opinion")
    private String heaOpinion;

    /**
     * 处罚决定书文号
     */
    @ApiModelProperty(value = "处罚决定书文号")
    @TableField("sbook_code")
    private String sbookCode;

    /**
     * 违法行为类型
     */
    @ApiModelProperty(value = "违法行为类型")
    @TableField("sgist_type_name")
    private String sgistTypeName;

    /**
     * 处罚种类
     */
    @ApiModelProperty(value = "处罚种类")
    @TableField("spun_type_name")
    private String spunTypeName;

    /**
     * 处罚金额
     */
    @ApiModelProperty(value = "处罚金额")
    @TableField("pen_am")
    private String penAm;

    /**
     * 没收金额
     */
    @ApiModelProperty(value = "没收金额")
    @TableField("forf_am")
    private String forfAm;

    /**
     * 作出行政处罚决定机关（码值）
     */
    @ApiModelProperty(value = "作出行政处罚决定机关（码值）")
    @TableField("penauth")
    private String penauth;

    /**
     * 作出行政处罚决定机关（中文）
     */
    @ApiModelProperty(value = "作出行政处罚决定机关（中文）")
    @TableField("penauth_cn")
    private String penauthCn;

    /**
     * 处罚决定书日期
     */
    @ApiModelProperty(value = "处罚决定书日期")
    @JsonSerialize(using = LocalDateTimeStringSerializer.class)
    @TableField("punishment_decision_date")
    private LocalDate punishmentDecisionDate;

    /**
     * 当事人名称
     */
    @ApiModelProperty(value = "当事人名称")
    @TableField("party_name")
    private String partyName;

    /**
     * 处罚内容
     */
    @ApiModelProperty(value = "处罚内容")
    @TableField("spun_content")
    private String spunContent;

    /**
     * 拟列入清单id
     */
    @ApiModelProperty(value = "拟列入清单id")
    @TableField("serial_id")
    private String serialId;



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

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

    /**
     * 是否完成 0未完成1完成
     */
    @ApiModelProperty(value = "是否完成 0未完成1完成")
    @TableField("is_finished")
    private String finished;

    /**
     * 业务类型:严重违法行政处罚(penalty)
     */
    @ApiModelProperty(value = "务类型:严重违法行政处罚(penalty)")
    @TableField("bus_type")
    private String busType;

    @ApiModelProperty("是否显示：0不显示1显示")
    @TableField("is_displayed")
    private String displayed;

    //封装文书获取的内容
    @TableField(exist = false)
    private HashMap<String, Object> map;

    @TableField(exist = false)
    private String writsNumber;

    @ApiModelProperty(value = "行政处罚列入需要字段：上级是否已审批：0不是,1是")
    @TableField("is_approve")
    private String approve;

    @ApiModelProperty("是否转办")
    @TableField("transfer")
    private String transfer;

    @ApiModelProperty("转办原因")
    @TableField("transfer_reason")
    private String transferReason;

    @ApiModelProperty("转办机关")
    @TableField("auth_item")
    private String authItem;

    /**
     * 来源类型 1:经营异常满三年；2:行政处罚；3:法院判决；9:其他；
     */
    @ApiModelProperty(value = "来源类型 1:经营异常满三年；2:行政处罚；3:法院判决；9:其他；")
    @TableField("source_type")
    private String sourceType;

    /**
     * 受理号
     */
    @ApiModelProperty(value = "受理号")
    @TableField(exist = false)
    private String acceptNo;

}
