diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/MesNumberRuleMatchCompareRangeService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/MesNumberRuleMatchCompareRangeService.java index 53d5997..7ff5caf 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/MesNumberRuleMatchCompareRangeService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/MesNumberRuleMatchCompareRangeService.java @@ -11,7 +11,7 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; /** - * 正则表达式匹配 + * 比大小值 */ @Slf4j @Service diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/MesNumberRuleMatchDispatchService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/MesNumberRuleMatchDispatchService.java index 40a1d7a..5bde4a3 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/MesNumberRuleMatchDispatchService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/MesNumberRuleMatchDispatchService.java @@ -28,24 +28,24 @@ public class MesNumberRuleMatchDispatchService implements IMesNumberRuleMatchDis List resultList = new ArrayList<>(); - if (numberRuleList.get(0) instanceof MesProdRuleNosortCfg) numberRuleList.forEach(o -> matchNumberRule(organizeCode, sn, resultList, o, "mesNumberRuleMatchRegularExpressionService",o, ((MesProdRuleNosortCfg) o).getInPartNoRule())); + if (numberRuleList.get(0) instanceof MesProdRuleNosortCfg) numberRuleList.forEach(o -> matchNumberRule(organizeCode, sn, resultList, "mesNumberRuleMatchRegularExpressionService",o, ((MesProdRuleNosortCfg) o).getInPartNoRule())); - if (numberRuleList.get(0) instanceof MesProductionAssemblyNosortContext) numberRuleList.forEach(o -> matchNumberRule(organizeCode, sn, resultList, o, MesExtEnumUtil.ASSEMBLY_MATCH_TYPE.valueOfStrategyClass(((MesProductionAssemblyNosortContext) o).getMatchType()),o, ((MesProductionAssemblyNosortContext) o).getMatchRule())); + if (numberRuleList.get(0) instanceof MesProductionAssemblyNosortContext) numberRuleList.forEach(o -> matchNumberRule(organizeCode, sn, resultList, MesExtEnumUtil.ASSEMBLY_MATCH_TYPE.valueOfStrategyClass(((MesProductionAssemblyNosortContext) o).getMatchType()),o, ((MesProductionAssemblyNosortContext) o).getMatchRule())); - if (numberRuleList.get(0) instanceof MesProductionAssemblySortContext) numberRuleList.forEach(o -> matchNumberRule(organizeCode, sn, resultList, o, "mesNumberRuleMatchRegularExpressionService",o, ((MesProductionAssemblySortContext) o).getMatchRule())); + if (numberRuleList.get(0) instanceof MesProductionAssemblySortContext) numberRuleList.forEach(o -> matchNumberRule(organizeCode, sn, resultList, "mesNumberRuleMatchRegularExpressionService",o, ((MesProductionAssemblySortContext) o).getMatchRule())); return resultList; } - private void matchNumberRule(String organizeCode, String sn, List resultList, Object o, String strategyClass, Object... params) { + private void matchNumberRule(String organizeCode, String sn, List resultList, String strategyClass, Object... params) { - if (StringUtils.isEmpty(organizeCode) || StringUtils.isEmpty(sn) || StringUtils.isEmpty(strategyClass) || null == o) return; + if (StringUtils.isEmpty(organizeCode) || StringUtils.isEmpty(sn) || StringUtils.isEmpty(strategyClass) || null == params[0]) return; Boolean result = ((IMesNumberRuleMatchDispatchService) SpringContextsUtil.getBean(strategyClass)).matchNumberRule(organizeCode, sn, params); - if (result) resultList.add(o); + if (result) resultList.add(params[0]); } } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/MesNumberRuleMatchSnService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/MesNumberRuleMatchSnService.java index e22dcc6..ef19711 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/MesNumberRuleMatchSnService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/MesNumberRuleMatchSnService.java @@ -69,11 +69,11 @@ public class MesNumberRuleMatchSnService implements IMesNumberRuleMatchDispatchS return false; } MesProductionAssemblyNosortContext context = (MesProductionAssemblyNosortContext) obj; + context.setProductSnId(mesProduceSn.getId()); if (!Objects.equal(context.getAssemblyPartNo(), mesProduceSn.getPartNo())) { return false; } // 需要校验时效性 - return true; } } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/WriteVariableService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/WriteVariableService.java index 9e8a382..b8d187a 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/WriteVariableService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/WriteVariableService.java @@ -17,6 +17,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; import org.springframework.util.StringUtils; import java.util.Date; @@ -84,26 +85,33 @@ public class WriteVariableService implements IWriteVariableService { - MesProductionPartContext mesProductionPartContext; - MesProductionPsOutContext productionPsOutSn; + MesProductionPartContext mesProductionPartContext = null; + MesProductionPsOutContext productionPsOutSn = null; if (!Objects.isNull(foreignKey)) { - mesProductionPartContext = productionPartContextList.stream().filter(context -> Objects.equals(context.getForeignKey(), foreignKey)).findFirst().orElse(null); - productionPsOutSn = productionPsOutContexts.stream().filter(context -> Objects.equals(context.getForeignKey(), foreignKey)).findFirst().orElse(null); - String newValue = ""; + if (!CollectionUtils.isEmpty(productionPartContextList)) { + mesProductionPartContext = productionPartContextList.stream().filter(context -> Objects.equals(context.getForeignKey(), foreignKey)).findFirst().orElse(null); + } + if (!CollectionUtils.isEmpty(productionPsOutContexts)) { + productionPsOutSn = productionPsOutContexts.stream().filter(context -> Objects.equals(context.getForeignKey(), foreignKey)).findFirst().orElse(null); + } + String newValue = ""; if (StringUtils.isEmpty(value)) { return null; } if (mesProductionPartContext == null) { mesProductionPartContext = new MesProductionPartContext(); } + if (productionPsOutSn == null) { + productionPsOutSn = new MesProductionPsOutContext(); + } switch (value.toUpperCase()) { case "%RESULT%" : newValue = mesProductionPartContext.getPartNo(); break; case "%PARAM%": newValue = mesProductionPartContext.getWorkOrderNo(); break; case "%ORDERCODE%": newValue = mesProductionPartContext.getWorkOrderNo(); break; case "%CUSTPARTNO%": newValue = mesProductionPartContext.getCustPartNo(); break; case "%EMPLOYEENO%": newValue = reqBean.getUserInfo(); break;///当前操作员工号 用户名 - case "%BARCODE%": newValue = productionPsOutContexts.get(0).getProductSn(); break;// 条码 + case "%BARCODE%": newValue = productionPsOutSn.getProductSn(); break;// 条码 case "%BARCODE2%": newValue = productionPsOutContexts.get(1).getProductSn(); break;///条码 case "%BARCODE3%": newValue = productionPsOutContexts.get(2).getProductSn(); break;///条码 case "%BARCODE4%": newValue = productionPsOutContexts.get(3).getProductSn(); break;///条码 @@ -131,7 +139,7 @@ public class WriteVariableService implements IWriteVariableService { case "%PARTNO%": newValue = mesProductionPartContext.getPartNo(); break;///工单对应的零件号 //case "%VINCODE%": newValue = mesProductionPartContext.getv(); break;///工单对应的vincode case "%SEQUENCE%": newValue = reqBean.getUserInfo(); break;///工单顺序号 不是生产顺序号 - case "%CUSTBARCODE%": newValue = productionPsOutContexts.get(0).getCustSn(); break;///客户条码 + case "%CUSTBARCODE%": newValue = productionPsOutSn.getCustSn(); break;///客户条码 case "%GETDATE%": newValue = DateUtil.format(new Date(), DatePattern.NORM_DATETIME_PATTERN); break;///客户条码 default: