package org.jeecg.modules.itdmGongDan.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;

@Data
@Accessors(chain = true)
public class ItdmXMJLQueryListVO {

    /**委托id*/
    @Excel(name = "委托id", width = 15)
    @ApiModelProperty(value = "委托id")
    private String weituoId;
    /**样品id*/
    @Excel(name = "样品id", width = 15)
    @ApiModelProperty(value = "样品id")
    private String yangpinId;
    /**检测项目id*/
    @Excel(name = "检测项目id", width = 15)
    @ApiModelProperty(value = "检测项目id")
    private java.lang.String testItemsId;
    /**检测项目*/
    @Excel(name = "检测项目", width = 15)
    @ApiModelProperty(value = "检测项目")
    private String testItems;
    /**试验计划id*/
    @Excel(name = "试验计划id", width = 15)
    @ApiModelProperty(value = "试验计划id")
    private String testPlanId;
    /**设备id*/
    @Excel(name = "设备id", width = 15)
    @ApiModelProperty(value = "设备id")
    private java.lang.String shebeiId;
    /**项目经理*/
    @Excel(name = "项目经理", width = 15)
    @ApiModelProperty(value = "项目经理")
    private java.lang.String pm;
    /**计划开始日期*/
    @Excel(name = "计划开始日期", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "计划开始日期")
    private java.util.Date jihuaStartDate;
    /**计划结束日期*/
    @Excel(name = "计划结束日期", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "计划结束日期")
    private java.util.Date jihuaEndDate;
    /**状态*/
    @Excel(name = "状态", width = 15, dicCode = "test_plan_status")
    @Dict(dicCode = "test_plan_status")
    @ApiModelProperty(value = "状态")
    private java.lang.Integer status;
    /**报告编号*/
    @Excel(name = "报告编号", width = 15)
    @ApiModelProperty(value = "报告编号")
    private java.lang.String reportNo;
    /**传感器id*/
    @Excel(name = "传感器id", width = 20)
    @ApiModelProperty(value = "传感器id")
    private java.lang.String chuanganqi;
    /**委托编号*/
    @Excel(name = "委托编号", width = 15)
    @ApiModelProperty(value = "委托编号")
    private String weituoNo;
    /**样品名称*/
    @Excel(name = "样品名称", width = 15)
    @ApiModelProperty(value = "样品名称")
    private java.lang.String sampleName;
    /**设备名称*/
    @Excel(name = "设备名称", width = 15)
    @ApiModelProperty(value = "设备名称")
    private java.lang.String deviceName;
    /**父id*/
    @Excel(name = "父id", width = 20)
    @ApiModelProperty(value = "父id")
    private java.lang.String parent;
    /**持续时间*/
    @Excel(name = "持续时间", width = 20)
    @ApiModelProperty(value = "持续时间")
    private java.lang.Integer lastTime;
    /**试验类型*/
    @Excel(name = "试验类型", width = 15)
    @ApiModelProperty(value = "试验类型")
    private java.lang.String shiiyanType;
    /**试验员*/
    @Excel(name = "试验员", width = 15)
    @ApiModelProperty(value = "试验员")
    private java.lang.String worker;
    /**委托样品数量*/
    @Excel(name = "委托样品数量", width = 15)
    @ApiModelProperty(value = "委托样品数量")
    private java.lang.Integer yangpinCount;
    /**内容*/
    @Excel(name = "内容", width = 15)
    @ApiModelProperty(value = "内容")
    private java.lang.String neirong;
    /**status转化*/
    @Excel(name = "status转化", width = 15)
    @ApiModelProperty(value = "status转化")
    private java.lang.String statusC;
    /**实绩开始日期*/
    @Excel(name = "实绩开始日期", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "实绩开始日期")
    private java.util.Date shijiStartDate;
    /**试验计划id或工单master的id*/
    @Excel(name = "试验计划id或工单master的id", width = 15)
    @ApiModelProperty(value = "试验计划id或工单master的id")
    private String id;
    /**传感器数组*/
    @Excel(name = "传感器数组", width = 15)
    @ApiModelProperty(value = "传感器数组")
    private java.lang.String[] chuanganqiArray;
    /**试验类型数组*/
    @Excel(name = "试验类型数组", width = 15)
    @ApiModelProperty(value = "试验类型数组")
    private java.lang.String[] shiiyanTypeArray;



    /**
     * 项目经理查询
     * 1级列表
     * 填入委托编号，计算持续时间，状态转换
     * */
    public static ItdmXMJLQueryListVO toItdmXMJLQueryListVO1(ItdmXMJLQueryListVO vo, String weituoNo){
        vo.setWeituoNo(weituoNo);
        if(vo.getJihuaEndDate()!=null && vo.getTestItemsId()!=null){
            int days = (int) ((vo.getJihuaEndDate().getTime() - vo.getJihuaStartDate().getTime()) / (1000*3600*24));
            vo.setLastTime(days+1);
        }

        if(vo.getStatus()!=null){
            if(vo.getStatus()==0) vo.setStatusC("未确认");
            else if(vo.getStatus()==1) vo.setStatusC("已确认");
            else if(vo.getStatus()==2) vo.setStatusC("完成");
        }

        vo.setWeituoNo(weituoNo);
        vo.setId(vo.getTestPlanId());//一级列表，id为试验计划id

        if(vo.getChuanganqi()!=null && !vo.getChuanganqi().equals("")){
            String[] arr = vo.getChuanganqi().split(",");
            vo.setChuanganqiArray(arr);
        }
        return vo;
    }

    /**
     * 项目经理查询
     * 2级列表
     * 填入委托编号，计算持续时间，状态转换
     * id为直接查询出来的工单master的id
     * */
    public static ItdmXMJLQueryListVO toItdmXMJLQueryListVO2(ItdmXMJLQueryListVO vo, String weituoNo){
        vo.setWeituoNo(weituoNo);
        if(vo.getJihuaEndDate()!=null && vo.getTestItemsId()!=null){
            int days = (int) ((vo.getJihuaEndDate().getTime() - vo.getJihuaStartDate().getTime()) / (1000*3600*24));
            vo.setLastTime(days+1);
        }

        if(vo.getShijiStartDate()==null)  vo.setStatus(3);
        else if(vo.getShijiStartDate()!=null)  vo.setStatus(4);
        if(vo.getStatus()==3) vo.setStatusC("可以修改");
        else if(vo.getStatus()==4) vo.setStatusC("不可修改");
        vo.setWeituoNo(weituoNo);

        if(vo.getChuanganqi()!=null && !vo.getChuanganqi().equals("")){
            String[] arr = vo.getChuanganqi().split(",");
            vo.setChuanganqiArray(arr);
        }
        if(vo.getShiiyanType()!=null && !vo.getShiiyanType().equals("")){
            String[] arr = vo.getShiiyanType().split(",");
            vo.setShiiyanTypeArray(arr);
        }
        return vo;
    }

}
