From 8448f4e832aae64aeb23ecb1fd6087db40f63cea Mon Sep 17 00:00:00 2001 From: "jhforever.wang@estsh.com" Date: Tue, 13 May 2025 10:28:01 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E5=9B=9E=E9=80=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mes/pcn/apiservice/serviceimpl/base/MesReworkTaskServiceImpl.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/MesReworkTaskServiceImpl.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/MesReworkTaskServiceImpl.java index 5a3922c..ba4a9ab 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/MesReworkTaskServiceImpl.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/MesReworkTaskServiceImpl.java @@ -928,8 +928,6 @@ public class MesReworkTaskServiceImpl implements IMesReworkTaskService { assemblyList = assemblyList.stream().filter(o->MesExtEnumUtil.ASSEMBLY_STATUS.ASSEMBLY_STATUS_10.getValue() == o.getAssemblyStatus()).collect(Collectors.toList()); if(!CollectionUtils.isEmpty(assemblyList)){ assemblyList.forEach(t->{ - t.setIsDeleted(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()); - t.setDescription(userName + "-" + TimeTool.getNowTime(true) + "-返工解绑软删除"); t.setSystemSyncStatus(CommonEnumUtil.FALSE); t.setAssemblyStatus(MesExtEnumUtil.ASSEMBLY_STATUS.ASSEMBLY_STATUS_20.getValue()); ConvertBean.serviceModelUpdate(t, userName); From a2d756cb40e2ca14db159efc299c634f10eeb515 Mon Sep 17 00:00:00 2001 From: "jhforever.wang@estsh.com" Date: Tue, 13 May 2025 15:44:44 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E5=A4=A7=E5=B0=8F=E5=86=99=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../apiservice/serviceimpl/busi/MesProduceSnExtService.java | 2 +- .../step/MesManyCellTriggerJumpProcessStepService.java | 2 +- .../step/MesProcessMethodSourceBoxInOutStepService.java | 2 +- .../serviceimpl/step/MesProductSnCheckStepService.java | 2 +- .../step/context/MesProductionProcessContextStepService.java | 10 +++++----- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesProduceSnExtService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesProduceSnExtService.java index 85a5178..08df136 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesProduceSnExtService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesProduceSnExtService.java @@ -134,7 +134,7 @@ public class MesProduceSnExtService implements IMesProduceSnExtService { List produceSnList = getProduceSnList(organizeCode, productSnList); //先排序再分组 - return CollectionUtils.isEmpty(produceSnList) ? null : produceSnList.stream().filter(o -> null != o).collect(Collectors.groupingBy(MesProduceSn::getProductSn)); + return CollectionUtils.isEmpty(produceSnList) ? null : produceSnList.stream().filter(o -> null != o).collect(Collectors.groupingBy(o -> o.getProductSn().toUpperCase())); } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesManyCellTriggerJumpProcessStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesManyCellTriggerJumpProcessStepService.java index 368b14f..c1c530d 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesManyCellTriggerJumpProcessStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesManyCellTriggerJumpProcessStepService.java @@ -49,7 +49,7 @@ public class MesManyCellTriggerJumpProcessStepService extends BaseStepService { //所有分屏强制跳过工序密码 String pwd = fsmCommonService.handleFsmWcpcMapDataForDoScanThenBackValue(reqBean, MesPcnExtConstWords.MANY_CELL_TRIGGER_JUMP_PROCESS_PWD); - if (StringUtils.isEmpty(pwd) || !pwd.equals(reqBean.getScanInfo())) return stepResult; + if (StringUtils.isEmpty(pwd) || !pwd.toUpperCase().equals(reqBean.getScanInfo().toUpperCase())) return stepResult; StationResultBean resultBean = new StationResultBean(); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProcessMethodSourceBoxInOutStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProcessMethodSourceBoxInOutStepService.java index aa721e1..02f8069 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProcessMethodSourceBoxInOutStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProcessMethodSourceBoxInOutStepService.java @@ -128,7 +128,7 @@ public class MesProcessMethodSourceBoxInOutStepService extends BaseStepService { Map> produceSnMap = produceSnExtService.getProduceSnMap(reqBean.getOrganizeCode(), bindingDetailList.stream().map(MesRecyclablePackageBindingDetail::getProductSn).collect(Collectors.toList())); for (MesRecyclablePackageBindingDetail bindingDetail : bindingDetailList) { //外协件 - if (CollectionUtils.isEmpty(produceSnMap) || !produceSnMap.containsKey(bindingDetail.getProductSn())) { + if (CollectionUtils.isEmpty(produceSnMap) || !produceSnMap.containsKey(bindingDetail.getProductSn().toUpperCase())) { for (int i = 0; i < bindingDetail.getQty(); i++) { productionPsInContextList.add(new MesProductionPsInContext(reqBean.getOrganizeCode(), bindingDetail.getProductSn()).messageSource(equipVariableCollectContextList.iterator().next().getMessageSource())); } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnCheckStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnCheckStepService.java index 3cc588c..fdffa3a 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnCheckStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnCheckStepService.java @@ -115,7 +115,7 @@ public class MesProductSnCheckStepService extends BaseStepService { Map> produceSnMap = produceSnExtService.getProduceSnMap(reqBean.getOrganizeCode(), productSnList); for (MesEquipVariableCollectContext equipVariableCollectContext : equipVariableCollectContextList) { if (null == equipVariableCollectContext || StringUtils.isEmpty(equipVariableCollectContext.getEquipVariableValue())) continue; - if (CollectionUtils.isEmpty(produceSnMap) || !produceSnMap.containsKey(equipVariableCollectContext.getEquipVariableValue())) + if (CollectionUtils.isEmpty(produceSnMap) || !produceSnMap.containsKey(equipVariableCollectContext.getEquipVariableValue().toUpperCase())) productionPsInContextList.add(new MesProductionPsInContext(reqBean.getOrganizeCode(), equipVariableCollectContext.getEquipVariableValue()).messageSource(equipVariableCollectContext.getMessageSource())); else createProductionPsInContext(reqBean, stepResult, workCell, equipVariableCollectContext, produceSnMap.get(equipVariableCollectContext.getEquipVariableValue()), productionPsInContextList); } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/context/MesProductionProcessContextStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/context/MesProductionProcessContextStepService.java index 8b9dc95..5a61577 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/context/MesProductionProcessContextStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/context/MesProductionProcessContextStepService.java @@ -156,11 +156,11 @@ public class MesProductionProcessContextStepService extends BaseStepService impl public MesProductionProcessContext productionPwdContext(StationRequestBean reqBean, MesProductionProcessContext productionProcessContext) { List configList = configService.doCachedConfigList(MesPcnExtConstWords.PRODUCTION_PWD_CFG, reqBean.getOrganizeCode()); Map> cfgKeyMap = CollectionUtils.isEmpty(configList) ? null : configList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getCfgKey()))).collect(Collectors.groupingBy(MesConfig::getCfgKey)); - return productionProcessContext.finishCode((!CollectionUtils.isEmpty(cfgKeyMap) && cfgKeyMap.containsKey(MesPcnExtConstWords.CAVITY_FINISH_CODE)) ? cfgKeyMap.get(MesPcnExtConstWords.CAVITY_FINISH_CODE).get(0).getCfgValue() : MesPcnExtConstWords.CAVITY_FINISH_CODE) - .craftJumpCode((!CollectionUtils.isEmpty(cfgKeyMap) && cfgKeyMap.containsKey(MesPcnExtConstWords.CRAFT_JUMP_CODE)) ? cfgKeyMap.get(MesPcnExtConstWords.CRAFT_JUMP_CODE).get(0).getCfgValue() : MesPcnExtConstWords.CRAFT_JUMP_CODE) - .assemblySkipCode((!CollectionUtils.isEmpty(cfgKeyMap) && cfgKeyMap.containsKey(MesPcnExtConstWords.ASSEMBLY_SKIP_CODE)) ? cfgKeyMap.get(MesPcnExtConstWords.ASSEMBLY_SKIP_CODE).get(0).getCfgValue() : MesPcnExtConstWords.ASSEMBLY_SKIP_CODE) - .assemblyCavitySkipCode((!CollectionUtils.isEmpty(cfgKeyMap) && cfgKeyMap.containsKey(MesPcnExtConstWords.ASSEMBLY_CAVITY_SKIP_CODE)) ? cfgKeyMap.get(MesPcnExtConstWords.ASSEMBLY_CAVITY_SKIP_CODE).get(0).getCfgValue() : MesPcnExtConstWords.ASSEMBLY_CAVITY_SKIP_CODE) - .sortSuspiciousCode((!CollectionUtils.isEmpty(cfgKeyMap) && cfgKeyMap.containsKey(MesPcnExtConstWords.SORT_SUSPICIOUS_CODE)) ? cfgKeyMap.get(MesPcnExtConstWords.SORT_SUSPICIOUS_CODE).get(0).getCfgValue() : MesPcnExtConstWords.SORT_SUSPICIOUS_CODE); + return productionProcessContext.finishCode((!CollectionUtils.isEmpty(cfgKeyMap) && cfgKeyMap.containsKey(MesPcnExtConstWords.CAVITY_FINISH_CODE)) ? cfgKeyMap.get(MesPcnExtConstWords.CAVITY_FINISH_CODE).get(0).getCfgValue().toUpperCase() : MesPcnExtConstWords.CAVITY_FINISH_CODE) + .craftJumpCode((!CollectionUtils.isEmpty(cfgKeyMap) && cfgKeyMap.containsKey(MesPcnExtConstWords.CRAFT_JUMP_CODE)) ? cfgKeyMap.get(MesPcnExtConstWords.CRAFT_JUMP_CODE).get(0).getCfgValue().toUpperCase() : MesPcnExtConstWords.CRAFT_JUMP_CODE) + .assemblySkipCode((!CollectionUtils.isEmpty(cfgKeyMap) && cfgKeyMap.containsKey(MesPcnExtConstWords.ASSEMBLY_SKIP_CODE)) ? cfgKeyMap.get(MesPcnExtConstWords.ASSEMBLY_SKIP_CODE).get(0).getCfgValue().toUpperCase() : MesPcnExtConstWords.ASSEMBLY_SKIP_CODE) + .assemblyCavitySkipCode((!CollectionUtils.isEmpty(cfgKeyMap) && cfgKeyMap.containsKey(MesPcnExtConstWords.ASSEMBLY_CAVITY_SKIP_CODE)) ? cfgKeyMap.get(MesPcnExtConstWords.ASSEMBLY_CAVITY_SKIP_CODE).get(0).getCfgValue().toUpperCase() : MesPcnExtConstWords.ASSEMBLY_CAVITY_SKIP_CODE) + .sortSuspiciousCode((!CollectionUtils.isEmpty(cfgKeyMap) && cfgKeyMap.containsKey(MesPcnExtConstWords.SORT_SUSPICIOUS_CODE)) ? cfgKeyMap.get(MesPcnExtConstWords.SORT_SUSPICIOUS_CODE).get(0).getCfgValue().toUpperCase() : MesPcnExtConstWords.SORT_SUSPICIOUS_CODE); } //验证组织模型有效性 From 373dd1e0385eb63650281639146cdbaeb5cbc41c Mon Sep 17 00:00:00 2001 From: "jhforever.wang@estsh.com" Date: Tue, 13 May 2025 21:21:19 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E5=A4=A7=E5=B0=8F=E5=86=99=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...esEquipVariableCfgRuleMatchDispatchService.java | 5 ++- ...esEquipVariableCfgRuleMatchDispatchService.java | 13 ++++-- .../rulematch/MesEvcRuleMatchBackValueService.java | 8 ++-- .../MesEvcRuleMatchCompareValueService.java | 18 ++++---- .../step/MesFirstMouldNoReadStepService.java | 4 +- .../step/MesMouldNoReadStepService.java | 2 +- .../MesProcessMethodSourceBoxInOutStepService.java | 10 +++-- .../step/MesProductSnCheckStepService.java | 2 +- .../step/MesProductSnGenerateStepService.java | 10 +++++ .../step/MesProductSnPrintSortStepService.java | 2 +- .../step/MesWorkOrderCutCheckStepService.java | 8 ++-- .../MesWorkOrderCutPackageSnSaveStepService.java | 4 +- .../MesWorkOrderCutProductSnSaveStepService.java | 8 +++- .../step/method/MesPartDataMapSaveStepService.java | 8 +++- .../ext/mes/pcn/apiservice/util/BarCodeUtils.java | 2 + .../context/MesEquipVariableCollectContext.java | 3 +- .../mes/pcn/pojo/context/MesProdRuleContext.java | 2 + .../pcn/pojo/context/MesProductionPartContext.java | 11 +++-- .../pcn/pojo/context/MesProductionPsInContext.java | 4 ++ .../pojo/context/MesScanMonitorDetailContext.java | 49 ---------------------- .../ext/mes/pcn/pojo/util/MesPcnExtConstWords.java | 3 -- 21 files changed, 83 insertions(+), 93 deletions(-) delete mode 100644 modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesScanMonitorDetailContext.java diff --git a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesEquipVariableCfgRuleMatchDispatchService.java b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesEquipVariableCfgRuleMatchDispatchService.java index 87c5b36..0ffd4c3 100644 --- a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesEquipVariableCfgRuleMatchDispatchService.java +++ b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesEquipVariableCfgRuleMatchDispatchService.java @@ -10,6 +10,9 @@ import java.util.List; public interface IMesEquipVariableCfgRuleMatchDispatchService { @ApiOperation(value = "设备数据变量接口逻辑根据变量类别规则匹配") - Object matchEquipVariableCfgCollectContext(StationRequestBean reqBean, MesProductionProcessContext productionProcessContext, String variableCategory, List collectContextList); + default Object matchEquipVariableCfgCollectContext(StationRequestBean reqBean, MesProductionProcessContext productionProcessContext, String variableCategory, List collectContextList) { return null; } + + @ApiOperation(value = "设备数据变量接口逻辑根据变量类别规则匹配") + default Object matchEquipVariableCfgCollectContext(StationRequestBean reqBean, MesProductionProcessContext productionProcessContext, String variableCategory, List collectContextList, Boolean isUpperCase) { return null; } } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/MesEquipVariableCfgRuleMatchDispatchService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/MesEquipVariableCfgRuleMatchDispatchService.java index a690396..7d57802 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/MesEquipVariableCfgRuleMatchDispatchService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/MesEquipVariableCfgRuleMatchDispatchService.java @@ -17,12 +17,17 @@ import java.util.List; @Service public class MesEquipVariableCfgRuleMatchDispatchService implements IMesEquipVariableCfgRuleMatchDispatchService { - private Object matchEquipVariableCfgCollectContext(StationRequestBean reqBean, MesProductionProcessContext productionProcessContext, String variableCategory, List collectContextList, String strategyClass) { - return ((IMesEquipVariableCfgRuleMatchDispatchService) SpringContextsUtil.getBean(strategyClass)).matchEquipVariableCfgCollectContext(reqBean, productionProcessContext, variableCategory, collectContextList); + private Object matchEquipVariableCfgCollectContext(StationRequestBean reqBean, MesProductionProcessContext productionProcessContext, String variableCategory, List collectContextList, Boolean isUpperCase, String strategyClass) { + return ((IMesEquipVariableCfgRuleMatchDispatchService) SpringContextsUtil.getBean(strategyClass)).matchEquipVariableCfgCollectContext(reqBean, productionProcessContext, variableCategory, collectContextList, isUpperCase); } @Override public Object matchEquipVariableCfgCollectContext(StationRequestBean reqBean, MesProductionProcessContext productionProcessContext, String variableCategory, List collectContextList) { + return matchEquipVariableCfgCollectContext(reqBean, productionProcessContext, variableCategory, collectContextList, true); + } + + @Override + public Object matchEquipVariableCfgCollectContext(StationRequestBean reqBean, MesProductionProcessContext productionProcessContext, String variableCategory, List collectContextList, Boolean isUpperCase) { switch (MesExtEnumUtil.EQUIP_VARIABLE_CFG_CATEGORY.getByValue(variableCategory)) { @@ -33,7 +38,7 @@ public class MesEquipVariableCfgRuleMatchDispatchService implements IMesEquipVar case READY_SIGNAL: case MEMBRANE_SIGNAL: case BYPASS: - return matchEquipVariableCfgCollectContext(reqBean, productionProcessContext, variableCategory, collectContextList, "mesEvcRuleMatchCompareValueService"); + return matchEquipVariableCfgCollectContext(reqBean, productionProcessContext, variableCategory, collectContextList, isUpperCase, "mesEvcRuleMatchCompareValueService"); case FIRST_MOULD_NO: case MOULD_NO: case ASSEMBLY: @@ -41,7 +46,7 @@ public class MesEquipVariableCfgRuleMatchDispatchService implements IMesEquipVar case WORK_ORDER: case PRODUCTION_PART_NO: case RECYCLABLE_PACKAGE: - return matchEquipVariableCfgCollectContext(reqBean, productionProcessContext, variableCategory, collectContextList, "mesEvcRuleMatchBackValueService"); + return matchEquipVariableCfgCollectContext(reqBean, productionProcessContext, variableCategory, collectContextList, isUpperCase, "mesEvcRuleMatchBackValueService"); //TODO CASE 数据变量接口逻辑根据变量类别实现策略 diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/MesEvcRuleMatchBackValueService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/MesEvcRuleMatchBackValueService.java index 450f967..c7b272c 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/MesEvcRuleMatchBackValueService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/MesEvcRuleMatchBackValueService.java @@ -22,7 +22,7 @@ import java.util.List; public class MesEvcRuleMatchBackValueService implements IMesEquipVariableCfgRuleMatchDispatchService { @Override - public List matchEquipVariableCfgCollectContext(StationRequestBean reqBean, MesProductionProcessContext productionProcessContext, String variableCategory, List collectContextList) { + public List matchEquipVariableCfgCollectContext(StationRequestBean reqBean, MesProductionProcessContext productionProcessContext, String variableCategory, List collectContextList, Boolean isUpperCase) { List backList = null; @@ -34,7 +34,7 @@ public class MesEvcRuleMatchBackValueService implements IMesEquipVariableCfgRule if (null == equipVariableCollectContext || StringUtils.isEmpty(equipVariableCollectContext.getEquipVariableValue())) continue; - if (StringUtils.isEmpty(filterSpecialChar(equipVariableCollectContext).getEquipVariableValue())) continue; + if (StringUtils.isEmpty(filterSpecialChar(equipVariableCollectContext, isUpperCase).getEquipVariableValue())) continue; if (CollectionUtils.isEmpty(backList)) backList = new ArrayList<>(); @@ -50,9 +50,9 @@ public class MesEvcRuleMatchBackValueService implements IMesEquipVariableCfgRule //不过滤":",tesla零件号带冒号 //不过滤[)>字符 - private MesEquipVariableCollectContext filterSpecialChar(MesEquipVariableCollectContext equipVariableCollectContext) { + private MesEquipVariableCollectContext filterSpecialChar(MesEquipVariableCollectContext equipVariableCollectContext, Boolean isUpperCase) { - equipVariableCollectContext.trimValue(); + equipVariableCollectContext.trimValue(isUpperCase); String realEquipVariableValue = equipVariableCollectContext.getEquipVariableValue(); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/MesEvcRuleMatchCompareValueService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/MesEvcRuleMatchCompareValueService.java index 148fb46..0c687f6 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/MesEvcRuleMatchCompareValueService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/MesEvcRuleMatchCompareValueService.java @@ -24,7 +24,7 @@ import java.util.stream.Collectors; public class MesEvcRuleMatchCompareValueService implements IMesEquipVariableCfgRuleMatchDispatchService { @Override - public Boolean matchEquipVariableCfgCollectContext(StationRequestBean reqBean, MesProductionProcessContext productionProcessContext, String variableCategory, List collectContextList) { + public Boolean matchEquipVariableCfgCollectContext(StationRequestBean reqBean, MesProductionProcessContext productionProcessContext, String variableCategory, List collectContextList, Boolean isUpperCase) { Map> ruleCategoryMap = CollectionUtils.isEmpty(collectContextList) ? null : collectContextList.stream().filter(o -> null != o).collect(Collectors.groupingBy(MesEquipVariableCfgCollectContext::getRuleCategory)); @@ -35,7 +35,7 @@ public class MesEvcRuleMatchCompareValueService implements IMesEquipVariableCfgR if (null == entry) continue; //任意一组规则全部匹配 - if (matchEquipVariableCfgCollectContext(entry.getKey(), entry.getValue())) return true; + if (matchEquipVariableCfgCollectContext(entry.getValue(), isUpperCase)) return true; } @@ -43,21 +43,21 @@ public class MesEvcRuleMatchCompareValueService implements IMesEquipVariableCfgR } - private Boolean matchEquipVariableCfgCollectContext(String ruleCategory, List collectContextList) { + private Boolean matchEquipVariableCfgCollectContext(List collectContextList, Boolean isUpperCase) { for (MesEquipVariableCfgCollectContext collectContext : collectContextList) { if (null == collectContext) continue; //任意一个规则不匹配 - if (!matchEquipVariableCfgCollectContext(collectContext)) return false; + if (!matchEquipVariableCfgCollectContext(collectContext, isUpperCase)) return false; } return true; } - private Boolean matchEquipVariableCfgCollectContext(MesEquipVariableCfgCollectContext collectContext) { + private Boolean matchEquipVariableCfgCollectContext(MesEquipVariableCfgCollectContext collectContext, Boolean isUpperCase) { if (StringUtils.isEmpty(collectContext.getValue()) || CollectionUtils.isEmpty(collectContext.getEquipVariableCollectContextList())) return false; @@ -69,16 +69,16 @@ public class MesEvcRuleMatchCompareValueService implements IMesEquipVariableCfgR if (StringUtils.isEmpty(equipVariableCollectContext.getEquipVariableValue())) return false; //比对值是否相等 - if (!compareTo(collectContext.getValue(), equipVariableCollectContext.getEquipVariableValue(), equipVariableCollectContext.getDataType())) return false; + if (!compareTo(collectContext.getValue(), equipVariableCollectContext.getEquipVariableValue(), equipVariableCollectContext.getDataType(), isUpperCase)) return false; } return true; } - private Boolean compareTo(String value1, String value2, Integer dataType) { - value1 = value1.toUpperCase(); - value2 = value2.toUpperCase(); + private Boolean compareTo(String value1, String value2, Integer dataType, Boolean isUpperCase) { + if (isUpperCase) value1 = value1.toUpperCase(); + if (isUpperCase) value2 = value2.toUpperCase(); if (value1.equals(value2)) return true; if (StringUtils.isEmpty(dataType) || dataType.compareTo(MesExtEnumUtil.VARIABLE_DATA_TYPE.VARIABLE_DATA_TYPE_40.getValue()) != 0) return false; value1 = transferValueBoo(value1); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesFirstMouldNoReadStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesFirstMouldNoReadStepService.java index 3b8c659..89607a8 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesFirstMouldNoReadStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesFirstMouldNoReadStepService.java @@ -143,7 +143,7 @@ public class MesFirstMouldNoReadStepService extends BaseStepService { MesPcnEnumUtil.STATION_BUSI_TYPE.GUIDE, MesPcnEnumUtil.STATION_DATA_TYPE.TEXT, stepParamMap, MesPcnExtConstWords.READ_FAILURE_SLEEP, MesPcnExtConstWords.READ_FAILURE_SLEEP_DEFAULT_TIME); //读取的头道模具号进行规则匹配 - List equipVariableCollectContextList = (List) equipVariableCfgRuleMatchService.matchEquipVariableCfgCollectContext(reqBean, productionProcessContext, MesExtEnumUtil.EQUIP_VARIABLE_CFG_CATEGORY.FIRST_MOULD_NO.getValue(), equipLogDispatchContext.getEquipVariableCfgCollectContextList()); + List equipVariableCollectContextList = (List) equipVariableCfgRuleMatchService.matchEquipVariableCfgCollectContext(reqBean, productionProcessContext, MesExtEnumUtil.EQUIP_VARIABLE_CFG_CATEGORY.FIRST_MOULD_NO.getValue(), equipLogDispatchContext.getEquipVariableCfgCollectContextList(), false); //没有有效的数据 if (CollectionUtils.isEmpty(equipVariableCollectContextList)) { @@ -188,7 +188,7 @@ public class MesFirstMouldNoReadStepService extends BaseStepService { //验证产出零件(一模多腔)信息是否跟当前对设备及模具匹配 private Boolean checkCachedProductionPartValid(List productionPartContextList, String equipmentCode, String firstMouldNo) { - return (!CollectionUtils.isEmpty(productionPartContextList) && productionPartContextList.get(0).getEquipmentCode().equals(equipmentCode) && productionPartContextList.get(0).getMouldNo().equals(firstMouldNo)) ? true : false; + return (!CollectionUtils.isEmpty(productionPartContextList) && productionPartContextList.get(0).getEquipmentCode().toUpperCase().equals(equipmentCode.toUpperCase()) && productionPartContextList.get(0).getMouldNo().toUpperCase().equals(firstMouldNo.toUpperCase())) ? true : false; } //封装展示组件MODULE_CONTENT内容 diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesMouldNoReadStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesMouldNoReadStepService.java index 4eedf6d..3233e71 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesMouldNoReadStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesMouldNoReadStepService.java @@ -146,7 +146,7 @@ public class MesMouldNoReadStepService extends BaseStepService { } //读取的模具号进行规则匹配 - List equipVariableCollectContextList = (List) equipVariableCfgRuleMatchService.matchEquipVariableCfgCollectContext(reqBean, productionProcessContext, MesExtEnumUtil.EQUIP_VARIABLE_CFG_CATEGORY.MOULD_NO.getValue(), equipLogDispatchContext.getEquipVariableCfgCollectContextList()); + List equipVariableCollectContextList = (List) equipVariableCfgRuleMatchService.matchEquipVariableCfgCollectContext(reqBean, productionProcessContext, MesExtEnumUtil.EQUIP_VARIABLE_CFG_CATEGORY.MOULD_NO.getValue(), equipLogDispatchContext.getEquipVariableCfgCollectContextList(), false); //没有有效的数据: 设置常变值 或者 当前没有头道模具号或生产工单信息 if (CollectionUtils.isEmpty(equipVariableCollectContextList) && (equipLogDispatchContext.getNeedNewValue() || !StringUtils.isEmpty(isReadMultiCavityCfg))) { diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProcessMethodSourceBoxInOutStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProcessMethodSourceBoxInOutStepService.java index 02f8069..dc8a938 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProcessMethodSourceBoxInOutStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProcessMethodSourceBoxInOutStepService.java @@ -126,17 +126,19 @@ public class MesProcessMethodSourceBoxInOutStepService extends BaseStepService { } //查询条码信息 Map> produceSnMap = produceSnExtService.getProduceSnMap(reqBean.getOrganizeCode(), bindingDetailList.stream().map(MesRecyclablePackageBindingDetail::getProductSn).collect(Collectors.toList())); + String productSnUpper; for (MesRecyclablePackageBindingDetail bindingDetail : bindingDetailList) { + productSnUpper = bindingDetail.getProductSn().toUpperCase(); //外协件 - if (CollectionUtils.isEmpty(produceSnMap) || !produceSnMap.containsKey(bindingDetail.getProductSn().toUpperCase())) { + if (CollectionUtils.isEmpty(produceSnMap) || !produceSnMap.containsKey(productSnUpper)) { for (int i = 0; i < bindingDetail.getQty(); i++) { - productionPsInContextList.add(new MesProductionPsInContext(reqBean.getOrganizeCode(), bindingDetail.getProductSn()).messageSource(equipVariableCollectContextList.iterator().next().getMessageSource())); + productionPsInContextList.add(new MesProductionPsInContext(reqBean.getOrganizeCode(), productSnUpper).messageSource(equipVariableCollectContextList.iterator().next().getMessageSource())); } recyclablePackageContextList.add(new MesProductionRecyclablePackageContext(recyclablePackageBinding,bindingDetail)); //自制件 } else { - recyclablePackageContextList.add(new MesProductionRecyclablePackageContext(recyclablePackageBinding,bindingDetail).setId(produceSnMap.get(bindingDetail.getProductSn()).iterator().next().getId())); - productSnCheckStepService.createProductionPsInContext(reqBean, stepResult, workCell, equipVariableCollectContextList.iterator().next(), produceSnMap.get(bindingDetail.getProductSn()), productionPsInContextList); + recyclablePackageContextList.add(new MesProductionRecyclablePackageContext(recyclablePackageBinding,bindingDetail).setId(produceSnMap.get(productSnUpper).iterator().next().getId())); + productSnCheckStepService.createProductionPsInContext(reqBean, stepResult, workCell, equipVariableCollectContextList.iterator().next(), produceSnMap.get(productSnUpper), productionPsInContextList); } } //流程包含解绑工步[工步参数] diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnCheckStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnCheckStepService.java index fdffa3a..3cc588c 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnCheckStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnCheckStepService.java @@ -115,7 +115,7 @@ public class MesProductSnCheckStepService extends BaseStepService { Map> produceSnMap = produceSnExtService.getProduceSnMap(reqBean.getOrganizeCode(), productSnList); for (MesEquipVariableCollectContext equipVariableCollectContext : equipVariableCollectContextList) { if (null == equipVariableCollectContext || StringUtils.isEmpty(equipVariableCollectContext.getEquipVariableValue())) continue; - if (CollectionUtils.isEmpty(produceSnMap) || !produceSnMap.containsKey(equipVariableCollectContext.getEquipVariableValue().toUpperCase())) + if (CollectionUtils.isEmpty(produceSnMap) || !produceSnMap.containsKey(equipVariableCollectContext.getEquipVariableValue())) productionPsInContextList.add(new MesProductionPsInContext(reqBean.getOrganizeCode(), equipVariableCollectContext.getEquipVariableValue()).messageSource(equipVariableCollectContext.getMessageSource())); else createProductionPsInContext(reqBean, stepResult, workCell, equipVariableCollectContext, produceSnMap.get(equipVariableCollectContext.getEquipVariableValue()), productionPsInContextList); } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnGenerateStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnGenerateStepService.java index ea3d5d8..da4df77 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnGenerateStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnGenerateStepService.java @@ -238,6 +238,9 @@ public class MesProductSnGenerateStepService extends BaseStepService { //未知不同步 produceSnClone.setSystemSyncStatus(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()); + //条码转大写 + produceSnToUpperCase(produceSnClone); + if (StringUtils.isEmpty(produceSnClone.getId())) { produceSnClone.setFid(UUID.randomUUID().toString()); produceSnClone = produceSnExtService.insert(produceSnClone); @@ -273,6 +276,13 @@ public class MesProductSnGenerateStepService extends BaseStepService { } + private void produceSnToUpperCase(MesProduceSn produceSn) { + if (!StringUtils.isEmpty(produceSn.getProductSn())) produceSn.setProductSn(produceSn.getProductSn().toUpperCase()); + if (!StringUtils.isEmpty(produceSn.getCustSn())) produceSn.setCustSn(produceSn.getCustSn().toUpperCase()); + if (!StringUtils.isEmpty(produceSn.getWorkOrderNo())) produceSn.setWorkOrderNo(produceSn.getWorkOrderNo().toUpperCase()); + if (!StringUtils.isEmpty(produceSn.getPartNo())) produceSn.setPartNo(produceSn.getPartNo().toUpperCase()); + } + private GenSerialNoModel generateGenSerialNoModel(StationRequestBean reqBean, StationResultBean resultBean, String ruleCode, MesPart part) { return new GenSerialNoModel(ruleCode).prodLocation(reqBean.getWorkCenterCode()).partNo(part.getPartNo()).partSnParam(part.getPartSnParam()) .putDataMap(MesPart.class.getSimpleName(), part).basicInfo(reqBean.getOrganizeCode(), reqBean.getWorkCenterCode(), reqBean.getWorkCellCode()); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnPrintSortStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnPrintSortStepService.java index efd1393..d1376b2 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnPrintSortStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnPrintSortStepService.java @@ -219,7 +219,7 @@ public class MesProductSnPrintSortStepService extends BaseStepService { // 根据工单号分组 return CollectionUtils.isEmpty(workOrderList) ? null : - workOrderList.stream().collect(Collectors.toMap(MesWorkOrder::getWorkOrderNo, Function.identity(), (x, y) -> y)); + workOrderList.stream().collect(Collectors.toMap(o -> o.getWorkOrderNo().toUpperCase(), Function.identity(), (x, y) -> y)); } //过滤打印配置信息 diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCutCheckStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCutCheckStepService.java index 434b1ba..e572daa 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCutCheckStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCutCheckStepService.java @@ -269,14 +269,14 @@ public class MesWorkOrderCutCheckStepService extends BaseStepService { if (labelTemplate == null) return stepResult.isCompleted(false).msg(String.format("请检查包装定义信息,零件号[%s]对应模板代码[%s]无效!", mesCutSchemeFg.getPartNo(), mesPackingDefine.getPackageTemplate())); - MesPartContext mesPartContext = partDataExtContext.get(mesCutSchemeFg.getPartNo()); + MesPartContext mesPartContext = partDataExtContext.get(mesCutSchemeFg.getPartNo().toUpperCase()); mesPartContext.setCopies(mesPackingDefine.getPrintCopies() == null ? 1 : mesPackingDefine.getPrintCopies()); mesPartContext.setPackageSnRule(mesPackingDefine.getPackageBarcodeRule()); mesPartContext.setPrinter(StringUtils.isEmpty(cutScheme.getPackageSnPrinter()) ? mesPackingDefine.getPrinter() : cutScheme.getPackageSnPrinter()); mesPartContext.setLabelTemplate(StringUtils.isEmpty(cutScheme.getPackageLabelTemplateCode()) ? mesPackingDefine.getPackageTemplate() : cutScheme.getPackageLabelTemplateCode()); mesPartContext.setCustPartNo(customerPart == null ? "" : customerPart.getCustPartNo()); - partDataExtContext.put(mesCutSchemeFg.getPartNo(), mesPartContext); + partDataExtContext.put(mesCutSchemeFg.getPartNo().toUpperCase(), mesPartContext); workOrderCutDetailModelList.add(workOrderCutDetailModel); } @@ -322,11 +322,11 @@ public class MesWorkOrderCutCheckStepService extends BaseStepService { } private static void packProductionPartContextList(MesProductionProcessContext productionProcessContext, List equipVariableCollectContextList, List productionPartContextList, MesCutScheme cutScheme, List mesWorkOrderCutDetailList, List workOrderList) { - Map workOrderCutDetailMap = mesWorkOrderCutDetailList.stream().collect(Collectors.toMap(MesWorkOrderCutDetail::getWorkOrderNo, Function.identity(), (x, y) -> y)); + Map workOrderCutDetailMap = mesWorkOrderCutDetailList.stream().collect(Collectors.toMap(o -> o.getWorkOrderNo().toUpperCase(), Function.identity(), (x, y) -> y)); workOrderList.stream().filter(o -> null != o).forEach(o -> { MesProductionPartContext productionPartContext = new MesProductionPartContext() - .copyPartNo(o, workOrderCutDetailMap.get(o.getWorkOrderNo()).getQty(), workOrderCutDetailMap.get(o.getWorkOrderNo()).getCutWorkOrderNo(), equipVariableCollectContextList.get(0).getMessageSource()) + .copyPartNo(o, workOrderCutDetailMap.get(o.getWorkOrderNo().toUpperCase()).getQty(), workOrderCutDetailMap.get(o.getWorkOrderNo().toUpperCase()).getCutWorkOrderNo(), equipVariableCollectContextList.get(0).getMessageSource()) .isCheck(productionProcessContext.getWorkCell()); productionPartContext.setCutCode(cutScheme.getCutCode()); productionPartContextList.add(productionPartContext); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCutPackageSnSaveStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCutPackageSnSaveStepService.java index 44d637a..454bf12 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCutPackageSnSaveStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCutPackageSnSaveStepService.java @@ -140,7 +140,7 @@ public class MesWorkOrderCutPackageSnSaveStepService extends BaseStepService { Double qty, List workOrderCutPackages, List newWorkOrderCutFgDataContextList) { - MesPartContext mesPartContext = partDataContext.get(workOrderCutDetailModel.getPartNo()); + MesPartContext mesPartContext = partDataContext.get(workOrderCutDetailModel.getPartNo().toUpperCase()); String nowTime = TimeTool.getNowTime(false); MesWorkOrderCutPackage cutPackage = new MesWorkOrderCutPackage(); ConvertBean.serviceModelInitialize(cutPackage, reqBean.getUserInfo()); @@ -182,7 +182,7 @@ public class MesWorkOrderCutPackageSnSaveStepService extends BaseStepService { } catch (ImppBusiException e) { stepExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), e.getErrorDetail()); } catch (Exception e) { - String webMsg = String.format("零件编码[%s]编码规则代码[%s]生成零件条码%s", part.getPartNo(), ruleCode, fsmRouteDataService.handleFsmCfgOrDefault(reqBean, MesPcnEnumUtil.FSM_CFG.FSM_EXCEPTION_MSG.getCode())); + String webMsg = String.format("零件编码[%s]编码规则代码[%s]生成裁片工单包装条码%s", part.getPartNo(), ruleCode, fsmRouteDataService.handleFsmCfgOrDefault(reqBean, MesPcnEnumUtil.FSM_CFG.FSM_EXCEPTION_MSG.getCode())); this.sendMessage(reqBean, resultBean.writeDbLog(MesPcnEnumUtil.WORK_CELL_SCAN_MONITOR_LOG_TYPE.ERROR.getValue()), webMsg, MesPcnEnumUtil.STATION_BUSI_TYPE.MESSAGE, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT); this.cacheException(reqBean, reqBean.getStepName(), webMsg, e, true); foundExThrowNoShowMsg(); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCutProductSnSaveStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCutProductSnSaveStepService.java index 8589872..0c1fa01 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCutProductSnSaveStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCutProductSnSaveStepService.java @@ -13,6 +13,7 @@ import cn.estsh.i3plus.mes.pcn.util.StringUtil; 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.enumutil.MesPcnEnumUtil; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; @@ -73,6 +74,9 @@ public class MesWorkOrderCutProductSnSaveStepService extends BaseStepService { @Autowired private IMesProdShiftRecordService prodShiftRecordService; + @Autowired + private SnowflakeIdMaker snowflakeIdMaker; + @Override public StepResult execute(StationRequestBean reqBean) { @@ -128,7 +132,7 @@ public class MesWorkOrderCutProductSnSaveStepService extends BaseStepService { MesPart part = partDataContext.get(mesProductionPartContext.getPartNo()); - MesProdRuleContext mesProdRuleContext = prodRuleContextMapByOutPartNo.get(part.getPartNo()); + MesProdRuleContext mesProdRuleContext = prodRuleContextMapByOutPartNo.get(mesProductionPartContext.getPartNo()); MesProduceSn produceSn = new MesProduceSn(); ConvertBean.serviceModelInitialize(produceSn, reqBean.getUserInfo()); @@ -139,7 +143,7 @@ public class MesWorkOrderCutProductSnSaveStepService extends BaseStepService { produceSn.setCraftCode(productionProcessContext.getCraftCode()); produceSn.setCustSn(produceSn.getCustSn()); - produceSn.setSerialNumber(doGenerateSerialNo(reqBean, resultBean, MesPcnExtConstWords.DEFAULT_SERIAL_NUMBER_RULE, part)); + produceSn.setSerialNumber(snowflakeIdMaker.nextId() + MesPcnExtConstWords.EMPTY); produceSn.setQty(mesProductionPartContext.getCutQty()); produceSn.setWorkOrderNo(mesProductionPartContext.getWorkOrderNo()); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/method/MesPartDataMapSaveStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/method/MesPartDataMapSaveStepService.java index c6bb540..3b5abf9 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/method/MesPartDataMapSaveStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/method/MesPartDataMapSaveStepService.java @@ -23,6 +23,7 @@ import org.springframework.util.StringUtils; import java.util.*; import java.util.concurrent.atomic.AtomicReference; import java.util.stream.Collectors; +import java.util.stream.Stream; /** * @Description : 缓存零件通用工步方法 @@ -63,6 +64,8 @@ public class MesPartDataMapSaveStepService extends BaseStepService { if (!isBackError) stepExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), stepResult.getMsg()); } + partNoList = partNoList.stream().map(o -> o.toUpperCase()).collect(Collectors.toList()); + //从上下文中取出零件信息集合 Map partDataMap = productionDispatchContextStepService.getPartDataContext(reqBean, isExt); @@ -140,6 +143,7 @@ public class MesPartDataMapSaveStepService extends BaseStepService { } private MesProductionPartContext getProductionPartContextByPartNo(StationRequestBean reqBean, String partNo, MesProductionProcessContext productionProcessContext, Map partDataMap) { + partNo = partNo.toUpperCase(); if (!partNo.equals(productionProcessContext.getFinishCode())) return new MesProductionPartContext().copyPartNo(reqBean.getOrganizeCode(), partNo, partDataMap.get(partNo).getPartName()); return new MesProductionPartContext().isFinishCode(); } @@ -169,8 +173,8 @@ public class MesPartDataMapSaveStepService extends BaseStepService { private Map getPartMap(List partList) { partList = CollectionUtils.isEmpty(partList) ? null : - partList.stream().distinct().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(MesPart::getPartNo))), ArrayList::new)); - return CollectionUtils.isEmpty(partList) ? null : partList.stream().filter(o -> null != o).collect(Collectors.toMap(MesPart::getPartNo, o -> new MesPartContext(o))); + partList.stream().distinct().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(o -> o.getPartNo().toUpperCase()))), ArrayList::new)); + return CollectionUtils.isEmpty(partList) ? null : partList.stream().filter(o -> null != o).collect(Collectors.toMap(o -> o.getPartNo().toUpperCase(), o -> new MesPartContext(o))); } } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/util/BarCodeUtils.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/util/BarCodeUtils.java index d3ac60f..2218874 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/util/BarCodeUtils.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/util/BarCodeUtils.java @@ -112,6 +112,8 @@ public class BarCodeUtils { return os; } + //不过滤":",tesla零件号带冒号 + //不过滤[)>字符 public static String removePatternSpecialCharacter(String barCode) { if (StringUtils.isEmpty(barCode)) return MesPcnExtConstWords.EMPTY; return StringUtils.removePattern(barCode, "[^A-Z^a-z0-9_^\\s^\\-^/^\\.^\\[^\\)^\\>^\\:]"); diff --git a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesEquipVariableCollectContext.java b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesEquipVariableCollectContext.java index 865971c..bb15eee 100644 --- a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesEquipVariableCollectContext.java +++ b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesEquipVariableCollectContext.java @@ -131,8 +131,9 @@ public class MesEquipVariableCollectContext implements Serializable { return this; } - public MesEquipVariableCollectContext trimValue() { + public MesEquipVariableCollectContext trimValue(Boolean isUpperCase) { if (!StringUtils.isEmpty(this.equipVariableValue)) this.equipVariableValue = this.equipVariableValue.trim(); + if (!StringUtils.isEmpty(this.equipVariableValue) && isUpperCase) this.equipVariableValue = this.equipVariableValue.toUpperCase(); return this; } diff --git a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProdRuleContext.java b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProdRuleContext.java index b7c9d3b..1c584a3 100644 --- a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProdRuleContext.java +++ b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProdRuleContext.java @@ -134,6 +134,8 @@ public class MesProdRuleContext implements Serializable { public MesProdRuleContext copy(MesProdRuleNosortCfg prodRuleNosortCfg) { BeanUtils.copyProperties(prodRuleNosortCfg, this); this.pid = prodRuleNosortCfg.getId(); + if (!StringUtils.isEmpty(this.inPartNo)) this.inPartNo = this.inPartNo.toUpperCase(); + if (!StringUtils.isEmpty(this.outPartNo)) this.outPartNo = this.outPartNo.toUpperCase(); return this; } diff --git a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProductionPartContext.java b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProductionPartContext.java index c197eb5..00137fb 100644 --- a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProductionPartContext.java +++ b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProductionPartContext.java @@ -139,13 +139,14 @@ public class MesProductionPartContext implements Serializable { //根据一模多腔赋值 public MesProductionPartContext copyMouldMultiCavity(MesMouldMultiCavity mouldMultiCavity) { BeanUtils.copyProperties(mouldMultiCavity, this, MesPcnExtConstWords.ID); + this.partNo = this.partNo.toUpperCase(); return messageSource(MesExtEnumUtil.CELL_MESSAGE_SOURCE.READ.getValue()); } //根据零件信息赋值 public MesProductionPartContext copyPartNo(String organizeCode, String partNo, String partName) { this.organizeCode = organizeCode; - this.partNo = partNo; + this.partNo = partNo.toUpperCase(); this.partName = partName; return messageSource(MesExtEnumUtil.CELL_MESSAGE_SOURCE.READ.getValue()); } @@ -155,6 +156,8 @@ public class MesProductionPartContext implements Serializable { if (null != workOrder) { BeanUtils.copyProperties(workOrder, this); if (StringUtils.isEmpty(this.completeQty)) this.completeQty = new Double(0); + this.workOrderNo = this.workOrderNo.toUpperCase(); + this.partNo = this.partNo.toUpperCase(); } else this.isFinishCode = CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue(); return messageSource(messageSource); } @@ -164,8 +167,10 @@ public class MesProductionPartContext implements Serializable { if (null != workOrder) { BeanUtils.copyProperties(workOrder, this); if (StringUtils.isEmpty(this.completeQty)) this.completeQty = new Double(0); - this.setCutQty(cutQty); - this.setCutWorkOrderNo(cutWorkOrderNo); + this.workOrderNo = this.workOrderNo.toUpperCase(); + this.partNo = this.partNo.toUpperCase(); + this.cutWorkOrderNo = cutWorkOrderNo.toUpperCase(); + this.cutQty = cutQty; } else this.isFinishCode = CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue(); return messageSource(messageSource); } diff --git a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProductionPsInContext.java b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProductionPsInContext.java index 1ce12f0..03e5dc7 100644 --- a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProductionPsInContext.java +++ b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProductionPsInContext.java @@ -107,6 +107,10 @@ public class MesProductionPsInContext implements Serializable { public MesProductionPsInContext(MesProduceSn produceSn) { BeanUtils.copyProperties(produceSn, this); + if (!StringUtils.isEmpty(this.productSn)) this.productSn = this.productSn.toUpperCase(); + if (!StringUtils.isEmpty(this.custSn)) this.custSn = this.custSn.toUpperCase(); + if (!StringUtils.isEmpty(this.workOrderNo)) this.workOrderNo = this.workOrderNo.toUpperCase(); + if (!StringUtils.isEmpty(this.partNo)) this.partNo = this.partNo.toUpperCase(); } public MesProductionPsInContext foreignKey(Integer foreignKey) { diff --git a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesScanMonitorDetailContext.java b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesScanMonitorDetailContext.java deleted file mode 100644 index 21dd827..0000000 --- a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesScanMonitorDetailContext.java +++ /dev/null @@ -1,49 +0,0 @@ -package cn.estsh.i3plus.ext.mes.pcn.pojo.context; - -import io.swagger.annotations.ApiParam; -import lombok.Data; - -import java.io.Serializable; - -/** - * 生产过程上下文对象-开模记录明细信息 - */ -@Data -public class MesScanMonitorDetailContext implements Serializable { - - private static final long serialVersionUID = -7678933218854960945L; - - @ApiParam("扫描/读取信息") - private String scanInfo; - - @ApiParam("日志类型") - private Integer logType; - - @ApiParam("日志内容") - private String message; - - @ApiParam("信息类型") - private Integer messageType; - - public MesScanMonitorDetailContext() {} - - public MesScanMonitorDetailContext(Integer logType) { - this.logType = logType; - } - - public MesScanMonitorDetailContext scanInfo(String scanInfo) { - this.scanInfo = scanInfo; - return this; - } - - public MesScanMonitorDetailContext message(String message) { - this.message = message; - return this; - } - - public MesScanMonitorDetailContext messageType(Integer messageType) { - this.messageType = messageType; - return this; - } - -} diff --git a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java index 706d210..d031641 100644 --- a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java +++ b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java @@ -619,9 +619,6 @@ public class MesPcnExtConstWords { // 分表配置 public static final String MES_SHARDING_TABLES_OBJECT_CFG = "MES_SHARDING_TABLES_OBJECT_CFG"; - //过程条码默认生成规则 - public static final String DEFAULT_SERIAL_NUMBER_RULE = "DEFAULT_SERIAL_NUMBER_RULE"; - // 定制页面名称 public static final String CUSTOM_PAGE_NAME = "CUSTOM_PAGE_NAME";