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 2.0
 * @date 2021/1/15 15:32
 **/
@Data
@ApiModel("包装条码信息model")
public class SxPackSnReportModel implements Serializable {

    private static final long serialVersionUID = -2994761396021030286L;

    @ApiParam("id")
    private Long id;

    @ApiParam("包装编号")
    private String outerPackageNo;

    @ApiParam("包装编号")
    private String packageNo;

    @ApiParam("物料号")
    private String partNo;

    @ApiParam("物料名称")
    private String partNameRdd;

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

    @ApiParam("包装规格数量")
    private Double packSpecQty;

    @ApiParam("单位")
    private String unit;

    @ApiParam("批号")
    private String lotNo;

    @ApiParam("是否封箱")
    private Integer isSealed;

    @ApiParam("是否封箱")
    private String isSealedName;

    @ApiParam("打印状态10：未打印 20：已打印")
    private Integer printStatus;

    @ApiParam("打印状态10：未打印 20：已打印")
    private String printStatusName;

    @ApiParam("生产工单号")
    private String workOrderNo;

    @ApiParam("生产线")
    private String workCenterCode;

    @ApiParam("工位")
    private String workCellCode;

    @ApiParam("容器编号")
    private String ctNo;

    @ApiParam("产品条码")
    private String serialNumber;

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

    @ApiParam("创建用户")
    public String createUser;

    @ApiParam("创建日期")
    public String createDatetime;

    @ApiParam("修改人")
    public String modifyUser;

    @ApiParam("修改日期")
    public String modifyDatetime;

    @ApiParam("创建日期开始")
    public String createDatetimeStart;

    @ApiParam("创建日期结束")
    public String createDatetimeEnd;

    @ApiParam("修改日期开始")
    public String modifyDatetimeStart;

    @ApiParam("修改日期结束")
    public String modifyDatetimeEnd;

    @ApiParam("生产日期开始")
    public String workTimeStart;

    @ApiParam("生产日期结束")
    public String workTimeEnd;

    @ApiParam("原始生产工单号")
    private String initWorkOrderNo;

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

    @ApiParam("下线时间")
    private String outWcTime;

    @ApiParam("下线时间开始")
    private String outWcTimeStart;

    @ApiParam("下线时间结束")
    private String outWcTimeEnd;

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

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

    @ApiParam("作业时间 目前只作为查询条件用")
    private String workTime;

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

    public SxPackSnReportModel() {}

    public SxPackSnReportModel(Long id, String packageNo, String partNo, String partNameRdd, Double qty, Double packSpecQty,
                               String unit, String lotNo, Integer isSealed, Integer printStatus, String workOrderNo, String workCenterCode,
                               String workCellCode, String ctNo, String organizeCode, String createUser, String createDatetime,
                               String modifyUser, String modifyDatetime, String serialNumber) {
        this.id = id;
        this.packageNo = packageNo;
        this.partNo = partNo;
        this.partNameRdd = partNameRdd;
        this.qty = qty;
        this.packSpecQty = packSpecQty;
        this.unit = unit;
        this.lotNo = lotNo;
        this.isSealed = isSealed;
        this.printStatus = printStatus;
        this.workOrderNo = workOrderNo;
        this.workCenterCode = workCenterCode;
        this.workCellCode = workCellCode;
        this.ctNo = ctNo;
        this.organizeCode = organizeCode;
        this.createUser = createUser;
        this.createDatetime = createDatetime;
        this.modifyUser = modifyUser;
        this.modifyDatetime = modifyDatetime;
        this.serialNumber = serialNumber;
    }

    public SxPackSnReportModel(String serialNumber, String workOrderNo, String ctNo, String lotNo, Long id, String packageNo, String partNo,
                               String partNameRdd, Double qty, Double packSpecQty, String unit, Integer isSealed, Integer printStatus,
                               String initWorkOrderNo, String workCenterCode, String workCellCode, String organizeCode, String createUser,
                               String createDatetime, String modifyUser, String modifyDatetime) {
        this.serialNumber = serialNumber;
        this.workOrderNo = workOrderNo;
        this.ctNo = ctNo;
        this.lotNo = lotNo;
        this.id = id;
        this.packageNo = packageNo;
        this.partNo = partNo;
        this.partNameRdd = partNameRdd;
        this.qty = qty;
        this.packSpecQty = packSpecQty;
        this.unit = unit;
        this.isSealed = isSealed;
        this.printStatus = printStatus;
        this.initWorkOrderNo = initWorkOrderNo;
        this.workCenterCode = workCenterCode;
        this.workCellCode = workCellCode;
        this.organizeCode = organizeCode;
        this.createUser = createUser;
        this.createDatetime = createDatetime;
        this.modifyUser = modifyUser;
        this.modifyDatetime = modifyDatetime;
    }

