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

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

import java.io.Serializable;

/**
 * @author steven.peng
 * @version 1.0
 * @date 2023-01-16
 **/
@Data
@ApiModel("小包装大包装展示 MODEL")
public class InnerOuterPackageModel implements Serializable {

    private static final long serialVersionUID = 2662533667561677010L;

    @ApiParam("id")
    private Long id;

    @ApiParam("小包装条码")
    private String innerPackageNo;

    @ApiParam("大包装条码")
    private String outerPackageNo;

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

    @ApiParam("条码状态")
    private Integer snStatus;

    @ApiParam("条码状态")
    private String snStatusName;

    @ApiParam("条码类型")
    private Integer snType;

    @ApiParam("条码类型")
    private String snTypeName;

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

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

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

    @ApiParam("质量状态")
    private Integer qcStatus;

    @ApiParam("质量状态")
    private String qcStatusName;


    @ApiParam("打印次数")
    private Integer printCount;

    @ApiParam("打印状态")
    private Integer printStatus;

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

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

    @ApiParam("流程代码")
    private String routeCode;

    @ApiParam("工序代码")
    private String processCode;

    @ApiParam("下一工序代码")
    private String nextProcessCode;

    @ApiParam("进产线时间")
    private String inWorkCenterTime;

    @ApiParam("出产线时间")
    private String outWorkCenterTime;

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


    @ApiParam("生产批次")
    private String lotNo;

    @ApiParam("过程标签模板")
    private String processLabelTemplate;

    @ApiParam("质保书标签模板")
    private String qualityAssureTemplate;

    @ApiParam("大本体条码模板")
    private String bigProcessLabelTemplate;

    @ApiParam("大包装条码标签模板")
    private String bigPackageLabelTemplate;

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

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

    @ApiParam("最终工单号")
    private String lastWorkOrderNo;

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

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

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

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

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

    @ApiParam("打印机代码")
    private String printerCode;

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

    @ApiParam("包装条码")
    private String packageNo;

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

    //bu二期
    @ApiParam("质保书码")
    private String qualityAssureCode;

    public InnerOuterPackageModel() {}

    public InnerOuterPackageModel(Long id, String serialNumber, String partNo, String partNameRdd, Double qty, Integer qcStatus,
                                  Integer snStatus, Integer printCount, Integer printStatus, String workCenterCode, String workCellCode,
                                  String routeCode, String processCode, String nextProcessCode, Integer snType, String inWorkCenterTime,
                                  String processLabelTemplate, String qualityAssureTemplate, String bigProcessLabelTemplate, String lastWorkOrderNo,
                                  String organizeCode, String createUser, String createDatetime, String modifyUser, String modifyDatetime,
                                  String workOrderNo, String outWorkCenterTime, String lotNo, String shiftCode, String workTime) {
        this.id = id;
        this.serialNumber = serialNumber;
        this.partNo = partNo;
        this.partNameRdd = partNameRdd;
        this.qty = qty;
        this.qcStatus = qcStatus;
        this.snStatus = snStatus;
        this.printCount = printCount;
        this.printStatus = printStatus;
        this.workCenterCode = workCenterCode;
        this.workCellCode = workCellCode;
        this.routeCode = routeCode;
        this.processCode = processCode;
        this.nextProcessCode = nextProcessCode;
        this.snType = snType;
        this.inWorkCenterTime = inWorkCenterTime;
        this.processLabelTemplate = processLabelTemplate;
        this.qualityAssureTemplate = qualityAssureTemplate;
        this.lastWorkOrderNo = lastWorkOrderNo;
        this.organizeCode = organizeCode;
        this.createUser = createUser;
        this.createDatetime = createDatetime;
        this.modifyUser = modifyUser;
        this.modifyDatetime = modifyDatetime;
        this.workOrderNo = workOrderNo;
        this.outWorkCenterTime = outWorkCenterTime;
        this.lotNo = lotNo;
        this.shiftCode = shiftCode;
        this.workTime = workTime;
        this.bigProcessLabelTemplate = bigProcessLabelTemplate;
    }

    public InnerOuterPackageModel(Long id, String serialNumber, String partNo, String partNameRdd, Double qty, Integer qcStatus,
                                  Integer snStatus, Integer printCount, Integer printStatus, String workCenterCode, String workCellCode,
                                  String routeCode, String processCode, String nextProcessCode, Integer snType, String inWorkCenterTime,
                                  String processLabelTemplate, String qualityAssureTemplate, String bigProcessLabelTemplate, String lastWorkOrderNo,
                                  String organizeCode, String createUser, String createDatetime, String modifyUser, String modifyDatetime,
                                  String workOrderNo, String outWorkCenterTime, String lotNo, String shiftCode, String workTime, String packageNo) {
        this.id = id;
        this.serialNumber = serialNumber;
        this.partNo = partNo;
        this.partNameRdd = partNameRdd;
        this.qty = qty;
        this.qcStatus = qcStatus;
        this.snStatus = snStatus;
        this.printCount = printCount;
        this.printStatus = printStatus;
        this.workCenterCode = workCenterCode;
        this.workCellCode = workCellCode;
        this.routeCode = routeCode;
        this.processCode = processCode;
        this.nextProcessCode = nextProcessCode;
        this.snType = snType;
        this.inWorkCenterTime = inWorkCenterTime;
        this.processLabelTemplate = processLabelTemplate;
        this.qualityAssureTemplate = qualityAssureTemplate;
        this.lastWorkOrderNo = lastWorkOrderNo;
        this.organizeCode = organizeCode;
        this.createUser = createUser;
        this.createDatetime = createDatetime;
        this.modifyUser = modifyUser;
        this.modifyDatetime = modifyDatetime;
        this.workOrderNo = workOrderNo;
        this.outWorkCenterTime = outWorkCenterTime;
        this.lotNo = lotNo;
        this.shiftCode = shiftCode;
        this.workTime = workTime;
        this.packageNo = packageNo;
        this.bigProcessLabelTemplate = bigProcessLabelTemplate;
    }

    public InnerOuterPackageModel(String organizeCode, String workOrderNo) {
        this.organizeCode = organizeCode;
        this.workOrderNo = workOrderNo;
    }
}
