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

import cn.estsh.i3plus.ext.mes.pojo.util.MesExtEnumUtil;
import cn.estsh.i3plus.pojo.base.annotation.AnnoOutputColumn;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiParam;
import lombok.Data;

import java.io.Serializable;

/**
 * @author xiangming.liao
 * @version 1.0
 * @date 2021/1/15 15:32
 **/
@Data
@ApiModel("物料信息model")
public class MesPartExtModel implements Serializable {

    private static final long serialVersionUID = 5528046553571608858L;

    @ApiParam("id")
    private Long id;

    @ApiParam("零件号")
    private String partNo;

    @ApiParam("零件名称")
    private String partName;

    @ApiParam("零件简称")
    private String briefText;

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

    @ApiParam("分类1")
    private String categoryCode1;

    @ApiParam("分类2")
    private String categoryCode2;

    @ApiParam("分类3")
    private String categoryCode3;

    @ApiParam("分类1")
    private String categoryCode1Val;

    @ApiParam("分类2")
    private String categoryCode2Val;

    @ApiParam("分类3")
    private String categoryCode3Val;

    @ApiParam("产品编码匹配类型")
    private Integer processMatchType;

    @ApiParam("包装编码匹配类型")
    private Integer packageMatchType;

    @ApiParam("产品编码匹配类型")
    private String processMatchTypeName;

    @ApiParam("包装编码匹配类型")
    private String packageMatchTypeName;

    @ApiParam("标准包规数量")
   // private Double partSpecQty;
    private Double qty2;

    @ApiParam("产品类型代码")
    private String pptCode;

    @ApiParam("颜色代码")
    private String colorCode;

    @ApiParam("颜色名称")
    private String colorName;

    @ApiParam("销售向")
    private String salesTo;

    @ApiParam("销售向名称")
    private String salesToName;

    @ApiParam("是否出货检验")
    private Integer isOqc;

    @ApiParam("是否出货检验名称")
    private String isOqcName;

    @ApiParam("是否生成条码")
    private Integer isCreateSn;

    @ApiParam("是否生成条码名称")
    private String isCreateSnName;

    @ApiParam("是否PS部件")
    private Integer isPSParts;

    @ApiParam("是否PS部件名称")
    private String isPSPartsName;

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

    @ApiParam("日文描述")
    private String japanDesc;

    @ApiParam("商品码")
    private String goodsCode;

    @ApiParam("前缀")
    private String prefix;

    @ApiParam("质保书码")
    private String qualityAssureCode;

    @ApiParam("物料识别码")
    private String identifyCode;

    @ApiParam("条码末位数")
    private String snLastCode;

    @ApiParam("文件ID")
    private Long fileId;

    @ApiParam("文件URL")
    private String fileUrl;

    @ApiParam("文件原名")
    private String fileOriginName;

    @ApiParam("上传时间")
    private String uploadDatetime;

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

    @ApiParam("有效性")
    private Integer isValid;

    @ApiParam("是否已删除")
    private Integer isDeleted;

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

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

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

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

    @ApiParam("包装条码打印张数")
    private Integer packNoPrintTimes;

    @ApiParam("本体条码打印张数")
    private Integer snPrintTimes;

    @ApiParam("大本体条码匹配类型")
    private Integer bigProcessMatchType;

    @ApiParam("大本体条码匹配类型名称")
    private String bigProcessMatchTypeName;

    @ApiParam("本体条码打印列数")
    public Integer snPrintColumnNumber;

    @ApiParam("是否打印你质保书")
    public Integer isPrintQualityAssureIndia;

    @ApiParam("是否打印你质保书")
    public String isPrintQualityAssureIndiaName;

    @ApiParam(value = "仕向地代码")
    public String shiXiangDiCode;

    @ApiParam(value = "型号")
    public String model;

    @ApiParam(value = "品番")
    public String productNumber;

    @ApiParam("大包装条码张数")
    public Integer snPackagePrintColumnNumber;

