package com.chinaweal.aiccs.aiccs.abnormal.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 lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.apache.commons.lang3.StringUtils;

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-19
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("tsabnlist")
public class TSAbnList extends Model<TSAbnList> {

    private static final long serialVersionUID=1L;

    /**
     * 经营异常名录ID
     */
    @TableId(value = "ABNLISTID", type = IdType.ASSIGN_UUID)
    private String abnlistid;

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

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

    /**
     * 统一社会信用代码
     */
    @TableField("UNISCID")
    private String uniscid;

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

    /**
     * 企业类型
     */
    @TableField("ENTTYPE")
    private String enttype;

    /**
     * 企业类型中文
     */
    @TableField(exist = false)
    private String enttypeCN;

    /**
     * 列入经营异常名录原因（国标：CD71）
     */
    @TableField("SPECAUSE")
    private String specause;

    /**
     * 列入原因（中文）
     */
    @TableField(exist = false)
    private String specauseCn;

    /**
     * 列入日期
     */
    @TableField("ABNTIME")
    private LocalDate abntime;

    /**
     * 列出日期
     */
    @TableField(exist = false)
    private LocalDate endabntime;

    /**
     * 列入原因中文
     */
    @TableField("SPEREASONS")
    private String spereasons;

    /**
     * 移出经营异常名录原因
     */
    @TableField("REMEXCPRES")
    private String remexcpres;

    /**
     * 移出经营异常名录原因（中文）
     */
    @TableField(exist = false)
    private String remexcpresCn;

    /**
     * 移出日期
     */
    @TableField("REMDATE")
    private LocalDate remdate;

    /**
     * 移出经营异常名录原因（中文）
     */
    @TableField("REMREASONS")
    private String remreasons;

    /**
     * 移出作出决定机关码值
     */
    @TableField("remDecorg")
    private String remDecorg;

    /**
     * 移出决定机关中文
     */
    @TableField("REDECORG")
    private String reDecorg;

    /**
     * 移出作出决定机关
     */
    @TableField(exist = false)
    private String remDecorgCn;

    /**
     * 列入决定机关中文
     */
    @TableField("intoDecorg")
    private String intoDecorg;

    /**
     * 列入作出决定机关 存码值
     */
    @TableField("DECORG")
    private String decorg;

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

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

    /**
     * 异常状态（0移出1列入2撤销3修改4标记严重失信）
     */
    @TableField("OPERATESTATUS")
    private String operatestatus;

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

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

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

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

    /**
     * 移出主办人
     */
    @TableField("remSponsor")
    private String remSponsor;

    /**
     * 列入备注
     */
    @TableField("intoRemark")
    private String intoRemark;

    /**
     * 移出备注
     */
    @TableField("remRemark")
    private String remRemark;

    /**
     * 列入文书id
     */
    @TableField("INTOWRITID")
    private String intowritid;

    /**
     * 移除文书id
     */
    @TableField("REMWRITID")
    private String remwritid;

    /**
     * 法定代表人
     */
    @TableField("LEREP")
    private String lerep;

    /**
     * 证件类型
     */
    @TableField("CERTYPE")
    private String certype;

    /**
     * 证件号码
     */
    @TableField("CERNO")
    private String cerno;

//    /**
//     * 1:总局迁入数据
//     */
//    @TableField("sourcetype")
//    private String sourceType;

    /**
     * 文书号（业务用）
     */
    @TableField(exist = false)
    private String writsno;

    /**
     * 列入原因大类
     * sd：实地查无
     * nb：未年报
     * xj：虚假公示
     */
    @TableField(exist = false)
    private String specauseType;

    /**
     * 列入文书号
     */
    @TableField(exist = false)
    private String intowritno;

    /**
     * 移除文书号
     */
    @TableField(exist = false)
    private String remwritidno;

    /**
     * 文件上传业务id
     */
    @TableField(exist = false)
    private String bizseqUp;

    /**
     * 是否能自动办结
     */
    @TableField(exist = false)
    private String autoProc;

    /**
     * 案件来源：1涉投诉实地查无；2涉行政执法实地查无；3其他
     */
    @TableField("caseSource")
    private String caseSource;

    /**
     * 联系单位
     */
    @TableField("contactEntity")
    private String contactEntity;

    /**
     * 联系单位方式
     */
    @TableField("contactMethodOrg")
    private String contactMethodOrg;

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

    public String getSpecauseType() {
        if (StringUtils.isBlank(spereasons)) {
            //默认年报
            return "nb";
        } else if (spereasons.contains("隐瞒") || spereasons.contains("弄虚作假")) {
            return "xj";
        } else if (spereasons.contains("住所") || spereasons.contains("联系")) {
            return "sd";
        } else {
            //默认年报
            return "nb";
        }
    }
}
