package com.nantian.cloud.jly.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.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.math.BigInteger;
import java.util.Date;

/**
 * 审查企业列表
 * @since 2020-09-08
 */
@Data
@ApiModel(value = "审查企业列表")
@TableName("check_enterprice")
@EqualsAndHashCode(callSuper = true)
public class CheckEnterprice extends Model<CheckEnterprice> {

    private static final long serialVersionUID = 1L;

    /**
     * id
     */
    @TableId(value = "id")
    @ApiModelProperty(value = "id")
    private Long id;

    /**
     * 审查计划ID
     */
    @ApiModelProperty(value = "审查计划ID")
    private BigInteger checkPlanId;

    /**
     * 企业名称
     */
    private String comName;

    /**
     * 企业社会信用代码
     */
    @ApiModelProperty(value = "企业社会信用代码")
    private String epc;

    /**
     * 审查类型 1，现场审查；
     */
    @ApiModelProperty(value = "审查类型 1，现场审查；")
    private String checkType;

    /**
     * 审查状态 1，资料待审查；2，条款待审查；3，全部审查完成；4，资料已退回
     */
    @ApiModelProperty(value = "审查状态 1，资料待审查；2，条款待审查；3，全部审查完成；4，资料已退回")
    private String checkStatus;

    /**
     * 审查结果    1，审查合格；2，审查不合格
     */
    @ApiModelProperty(value = "审查结果 1，审查合格；2，审查不合格")
    private String checkResult;

    /**
     * 评审说明
     */
    @ApiModelProperty(value = "评审说明")
    private String checkComment;

    /**
     * 备注
     */
    @ApiModelProperty(value = "备注")
    private String comment;

    /**
     * 第一部分审查状态
     */
    @ApiModelProperty(value = "第一部分审查状态")
    private String part1;

    /**
     * 第二部分审查状态
     */
    @ApiModelProperty(value = "第二部分审查状态")
    private String part2;

    /**
     * 第三部分审查状态
     */
    @ApiModelProperty(value = "第三部分审查状态")
    private String part3;

    /**
     * 第四部分审查状态
     */
    @ApiModelProperty(value = "第四部分审查状态")
    private String part4;

    /**
     * 第五部分审查状态
     */
    @ApiModelProperty(value = "第五部分审查状态")
    private String part5;

    /**
     * 审查结论
     */
    @ApiModelProperty(value = "审查结论")
    private String checkVerdict;

    /**
     * 审查开始时间
     */
    @ApiModelProperty(value = "审查开始时间")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private String startTime;

    /**
     * 审查结束时间
     */
    @ApiModelProperty(value = "审查结束时间")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private String endTime;

    /**
     *  文件
     */
    @ApiModelProperty(value = "文件")
    private String checkNonNum;

    /**
     *  文件
     */
    @ApiModelProperty(value = "文件")
    private String checkFile;

    /**
     *  不符合项报告文件
     */
    @ApiModelProperty(value = "不符合项报告文件")
    private String checkNonFile;

    /**
     *  不符合项整改情况文件
     */
    @ApiModelProperty(value = "不符合项整改情况文件")
    private String checkMendFile;

    /**
     * 审查企业顺序
     */
    @ApiModelProperty(value = "审查企业顺序")
    private Integer num;

    /**
     * 用户id
     */
    @ApiModelProperty(value = "用户id")
    private Integer userid;

    /**
     * 更新时间
     */
    @ApiModelProperty(value = "更新时间")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date updateTime;

    /**
     * 注销状态
     */
    @ApiModelProperty(value = "注销状态（1：未删除，4：已删除）")
    private String delFlag;

    /**
     * 部门id
     */
    @ApiModelProperty(value = "部门id")
    private Integer deptId;

    /**
     * 主键值
     */
    @Override
    protected Serializable pkVal() {
        return this.id;
    }

    /**
     * 不符合报告审核状态（0，未上报，1，待审核，2，审核通过，3，审核不通过）
     */
    @ApiModelProperty(value = "不符合报告审核状态（0，未上报，1，待审核，2，审核通过，3，审核不通过）")
    private Integer checkNonStatus;

    /**
     * 不符合报告备注
     */
    @ApiModelProperty(value = "不符合报告备注")
    private String checkNonRemain;

    /**
     * 资料上传数量
     */
    @TableField(exist = false)
    private int count;
}
