package com.zd.laboratory.domain;

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

import java.util.Date;

/**
 * 分级管控确认人员对象 lab_grade_manage_rule_user
 *
 * @author liubo
 * @date 2022-02-10
 */
@ApiModel("分级管控确认人员")
public class LabGradeManageRuleUser extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 主键id
     */
    @ApiModelProperty(value = "${comment}")
    private Long id;
    /**
     * 分级管控ID
     */
    @Excel(name = "分级管控ID")
    @ApiModelProperty(value = "分级管控ID")
    private Long gradeManageId;
    /**
     * 分级管控规则ID
     */
    @Excel(name = "分级管控规则ID")
    @ApiModelProperty(value = "分级管控规则ID")
    private Long gradeManageRuleId;
    /**
     * 确认人员类型（1 实验室负责人，2 当天进入实验室人员，3 选择人员，4 实验室准入人员）
     */
    @ApiModelProperty(value = "确认人员类型")
    private Integer type;
    /**
     * 选择人员id（多个逗号分隔，type=3时有效）
     */
    @Excel(name = "选择人员id", readConverterExp = "多=个逗号分隔，type=3时有效")
    @Length(message = "选择人员id长度不能超过2000")
    @ApiModelProperty(value = "选择人员id")
    private String userIds;
    /**
     * 需要上传材料（0 否，1 是）
     */
    @Excel(name = "需要上传材料", readConverterExp = "0=,否=，1,是=")
    @ApiModelProperty(value = "需要上传材料")
    private Integer isUpload;

    /**
     * 是否全部执行（0 否，1 是）
     */
    @ApiModelProperty(value = "是否全部执行（0 否，1 是）")
    private Integer isAll;

    /**
     * 确认周期（一天，一周，一月，一年，季度，半年）暂定义为文本
     */
    @Length(message = "确认周期长度不能超过64")
    @ApiModelProperty(value = "确认周期")
    private String cycle;

    private String subIds;

    private Long subId;

    private Integer cycleCount = 1;

    @ApiModelProperty("规则类型：日管控，月管控..")
    private String ruleType;
    @ApiModelProperty("规则名称")
    private String ruleName;
    @JsonFormat(pattern = "yyyy年MM月dd日")
    private Date endDate;

    private String fileFormat;

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

    public Long getId() {
        return id;
    }

    public void setGradeManageId(Long gradeManageId) {
        this.gradeManageId = gradeManageId;
    }

    public Long getGradeManageId() {
        return gradeManageId;
    }

    public void setGradeManageRuleId(Long gradeManageRuleId) {
        this.gradeManageRuleId = gradeManageRuleId;
    }

    public Long getGradeManageRuleId() {
        return gradeManageRuleId;
    }

    public void setType(Integer type) {
        this.type = type;
    }

    public Integer getType() {
        return type;
    }

    public void setUserIds(String userIds) {
        this.userIds = userIds;
    }

    public String getUserIds() {
        return userIds;
    }

    public void setIsUpload(Integer isUpload) {
        this.isUpload = isUpload;
    }

    public Integer getIsUpload() {
        return isUpload;
    }

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

    public String getCycle() {
        return cycle;
    }

    public Integer getCycleCount() {
        return cycleCount;
    }

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

    public String getSubIds() {
        return subIds;
    }

    public void setSubIds(String subIds) {
        this.subIds = subIds;
    }

    public Long getSubId() {
        return subId;
    }

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

    public String getRuleType() {
        return ruleType;
    }

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

    public String getRuleName() {
        return ruleName;
    }

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

    public Date getEndDate() {
        return endDate;
    }

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

    public Integer getIsAll() {
        return isAll;
    }

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

    public String getFileFormat() {
        return fileFormat;
    }

    public void setFileFormat(String fileFormat) {
        this.fileFormat = fileFormat;
    }
}
