package com.chinaweal.aiccs.aiccs.abnormal.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import java.time.LocalDate;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.apache.commons.lang3.StringUtils;

/**
 * <p>
 * 移出经营异常名录业务表
 * </p>
 *
 * @author <a href="https://blog.lroyia.top">lroyia</a>
 * @since 2021-01-19
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("tsbizremlist")
public class TSBizRemList extends Model<TSBizRemList> {

    private static final long serialVersionUID=1L;

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

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

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

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

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

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

    /**
     * 列入经营异常名录原因
     */
    @TableField("SPECAUSE")
    private String specause;

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

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

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

    /**
     * 移出事实理由
     */
    @TableField("REMREASONS")
    private String remreasons;

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


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

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

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


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

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

    /**
     *
     */
    @TableField("ReconsiderationOrg")
    private String ReconsiderationOrg;

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

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

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

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

    /**
     * 9 受理中、1 审批中、2 已通过、3 不通过
     */
    private String status;

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

    /**
     *信用修复申请是否予以信用修复0否1是
     */
    @TableField("isAgreeRepair")
    private String isAgreeRepair;

    /**
     * 移动端申请时间
     */
    @TableField("applyTime")
    @JsonFormat(pattern = "yyyy年MM月dd日")
    private LocalDateTime applyTime;

    /**
     *移动端申请人
     */
    @TableField("applicant")
    private String applicant;

    /**
     *移动端申请人电话号码
     */
    @TableField("applicantNo")
    private String applicantNo;

    /**
     *类型：‘individual’个体户‘farmer’农专‘company’企业
     */
    @TableField("TYPE")
    private String type;

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

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

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

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

    /**
     * 移动端申请人身份证
     */
    @TableField("APPLICANTID")
    private String applicantId;

    /**
     * 移出企业法人身份证
     */
    @TableField("CERNO")
    private String cerno;

    /**
     * 标记市局申请移出理由()
     */
    @TableField("MBREMOVALREASON")
    private String MBRemovalReason;


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


    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";
        }
    }
}
