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;

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

    private static final long serialVersionUID = 1L;

    /**
     * 移出严重违法自然人名单ID
     */
    @ApiModelProperty("移出严重违法自然人名单ID")
    @TableId(value = "biz_ser_rem_id", type = IdType.ASSIGN_UUID)
    private String bizSerRemId;

    /**
     * 移出严重违法自然人名单业务号
     */
    @ApiModelProperty("移出严重违法自然人名单业务号")
    @TableField("biz_seq_no")
    private String bizSeqNo;

    /**
     * 严重违法失信名单ID
     */
    @ApiModelProperty("严重违法失信名单ID")
    @TableField("illegal_list_id")
    private String illegalListId;

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

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

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

    /**
     * 列入严重违法企业名单原因
     */
    @ApiModelProperty("列入严重违法企业名单原因")
    @TableField("ser_ill_rea")
    private String serIllRea;

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

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

    /**
     * 申请移出理由编码
     */
    @ApiModelProperty("申请移出理由编码")
    @TableField("apply_rem_rea")
    private String applyRemRea;

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

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

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

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

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

    /**
     * 事实和法律依据
     */
    @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("rem_sponsor_illegal")
    private String remSponsorIllegal;

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

    /**
     * 信用修复申请是否受理0否1是
     */
    @ApiModelProperty("信用修复申请是否受理0否1是")
    @TableField("is_accept")
    private String isAccept;

    /**
     * 是否予以信用修复 1、准予修复；2、不予修复；3结束流程；4、转办
     */
    @ApiModelProperty("是否予以信用修复 1、准予修复；2、不予修复；3结束流程；4、转办")
    @TableField("is_agree_repair")
    private String isAgreeRepair;

    /**
     * 申请时间
     */
    @ApiModelProperty("申请时间")
    @JsonSerialize(using = LocalDateTimeStringSerializer.class)
    @TableField("apply_time")
    private LocalDateTime applyTime;

    /**
     * 申请人
     */
    @ApiModelProperty("申请人")
    @TableField("applicant")
    private String applicant;

    /**
     * 申请人电话号码
     */
    @ApiModelProperty("申请人电话号码")
    @TableField("applicant_no")
    private String applicantNo;

    /**
     * 办理状态: 1办理中，2退回重办, 3予以修复, 4不予修复, 5作废
     */
    @ApiModelProperty("办理状态: 1办理中，2退回重办, 3予以修复, 4不予修复, 5作废")
    @TableField("handle_status")
    private String handleStatus;

    /**
     * 回退建议
     */
    @ApiModelProperty("回退建议")
    @TableField("back_proposal")
    private String backProposal;

    /**
     * 不予修复建议
     */
    @ApiModelProperty("不予修复建议")
    @TableField("not_repaired")
    private String notRepaired;

    /**
     * 不予修复建议备注
     */
    @ApiModelProperty("不予修复建议备注")
    @TableField("remark")
    private String remark;

    /**
     * 标识移动端或pc端  0:移动端，1：pc端
     */
    @ApiModelProperty("标识移动端或pc端  0:移动端，1：pc端")
    @TableField("app_or_pc")
    private String appOrPc;

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


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

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


    /**
     * 异议联系人
     */
    @ApiModelProperty("联系人")
    @TableField("contacts")
    private String contacts;

    /**
     * 异议联系电话
     */
    @ApiModelProperty("联系电话")
    @TableField("telephone")
    private String telephone;

    /**
     * 异议核实情况
     */
    @ApiModelProperty("核实情况")
    @TableField("situation")
    private String situation;


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

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

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

    @ApiModelProperty("决定书内容")
    @TableField("decision_content")
    private String decisionContent;


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

    /**
     * 移出日期
     */
    @ApiModelProperty("移出日期")
    @JsonSerialize(using = LocalDateTimeStringSerializer.class)
    @TableField("rem_date")
    private LocalDate remDate;

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

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

    @ApiModelProperty("业务名称")
    @TableField(exist = false)
    private String busName;

    @TableField(exist = false)
    private String openName;
}
