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

import cn.hutool.core.collection.ListUtil;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.util.Date;
import java.util.List;

@ApiModel("管控工作表")
public class LabGradeManageWorkVO {
    /**
     * 实验室id
     */
    @ApiModelProperty(value = "实验室id")
    private Long subId;
    /**
     * 实验室名称
     */
    @ApiModelProperty("实验室名称")
    private String subName;
    /**
     * 实验室分类ID
     */
    @ApiModelProperty("实验室分类ID")
    private Long typeId;
    /**
     * 实验室分类名称
     */
    @ApiModelProperty("实验室分类名称")
    private String typeName;
    /**
     * 实验室分级ID
     */
    @ApiModelProperty("实验室分级ID")
    private Long level;
    /**
     * 实验室分级名称
     */
    @ApiModelProperty("实验室分级名称")
    private String levelName;
    /**
     * 实验室分级名称颜色
     */
    @ApiModelProperty("实验室分级名称颜色")
    private String levelColor;

    /**
     * 实验室类型ID
     */
    @ApiModelProperty(value = "实验室类型ID")
    private Long moldId;
    /**
     * 实验室类型ID
     */
    @ApiModelProperty(value = "实验室类型名称")
    private String moldName;

    /**
     * 实验室部门id
     */
    @ApiModelProperty(value = "实验室部门id")
    private Long deptId;

    /**
     * 实验室部门名称
     */
    @ApiModelProperty(value = "实验室部门名称")
    private String deptName;

    private Long userId;

    private List<ManageId> manageIds;

    private String cycle;

    /**
     * 排序字段
     */
    private Date endDate;

    @ApiModelProperty(value = "明细数据")
    private List<LabGradeManageWorkDetailVO> detailList;

    public static class ManageId{
        public ManageId() {
        }

        private Long manageId;

        public Long getManageId() {
            return manageId;
        }

        public void setManageId(Long manageId) {
            this.manageId = manageId;
        }
    }

    public Long getSubId() {
        return subId;
    }

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

    public String getSubName() {
        return subName;
    }

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

    public Long getTypeId() {
        return typeId;
    }

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

    public Long getLevel() {
        return level;
    }

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

    public Long getDeptId() {
        return deptId;
    }

    public void setDeptId(Long deptId) {
        this.deptId = deptId;
    }

    public String getDeptName() {
        return deptName;
    }

    public void setDeptName(String deptName) {
        this.deptName = deptName;
    }

    public List<LabGradeManageWorkDetailVO> getDetailList() {
        return detailList;
    }

    public void setDetailList(List<LabGradeManageWorkDetailVO> detailList) {
        if(detailList == null){
            detailList = ListUtil.empty();
        }
        this.detailList = detailList;
    }

    public String getTypeName() {
        return typeName;
    }

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

    public String getLevelName() {
        return levelName;
    }

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

    public String getLevelColor() {
        return levelColor;
    }

    public void setLevelColor(String levelColor) {
        this.levelColor = levelColor;
    }

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    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 String getCycle() {
        return cycle;
    }

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

    public List<ManageId> getManageIds() {
        return manageIds;
    }

    public void setManageIds(List<ManageId> manageIds) {
        this.manageIds = manageIds;
    }

    public Date getEndDate() {
        return endDate;
    }

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