    @ApiParam("大包装条码匹配类型")
    @AnnoOutputColumn(refClass = MesExtEnumUtil.ENCODE_MATCH_TYPE.class, refForeignKey = "value", value = "description", hidden = true)
    private Integer bigPackageMatchType = 0;

    @ApiParam("大包装条码匹配类型")
    private String bigPackageMatchTypeName;

    @AnnoOutputColumn(refClass = MesExtEnumUtil.IS_REPAIR_WORK_REPORT.class, refForeignKey = "value", value = "description", hidden = true)
    @ApiParam("补件是否报工")
    private Integer isRepairWorkReport;

    @ApiParam("部品单价")
    private Double partPrice;

    @AnnoOutputColumn(refClass = MesExtEnumUtil.IS_MANUAL_REPORT.class, refForeignKey = "value", value = "description", hidden = true)
    @ApiParam("是否可手动报工")
    private Integer isManualReport;

    public MesPartExtModel() {
    }

    public MesPartExtModel(Long id, String partNo, String partName, String briefText, String unit, String categoryCode1, String categoryCode2, String categoryCode3,
                           Integer processMatchType, Integer packageMatchType, Double qty2, String pptCode, String colorCode, String colorName,
                           String salesTo, Integer isOqc, Integer isCreateSn, Integer isPSParts, Double standardWork, String japanDesc, String goodsCode,
                           String prefix, String qualityAssureCode, String identifyCode, String snLastCode, Long fileId, String fileOriginName,
                           String uploadDatetime, String organizeCode, String createUser, String createDatetime, String modifyUser, String modifyDatetime,
                           String fileUrl, Integer packNoPrintTimes, Integer snPrintTimes, Integer bigProcessMatchType, Integer snPrintColumnNumber,
                           Integer isPrintQualityAssureIndia, String shiXiangDiCode, String model, String productNumber, Integer snPackagePrintColumnNumber,
                           Integer bigPackageMatchType, Integer isRepairWorkReport, Double partPrice, Integer isManualReport) {
        this.id = id;
        this.partNo = partNo;
        this.partName = partName;
        this.briefText = briefText;
        this.unit = unit;
        this.categoryCode1 = categoryCode1;
        this.categoryCode2 = categoryCode2;
        this.categoryCode3 = categoryCode3;
        this.processMatchType = processMatchType;
        this.packageMatchType = packageMatchType;
        this.qty2 = qty2;
        this.pptCode = pptCode;
        this.colorCode = colorCode;
        this.colorName = colorName;
        this.salesTo = salesTo;
        this.isOqc = isOqc;
        this.isCreateSn = isCreateSn;
        this.isPSParts = isPSParts;
        this.standardWork = standardWork;
        this.japanDesc = japanDesc;
        this.goodsCode = goodsCode;
        this.prefix = prefix;
        this.qualityAssureCode = qualityAssureCode;
        this.identifyCode = identifyCode;
        this.snLastCode = snLastCode;
        this.fileId = fileId;
        this.fileOriginName = fileOriginName;
        this.uploadDatetime = uploadDatetime;
        this.organizeCode = organizeCode;
        this.createUser = createUser;
        this.createDatetime = createDatetime;
        this.modifyUser = modifyUser;
        this.modifyDatetime = modifyDatetime;
        this.fileUrl = fileUrl;
        this.bigProcessMatchType = bigProcessMatchType;
        this.packNoPrintTimes = packNoPrintTimes;
        this.snPrintTimes = snPrintTimes;
        this.snPrintColumnNumber = snPrintColumnNumber;
        this.isPrintQualityAssureIndia = isPrintQualityAssureIndia;
        this.shiXiangDiCode = shiXiangDiCode;
        this.model = model;
        this.productNumber = productNumber;
        this.snPackagePrintColumnNumber = snPackagePrintColumnNumber;
        this.bigPackageMatchType = bigPackageMatchType;
        this.isRepairWorkReport = isRepairWorkReport;
        this.partPrice = partPrice;
        this.isManualReport = isManualReport;
    }
}
