package com.zd.system.api.laboratory.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.zd.common.core.annotation.Excel;
import com.zd.common.core.web.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.hibernate.validator.constraints.Length;

import java.util.Date;

/**
 * 管控执行记录对象 lab_grade_manage_record
 *
 * @author liubo
 * @date 2022-02-10
 */
@ApiModel("管控执行记录")
public class LabGradeManageRecord extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 主键id
     */
    @ApiModelProperty(value = "${comment}")
    private Long id;
    /**
     * 规则ID
     */
    @Excel(name = "规则ID")
    @ApiModelProperty(value = "规则ID")
    private Long ruleId;
    private Long ruleUserId;
    /**
     * 规则名称
     */
    @Excel(name = "规则名称")
    @Length(message = "规则名称长度不能超过255")
    @ApiModelProperty(value = "规则名称")
    private String ruleName;
    /**
     * 实验室ID
     */
    @Excel(name = "实验室ID")
    @ApiModelProperty(value = "实验室ID")
    private Long subId;
    /**
     * 实验室名称
     */
    @ApiModelProperty(value = "实验室名称")
    private String subName;
    /**
     * 执行用户ID
     */
    @Excel(name = "执行用户ID")
    @ApiModelProperty(value = "执行用户ID")
    private Long joinUserId;
    /**
     * 执行用户姓名
     */
    @ApiModelProperty(value = "执行用户姓名")
    private String nickName;
    /**
     * 执行人身份
     */
    @Excel(name = "执行人身份")
    @Length(message = "执行人身份长度不能超过255")
    @ApiModelProperty(value = "执行人身份")
    private String userPosition;
    /**
     * 执行状态（0 已过期，2 已执行）
     */
    @ApiModelProperty(value = "0 已过期，2 已执行")
    private Integer status;
    /**
     * 执行时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "执行时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "执行时间")
    private Date carryTime;

    private Date startTime;
    private Date endTime;

    private Long manageUserId;

    @JsonFormat(pattern = "yyyy年MM月dd日")
    private Date endDate;

    @ApiModelProperty("规则类型：日管控，月管控..")
    private String ruleType;

    @ApiModelProperty("执行周期")
    private String cycle;

    @ApiModelProperty("是否多人执行")
    private Integer isAll;

    @ApiModelProperty("执行次数")
    private Integer cycleCount;

    private Long level;
    @ApiModelProperty("分级名称")
    private String levelName;

    @ApiModelProperty("分级颜色")
    private String fiedColor;

    private Long typeId;
    @ApiModelProperty("分类名称")
    private String typeName;

    private Long moldId;
    @ApiModelProperty("实验室类型名称")
    private String moldName;

    @ApiModelProperty("规则描述")
    private String ruleRemark;

    private LabGradeManageRecordDetail detail;

    /**
     * 展示 分级管控指定的所有人名
     */
    private String allUserName;

    /**
     * 执行消息通知ID（用作处理消息已读功能）
     */
    private Long messageUserId;

    public void setId(Long id) {
        this.id = id;
    }

    public Long getId() {
        return id;
    }

    public void setRuleId(Long ruleId) {
        this.ruleId = ruleId;
    }

    public Long getRuleId() {
        return ruleId;
    }

    public void setRuleName(String ruleName) {
        this.ruleName = ruleName;
    }

    public String getRuleName() {
        return ruleName;
    }

    public void setSubId(Long subId) {
        this.subId = subId;
    }

    public Long getSubId() {
        return subId;
    }

    public void setJoinUserId(Long joinUserId) {
        this.joinUserId = joinUserId;
    }

    public Long getJoinUserId() {
        return joinUserId;
    }

    public void setUserPosition(String userPosition) {
        this.userPosition = userPosition;
    }

    public String getUserPosition() {
        return userPosition;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public Integer getStatus() {
        return status;
    }

    public void setCarryTime(Date carryTime) {
        this.carryTime = carryTime;
    }

    public Date getCarryTime() {
        return carryTime;
    }

    public LabGradeManageRecordDetail getDetail() {
        return detail;
    }

    public void setDetail(LabGradeManageRecordDetail detail) {
        this.detail = detail;
    }

    public Long getRuleUserId() {
        return ruleUserId;
    }

    public void setRuleUserId(Long ruleUserId) {
        this.ruleUserId = ruleUserId;
    }

    public String getSubName() {
        return subName;
    }

    public void setSubName(String subName) {
        this.subName = subName;
    }

    public String getNickName() {
        return nickName;
    }

    public void setNickName(String nickName) {
        this.nickName = nickName;
    }

    public Date getStartTime() {
        return startTime;
    }

    public void setStartTime(Date startTime) {
        this.startTime = startTime;
    }

    public Date getEndTime() {
        return endTime;
    }

    public void setEndTime(Date endTime) {
        this.endTime = endTime;
    }

    public Date getEndDate() {
        return endDate;
    }

    public void setEndDate(Date endDate) {
        this.endDate = endDate;
    }

    public Integer getCycleCount() {
        return cycleCount;
    }

    public void setCycleCount(Integer cycleCount) {
        this.cycleCount = cycleCount;
    }

    public String getRuleType() {
        return ruleType;
    }

    public void setRuleType(String ruleType) {
        this.ruleType = ruleType;
    }

    public String getLevelName() {
        return levelName;
    }

    public void setLevelName(String levelName) {
        this.levelName = levelName;
    }

    public String getFiedColor() {
        return fiedColor;
    }

    public void setFiedColor(String fiedColor) {
        this.fiedColor = fiedColor;
    }

    public String getTypeName() {
        return typeName;
    }

    public void setTypeName(String typeName) {
        this.typeName = typeName;
    }

    public String getRuleRemark() {
        return ruleRemark;
    }

    public void setRuleRemark(String ruleRemark) {
        this.ruleRemark = ruleRemark;
    }

    public Long getLevel() {
        return level;
    }

    public void setLevel(Long level) {
        this.level = level;
    }

    public Long getTypeId() {
        return typeId;
    }

    public void setTypeId(Long typeId) {
        this.typeId = typeId;
    }

    public Long getMoldId() {
        return moldId;
    }

    public void setMoldId(Long moldId) {
        this.moldId = moldId;
    }

    public String getMoldName() {
        return moldName;
    }

    public void setMoldName(String moldName) {
        this.moldName = moldName;
    }

    public Long getManageUserId() {
        return manageUserId;
    }

    public void setManageUserId(Long manageUserId) {
        this.manageUserId = manageUserId;
    }

    public String getCycle() {
        return cycle;
    }

    public void setCycle(String cycle) {
        this.cycle = cycle;
    }

    public String getAllUserName() {
        return allUserName;
    }

    public void setAllUserName(String allUserName) {
        this.allUserName = allUserName;
    }

    public Integer getIsAll() {
        return isAll;
    }

    public void setIsAll(Integer isAll) {
        this.isAll = isAll;
    }

    public Long getMessageUserId() {
        return messageUserId;
    }

    public void setMessageUserId(Long messageUserId) {
        this.messageUserId = messageUserId;
    }
}