    //返工范围查询包装条码信息
    public SxPackSnReportModel(String packageNo, String partNo, String partNameRdd, String workOrderNo, String workCenterCode,
                               String organizeCode, String createUser, String createDatetime,
                               String modifyUser, String modifyDatetime, String serialNumber, String outWcTime,
                               String outerPackageNo, String shiftCode, String lotNo) {
        this.packageNo = packageNo;
        this.partNo = partNo;
        this.partNameRdd = partNameRdd;
        this.workOrderNo = workOrderNo;
        this.workCenterCode = workCenterCode;
        this.organizeCode = organizeCode;
        this.createUser = createUser;
        this.createDatetime = createDatetime;
        this.modifyUser = modifyUser;
        this.modifyDatetime = modifyDatetime;
        this.serialNumber = serialNumber;
        this.outWcTime = outWcTime;
        this.outerPackageNo = outerPackageNo;
        this.shiftCode = shiftCode;
        this.lotNo = lotNo;
    }

    public SxPackSnReportModel(Long id, String outerPackageNo, String packageNo, String partNo, String partNameRdd, Double qty, Double packSpecQty, String unit, String lotNo, Integer isSealed, String isSealedName, Integer printStatus, String printStatusName, String workOrderNo, String workCenterCode, String workCellCode, String ctNo, String serialNumber, String organizeCode, String createUser, String createDatetime, String modifyUser, String modifyDatetime, String createDatetimeStart, String createDatetimeEnd, String modifyDatetimeStart, String modifyDatetimeEnd, String workTimeStart, String workTimeEnd, String initWorkOrderNo, String partCategory, String outWcTime, String outWcTimeStart, String outWcTimeEnd, String shiftCode, Integer workOrderType) {
        this.id = id;
        this.outerPackageNo = outerPackageNo;
        this.packageNo = packageNo;
        this.partNo = partNo;
        this.partNameRdd = partNameRdd;
        this.qty = qty;
        this.packSpecQty = packSpecQty;
        this.unit = unit;
        this.lotNo = lotNo;
        this.isSealed = isSealed;
        this.isSealedName = isSealedName;
        this.printStatus = printStatus;
        this.printStatusName = printStatusName;
        this.workOrderNo = workOrderNo;
        this.workCenterCode = workCenterCode;
        this.workCellCode = workCellCode;
        this.ctNo = ctNo;
        this.serialNumber = serialNumber;
        this.organizeCode = organizeCode;
        this.createUser = createUser;
        this.createDatetime = createDatetime;
        this.modifyUser = modifyUser;
        this.modifyDatetime = modifyDatetime;
        this.createDatetimeStart = createDatetimeStart;
        this.createDatetimeEnd = createDatetimeEnd;
        this.modifyDatetimeStart = modifyDatetimeStart;
        this.modifyDatetimeEnd = modifyDatetimeEnd;
        this.workTimeStart = workTimeStart;
        this.workTimeEnd = workTimeEnd;
        this.initWorkOrderNo = initWorkOrderNo;
        this.partCategory = partCategory;
        this.outWcTime = outWcTime;
        this.outWcTimeStart = outWcTimeStart;
        this.outWcTimeEnd = outWcTimeEnd;
        this.shiftCode = shiftCode;
        this.workOrderType = workOrderType;
    }

    public SxPackSnReportModel(String outerPackageNo, String packageNo, String partNo,
                               String partNameRdd, String workOrderNo, String workCenterCode,
                               String serialNumber, String outWcTime, String shiftCode, String workTime) {
        this.outerPackageNo = outerPackageNo;
        this.packageNo = packageNo;
        this.partNo = partNo;
        this.partNameRdd = partNameRdd;
        this.workOrderNo = workOrderNo;
        this.workCenterCode = workCenterCode;
        this.serialNumber = serialNumber;
        this.outWcTime = outWcTime;
        this.shiftCode = shiftCode;
        this.workTime = workTime;
    }
}
