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

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

import javax.persistence.Column;
import java.io.Serializable;
import java.util.List;

/**
 * @author wangjie
 * @version 1.0
 * @date 2021/1/15 15:32
 **/
@Data
@ApiModel("EP条码 MODEL")
public class EpProduceSnExtModel implements Serializable {

    private static final long serialVersionUID = -5933219922496758458L;

    @ApiParam("id")
    private Long id;

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

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

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

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

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

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

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

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

    @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 Integer snType;

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

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

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

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

    @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 Integer systemSyncStatus = 2;

    @ApiParam("系统同步状态")
    private Integer systemSyncStatusExt = 2;

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

    @ApiParam("成品批次号")
    private String partLotNo;

    @ApiParam("条码流水号")
    public String seqNo;

    @ApiParam("2段条码流水号")
    public String seqNo2;

    @ApiParam("条码流水号以外的条码信息")
    public String snWithoutSeqNo;

    public EpProduceSnExtModel() {}

    public EpProduceSnExtModel(String serialNumber, String partNo, String workOrderNo, String outWorkCenterTime, Integer snStatus, Integer qcStatus, String lastWorkOrderNo, String workTime, String shiftCode) {
        this.serialNumber = serialNumber;
        this.partNo = partNo;
        this.workOrderNo = workOrderNo;
        this.outWorkCenterTime = outWorkCenterTime;
        this.snStatus = snStatus;
        this.qcStatus = qcStatus;
        this.lastWorkOrderNo = lastWorkOrderNo;
        this.workTime = workTime;
        this.shiftCode = shiftCode;
    }

    public EpProduceSnExtModel(String serialNumber, String workOrderNo, String outWorkCenterTime, String lastWorkOrderNo, String packageNo) {
        this.serialNumber = serialNumber;
        this.workOrderNo = workOrderNo;
        this.outWorkCenterTime = outWorkCenterTime;
        this.lastWorkOrderNo = lastWorkOrderNo;
        this.packageNo = packageNo;
    }
}
