diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/print/strategy/AionPrintStrategy.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/print/strategy/AionPrintStrategy.java index 4f4690d..50a32c5 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/print/strategy/AionPrintStrategy.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/print/strategy/AionPrintStrategy.java @@ -20,6 +20,7 @@ import cn.estsh.i3plus.pojo.mes.model.GenSerialNoModel; import cn.estsh.i3plus.pojo.mes.model.StationRequestBean; import cn.estsh.i3plus.pojo.mes.model.StepResult; import cn.estsh.i3plus.pojo.mes.repository.MesCustomerPartRepository; +import cn.estsh.i3plus.pojo.mes.repository.MesNumberRuleRepository; import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; import cn.estsh.impp.framework.boot.util.ResultBean; @@ -56,6 +57,9 @@ public class AionPrintStrategy implements IPrintTemplateStrategyService { @Autowired private MesCustomerPartRepository mesCustomerPartRDao; + @Autowired + private MesNumberRuleRepository numberRuleRepository; + @Override public MesProduceSnPrintModel execute(GenSerialNoModel genSerialNoModel, MesProduceSnPrintModel mesProduceSnPrintModel, MesNumberRule numberRule , StepResult stepResult, StationRequestBean reqBean, Boolean isStep) { @@ -96,6 +100,7 @@ public class AionPrintStrategy implements IPrintTemplateStrategyService { mesProduceSnPrintModel.getMesPrintedSnLogList().add(snLog); } }else { + numberRule = getNumberRule(organizeCode, mesPart); String sn = mesProduceSnPrintModel.getProductSn(); MesProduceSn mesProduceSn = mesProduceSnPrintModel.getMesProduceSnList().get(0); //如下目的主要是截取流水号,主要把流水号转换为32位 @@ -131,7 +136,14 @@ public class AionPrintStrategy implements IPrintTemplateStrategyService { mesProduceSnPrintDataModel.setProductDate(produceSn.getLotNo()); return mesProduceSnPrintDataModel; } - + private MesNumberRule getNumberRule(String organizeCode, MesPart part) { + if (StringUtils.isEmpty(part.getProductMatchRule())) MesPcnException.throwMesBusiException("物料[%s]未维护零件条码匹配规则", part.getPartNo()); + MesNumberRule numberRule = numberRuleRepository.getByProperty( + new String[]{MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.IS_VALID, MesPcnExtConstWords.RULE_CODE}, + new Object[]{organizeCode, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), CommonEnumUtil.IS_VAILD.VAILD.getValue(), part.getProcessMatchRule()}); + if (null == numberRule) MesPcnException.throwMesBusiException("物料[%s]维护的零件条码匹配规则[%s]信息不存在", part.getPartNo(), part.getProcessMatchRule()); + return numberRule; + } // 34进制字符集 private String toBase34(int number) { String base34Chars = "0123456789ABCDEFGHJKLMNPQRSTUVWXYZ"; diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/print/strategy/GqaaPrintStrategy.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/print/strategy/GqaaPrintStrategy.java index 8646909..61d3b5b 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/print/strategy/GqaaPrintStrategy.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/print/strategy/GqaaPrintStrategy.java @@ -20,6 +20,7 @@ import cn.estsh.i3plus.pojo.mes.model.GenSerialNoModel; import cn.estsh.i3plus.pojo.mes.model.StationRequestBean; import cn.estsh.i3plus.pojo.mes.model.StepResult; import cn.estsh.i3plus.pojo.mes.repository.MesCustomerPartRepository; +import cn.estsh.i3plus.pojo.mes.repository.MesNumberRuleRepository; import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; import cn.estsh.impp.framework.boot.util.ResultBean; @@ -56,6 +57,8 @@ public class GqaaPrintStrategy implements IPrintTemplateStrategyService { @Autowired private MesCustomerPartRepository mesCustomerPartRDao; + @Autowired + private MesNumberRuleRepository numberRuleRepository; @Override public MesProduceSnPrintModel execute(GenSerialNoModel genSerialNoModel, MesProduceSnPrintModel mesProduceSnPrintModel, MesNumberRule numberRule, StepResult stepResult, StationRequestBean reqBean, Boolean isStep) { @@ -96,6 +99,7 @@ public class GqaaPrintStrategy implements IPrintTemplateStrategyService { mesProduceSnPrintModel.getMesPrintedSnLogList().add(snLog); } }else { + numberRule = getNumberRule(organizeCode, mesPart); String sn = mesProduceSnPrintModel.getProductSn(); MesProduceSn mesProduceSn = mesProduceSnPrintModel.getMesProduceSnList().get(0); //如下目的主要是截取流水号,主要把流水号转换为32位 @@ -131,7 +135,14 @@ public class GqaaPrintStrategy implements IPrintTemplateStrategyService { mesProduceSnPrintDataModel.setProductDate(produceSn.getLotNo()); return mesProduceSnPrintDataModel; } - + private MesNumberRule getNumberRule(String organizeCode, MesPart part) { + if (StringUtils.isEmpty(part.getProductMatchRule())) MesPcnException.throwMesBusiException("物料[%s]未维护零件条码匹配规则", part.getPartNo()); + MesNumberRule numberRule = numberRuleRepository.getByProperty( + new String[]{MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.IS_VALID, MesPcnExtConstWords.RULE_CODE}, + new Object[]{organizeCode, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), CommonEnumUtil.IS_VAILD.VAILD.getValue(), part.getProcessMatchRule()}); + if (null == numberRule) MesPcnException.throwMesBusiException("物料[%s]维护的零件条码匹配规则[%s]信息不存在", part.getPartNo(), part.getProcessMatchRule()); + return numberRule; + } // 34进制字符集 private String toBase34(int number) { String base34Chars = "0123456789ABCDEFGHJKLMNPQRSTUVWXYZ"; diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/print/strategy/GqxnyPrintStrategy.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/print/strategy/GqxnyPrintStrategy.java index 23e33c4..96f19be 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/print/strategy/GqxnyPrintStrategy.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/print/strategy/GqxnyPrintStrategy.java @@ -21,6 +21,7 @@ import cn.estsh.i3plus.pojo.mes.model.GenSerialNoModel; import cn.estsh.i3plus.pojo.mes.model.StationRequestBean; import cn.estsh.i3plus.pojo.mes.model.StepResult; import cn.estsh.i3plus.pojo.mes.repository.MesCustomerPartRepository; +import cn.estsh.i3plus.pojo.mes.repository.MesNumberRuleRepository; import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; import cn.estsh.impp.framework.boot.util.ResultBean; @@ -57,7 +58,8 @@ public class GqxnyPrintStrategy implements IPrintTemplateStrategyService { @Autowired private MesCustomerPartRepository mesCustomerPartRDao; - + @Autowired + private MesNumberRuleRepository numberRuleRepository; @Override public MesProduceSnPrintModel execute(GenSerialNoModel genSerialNoModel, MesProduceSnPrintModel mesProduceSnPrintModel, MesNumberRule numberRule,StepResult stepResult, StationRequestBean reqBean,Boolean isStep) { //获取客户零件号 @@ -71,9 +73,9 @@ public class GqxnyPrintStrategy implements IPrintTemplateStrategyService { } //获取工厂名称 String organizeName = mesConfig.getCfgValue(); + MesPart mesPart = mesPartService.getMesPartByPartNo(mesProduceSnPrintModel.getPartNo(), organizeCode); if (!isStep){ //物料信息 - MesPart mesPart = mesPartService.getMesPartByPartNo(mesProduceSnPrintModel.getPartNo(), organizeCode); Date date = new Date(); //----广乘 45位 GQXNY //{custPartNo}{SPILTURE}{custCode}{spiltrure}{spiltrule}{year}{serialNo}{spilture}{spiltrule} @@ -131,6 +133,7 @@ public class GqxnyPrintStrategy implements IPrintTemplateStrategyService { mesProduceSnPrintModel.getMesProduceSnList().add(produceSn); } }else { + numberRule = getNumberRule(organizeCode, mesPart); String sn = mesProduceSnPrintModel.getProductSn(); MesProduceSn mesProduceSn = mesProduceSnPrintModel.getMesProduceSnList().get(0); //零件长度17位,拓展2位,供应商7位,扩展位3个0,产线1,年月日,流水号4位,扩展位4位,标识+ @@ -164,6 +167,14 @@ public class GqxnyPrintStrategy implements IPrintTemplateStrategyService { } return mesCustomerPart; } + private MesNumberRule getNumberRule(String organizeCode, MesPart part) { + if (StringUtils.isEmpty(part.getProductMatchRule())) MesPcnException.throwMesBusiException("物料[%s]未维护零件条码匹配规则", part.getPartNo()); + MesNumberRule numberRule = numberRuleRepository.getByProperty( + new String[]{MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.IS_VALID, MesPcnExtConstWords.RULE_CODE}, + new Object[]{organizeCode, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), CommonEnumUtil.IS_VAILD.VAILD.getValue(), part.getProcessMatchRule()}); + if (null == numberRule) MesPcnException.throwMesBusiException("物料[%s]维护的零件条码匹配规则[%s]信息不存在", part.getPartNo(), part.getProcessMatchRule()); + return numberRule; + } private String stringFormat(String data, Integer length) { return stringFormat(data, length, true, "0"); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/print/strategy/XiaoPengNewPrintStrategy.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/print/strategy/XiaoPengNewPrintStrategy.java index a23767f..120cd30 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/print/strategy/XiaoPengNewPrintStrategy.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/print/strategy/XiaoPengNewPrintStrategy.java @@ -13,12 +13,14 @@ import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.platform.common.tool.TimeTool; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.codemaker.SnowflakeIdMaker; +import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; import cn.estsh.i3plus.pojo.mes.bean.*; import cn.estsh.i3plus.pojo.mes.model.GenSerialNoModel; import cn.estsh.i3plus.pojo.mes.model.StationRequestBean; import cn.estsh.i3plus.pojo.mes.model.StepResult; import cn.estsh.i3plus.pojo.mes.repository.MesCustomerPartRepository; +import cn.estsh.i3plus.pojo.mes.repository.MesNumberRuleRepository; import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; import cn.estsh.impp.framework.boot.util.ResultBean; import cn.hutool.core.bean.BeanUtil; @@ -55,6 +57,9 @@ public class XiaoPengNewPrintStrategy implements IPrintTemplateStrategyService { @Autowired private IConfigService configService; + @Autowired + private MesNumberRuleRepository numberRuleRepository; + @Override public MesProduceSnPrintModel execute(GenSerialNoModel genSerialNoModel, MesProduceSnPrintModel mesProduceSnPrintModel, MesNumberRule numberRule, StepResult stepResult, StationRequestBean reqBean, Boolean isStep) { String format = "yyyy/MM/dd"; @@ -95,6 +100,7 @@ public class XiaoPengNewPrintStrategy implements IPrintTemplateStrategyService { mesProduceSnPrintModel.getMesPrintedSnLogList().add(snLog); } }else { + numberRule = getNumberRule(organizeCode, mesPart); String sn = mesProduceSnPrintModel.getProductSn(); MesProduceSn mesProduceSn = mesProduceSnPrintModel.getMesProduceSnList().get(0); Integer serialNoLength = numberRule.getSerialnoLength(); @@ -111,6 +117,14 @@ public class XiaoPengNewPrintStrategy implements IPrintTemplateStrategyService { return mesProduceSnPrintModel; } + private MesNumberRule getNumberRule(String organizeCode, MesPart part) { + if (StringUtils.isEmpty(part.getProductMatchRule())) MesPcnException.throwMesBusiException("物料[%s]未维护零件条码匹配规则", part.getPartNo()); + MesNumberRule numberRule = numberRuleRepository.getByProperty( + new String[]{MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.IS_VALID, MesPcnExtConstWords.RULE_CODE}, + new Object[]{organizeCode, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), CommonEnumUtil.IS_VAILD.VAILD.getValue(), part.getProcessMatchRule()}); + if (null == numberRule) MesPcnException.throwMesBusiException("物料[%s]维护的零件条码匹配规则[%s]信息不存在", part.getPartNo(), part.getProcessMatchRule()); + return numberRule; + } private MesCustomerPart getMesCustomerPart(MesProduceSnPrintModel mesProduceSnPrintModel) { DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(mesProduceSnPrintModel.getOrganizeCode());