

package com.lutao.entity;

import com.baomidou.mybatisplus.annotation.FieldFill;
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.lutao.annotate.Validation;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.time.LocalDateTime;

/**
 * 变更信息
 *
 * @author guoyc
 * @date 2023-07-20 10:56:48
 */
@Data
@TableName("change_info")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "变更信息")
public class ChangeInfo extends Model<ChangeInfo> {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @TableId
    @ApiModelProperty(value="主键")
    private Integer id;

    /**
     * 原始id
     */
    @ApiModelProperty(value="原始id")
    @Validation(message = "change_info表{id}不能为空")
    private String originId;

    /**
     * 设施名称
     */
    @ApiModelProperty(value="设施名称")
    private String facilityName;

    @ApiModelProperty(value = "设施编码")
    private String facilityCode;

    @ApiModelProperty(value = "设备名称")
    private String equipName;

    @ApiModelProperty(value = "设备编码")
    private String equipCode;

    /**
     * 所在区域/装置编码
     */
    @ApiModelProperty(value="所在区域/装置编码")
    @Validation(message = "change_info表{position_code}不能为空")
    private String positionCode;

    /**
     * 申请人名字
     */
    @ApiModelProperty(value="申请人名字")
    @Validation(message = "change_info表{apply_person_name}不能为空")
    private String applyPersonName;

    /**
     * 申请日期
     */
    @ApiModelProperty(value="申请日期")
    @Validation(message = "change_info表{apply_time}不能为空")
    private LocalDateTime applyTime;

    /**
     * 变更原因
     */
    @ApiModelProperty(value="变更原因")
    @Validation(message = "change_info表{change_reason}不能为空")
    private String changeReason;

    /**
     * 工作范围
     */
    @ApiModelProperty(value="工作范围")
    private String workLimit;

    /**
     * 变更附件
     */
    @ApiModelProperty(value="变更附件")
    private String changeFile;

    /**
     * 变更类型,永久变更：1 临时变更：2
     */
    @ApiModelProperty(value="变更类型,永久变更：1 临时变更：2")
    @Validation(message = "change_info表{change_type}不能为空")
    private Integer changeType;

    /**
     * 紧急变更,0否：1 是
     */
    @ApiModelProperty(value="紧急变更,0否：1 是")
    @Validation(message = "change_info表{urgent_change}不能为空")
    private Integer urgentChange;

    /**
     * 紧急变更时间,若Y紧急变更，则该字段必填
     */
    @ApiModelProperty(value="紧急变更时间,若Y紧急变更，则该字段必填")
    private LocalDateTime urgentChangeTime;

    /**
     * 变更等级,C类变更：1	,B类变更：2,A类变更：3
     */
    @ApiModelProperty(value="变更等级,C类变更：1	,B类变更：2,A类变更：3")
    @Validation(message = "change_info表{change_level}不能为空")
    private Integer changeLevel;

    /**
     * 变更涉及单位编码
     */
    @ApiModelProperty(value="变更涉及单位编码")
    @Validation(message = "change_info表{change_depart_code}不能为空")
    private String changeDepartCode;

    /**
     * 变更过程;变更申请：1;变更审批：2;变更实施：3;变更关闭：4;变更取消：5
     */
    @ApiModelProperty(value="变更过程;变更申请：1;变更审批：2;变更实施：3;变更关闭：4;变更取消：5")
    //@Validation(message = "change_info表{change_process}不能为空")
    private Integer changeProcess;

    /**
     * 变更过程状态;未开始：0;进行中：1;已结束：2
     */
    @ApiModelProperty(value="变更过程状态;未开始：0;进行中：1;已结束：2")
    @Validation(message = "change_info表{change_process_status}不能为空")
    private Integer changeProcessStatus;

    /**
     * 系统平台id
     */
    @ApiModelProperty(value="系统平台id")
    private String pfId;

    /**
     * 应用id
     */
    @ApiModelProperty(value="应用id")
    private String appId;

    /**
     * 平台编码
     */
    @ApiModelProperty(value="平台编码")
    @Validation(message = "change_info表{platform_code}不能为空")
    private String platformCode;

    /**
     * 平台名称
     */
    @ApiModelProperty(value="平台名称")
    private String platformName;

    /**
     * 平台id
     */
    @ApiModelProperty(value="平台id")
    private String platformId;

    /**
     * 创建时间
     */
    @ApiModelProperty(value="创建时间")
    private LocalDateTime createDate;

    /**
     * 创建人姓名
     */
    @ApiModelProperty(value="创建人姓名")
    private String createBy;

    /**
     * 修改时间
     */
    @ApiModelProperty(value="修改时间")
    private LocalDateTime updateDate;

    /**
     * 修改人
     */
    @ApiModelProperty(value="修改人")
    private String updateBy;

    @ApiModelProperty(value = "数据收集时间")
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;

    @ApiModelProperty(value = "数据更新时间")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;


}
