package com.chinaweal.aiccs.aiccs.seriousillegal.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.baomidou.mybatisplus.extension.activerecord.Model;
import com.chinaweal.youfool.framework.springboot.json.LocalDateTimeStringSerializer;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;

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

/**
 * <p>
 * 列入严重违法企业名单业务表
 * </p>
 *
 * @author <a href="https://blog.lroyia.top">lroyia</a>
 * @since 2021-01-26
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("tsbizserillegal")
public class TSBizSerIllegal extends Model<TSBizSerIllegal> {

    private static final long serialVersionUID = 1L;

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

    /**
     * 业务号
     */
    @TableField("BIZSEQ")
    private String bizseq;

    /**
     * 经营异常名录ID
     */
    @TableField("ABNLISTID")
    private String abnlistid;

    /**
     * 主体身份代码
     */
    @TableField("PRIPID")
    private String pripid;

    /**
     * 注册号
     */
    @TableField("REGNO")
    private String regno;

    /**
     * 统一码
     */
    @TableField("UNISCID")
    private String uniscid;

    /**
     * 名称
     */
    @TableField("ENTNAME")
    private String entname;

    /**
     * 列入严重违法企业名单原因（国标：CD73）
     */
    @TableField("SERILLREA")
    private String serillrea;

    /**
     * 列入严重违法企业名单原因（国标：CD73）
     */
    @TableField(exist = false)
    private String serillreaString;

    /**
     * 核准日期
     */
    @TableField("APPROVALDATE")
    private LocalDate approvaldate;

    /**
     * 作出决定机关
     */
    @TableField("DECORG")
    private String decorg;

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

    /**
     * 最后更新时间
     */
    @TableField("LAUPTIME")
    private LocalDateTime lauptime;

    /**
     * 列入的事实和法律依据
     */
    @TableField("LOSTCREDITEXPLAIN")
    private String lostcreditexplain;

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

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

    /**
     * 诉讼机关
     */
    @TableField("LitiOrg")
    private String LitiOrg;

    /**
     * 9 受理中、1 审批中、2 已通过、3 不通过 4 通过结束流程、5 直接否决结束流程
     */
    private String status;

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

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

    /**
     * 是否申请结束
     * 1，列入
     * 2，结束
     */
    @TableField("endApply")
    private String endApply;

    /**
     * 结束原因
     */
    @TableField("endReason")
    private String endReason;

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


    /**
     * 行政处罚区局才会使用 列入日期（经办人选择领导审批时间）
     */
    @TableField("ABNTIME")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonSerialize(using = LocalDateTimeStringSerializer.class)
    private LocalDate abntime;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    /**
     * 最新勘误业务号
     */
    @TableField("correctBizseq")
    private String correctBizseq;

    /**
     * 听证意见
     */
    @TableField("heaopinionl")
    private String heaopinionl;

    // 以下是行政处罚列严所需字段: 行政处罚决定书内容
    /**
     * 处罚决定书文号
     */
    @TableField("sbookcode")
    private String sbookcode;

    /**
     * 违法行为类型
     */
    @TableField("sgisttypename")
    private String sgisttypename;

    /**
     * 处罚种类
     */
    @TableField("spuntypename")
    private String spuntypename;

    /**
     * 处罚金额
     */
    @TableField("penam")
    private String penam;

    /**
     * 没收金额
     */
    @TableField("forfam")
    private String forfam;

    /**
     * 行政处罚决定机关
     */
    @TableField("cfdjjg")
    private String cfdjjg;

    /**
     * 处罚决定书日期
     */
    @TableField("cfjdsj")
    private String cfjdsj;

    /**
     * 当事人
     */
    @TableField("dsrmc")
    private String dsrmc;

    /**
     * 处罚内容
     */
    @TableField("spuncontent")
    private String spuncontent;

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

    @Override
    protected Serializable pkVal() {
        return this.illegallistid;
    }

}
