package cn.estsh.i3plus.ext.mes.pojo.model;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiParam;
import lombok.Data;

import java.io.Serializable;

/**
 * @author wangjie
 * @version 1.0
 * @date 2021/1/15 15:32
 **/
@Data
@ApiModel("非作业时间汇总/作业时间月绩/非作业时间类别统计 报表model")
public class UnWorkTimeStatisticsModel implements Serializable {

    private static final long serialVersionUID = -4887305566820689904L;

    @ApiParam("工作中心代码")
    private String workCenterCode;

    @ApiParam("班次代码")
    private String shiftCode;

    @ApiParam("班次名称")
    private String shiftName;

    @ApiParam("作业时间")
    private String workTime;

    @ApiParam("开始时间")
    private String startTime;

    @ApiParam("结束时间")
    private String endTime;

    @ApiParam("作业类型")
    private Integer prodType;

    @ApiParam("作业人数")
    private Double workerQty;

    @ApiParam("组织代码")
    private String organizeCode;

    @ApiParam("作业时间开始")
    private String workTimeStart;

    @ApiParam("作业时间结束")
    private String workTimeEnd;

    @ApiParam("非作业停机目标")
    private String noWorkTarget;

    @ApiParam("系别")
    private String isDont;

    @ApiParam("班别")
    private String dontClass;

    @ApiParam("总勤务时间")
    private Double totalServiceTime;

    @ApiParam("非作业时间")
    private Double totalUnWorkTime;

    @ApiParam("非作业率")
    private String unWorkTimeRate;

    @ApiParam("查询维度")
    private Integer dimension;

    @ApiParam("查询维度")
    private Integer dimension1;

    @ApiParam("总作业时间")
    private Double totalWorkTime;

    @ApiParam("总标准作业时间")
    private Double totalStandardWorkTime;

    @ApiParam("St能率")
    private String stRate;

    @ApiParam("综合能率")
    private String synthesizeRate;

    @ApiParam("能率损失")
    private Double loseWorkTime;

    @ApiParam("稼动率")
    private String utilizationRate;

    @ApiParam("产量")
    private Double qty;

    @ApiParam("标准工时")
    private Double standardWork;

    @ApiParam("作业内容代码")
    private String prodCode;

    @ApiParam("作业内容名称")
    private String prodName;

    @ApiParam("计划比例")
    private Double planRate;

    @ApiParam("计划比例(%)")
    private String planRateStr;

    @ApiParam("判定结果")
    private String judgeResult;

    @ApiParam("作业类型名称")
    private String prodTypeName;

    @ApiParam("工作中心名称")
    private String workCenterName;

    @ApiParam("时间")
    private Double totalCategoryTime;

    @ApiParam("比率")
    private String categoryRate;

    @ApiParam("产品类别")
    private String categoryCode3;

    @ApiParam("工单类型")
    private Integer workOrderType;

    @ApiParam("改造产量")
    private Double remakeQty;

    @ApiParam("在籍人数")
    private Double atHomeNum;
    @ApiParam("创建时间")
    private String createDatetime;

    public UnWorkTimeStatisticsModel() {
    }

    //非作业时间汇总/作业时间月绩
    public UnWorkTimeStatisticsModel(String workTime, Integer prodType, String startTime, String endTime, Double workerQty, String workCenterCode,
                                     String shiftCode, String shiftName, String workCenterName, String isDont, String dontClass, String noWorkTarget, String categoryCode3) {
        this.workTime = workTime;
        this.prodType = prodType;
        this.startTime = startTime;
        this.endTime = endTime;
        this.workerQty = workerQty;
        this.workCenterCode = workCenterCode;
        this.shiftCode = shiftCode;
        this.shiftName = shiftName;
        this.workCenterName = workCenterName;
        this.isDont = isDont;
        this.dontClass = dontClass;
        this.noWorkTarget = noWorkTarget;
        this.categoryCode3 = categoryCode3;
    }

    //非作业时间汇总/作业时间月绩
    public UnWorkTimeStatisticsModel(String workTime, Integer prodType, String startTime, String endTime, Double workerQty, String workCenterCode,
                                     String shiftCode, String shiftName, String workCenterName, String isDont, String dontClass, String noWorkTarget, String categoryCode3, Double atHomeNum, String createDatetime) {
        this.workTime = workTime;
        this.prodType = prodType;
        this.startTime = startTime;
        this.endTime = endTime;
        this.workerQty = workerQty;
        this.workCenterCode = workCenterCode;
        this.shiftCode = shiftCode;
        this.shiftName = shiftName;
        this.workCenterName = workCenterName;
        this.isDont = isDont;
        this.dontClass = dontClass;
        this.noWorkTarget = noWorkTarget;
        this.categoryCode3 = categoryCode3;
        this.atHomeNum = atHomeNum;
        this.createDatetime = createDatetime;
    }

    //作业时间月绩
    public UnWorkTimeStatisticsModel(String workTime, String workCenterCode, String shiftCode, Double qty, Double standardWork, String categoryCode3, String isDont, String dontClass, Double remakeQty) {
        this.workTime = workTime;
        this.workCenterCode = workCenterCode;
        this.shiftCode = shiftCode;
        this.qty = qty;
        this.standardWork = standardWork;
        this.categoryCode3 = categoryCode3;
        this.isDont = isDont;
        this.dontClass = dontClass;
        this.remakeQty = remakeQty;
    }

    //非作业时间类别统计
    public UnWorkTimeStatisticsModel(String workTime, Integer prodType, String prodCode, String prodName, String startTime, String endTime, Double workerQty, String workCenterCode,
                                     String shiftCode, String shiftName, String workCenterName, String isDont, String dontClass, Double planRate, String categoryCode3) {
        this.workTime = workTime;
        this.prodType = prodType;
        this.prodCode = prodCode;
        this.prodName = prodName;
        this.startTime = startTime;
        this.endTime = endTime;
        this.workerQty = workerQty;
        this.workCenterCode = workCenterCode;
        this.shiftCode = shiftCode;
        this.shiftName = shiftName;
        this.workCenterName = workCenterName;
        this.isDont = isDont;
        this.dontClass = dontClass;
        this.planRate = planRate;
        this.categoryCode3 = categoryCode3;
    }

    //非作业时间类别统计
    public UnWorkTimeStatisticsModel(String workTime, Integer prodType, String prodCode, String prodName, String startTime, String endTime, Double workerQty, String workCenterCode,
                                     String shiftCode, String shiftName, String workCenterName, String isDont, String dontClass, Double planRate, String categoryCode3, Double atHomeNum) {
        this.workTime = workTime;
        this.prodType = prodType;
        this.prodCode = prodCode;
        this.prodName = prodName;
        this.startTime = startTime;
        this.endTime = endTime;
        this.workerQty = workerQty;
        this.workCenterCode = workCenterCode;
        this.shiftCode = shiftCode;
        this.shiftName = shiftName;
        this.workCenterName = workCenterName;
        this.isDont = isDont;
        this.dontClass = dontClass;
        this.planRate = planRate;
        this.categoryCode3 = categoryCode3;
        this.atHomeNum = atHomeNum;
    }
}
