From 713fab421feec1091855552520124a72491fd380 Mon Sep 17 00:00:00 2001 From: "jhforever.wang@estsh.com" Date: Mon, 14 Apr 2025 10:15:18 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=2046319=20PCN=EF=BC=9A=E8=A3=85=E9=85=8D?= =?UTF-8?q?=E4=BB=B6=E6=97=B6=E6=95=88=E6=80=A7=E8=A7=84=E5=88=99=E9=9C=80?= =?UTF-8?q?=E8=A6=81=E6=94=AF=E6=8C=81=E5=A4=A7=E5=B0=8F=E5=86=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../rulematch/MesTimeEfficientCfgMatchService.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/MesTimeEfficientCfgMatchService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/MesTimeEfficientCfgMatchService.java index a0d855e..716e291 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/MesTimeEfficientCfgMatchService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/MesTimeEfficientCfgMatchService.java @@ -92,11 +92,17 @@ public class MesTimeEfficientCfgMatchService implements IMesTimeEfficientCfgMatc List filterList; //时效性规则 零件号不为空或者为空 过滤数据 if (!StringUtils.isEmpty(timeliness.getPartNo()) && !StringUtils.isEmpty(timeliness.getCraftCode())) - filterList = productionRecordList.stream().filter(o -> o.getPartNo().equals(timeliness.getPartNo()) && o.getCraftCode().equals(timeliness.getCraftCode())).sorted(Comparator.comparing(MesProductionRecord::getCreateDatetime).reversed()).collect(Collectors.toList()); + filterList = productionRecordList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getPartNo()) && !StringUtils.isEmpty(o.getCraftCode()) && !StringUtils.isEmpty(o.getCreateDatetime()) + && o.getPartNo().toUpperCase().equals(timeliness.getPartNo().toUpperCase()) && o.getCraftCode().toUpperCase().equals(timeliness.getCraftCode().toUpperCase()))) + .sorted(Comparator.comparing(MesProductionRecord::getCreateDatetime).reversed()).collect(Collectors.toList()); else if (!StringUtils.isEmpty(timeliness.getCraftCode())) - filterList = productionRecordList.stream().filter(item -> item.getCraftCode().equals(timeliness.getCraftCode())).sorted(Comparator.comparing(MesProductionRecord::getCreateDatetime).reversed()).collect(Collectors.toList()); + filterList = productionRecordList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getCraftCode()) && !StringUtils.isEmpty(o.getCreateDatetime()) + && o.getCraftCode().toUpperCase().equals(timeliness.getCraftCode().toUpperCase()))) + .sorted(Comparator.comparing(MesProductionRecord::getCreateDatetime).reversed()).collect(Collectors.toList()); else - filterList = produceSnList.stream().filter(item -> item.getPartNo().equals(timeliness.getPartNo())).sorted(Comparator.comparing(MesProduceSn::getCreateDatetime).reversed()).collect(Collectors.toList()); + filterList = produceSnList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getPartNo()) && !StringUtils.isEmpty(o.getCreateDatetime()) + && o.getPartNo().toUpperCase().equals(timeliness.getPartNo().toUpperCase()))) + .sorted(Comparator.comparing(MesProduceSn::getCreateDatetime).reversed()).collect(Collectors.toList()); if (CollectionUtils.isEmpty(filterList)) return backResultMap(resultMap, String.format("零件条码[%s]时效性零件号[%s]工艺[%s]验证失败,未查询到%s!", productSn, timeliness.getPartNo(), !StringUtils.isEmpty(timeliness.getCraftCode()) ? timeliness.getCraftCode() : MesPcnExtConstWords.EMPTY, !StringUtils.isEmpty(timeliness.getCraftCode()) ? "加工记录信息" : "零件条码信息")); From 185807b9101fc33a1063bcdb74433ae050a6fbfd Mon Sep 17 00:00:00 2001 From: "jhforever.wang@estsh.com" Date: Mon, 14 Apr 2025 13:13:21 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E8=B0=83=E6=95=B4=E9=83=A8=E5=88=86?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=B6=89=E5=8F=8A=E5=88=B0=E5=A4=A7=E5=B0=8F?= =?UTF-8?q?=E5=86=99=E6=AF=94=E5=AF=B9=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../serviceimpl/busi/MesAssemblyExtService.java | 2 +- .../MesRecyclablePackageBindingServiceImpl.java | 2 +- .../MesNumberRuleMatchDispatchService.java | 2 +- .../rulematch/MesNumberRuleMatchSnService.java | 2 +- .../MesNumberRuleMatchSortDoubleCheckService.java | 4 ++-- .../step/MesAssemblyGeneratePartNoStepService.java | 4 ++-- ...MesAssemblyMatchNosortRetrodictStepService.java | 4 ++-- .../step/MesAssemblyShowNosortStepService.java | 14 ++++++------- .../MesProdCraftRouteCheckNosortStepService.java | 23 ++++++++++++---------- .../MesProdCraftRouteCheckSortStepService.java | 16 +++++++-------- .../step/MesProductSnPrintNosortStepService.java | 6 +++--- .../MesProductionRecordGenerateStepService.java | 2 +- ...MesWorkOrderCutMatchingProdRuleStepService.java | 4 ++-- .../MesProductionCustomContextStepService.java | 6 +++--- .../MesProductionProcessContextStepService.java | 4 ++-- .../MesWorkOrderCheckCompleteQtyStepService.java | 4 ++-- .../pojo/context/MesProductionAssemblyContext.java | 4 ++-- 17 files changed, 53 insertions(+), 50 deletions(-) diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesAssemblyExtService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesAssemblyExtService.java index bbdfb4b..788ff66 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesAssemblyExtService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesAssemblyExtService.java @@ -298,7 +298,7 @@ public class MesAssemblyExtService implements IMesAssemblyExtService { @Override public String getProdRuleIgnoreCfg(Map> prodRuleIgnoreCfgMap, Long id, String equipmentCode, String dataSorce) { if (CollectionUtils.isEmpty(prodRuleIgnoreCfgMap) || StringUtils.isEmpty(id) || StringUtils.isEmpty(dataSorce)) return null; - String key = new StringJoiner(MesPcnExtConstWords.AND).add(dataSorce).add(equipmentCode).add(id.toString()).toString(); + String key = new StringJoiner(MesPcnExtConstWords.AND).add(dataSorce).add(equipmentCode.toUpperCase()).add(id.toString()).toString(); return prodRuleIgnoreCfgMap.containsKey(key) ? JSONObject.toJSONString(prodRuleIgnoreCfgMap.get(key)) : null; } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/recyclablepackage/MesRecyclablePackageBindingServiceImpl.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/recyclablepackage/MesRecyclablePackageBindingServiceImpl.java index c259f11..ada2e95 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/recyclablepackage/MesRecyclablePackageBindingServiceImpl.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/recyclablepackage/MesRecyclablePackageBindingServiceImpl.java @@ -235,7 +235,7 @@ public class MesRecyclablePackageBindingServiceImpl implements IMesRecyclablePac } private MesRecyclablePackagePart getMesRecyclablePackagePart(List packagePartList, String packageTypeCode, String partNo) { - Optional packagePart = packagePartList.stream().filter(t -> t.getPartNo().equals(partNo)).findFirst(); + Optional packagePart = packagePartList.stream().filter(t -> t.getPartNo().toUpperCase().equals(partNo.toUpperCase())).findFirst(); if (!packagePart.isPresent()) { MesPcnException.throwMesBusiException("回用包装类型【%s】零件【%s】数据不存在", packageTypeCode, partNo); } 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 280bd7a..51e5238 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 @@ -138,7 +138,7 @@ public class MesNumberRuleMatchDispatchService implements IMesNumberRuleMatchDis if (null == productionAssemblyContext) continue; - if (!StringUtils.isEmpty(productionAssemblyContext.getAssemblySn()) && productionAssemblyContext.getAssemblySn().equals(assemblySn)) return false; + if (!StringUtils.isEmpty(productionAssemblyContext.getAssemblySn()) && productionAssemblyContext.getAssemblySn().toUpperCase().equals(assemblySn.toUpperCase())) return false; } 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 ee7ed82..3cf5e34 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 @@ -77,7 +77,7 @@ public class MesNumberRuleMatchSnService implements IMesNumberRuleMatchDispatchS return result; } - if (!context.getAssemblyPartNo().equals(produceSn.getPartNo())) { + if (!context.getAssemblyPartNo().toUpperCase().equals(produceSn.getPartNo().toUpperCase())) { result.put(MesPcnExtConstWords.MESSAGE, String.format("零件条码[%s]信息零件号[%s]!", sn, produceSn.getPartNo())); return result; } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/MesNumberRuleMatchSortDoubleCheckService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/MesNumberRuleMatchSortDoubleCheckService.java index 7d677d5..7f70833 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/MesNumberRuleMatchSortDoubleCheckService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/rulematch/MesNumberRuleMatchSortDoubleCheckService.java @@ -88,7 +88,7 @@ public class MesNumberRuleMatchSortDoubleCheckService implements IMesNumberRuleM return result; } - if (!context.getAssemblyPartNo().equals(produceSn.getPartNo())) { + if (!context.getAssemblyPartNo().toUpperCase().equals(produceSn.getPartNo().toUpperCase())) { result.put(MesPcnExtConstWords.MESSAGE, String.format("零件条码[%s]信息零件号[%s]!", sn, produceSn.getPartNo())); return result; } @@ -113,7 +113,7 @@ public class MesNumberRuleMatchSortDoubleCheckService implements IMesNumberRuleM Optional optional = CollectionUtils.isEmpty(productionAssemblyList) ? null : productionAssemblyList.stream().filter(o -> (null != o && o.getAssemblyStatus().compareTo(MesExtEnumUtil.ASSEMBLY_STATUS.ASSEMBLY_STATUS_10.getValue()) == 0)).findFirst(); - if (null != optional && optional.isPresent() && !optional.get().getProductSn().equals(context.getWorkOrderNo())) { + if (null != optional && optional.isPresent() && !optional.get().getProductSn().toUpperCase().equals(context.getWorkOrderNo().toUpperCase())) { result.put(MesPcnExtConstWords.MESSAGE, String.format("装配件条码[%s]已被加工单[%s]装配!", sn, optional.get().getProductSn())); return result; } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyGeneratePartNoStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyGeneratePartNoStepService.java index 33be69d..adce1fd 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyGeneratePartNoStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyGeneratePartNoStepService.java @@ -211,7 +211,7 @@ public class MesAssemblyGeneratePartNoStepService extends BaseStepService { List assemblyNosortCfgList = productionProcessContextStepService.findAssemblyNosortCfgList(reqBean); //获取设备的装配件规则清单 - if (CollectionUtils.isEmpty(assemblyNosortCfgList) || !assemblyNosortCfgList.get(0).getEquipmentCode().equals(cellEquipContext.getEquipmentCode())) { + if (CollectionUtils.isEmpty(assemblyNosortCfgList) || !assemblyNosortCfgList.get(0).getEquipmentCode().toUpperCase().equals(cellEquipContext.getEquipmentCode().toUpperCase())) { assemblyNosortCfgList = assemblyExtService.getProductionAssemblyNosortContextList(reqBean.getOrganizeCode(), cellEquipContext.getEquipmentCode(), prodRuleIgnoreCfgMap); if (CollectionUtils.isEmpty(assemblyNosortCfgList)) @@ -404,7 +404,7 @@ public class MesAssemblyGeneratePartNoStepService extends BaseStepService { Map result = new HashMap<>(); result.put(MesPcnExtConstWords.RESULT, true); //根据进料零件号匹配产品加工规则 - if (!StringUtils.isEmpty(productionPsInContext.getPartNo()) && (StringUtils.isEmpty(prodRuleContext.getInPartNo()) || !prodRuleContext.getInPartNo().equals(productionPsInContext.getPartNo()))) { + if (!StringUtils.isEmpty(productionPsInContext.getPartNo()) && (StringUtils.isEmpty(prodRuleContext.getInPartNo()) || !prodRuleContext.getInPartNo().toUpperCase().equals(productionPsInContext.getPartNo().toUpperCase()))) { result.put(MesPcnExtConstWords.RESULT, false); if (StringUtils.isEmpty(prodRuleContext.getInPartNo())) result.put(MesPcnExtConstWords.MESSAGE, String.format("条码[%s]零件号[%s]匹配的加工规则ID[%s]信息未维护进料零件号!", productionPsInContext.getProductSn(), productionPsInContext.getPartNo(), prodRuleContext.getPid())); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyMatchNosortRetrodictStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyMatchNosortRetrodictStepService.java index 1758a2b..d8d0eea 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyMatchNosortRetrodictStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyMatchNosortRetrodictStepService.java @@ -205,7 +205,7 @@ public class MesAssemblyMatchNosortRetrodictStepService extends BaseStepService List assemblyNosortCfgList = productionProcessContextStepService.findAssemblyNosortCfgList(reqBean); //获取设备的装配件规则清单 - if (CollectionUtils.isEmpty(assemblyNosortCfgList) || !assemblyNosortCfgList.get(0).getEquipmentCode().equals(cellEquipContext.getEquipmentCode())) { + if (CollectionUtils.isEmpty(assemblyNosortCfgList) || !assemblyNosortCfgList.get(0).getEquipmentCode().toUpperCase().equals(cellEquipContext.getEquipmentCode().toUpperCase())) { assemblyNosortCfgList = assemblyExtService.getProductionAssemblyNosortContextList(reqBean.getOrganizeCode(), cellEquipContext.getEquipmentCode(), prodRuleIgnoreCfgMap); if (CollectionUtils.isEmpty(assemblyNosortCfgList)) @@ -403,7 +403,7 @@ public class MesAssemblyMatchNosortRetrodictStepService extends BaseStepService Map result = new HashMap<>(); result.put(MesPcnExtConstWords.RESULT, true); //根据进料零件号匹配产品加工规则 - if (!StringUtils.isEmpty(productionPsInContext.getPartNo()) && (StringUtils.isEmpty(prodRuleContext.getInPartNo()) || !prodRuleContext.getInPartNo().equals(productionPsInContext.getPartNo()))) { + if (!StringUtils.isEmpty(productionPsInContext.getPartNo()) && (StringUtils.isEmpty(prodRuleContext.getInPartNo()) || !prodRuleContext.getInPartNo().toUpperCase().equals(productionPsInContext.getPartNo().toUpperCase()))) { result.put(MesPcnExtConstWords.RESULT, false); if (StringUtils.isEmpty(prodRuleContext.getInPartNo())) result.put(MesPcnExtConstWords.MESSAGE, String.format("条码[%s]零件号[%s]匹配的加工规则ID[%s]信息未维护进料零件号!", productionPsInContext.getProductSn(), productionPsInContext.getPartNo(), prodRuleContext.getPid())); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyShowNosortStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyShowNosortStepService.java index 45a37ec..5701b3a 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyShowNosortStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyShowNosortStepService.java @@ -181,7 +181,7 @@ public class MesAssemblyShowNosortStepService extends BaseStepService { //foreignKey有值代表已经匹配过产品加工规则 if (null == productionPartContext || productionPartContext.getIsFinishCode().compareTo(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()) == 0 || !StringUtils.isEmpty(productionPartContext.getForeignKey())) continue; - List filterList = !CollectionUtils.isEmpty(prodRuleNosortCfgMap) ? prodRuleNosortCfgMap.get(productionPartContext.getPartNo()) : null; + List filterList = !CollectionUtils.isEmpty(prodRuleNosortCfgMap) ? prodRuleNosortCfgMap.get(productionPartContext.getPartNo().toUpperCase()) : null; if (CollectionUtils.isEmpty(filterList) || filterList.size() > 1) { productionPartContextList.forEach(o -> o.busiCheckToDelete()); @@ -267,7 +267,7 @@ public class MesAssemblyShowNosortStepService extends BaseStepService { //验证条码是否刚在当前工位下线 private Boolean checkIsOffline(MesProductionPsInContext productionPsInContext, StationRequestBean reqBean) { if (StringUtils.isEmpty(productionPsInContext.getWorkCenterCode()) || StringUtils.isEmpty(productionPsInContext.getWorkCellCode()) || StringUtils.isEmpty(productionPsInContext.getProcessCode())) return false; - if (!productionPsInContext.getWorkCenterCode().equals(reqBean.getWorkCenterCode()) || !productionPsInContext.getWorkCellCode().equals(reqBean.getWorkCellCode()) || !productionPsInContext.getProcessCode().equals(reqBean.getProcessCode())) return false; + if (!productionPsInContext.getWorkCenterCode().toUpperCase().equals(reqBean.getWorkCenterCode().toUpperCase()) || !productionPsInContext.getWorkCellCode().toUpperCase().equals(reqBean.getWorkCellCode().toUpperCase()) || !productionPsInContext.getProcessCode().toUpperCase().equals(reqBean.getProcessCode().toUpperCase())) return false; return true; } @@ -301,7 +301,7 @@ public class MesAssemblyShowNosortStepService extends BaseStepService { if (null == productionPartContext || productionPartContext.getIsFinishCode().compareTo(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()) == 0 || !StringUtils.isEmpty(productionPartContext.getForeignKey())) continue; //获取匹配产出零件的所有加工规则 - List outPartNoProdRuleList = !CollectionUtils.isEmpty(prodRuleNosortCfgMap) ? prodRuleNosortCfgMap.get(productionPartContext.getPartNo()) : null; + List outPartNoProdRuleList = !CollectionUtils.isEmpty(prodRuleNosortCfgMap) ? prodRuleNosortCfgMap.get(productionPartContext.getPartNo().toUpperCase()) : null; MesProductionPsInContext productSn = null; @@ -323,10 +323,10 @@ public class MesAssemblyShowNosortStepService extends BaseStepService { if (CollectionUtils.isEmpty(innerfilterList) || innerfilterList.size() > 1) continue; //验证进出一致 - if (!StringUtils.isEmpty(productionPsInContext.getPartNo()) && productionPsInContext.getPartNo().equals(productionPartContext.getPartNo())) { + if (!StringUtils.isEmpty(productionPsInContext.getPartNo()) && productionPsInContext.getPartNo().toUpperCase().equals(productionPartContext.getPartNo().toUpperCase())) { //进料工单必须与产出工单一致 - if (!StringUtils.isEmpty(productionPartContext.getWorkOrderNo()) && !StringUtils.isEmpty(productionPsInContext.getWorkOrderNo()) && !productionPsInContext.getWorkOrderNo().equals(productionPartContext.getWorkOrderNo())) { + if (!StringUtils.isEmpty(productionPartContext.getWorkOrderNo()) && !StringUtils.isEmpty(productionPsInContext.getWorkOrderNo()) && !productionPsInContext.getWorkOrderNo().toUpperCase().equals(productionPartContext.getWorkOrderNo().toUpperCase())) { if (productionPsInContext.getMessageSource().compareTo(MesExtEnumUtil.CELL_MESSAGE_SOURCE.SCAN.getValue()) == 0) productionPsInContext.busiCheckToDelete(); else productionPsInContextList.forEach(o -> o.busiCheckToDelete()); return stepNonCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog().scanInfo(productionPsInContext.getProductSn()), stepResult, String.format("主条码[%s]零件号[%s]关联的加工单[%s]与产出零件[%s]关联的加工单[%s]不一致!", @@ -399,7 +399,7 @@ public class MesAssemblyShowNosortStepService extends BaseStepService { //搜集进料零件号匹配的产品加工规则 private List filterProdRuleNosortCfgList(List prodRuleNosortCfgList, String partNo) { - return CollectionUtils.isEmpty(prodRuleNosortCfgList) ? null : prodRuleNosortCfgList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getInPartNo()) && o.getInPartNo().equals(partNo))).collect(Collectors.toList()); + return CollectionUtils.isEmpty(prodRuleNosortCfgList) ? null : prodRuleNosortCfgList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getInPartNo()) && o.getInPartNo().toUpperCase().equals(partNo.toUpperCase()))).collect(Collectors.toList()); } //搜集进料零件规则有值的产品加工规则 @@ -409,7 +409,7 @@ public class MesAssemblyShowNosortStepService extends BaseStepService { //根据产出零件分组数据 private Map> groupProdRuleNosortCfgList(List prodRuleNosortCfgList) { - return CollectionUtils.isEmpty(prodRuleNosortCfgList) ? null : prodRuleNosortCfgList.stream().filter(o -> null != o).collect(Collectors.groupingBy(MesProdRuleNosortCfg::getOutPartNo)); + return CollectionUtils.isEmpty(prodRuleNosortCfgList) ? null : prodRuleNosortCfgList.stream().filter(o -> null != o).collect(Collectors.groupingBy(o -> o.getOutPartNo().toUpperCase())); } //显示或者匹配装配件信息 公共调用 diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProdCraftRouteCheckNosortStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProdCraftRouteCheckNosortStepService.java index 3860a7e..be03d5b 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProdCraftRouteCheckNosortStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProdCraftRouteCheckNosortStepService.java @@ -169,18 +169,18 @@ public class MesProdCraftRouteCheckNosortStepService extends MesProdCraftRouteCh String message = StringUtils.isEmpty(stepResult.getMsg()) ? MesPcnExtConstWords.EMPTY : stepResult.getMsg() + MesPcnExtConstWords.SEMICOLON; //判断主条码的当前工艺是否包含在产品工艺路线中 - Optional optionalPs = StringUtils.isEmpty(productionPsInContext.getCraftCode()) ? null : craftRouteDetailList.stream().filter(o -> (null != o && o.getCraftCode().equals(productionPsInContext.getCraftCode()))).findFirst(); + Optional optionalPs = StringUtils.isEmpty(productionPsInContext.getCraftCode()) ? null : craftRouteDetailList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getCraftCode()) && o.getCraftCode().toUpperCase().equals(productionPsInContext.getCraftCode().toUpperCase()))).findFirst(); if (!StringUtils.isEmpty(productionPsInContext.getCraftCode()) && (null == optionalPs || !optionalPs.isPresent())) return stepResult.isCompleted(false).msg(String.format("%s%s[%s]对应的工艺代码[%s]不匹配零件[%s]对应的产品工艺路线[%s]", message, suffix, productionPsInContext.getProductSn(), productionPsInContext.getCraftCode(), productionPsInContext.getPartNo(), craftRouteDetailList.get(0).getCraftRouteCode())).isCompleted(); //验证工艺对应工序最多经过1个: 当前主条码的工艺字段有值, 对应的工艺路线明细信息设置了【true】, 当前工位的工艺与主条码的当前工艺相同, 当前工位的工序与主条码的当前工序不相同 - if (null != optionalPs && optionalPs.isPresent() && optionalPs.get().getAtMostProcess().compareTo(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()) == 0 && productionProcessContext.getCraftCode().equals(productionPsInContext.getCraftCode()) && !reqBean.getProcessCode().equals(productionPsInContext.getProcessCode())) + if (null != optionalPs && optionalPs.isPresent() && optionalPs.get().getAtMostProcess().compareTo(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()) == 0 && productionProcessContext.getCraftCode().toUpperCase().equals(productionPsInContext.getCraftCode().toUpperCase()) && !reqBean.getProcessCode().toUpperCase().equals(productionPsInContext.getProcessCode().toUpperCase())) return stepResult.isCompleted(false).msg(String.format("%s%s[%s]产品工艺路线[%s]相同工艺对应工序最多经过1个,上道工艺[%s]当前工位工艺[%s]", message, suffix, productionPsInContext.getProductSn(), craftRouteDetailList.get(0).getCraftRouteCode(), productionPsInContext.getCraftCode(), productionProcessContext.getCraftCode())).isCompleted(); //判断条码是否在当前已完成的工序工位上重做 - Boolean isPsProcessRepeat = null != optionalPs && optionalPs.isPresent() && reqBean.getProcessCode().equals(productionPsInContext.getProcessCode()); + Boolean isPsProcessRepeat = null != optionalPs && optionalPs.isPresent() && reqBean.getProcessCode().toUpperCase().equals(productionPsInContext.getProcessCode().toUpperCase()); List productionRecordList = null; //验证已完成工序最大重复次数: 如果当前工位的工序与主条码的当前工序一致的情况下, 根据条码+物料+工序+工艺查询加工记录, 判断加工记录条数 if (isPsProcessRepeat) { @@ -188,7 +188,10 @@ public class MesProdCraftRouteCheckNosortStepService extends MesProdCraftRouteCh productionRecordList = productionRecordService.findProductionRecordList(reqBean.getOrganizeCode(), productionPsInContext.getProductSn()); //条码+物料+工序+工艺搜集加工记录 List filterList = CollectionUtils.isEmpty(productionRecordList) ? null : - productionRecordList.stream().filter(o -> (null != o && o.getPartNo().equals(productionPsInContext.getPartNo()) && o.getProcessCode().equals(reqBean.getProcessCode()) && o.getCraftCode().equals(productionProcessContext.getCraftCode()))).collect(Collectors.toList()); + productionRecordList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getPartNo()) && !StringUtils.isEmpty(o.getProcessCode()) && !StringUtils.isEmpty(o.getCraftCode()) + && o.getPartNo().toUpperCase().equals(productionPsInContext.getPartNo().toUpperCase()) + && o.getProcessCode().toUpperCase().equals(reqBean.getProcessCode().toUpperCase()) + && o.getCraftCode().toUpperCase().equals(productionProcessContext.getCraftCode().toUpperCase()))).collect(Collectors.toList()); if (!CollectionUtils.isEmpty(filterList) && filterList.size() >= ((!StringUtils.isEmpty(optionalPs.get().getRepeatTimes()) && optionalPs.get().getRepeatTimes().compareTo(MesPcnExtConstWords.ZERO) > 0) ? optionalPs.get().getRepeatTimes() : MesPcnExtConstWords.ONE)) return stepResult.isCompleted(false).msg(String.format("%s%s[%s]当前工序[%s]产品工艺路线[%s]已完成工序最大重复次数[%s]", @@ -196,7 +199,7 @@ public class MesProdCraftRouteCheckNosortStepService extends MesProdCraftRouteCh } //判断当前工位的工序对应的工艺是否包含在产品工艺路线中 - Optional optionalCell = craftRouteDetailList.stream().filter(o -> (null != o && o.getCraftCode().equals(productionProcessContext.getCraftCode()))).findFirst(); + Optional optionalCell = craftRouteDetailList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getCraftCode()) && o.getCraftCode().toUpperCase().equals(productionProcessContext.getCraftCode().toUpperCase()))).findFirst(); //根据当前工位对应的工艺 获取 所有前道工艺, 如果当前工位的工序对应工艺不在工艺路线明细内, 则默认所有明细均为所有前道工艺, 否则搜集当前工位工序对应工艺前面的所有前道工艺 List beforeCellCraftList; if (null == optionalCell || !optionalCell.isPresent()) beforeCellCraftList = craftRouteDetailList; @@ -228,7 +231,7 @@ public class MesProdCraftRouteCheckNosortStepService extends MesProdCraftRouteCh //当主条码存在已做工序 且 与当前工位的工序不一致时, 判断当前工位的工序是否已经存在加工记录 if (!CollectionUtils.isEmpty(productionRecordList) && !StringUtils.isEmpty(productionPsInContext.getProcessCode()) - && !reqBean.getProcessCode().equals(productionPsInContext.getProcessCode()) + && !reqBean.getProcessCode().toUpperCase().equals(productionPsInContext.getProcessCode().toUpperCase()) && isExistProductionRecord(productionRecordMap2Process(productionRecordList), reqBean.getProcessCode())) { return stepResult.isCompleted(false).msg(String.format("%s%s[%s]已经过当前工序[%s]", message, suffix, productionPsInContext.getProductSn(), reqBean.getProcessCode())).isCompleted(); } @@ -238,15 +241,15 @@ public class MesProdCraftRouteCheckNosortStepService extends MesProdCraftRouteCh } private Map> productionRecordMap2Craft(List productionRecordList) { - return CollectionUtils.isEmpty(productionRecordList) ? null : productionRecordList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getCraftCode()))).collect(Collectors.groupingBy(MesProductionRecord::getCraftCode)); + return CollectionUtils.isEmpty(productionRecordList) ? null : productionRecordList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getCraftCode()))).collect(Collectors.groupingBy(o -> o.getCraftCode().toUpperCase())); } private Map> productionRecordMap2Process(List productionRecordList) { - return CollectionUtils.isEmpty(productionRecordList) ? null : productionRecordList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getProcessCode()))).collect(Collectors.groupingBy(MesProductionRecord::getProcessCode)); + return CollectionUtils.isEmpty(productionRecordList) ? null : productionRecordList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getProcessCode()))).collect(Collectors.groupingBy(o -> o.getProcessCode().toUpperCase())); } - private Boolean isExistProductionRecord(Map> prMapByCraft, String craftCode) { - return (CollectionUtils.isEmpty(prMapByCraft) || !prMapByCraft.containsKey(craftCode)) ? false : true; + private Boolean isExistProductionRecord(Map> prMapByCraft, String code) { + return (CollectionUtils.isEmpty(prMapByCraft) || !prMapByCraft.containsKey(code.toUpperCase())) ? false : true; } } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProdCraftRouteCheckSortStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProdCraftRouteCheckSortStepService.java index c6d708e..9699a5d 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProdCraftRouteCheckSortStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProdCraftRouteCheckSortStepService.java @@ -127,32 +127,32 @@ public class MesProdCraftRouteCheckSortStepService extends MesProdCraftRouteChec String message = StringUtils.isEmpty(stepResult.getMsg()) ? MesPcnExtConstWords.EMPTY : stepResult.getMsg() + MesPcnExtConstWords.SEMICOLON; //判断产品条码的当前工艺是否包含在产品工艺路线中 - Optional optionalPs = StringUtils.isEmpty(productionPsInContext.getCraftCode()) ? null : craftRouteDetailList.stream().filter(o -> (null != o && o.getCraftCode().equals(productionPsInContext.getCraftCode()))).findFirst(); + Optional optionalPs = StringUtils.isEmpty(productionPsInContext.getCraftCode()) ? null : craftRouteDetailList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getCraftCode()) && o.getCraftCode().toUpperCase().equals(productionPsInContext.getCraftCode().toUpperCase()))).findFirst(); if (!StringUtils.isEmpty(productionPsInContext.getCraftCode()) && (null == optionalPs || !optionalPs.isPresent())) return stepResult.isCompleted(false).msg(String.format("%s产品条码[%s]对应的工艺代码[%s]不匹配零件[%s]对应的产品工艺路线[%s]", message, productionPsInContext.getProductSn(), productionPsInContext.getCraftCode(), productionPsInContext.getPartNo(), craftRouteDetailList.get(0).getCraftRouteCode())).isCompleted(); //判断当前工位的工序对应的工艺是否包含在产品工艺路线中 - Optional optionalCell = craftRouteDetailList.stream().filter(o -> (null != o && o.getCraftCode().equals(productionProcessContext.getCraftCode()))).findFirst(); + Optional optionalCell = craftRouteDetailList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getCraftCode()) && o.getCraftCode().toUpperCase().equals(productionProcessContext.getCraftCode().toUpperCase()))).findFirst(); if (null == optionalCell || !optionalCell.isPresent()) return stepResult.isCompleted(false).msg(String.format("%s产品条码[%s]零件[%s]对应的产品工艺路线[%s]不包含当前工位[%s]对应的工艺[%s]工序[%s]", message, productionPsInContext.getProductSn(), productionPsInContext.getPartNo(), craftRouteDetailList.get(0).getCraftRouteCode(), reqBean.getWorkCellCode(), reqBean.getProcessCode(), productionProcessContext.getCraftCode())).isCompleted(); //验证工艺对应工序最多经过1个: 当前产品条码的工艺字段有值, 对应的工艺路线明细信息设置了【true】, 当前工位的工艺与产品条码的当前工艺相同, 当前工位的工序与产品条码的当前工序不相同 - if (null != optionalPs && optionalPs.isPresent() && optionalPs.get().getAtMostProcess().compareTo(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()) == 0 && productionProcessContext.getCraftCode().equals(productionPsInContext.getCraftCode()) && !reqBean.getProcessCode().equals(productionPsInContext.getProcessCode())) + if (null != optionalPs && optionalPs.isPresent() && optionalPs.get().getAtMostProcess().compareTo(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()) == 0 && productionProcessContext.getCraftCode().toUpperCase().equals(productionPsInContext.getCraftCode().toUpperCase()) && !reqBean.getProcessCode().toUpperCase().equals(productionPsInContext.getProcessCode().toUpperCase())) return stepResult.isCompleted(false).msg(String.format("%s产品条码[%s]产品工艺路线[%s]相同工艺对应工序最多经过1个,上道工艺[%s]当前工位工艺[%s]", message, productionPsInContext.getProductSn(), craftRouteDetailList.get(0).getCraftRouteCode(), productionPsInContext.getCraftCode(), productionProcessContext.getCraftCode())).isCompleted(); //验证是否捆绑后道工艺: 如果当前工位的工艺与产品条码的当前工艺不一致的情况下, 根据产品条码的当前工艺获取在工艺路线明细的下一个工艺, 判断当前工位的工艺与下个工艺是否一致 - if (null != optionalPs && optionalPs.isPresent() && optionalPs.get().getIsBindNextCraft().compareTo(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()) == 0 && !productionProcessContext.getCraftCode().equals(productionPsInContext.getCraftCode())) { + if (null != optionalPs && optionalPs.isPresent() && optionalPs.get().getIsBindNextCraft().compareTo(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()) == 0 && !productionProcessContext.getCraftCode().toUpperCase().equals(productionPsInContext.getCraftCode().toUpperCase())) { Optional optional = craftRouteDetailList.stream().filter(o -> (null != o && o.getSeq().compareTo(optionalPs.get().getSeq()) > 0)).findFirst(); - if (null != optionalCell && optionalCell.isPresent() && !productionProcessContext.getCraftCode().equals(optional.get().getCraftCode())) + if (null != optionalCell && optionalCell.isPresent() && !productionProcessContext.getCraftCode().toUpperCase().equals(optional.get().getCraftCode().toUpperCase())) return stepResult.isCompleted(false).msg(String.format("%s产品条码[%s]产品工艺路线[%s]捆绑后道工艺,上道工艺[%s]下道工艺[%s]当前工位工艺[%s]", message, productionPsInContext.getProductSn(), craftRouteDetailList.get(0).getCraftRouteCode(), productionPsInContext.getCraftCode(), optional.get().getCraftCode(), productionProcessContext.getCraftCode())).isCompleted(); } //验证已完成工序最大重复次数: 如果当前工位的工序与产品条码的当前工序一致的情况下, 根据条码+物料+工序+工艺查询加工记录, 判断加工记录条数 - if (null != optionalPs && optionalPs.isPresent() && reqBean.getProcessCode().equals(productionPsInContext.getProcessCode())) { + if (null != optionalPs && optionalPs.isPresent() && reqBean.getProcessCode().toUpperCase().equals(productionPsInContext.getProcessCode().toUpperCase())) { List productionRecordList = productionRecordService.findProductionRecordList(reqBean.getOrganizeCode(), productionPsInContext.getProductSn(), productionPsInContext.getPartNo(), reqBean.getProcessCode(), productionProcessContext.getCraftCode()); if (!CollectionUtils.isEmpty(productionRecordList) && productionRecordList.size() >= ((!StringUtils.isEmpty(optionalPs.get().getRepeatTimes()) && optionalPs.get().getRepeatTimes().compareTo(MesPcnExtConstWords.ZERO) > 0) ? optionalPs.get().getRepeatTimes() : MesPcnExtConstWords.ONE)) return stepResult.isCompleted(false).msg(String.format("%s产品条码[%s]当前工序[%s]产品工艺路线[%s]已完成工序最大重复次数[%s]", @@ -163,7 +163,7 @@ public class MesProdCraftRouteCheckSortStepService extends MesProdCraftRouteChec List beforeCellCraftList = craftRouteDetailList.stream().filter(o -> (null != o && o.getSeq().compareTo(optionalCell.get().getSeq()) < 0)).collect(Collectors.toList()); //验证首工艺: 当前产品条码的工艺字段有值,并且当前工位的工艺不等于产品条码的当前工艺。 如果等于已经在【验证工艺对应工序最多经过1个】与【 验证已完成工序最大重复次数】 中验证通过,所以这边只考虑不相等 - if (CollectionUtils.isEmpty(beforeCellCraftList) && !StringUtils.isEmpty(productionPsInContext.getCraftCode()) && !productionProcessContext.getCraftCode().equals(productionPsInContext.getCraftCode())) + if (CollectionUtils.isEmpty(beforeCellCraftList) && !StringUtils.isEmpty(productionPsInContext.getCraftCode()) && !productionProcessContext.getCraftCode().toUpperCase().equals(productionPsInContext.getCraftCode().toUpperCase())) return stepResult.isCompleted(false).msg(String.format("%s产品条码[%s]已经过首道工艺[%s]", message, productionPsInContext.getProductSn(), productionProcessContext.getCraftCode())).isCompleted(); //执行首道工艺 当前产品条码验证通过 @@ -177,7 +177,7 @@ public class MesProdCraftRouteCheckSortStepService extends MesProdCraftRouteChec List unCompleteCraftList; if (StringUtils.isEmpty(productionPsInContext.getCraftCode())) unCompleteCraftList = beforeCellCraftList; else { - Optional optional = beforeCellCraftList.stream().filter(o -> (null != o && o.getCraftCode().equals(productionPsInContext.getCraftCode()))).findFirst(); + Optional optional = beforeCellCraftList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getCraftCode()) && o.getCraftCode().toUpperCase().equals(productionPsInContext.getCraftCode().toUpperCase()))).findFirst(); if (null == optional || !optional.isPresent()) //在工位对应的工艺之前的所有前道工艺中未找到产品条码的当前工艺则表示产品条码已经过当前工艺 return stepResult.isCompleted(false).msg(String.format("%s产品条码[%s]已经过当前工艺[%s]", message, productionPsInContext.getProductSn(), productionProcessContext.getCraftCode())).isCompleted(); unCompleteCraftList = beforeCellCraftList.stream().filter(o -> (null != o && o.getSeq().compareTo(optional.get().getSeq()) > 0)).collect(Collectors.toList()); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnPrintNosortStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnPrintNosortStepService.java index 0a71c45..5522f97 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnPrintNosortStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnPrintNosortStepService.java @@ -199,9 +199,9 @@ public class MesProductSnPrintNosortStepService extends BaseStepService { String priter = null; if (!CollectionUtils.isEmpty(workCellPartPrinterCfgList)) { Optional optional = workCellPartPrinterCfgList.stream().filter(o -> (null != o - && !StringUtils.isEmpty(o.getWorkCenterCode()) && o.getWorkCenterCode().equals(reqBean.getWorkCenterCode()) - && !StringUtils.isEmpty(o.getWorkCellCode()) && o.getWorkCellCode().equals(reqBean.getWorkCellCode()) - && !StringUtils.isEmpty(o.getPartNo()) && o.getPartNo().equals(partNo) && !StringUtils.isEmpty(o.getPrinterCode()))).findFirst(); + && !StringUtils.isEmpty(o.getWorkCenterCode()) && o.getWorkCenterCode().toUpperCase().equals(reqBean.getWorkCenterCode().toUpperCase()) + && !StringUtils.isEmpty(o.getWorkCellCode()) && o.getWorkCellCode().toUpperCase().equals(reqBean.getWorkCellCode().toUpperCase()) + && !StringUtils.isEmpty(o.getPartNo()) && o.getPartNo().toUpperCase().equals(partNo.toUpperCase()) && !StringUtils.isEmpty(o.getPrinterCode()))).findFirst(); if (null != optional && optional.isPresent()) priter = optional.get().getPrinterCode(); } if (StringUtils.isEmpty(priter) && !CollectionUtils.isEmpty(partDataMap) && partDataMap.containsKey(partNo)) { diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductionRecordGenerateStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductionRecordGenerateStepService.java index 5d19268..efac871 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductionRecordGenerateStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductionRecordGenerateStepService.java @@ -206,7 +206,7 @@ public class MesProductionRecordGenerateStepService extends BaseStepService { if (null == productionPsInContext) return false; if (StringUtils.isEmpty(productionPsInContext.getPartNo())) return false; if (null == productionPsOutContext) return false; - if (!productionPsInContext.getPartNo().equals(productionPsOutContext.getPartNo())) return false; + if (!productionPsInContext.getPartNo().toUpperCase().equals(productionPsOutContext.getPartNo().toUpperCase())) return false; return true; } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCutMatchingProdRuleStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCutMatchingProdRuleStepService.java index c2afd19..08ac1ad 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCutMatchingProdRuleStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCutMatchingProdRuleStepService.java @@ -159,7 +159,7 @@ public class MesWorkOrderCutMatchingProdRuleStepService extends BaseStepService //foreignKey有值代表已经匹配过产品加工规则 if (null == productionPartContext || productionPartContext.getIsFinishCode().compareTo(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()) == 0 || !StringUtils.isEmpty(productionPartContext.getForeignKey())) continue; - List filterList = !CollectionUtils.isEmpty(prodRuleNosortCfgMap) ? prodRuleNosortCfgMap.get(productionPartContext.getPartNo()) : null; + List filterList = !CollectionUtils.isEmpty(prodRuleNosortCfgMap) ? prodRuleNosortCfgMap.get(productionPartContext.getPartNo().toUpperCase()) : null; if (CollectionUtils.isEmpty(filterList) || filterList.size() > 1) { productionPartContextList.forEach(o -> o.busiCheckToDelete()); @@ -188,7 +188,7 @@ public class MesWorkOrderCutMatchingProdRuleStepService extends BaseStepService //根据产出零件分组数据 private Map> groupProdRuleNosortCfgList(List prodRuleNosortCfgList) { return CollectionUtils.isEmpty(prodRuleNosortCfgList) ? null : - prodRuleNosortCfgList.stream().filter(o -> null != o).collect(Collectors.groupingBy(MesProdRuleNosortCfg::getOutPartNo)); + prodRuleNosortCfgList.stream().filter(o -> null != o).collect(Collectors.groupingBy(o -> o.getOutPartNo().toUpperCase())); } } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/context/MesProductionCustomContextStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/context/MesProductionCustomContextStepService.java index 10bcecb..8470e3b 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/context/MesProductionCustomContextStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/context/MesProductionCustomContextStepService.java @@ -222,7 +222,7 @@ public class MesProductionCustomContextStepService extends BaseStepService imple //根据设备代码获取可复用条码的个数 @Override public Integer getRepeatAssemblySnCount(String organizeCode, String workCenterCode, String workCellCode, String equipmentCode) { - String countStr = getFsmBusiData(organizeCode, getRepeatAssemblySnContextKey(organizeCode, workCenterCode, workCellCode), equipmentCode); + String countStr = getFsmBusiData(organizeCode, getRepeatAssemblySnContextKey(organizeCode, workCenterCode, workCellCode), equipmentCode.toUpperCase()); return !StringUtils.isEmpty(countStr) ? Integer.valueOf(countStr) : MesPcnExtConstWords.ZERO; } @@ -231,8 +231,8 @@ public class MesProductionCustomContextStepService extends BaseStepService imple public Boolean dispatchRepeatAssemblySn(String organizeCode, String workCenterCode, String workCellCode, MesProductionAssemblyContext productionAssemblyContext) { String repeatKey = productionAssemblyContext.repeatKeyToString(); if (StringUtils.isEmpty(getRepeatAssemblySn(organizeCode, workCenterCode, workCellCode, repeatKey))) { - Integer count = getRepeatAssemblySnCount(organizeCode, workCenterCode, workCellCode, productionAssemblyContext.getEquipmentCode()) + 1; - dispatchFsmBusiData(organizeCode, getRepeatAssemblySnContextKey(organizeCode, workCenterCode, workCellCode), productionAssemblyContext.getEquipmentCode(), count.toString()); + Integer count = getRepeatAssemblySnCount(organizeCode, workCenterCode, workCellCode, productionAssemblyContext.getEquipmentCode().toUpperCase()) + 1; + dispatchFsmBusiData(organizeCode, getRepeatAssemblySnContextKey(organizeCode, workCenterCode, workCellCode), productionAssemblyContext.getEquipmentCode().toUpperCase(), count.toString()); } return dispatchFsmBusiData(organizeCode, getRepeatAssemblySnContextKey(organizeCode, workCenterCode, workCellCode), repeatKey, productionAssemblyContext.getAssemblySn()); } 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 c811a51..8b9dc95 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 @@ -638,8 +638,8 @@ public class MesProductionProcessContextStepService extends BaseStepService impl public Map> getProdRuleIgnoreCfgContextMap(StationRequestBean reqBean, MesProductionProcessContext productionProcessContext) { List prodRuleIgnoreCfgList = getProdRuleIgnoreCfgContext(reqBean, productionProcessContext); return CollectionUtils.isEmpty(prodRuleIgnoreCfgList) ? null : - prodRuleIgnoreCfgList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getDataSource()) && !StringUtils.isEmpty(o.getSourceId()))) - .collect(Collectors.groupingBy(o -> new StringJoiner(MesPcnExtConstWords.AND).add(o.getDataSource().toString()).add(o.getEquipmentCode()).add(o.getSourceId().toString()).toString())); + prodRuleIgnoreCfgList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getDataSource()) && !StringUtils.isEmpty(o.getEquipmentCode()) && !StringUtils.isEmpty(o.getSourceId()))) + .collect(Collectors.groupingBy(o -> new StringJoiner(MesPcnExtConstWords.AND).add(o.getDataSource().toString()).add(o.getEquipmentCode().toUpperCase()).add(o.getSourceId().toString()).toString())); } //处理排序线推单配置上下文, 返回推送工位类型对应的配置信息 diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/method/MesWorkOrderCheckCompleteQtyStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/method/MesWorkOrderCheckCompleteQtyStepService.java index f3c01bc..31ae2c8 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/method/MesWorkOrderCheckCompleteQtyStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/method/MesWorkOrderCheckCompleteQtyStepService.java @@ -137,10 +137,10 @@ public class MesWorkOrderCheckCompleteQtyStepService extends BaseStepService { if (null == productionPsInContext) return false; if (StringUtils.isEmpty(productionPsInContext.getPartNo())) return false; if (null != productionPartContext) { - if (!productionPsInContext.getPartNo().equals(productionPartContext.getPartNo())) return false; + if (!productionPsInContext.getPartNo().toUpperCase().equals(productionPartContext.getPartNo().toUpperCase())) return false; else return true; } else { - if (!productionPsInContext.getPartNo().equals(prodRuleContext.getOutPartNo())) return false; + if (!productionPsInContext.getPartNo().toUpperCase().equals(prodRuleContext.getOutPartNo().toUpperCase())) return false; else return true; } } diff --git a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProductionAssemblyContext.java b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProductionAssemblyContext.java index 75a1c0e..956e41a 100644 --- a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProductionAssemblyContext.java +++ b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProductionAssemblyContext.java @@ -130,10 +130,10 @@ public class MesProductionAssemblyContext implements Serializable { public String repeatKeyToString() { if (StringUtils.isEmpty(this.equipmentCode) || StringUtils.isEmpty(this.matchType) || (StringUtils.isEmpty(this.matchRule) && StringUtils.isEmpty(this.assemblyPartNo))) return null; return String.format("%s:%s&%s:%s&%s:%s&%s:%s", - MesPcnExtConstWords.EQUIPMENT_CODE, this.equipmentCode, + MesPcnExtConstWords.EQUIPMENT_CODE, this.equipmentCode.toUpperCase(), MesPcnExtConstWords.MATCH_TYPE, this.matchType, MesPcnExtConstWords.MATCH_RULE, StringUtils.isEmpty(this.matchRule) ? MesPcnExtConstWords.EMPTY : this.matchRule, - MesPcnExtConstWords.ASSEMBLY_PART_NO, StringUtils.isEmpty(this.assemblyPartNo) ? MesPcnExtConstWords.EMPTY : this.assemblyPartNo); + MesPcnExtConstWords.ASSEMBLY_PART_NO, StringUtils.isEmpty(this.assemblyPartNo) ? MesPcnExtConstWords.EMPTY : this.assemblyPartNo.toUpperCase()); } } From c623014a763393c4d0c346584b6b7d98ae1e176f Mon Sep 17 00:00:00 2001 From: "jhforever.wang@estsh.com" Date: Mon, 14 Apr 2025 14:13:29 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E8=A3=85=E9=85=8D=E4=BB=B6=E5=8C=B9?= =?UTF-8?q?=E9=85=8D=E5=B7=A5=E6=AD=A5=20=E6=8F=90=E7=A4=BA=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../serviceimpl/step/MesAssemblyMatchNosortStepService.java | 13 +++++++++++-- .../i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java | 2 ++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyMatchNosortStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyMatchNosortStepService.java index fd1386f..8a78960 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyMatchNosortStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyMatchNosortStepService.java @@ -154,10 +154,19 @@ public class MesAssemblyMatchNosortStepService extends BaseStepService { assemblyShowNosortStepService.showProductionAssembly(reqBean, resultBean, productionProcessContext.getWorkCenter(), prodRuleContextList); } - stepResult.msg(String.format("装配件条码%s匹配失败!%s", assemblySn, StringUtils.isEmpty(stepResult.getMsg()) ? MesPcnExtConstWords.EMPTY : stepResult.getMsg())); + suffix = String.format("装配件条码%s匹配失败!", assemblySn); this.sendMessage(reqBean, new StationResultBean().writeDbLog().scanInfo(assemblySn), - String.format("%s%s", stepResult.getMsg(), StringUtils.isEmpty(stepResult.getObj()) ? MesPcnExtConstWords.EMPTY : stepResult.getObj()), MesPcnEnumUtil.STATION_BUSI_TYPE.RUNNING_INFO, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT); + String.format("%s%s%s", suffix, StringUtils.isEmpty(stepResult.getMsg()) ? MesPcnExtConstWords.EMPTY : stepResult.getMsg(), StringUtils.isEmpty(stepResult.getObj()) ? MesPcnExtConstWords.EMPTY : stepResult.getObj()), + MesPcnEnumUtil.STATION_BUSI_TYPE.RUNNING_INFO, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT); + + stepResult.msg(String.format("%s%s", suffix, !StringUtils.isEmpty(stepResult.getMsg()) ? stepResult.getMsg() : ( + StringUtils.isEmpty(stepResult.getObj()) ? MesPcnExtConstWords.EMPTY : ( + (!stepResult.getObj().toString().contains(MesPcnExtConstWords.EXCLAMATION) || + stepResult.getObj().toString().indexOf(MesPcnExtConstWords.EXCLAMATION) != stepResult.getObj().toString().lastIndexOf(MesPcnExtConstWords.EXCLAMATION)) + ? MesPcnExtConstWords.EMPTY : stepResult.getObj())) + ) + ); return stepNonCompleteAndSendMsgReturn(reqBean, resultBean, stepResult.nextTriggerEvent(MesPcnExtConstWords.NEXT_TRIGGER_EVENT_ASSEMBLY), stepResult.getMsg()); 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 9db31ee..4e1b08b 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 @@ -602,6 +602,8 @@ public class MesPcnExtConstWords { public static final String DECIMAL_POINT = "."; // # public static final String WELL_NO = "#"; + // ! + public static final String EXCLAMATION = "!"; // 自动初始化工位按钮URL public static final String AUTO_INIT_WORK_CELL_MODULE_URL = "AUTO_INIT_WORK_CELL_MODULE_URL"; From 77ddb2cc7c9237cd6d7c841cca65e2fcba835502 Mon Sep 17 00:00:00 2001 From: "jhforever.wang@estsh.com" Date: Mon, 14 Apr 2025 15:57:32 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E8=A3=85=E9=85=8D=E4=BB=B6=E5=8C=B9?= =?UTF-8?q?=E9=85=8D=E5=B7=A5=E6=AD=A5=20=E6=8F=90=E7=A4=BA=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../step/MesAssemblyGeneratePartNoStepService.java | 13 +++++++++++-- .../step/MesAssemblyMatchNosortRetrodictStepService.java | 13 +++++++++++-- .../serviceimpl/step/MesAssemblyMatchNosortStepService.java | 4 ++-- .../serviceimpl/step/MesAssemblyMatchSortStepService.java | 13 +++++++++++-- 4 files changed, 35 insertions(+), 8 deletions(-) diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyGeneratePartNoStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyGeneratePartNoStepService.java index adce1fd..da189ce 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyGeneratePartNoStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyGeneratePartNoStepService.java @@ -159,10 +159,19 @@ public class MesAssemblyGeneratePartNoStepService extends BaseStepService { Optional optional = equipVariableCollectContextList.stream().filter(o -> (null != o && o.getIsConsume().compareTo(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()) == 0)).findFirst(); if (null != optional && optional.isPresent()) { - stepResult.msg(String.format("%s装配件条码%s匹配失败!%s", suffix, assemblySn, StringUtils.isEmpty(stepResult.getMsg()) ? MesPcnExtConstWords.EMPTY : stepResult.getMsg())); + suffix = String.format("%s装配件条码%s匹配失败!", suffix, assemblySn); this.sendMessage(reqBean, new StationResultBean().writeDbLog().scanInfo(assemblySn), - String.format("%s%s", stepResult.getMsg(), StringUtils.isEmpty(stepResult.getObj()) ? MesPcnExtConstWords.EMPTY : stepResult.getObj()), MesPcnEnumUtil.STATION_BUSI_TYPE.RUNNING_INFO, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT); + String.format("%s%s%s", suffix, StringUtils.isEmpty(stepResult.getMsg()) ? MesPcnExtConstWords.EMPTY : stepResult.getMsg(), StringUtils.isEmpty(stepResult.getObj()) ? MesPcnExtConstWords.EMPTY : stepResult.getObj()), + MesPcnEnumUtil.STATION_BUSI_TYPE.RUNNING_INFO, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT); + + stepResult.msg(String.format("%s%s", suffix, !StringUtils.isEmpty(stepResult.getMsg()) ? stepResult.getMsg() : ( + StringUtils.isEmpty(stepResult.getObj()) ? MesPcnExtConstWords.EMPTY : ( + (!stepResult.getObj().toString().contains(MesPcnExtConstWords.EXCLAMATION) || + stepResult.getObj().toString().indexOf(MesPcnExtConstWords.EXCLAMATION) != stepResult.getObj().toString().lastIndexOf(MesPcnExtConstWords.EXCLAMATION) + ) ? MesPcnExtConstWords.EMPTY : stepResult.getObj())) + ) + ); if (!CollectionUtils.isEmpty(curProductionPsInContextList)) productionDispatchContextStepService.dispatchProductionPsInContext(reqBean, productionPsInContextList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getForeignKey()))).collect(Collectors.toList())); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyMatchNosortRetrodictStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyMatchNosortRetrodictStepService.java index d8d0eea..42f49ac 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyMatchNosortRetrodictStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyMatchNosortRetrodictStepService.java @@ -159,10 +159,19 @@ public class MesAssemblyMatchNosortRetrodictStepService extends BaseStepService Optional optional = equipVariableCollectContextList.stream().filter(o -> (null != o && o.getIsConsume().compareTo(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()) == 0)).findFirst(); if (null != optional && optional.isPresent()) { - stepResult.msg(String.format("%s装配件条码%s匹配失败!%s", suffix, assemblySn, StringUtils.isEmpty(stepResult.getMsg()) ? MesPcnExtConstWords.EMPTY : stepResult.getMsg())); + suffix = String.format("%s装配件条码%s匹配失败!", suffix, assemblySn); this.sendMessage(reqBean, new StationResultBean().writeDbLog().scanInfo(assemblySn), - String.format("%s%s", stepResult.getMsg(), StringUtils.isEmpty(stepResult.getObj()) ? MesPcnExtConstWords.EMPTY : stepResult.getObj()), MesPcnEnumUtil.STATION_BUSI_TYPE.RUNNING_INFO, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT); + String.format("%s%s%s", suffix, StringUtils.isEmpty(stepResult.getMsg()) ? MesPcnExtConstWords.EMPTY : stepResult.getMsg(), StringUtils.isEmpty(stepResult.getObj()) ? MesPcnExtConstWords.EMPTY : stepResult.getObj()), + MesPcnEnumUtil.STATION_BUSI_TYPE.RUNNING_INFO, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT); + + stepResult.msg(String.format("%s%s", suffix, !StringUtils.isEmpty(stepResult.getMsg()) ? stepResult.getMsg() : ( + StringUtils.isEmpty(stepResult.getObj()) ? MesPcnExtConstWords.EMPTY : ( + (!stepResult.getObj().toString().contains(MesPcnExtConstWords.EXCLAMATION) || + stepResult.getObj().toString().indexOf(MesPcnExtConstWords.EXCLAMATION) != stepResult.getObj().toString().lastIndexOf(MesPcnExtConstWords.EXCLAMATION) + ) ? MesPcnExtConstWords.EMPTY : stepResult.getObj())) + ) + ); if (!CollectionUtils.isEmpty(curProductionPsInContextList)) productionDispatchContextStepService.dispatchProductionPsInContext(reqBean, productionPsInContextList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getForeignKey()))).collect(Collectors.toList())); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyMatchNosortStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyMatchNosortStepService.java index 8a78960..5b160c0 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyMatchNosortStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyMatchNosortStepService.java @@ -163,8 +163,8 @@ public class MesAssemblyMatchNosortStepService extends BaseStepService { stepResult.msg(String.format("%s%s", suffix, !StringUtils.isEmpty(stepResult.getMsg()) ? stepResult.getMsg() : ( StringUtils.isEmpty(stepResult.getObj()) ? MesPcnExtConstWords.EMPTY : ( (!stepResult.getObj().toString().contains(MesPcnExtConstWords.EXCLAMATION) || - stepResult.getObj().toString().indexOf(MesPcnExtConstWords.EXCLAMATION) != stepResult.getObj().toString().lastIndexOf(MesPcnExtConstWords.EXCLAMATION)) - ? MesPcnExtConstWords.EMPTY : stepResult.getObj())) + stepResult.getObj().toString().indexOf(MesPcnExtConstWords.EXCLAMATION) != stepResult.getObj().toString().lastIndexOf(MesPcnExtConstWords.EXCLAMATION) + ) ? MesPcnExtConstWords.EMPTY : stepResult.getObj())) ) ); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyMatchSortStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyMatchSortStepService.java index 78c7bbb..efaec15 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyMatchSortStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyMatchSortStepService.java @@ -140,10 +140,19 @@ public class MesAssemblyMatchSortStepService extends BaseStepService { MesPcnEnumUtil.PROMPT_SOUND.SUCCESS.getValue()); } - stepResult.msg(String.format("装配件条码%s匹配失败!%s", assemblySn, StringUtils.isEmpty(stepResult.getMsg()) ? MesPcnExtConstWords.EMPTY : stepResult.getMsg())); + suffix = String.format("装配件条码%s匹配失败!", assemblySn); this.sendMessage(reqBean, new StationResultBean().writeDbLog().scanInfo(assemblySn), - String.format("%s%s", stepResult.getMsg(), StringUtils.isEmpty(stepResult.getObj()) ? MesPcnExtConstWords.EMPTY : stepResult.getObj()), MesPcnEnumUtil.STATION_BUSI_TYPE.RUNNING_INFO, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT); + String.format("%s%s%s", suffix, StringUtils.isEmpty(stepResult.getMsg()) ? MesPcnExtConstWords.EMPTY : stepResult.getMsg(), StringUtils.isEmpty(stepResult.getObj()) ? MesPcnExtConstWords.EMPTY : stepResult.getObj()), + MesPcnEnumUtil.STATION_BUSI_TYPE.RUNNING_INFO, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT); + + stepResult.msg(String.format("%s%s", suffix, !StringUtils.isEmpty(stepResult.getMsg()) ? stepResult.getMsg() : ( + StringUtils.isEmpty(stepResult.getObj()) ? MesPcnExtConstWords.EMPTY : ( + (!stepResult.getObj().toString().contains(MesPcnExtConstWords.EXCLAMATION) || + stepResult.getObj().toString().indexOf(MesPcnExtConstWords.EXCLAMATION) != stepResult.getObj().toString().lastIndexOf(MesPcnExtConstWords.EXCLAMATION) + ) ? MesPcnExtConstWords.EMPTY : stepResult.getObj())) + ) + ); return stepNonCompleteAndSendMsgReturn(reqBean, resultBean, stepResult.nextTriggerEvent(MesPcnExtConstWords.NEXT_TRIGGER_EVENT_ASSEMBLY), stepResult.getMsg()); From 9a1adf32854956345a1f2593da280a7c41257b19 Mon Sep 17 00:00:00 2001 From: "jhforever.wang@estsh.com" Date: Wed, 23 Apr 2025 13:10:39 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E5=B7=A5=E6=AD=A5=E6=96=B9=E6=B3=95?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../step/MesAssemblyGeneratePartNoStepService.java | 25 +++++++++++----------- ...MesAssemblyMatchNosortRetrodictStepService.java | 7 +++++- .../step/MesAssemblyMatchNosortStepService.java | 13 ++++++----- .../step/MesAssemblyMatchSortStepService.java | 7 +++++- .../step/MesAssemblyReadStepService.java | 2 +- .../step/MesAssemblyShowNosortStepService.java | 6 +++--- .../step/MesAssemblyShowSortStepService.java | 3 +-- .../step/MesCountDownShowStepService.java | 6 ++---- .../MesManyCellTriggerJumpProcessStepService.java | 5 +---- .../step/MesProductSeqCheckNosortStepService.java | 5 ++--- .../step/MesProductSeqCheckSortStepService.java | 2 +- .../step/MesProductSnReadStepService.java | 2 +- .../step/MesProductSnScanStepService.java | 24 ++++++--------------- .../step/MesProductionPartNoReadStepService.java | 2 +- .../step/MesRecyclablePackageReadStepService.java | 2 +- .../step/MesShippingQueueFindStepService.java | 2 +- .../step/MesWorkOrderCheckNosortStepService.java | 11 ++-------- .../step/MesWorkOrderCheckSortStepService.java | 16 +++++--------- .../step/MesWorkOrderQueueAcceptStepService.java | 7 +++++- .../step/MesWorkOrderReadStepService.java | 2 +- 20 files changed, 65 insertions(+), 84 deletions(-) diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyGeneratePartNoStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyGeneratePartNoStepService.java index da189ce..6268496 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyGeneratePartNoStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyGeneratePartNoStepService.java @@ -123,14 +123,14 @@ public class MesAssemblyGeneratePartNoStepService extends BaseStepService { //搜集装配件条码 String assemblySn = equipVariableCollectContextList.stream().filter(o -> null != o).map(MesEquipVariableCollectContext::getEquipVariableValue).collect(Collectors.toList()).toString(); - //未知腔数配置【工位参数】, 不验证装配件条码的个数 - String cavityUnknownCfg = getCavityUnknownCfg(reqBean); + //未知腔数配置【工位参数】, 不验证装配件条码的个数, 默认非未知腔数=2 + Boolean cavityUnknownCfg = checkWcpcMapIsMatch(reqBean, MesPcnExtConstWords.CAVITY_UNKNOWN_CFG); //根据设备代码获取可复用条码的个数 Integer repeatAssemblySnCount = productionCustomContextStepService.getRepeatAssemblySnCount(reqBean.getOrganizeCode(), reqBean.getWorkCenterCode(), reqBean.getWorkCellCode(), cellEquipContext.getEquipmentCode()); Integer repeatAssemblySnAmount = repeatAssemblySnCount * (!CollectionUtils.isEmpty(curProductionPsInContextList) ? curProductionPsInContextList.size() : 1); //非未知腔数,验证装配件条码个数是否匹配 腔数或者未匹配的主条码个数*每腔个数 - if (StringUtils.isEmpty(cavityUnknownCfg) && (equipVariableCollectContextList.size() + repeatAssemblySnAmount) != (!CollectionUtils.isEmpty(curProductionPsInContextList) ? curProductionPsInContextList.size() : cellEquipContext.getCavity()) * cellEquipContext.getBindQty()) { + if (!cavityUnknownCfg && (equipVariableCollectContextList.size() + repeatAssemblySnAmount) != (!CollectionUtils.isEmpty(curProductionPsInContextList) ? curProductionPsInContextList.size() : cellEquipContext.getCavity()) * cellEquipContext.getBindQty()) { String suffix = repeatAssemblySnAmount == 0 ? MesPcnExtConstWords.EMPTY : String.format(",可复用个数[%s]", repeatAssemblySnAmount); if (!CollectionUtils.isEmpty(curProductionPsInContextList)) { productionDispatchContextStepService.dispatchProductionPsInContext(reqBean, productionPsInContextList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getForeignKey()))).collect(Collectors.toList())); @@ -166,10 +166,10 @@ public class MesAssemblyGeneratePartNoStepService extends BaseStepService { MesPcnEnumUtil.STATION_BUSI_TYPE.RUNNING_INFO, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT); stepResult.msg(String.format("%s%s", suffix, !StringUtils.isEmpty(stepResult.getMsg()) ? stepResult.getMsg() : ( - StringUtils.isEmpty(stepResult.getObj()) ? MesPcnExtConstWords.EMPTY : ( - (!stepResult.getObj().toString().contains(MesPcnExtConstWords.EXCLAMATION) || - stepResult.getObj().toString().indexOf(MesPcnExtConstWords.EXCLAMATION) != stepResult.getObj().toString().lastIndexOf(MesPcnExtConstWords.EXCLAMATION) - ) ? MesPcnExtConstWords.EMPTY : stepResult.getObj())) + (StringUtils.isEmpty(stepResult.getObj()) || !checkWcpcMapIsMatch(reqBean, MesPcnExtConstWords.ASSEMBLY_SHOW_MR_CFG)) ? MesPcnExtConstWords.EMPTY : ( + (!stepResult.getObj().toString().contains(MesPcnExtConstWords.EXCLAMATION) || + stepResult.getObj().toString().indexOf(MesPcnExtConstWords.EXCLAMATION) != stepResult.getObj().toString().lastIndexOf(MesPcnExtConstWords.EXCLAMATION) + ) ? MesPcnExtConstWords.EMPTY : stepResult.getObj())) ) ); @@ -206,10 +206,9 @@ public class MesAssemblyGeneratePartNoStepService extends BaseStepService { } - //未知腔数配置【工位参数】 - private String getCavityUnknownCfg(StationRequestBean reqBean) { - String cavityUnknownCfg = fsmCommonService.handleFsmWcpcMapDataForDoScan(reqBean).get(MesPcnExtConstWords.CAVITY_UNKNOWN_CFG); - return (!StringUtils.isEmpty(cavityUnknownCfg) && cavityUnknownCfg.equals(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValueStr())) ? cavityUnknownCfg : null; + //【工位参数】 + private Boolean checkWcpcMapIsMatch(StationRequestBean reqBean, String paramCode) { + return fsmCommonService.checkWcpcMapIsMatch(reqBean, paramCode, CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValueStr()); } //获取设备下所有的装配件规则清单, 根据非排序加工规则ID分组 @@ -238,7 +237,7 @@ public class MesAssemblyGeneratePartNoStepService extends BaseStepService { } //生成零件号业务处理 - private List doHandleAssemblyGeneratePartNo(StationRequestBean reqBean, StationResultBean resultBean, StepResult stepResult, MesCellEquipContext cellEquipContext, String cavityUnknownCfg, + private List doHandleAssemblyGeneratePartNo(StationRequestBean reqBean, StationResultBean resultBean, StepResult stepResult, MesCellEquipContext cellEquipContext, Boolean cavityUnknownCfg, MesProductionProcessContext productionProcessContext, List productionPsInContextList, List prodRuleContextList, Map> assemblyNosortCfgMap, List equipVariableCollectContextList, Map> prodRuleIgnoreCfgMap) { @@ -263,7 +262,7 @@ public class MesAssemblyGeneratePartNoStepService extends BaseStepService { if (CollectionUtils.isEmpty(productionAssemblyNosortContextList)) continue; //没有未知腔数配置, 剔除装配件规则个数不等于每腔个数的数据 - if (StringUtils.isEmpty(cavityUnknownCfg) && cellEquipContext.getBindQty().compareTo(productionAssemblyNosortContextList.size()) != 0) continue; + if (!cavityUnknownCfg && cellEquipContext.getBindQty().compareTo(productionAssemblyNosortContextList.size()) != 0) continue; //收集未消费的临时数据 List equipVariableCollectContextListTemp = DeepCloneUtil.deepCloneList(unConsumeList); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyMatchNosortRetrodictStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyMatchNosortRetrodictStepService.java index 42f49ac..425350f 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyMatchNosortRetrodictStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyMatchNosortRetrodictStepService.java @@ -166,7 +166,7 @@ public class MesAssemblyMatchNosortRetrodictStepService extends BaseStepService MesPcnEnumUtil.STATION_BUSI_TYPE.RUNNING_INFO, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT); stepResult.msg(String.format("%s%s", suffix, !StringUtils.isEmpty(stepResult.getMsg()) ? stepResult.getMsg() : ( - StringUtils.isEmpty(stepResult.getObj()) ? MesPcnExtConstWords.EMPTY : ( + (StringUtils.isEmpty(stepResult.getObj()) || !checkWcpcMapIsMatch(reqBean, MesPcnExtConstWords.ASSEMBLY_SHOW_MR_CFG)) ? MesPcnExtConstWords.EMPTY : ( (!stepResult.getObj().toString().contains(MesPcnExtConstWords.EXCLAMATION) || stepResult.getObj().toString().indexOf(MesPcnExtConstWords.EXCLAMATION) != stepResult.getObj().toString().lastIndexOf(MesPcnExtConstWords.EXCLAMATION) ) ? MesPcnExtConstWords.EMPTY : stepResult.getObj())) @@ -422,4 +422,9 @@ public class MesAssemblyMatchNosortRetrodictStepService extends BaseStepService return result; } + //【工位参数】 + private Boolean checkWcpcMapIsMatch(StationRequestBean reqBean, String paramCode) { + return fsmCommonService.checkWcpcMapIsMatch(reqBean, paramCode, CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValueStr()); + } + } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyMatchNosortStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyMatchNosortStepService.java index 5b160c0..789e396 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyMatchNosortStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyMatchNosortStepService.java @@ -161,7 +161,7 @@ public class MesAssemblyMatchNosortStepService extends BaseStepService { MesPcnEnumUtil.STATION_BUSI_TYPE.RUNNING_INFO, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT); stepResult.msg(String.format("%s%s", suffix, !StringUtils.isEmpty(stepResult.getMsg()) ? stepResult.getMsg() : ( - StringUtils.isEmpty(stepResult.getObj()) ? MesPcnExtConstWords.EMPTY : ( + (StringUtils.isEmpty(stepResult.getObj()) || !checkWcpcMapIsMatch(reqBean, MesPcnExtConstWords.ASSEMBLY_SHOW_MR_CFG)) ? MesPcnExtConstWords.EMPTY : ( (!stepResult.getObj().toString().contains(MesPcnExtConstWords.EXCLAMATION) || stepResult.getObj().toString().indexOf(MesPcnExtConstWords.EXCLAMATION) != stepResult.getObj().toString().lastIndexOf(MesPcnExtConstWords.EXCLAMATION) ) ? MesPcnExtConstWords.EMPTY : stepResult.getObj())) @@ -175,7 +175,7 @@ public class MesAssemblyMatchNosortStepService extends BaseStepService { private List resetAssembly(StationRequestBean reqBean, List prodRuleContextList) { //是否支持混腔扫描[工位参数] - String cavityNosortCfg = getCavityNosortCfg(reqBean); + Boolean cavityNosortCfg = checkWcpcMapIsMatch(reqBean, MesPcnExtConstWords.CAVITY_NOSORT_CFG); prodRuleContextList.forEach(o -> { @@ -183,7 +183,7 @@ public class MesAssemblyMatchNosortStepService extends BaseStepService { List productionAssemblyNosortContextList = o.getNosortAssemblyDataContext(); - if (!StringUtils.isEmpty(cavityNosortCfg) || hasUnBindAssemblyOptional(productionAssemblyNosortContextList)) { + if (cavityNosortCfg || hasUnBindAssemblyOptional(productionAssemblyNosortContextList)) { productionAssemblyNosortContextList.forEach(i -> { if (i.getIsResetScan().compareTo(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()) == 0) i.assemblyStatusReset(); }); @@ -198,10 +198,9 @@ public class MesAssemblyMatchNosortStepService extends BaseStepService { return prodRuleContextList; } - //是否支持混腔扫描[工位参数] - private String getCavityNosortCfg(StationRequestBean reqBean) { - String cavityNosortCfg = fsmCommonService.handleFsmWcpcMapDataForDoScan(reqBean).get(MesPcnExtConstWords.CAVITY_NOSORT_CFG); - return (!StringUtils.isEmpty(cavityNosortCfg) && cavityNosortCfg.equals(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValueStr())) ? cavityNosortCfg : null; + //【工位参数】 + private Boolean checkWcpcMapIsMatch(StationRequestBean reqBean, String paramCode) { + return fsmCommonService.checkWcpcMapIsMatch(reqBean, paramCode, CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValueStr()); } //验证当前是否属于装配件跳过码 diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyMatchSortStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyMatchSortStepService.java index efaec15..86cecf8 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyMatchSortStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyMatchSortStepService.java @@ -147,7 +147,7 @@ public class MesAssemblyMatchSortStepService extends BaseStepService { MesPcnEnumUtil.STATION_BUSI_TYPE.RUNNING_INFO, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT); stepResult.msg(String.format("%s%s", suffix, !StringUtils.isEmpty(stepResult.getMsg()) ? stepResult.getMsg() : ( - StringUtils.isEmpty(stepResult.getObj()) ? MesPcnExtConstWords.EMPTY : ( + (StringUtils.isEmpty(stepResult.getObj()) || !checkWcpcMapIsMatch(reqBean, MesPcnExtConstWords.ASSEMBLY_SHOW_MR_CFG)) ? MesPcnExtConstWords.EMPTY : ( (!stepResult.getObj().toString().contains(MesPcnExtConstWords.EXCLAMATION) || stepResult.getObj().toString().indexOf(MesPcnExtConstWords.EXCLAMATION) != stepResult.getObj().toString().lastIndexOf(MesPcnExtConstWords.EXCLAMATION) ) ? MesPcnExtConstWords.EMPTY : stepResult.getObj())) @@ -339,4 +339,9 @@ public class MesAssemblyMatchSortStepService extends BaseStepService { return false; } + //【工位参数】 + private Boolean checkWcpcMapIsMatch(StationRequestBean reqBean, String paramCode) { + return fsmCommonService.checkWcpcMapIsMatch(reqBean, paramCode, CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValueStr()); + } + } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyReadStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyReadStepService.java index 69576c2..ea74f85 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyReadStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyReadStepService.java @@ -65,7 +65,7 @@ public class MesAssemblyReadStepService extends BaseStepService { StepResult stepResult = StepResult.getSuccessComplete(); - String endlessLoopReadTimes = fsmCommonService.handleFsmWcpcMapDataForDoScan(reqBean).get(MesPcnExtConstWords.ENDLESS_LOOP_READ_TIMES); + String endlessLoopReadTimes = fsmCommonService.handleFsmWcpcMapDataForDoScanThenBackValue(reqBean, MesPcnExtConstWords.ENDLESS_LOOP_READ_TIMES); if (StringUtils.isEmpty(endlessLoopReadTimes)) endlessLoopReadTimes = MesPcnExtConstWords.ENDLESS_LOOP_READ_TIMES_DEFAULT; if (productionDispatchContextStepService.dispatchOverEndlessLoopReadTimes(reqBean, endlessLoopReadTimes)) { stepThreadSleepAndSendTaskCompleteAndThrowEx(reqBean, new StationResultBean().isWs(false).writeDbLog().checkRepeat(), diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyShowNosortStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyShowNosortStepService.java index 5701b3a..61b8e2a 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyShowNosortStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyShowNosortStepService.java @@ -433,6 +433,7 @@ public class MesAssemblyShowNosortStepService extends BaseStepService { //获取前端置顶信息 【sourceId&MatchDatetime】 String topRowInfo = getTopRowInfo(allAssemblyList); + //是否显示规则列【工位参数】 Boolean isNeedShowMatchRule = checkIsNeedShowMatchRule(reqBean); for (MesProdRuleContext prodRuleContext : prodRuleContextList) { @@ -467,10 +468,9 @@ public class MesAssemblyShowNosortStepService extends BaseStepService { return CollectionUtils.isEmpty(allAssemblyList) ? null : new StringJoiner(MesPcnExtConstWords.AND).add(allAssemblyList.get(0).getSourceId().toString()).add(allAssemblyList.get(0).getMatchDatetime()).toString(); } - //未知腔数配置【工位参数】 + //是否显示规则列【工位参数】 private Boolean checkIsNeedShowMatchRule(StationRequestBean reqBean) { - String assemblyShowMrCfg = fsmCommonService.handleFsmWcpcMapDataForDoScan(reqBean).get(MesPcnExtConstWords.ASSEMBLY_SHOW_MR_CFG); - return (!StringUtils.isEmpty(assemblyShowMrCfg) && assemblyShowMrCfg.equals(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValueStr())) ? true : false; + return fsmCommonService.checkWcpcMapIsMatchTrue(reqBean, MesPcnExtConstWords.ASSEMBLY_SHOW_MR_CFG); } private String getWorkOrderNo(Map productionPartMap, Integer foreignKey) { diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyShowSortStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyShowSortStepService.java index cc277cb..6a0714b 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyShowSortStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyShowSortStepService.java @@ -265,8 +265,7 @@ public class MesAssemblyShowSortStepService extends BaseStepService { //装配件显示规则配置【工位参数】 private Boolean checkIsNeedShowMatchRule(StationRequestBean reqBean) { - String assemblyShowMrCfg = fsmCommonService.handleFsmWcpcMapDataForDoScan(reqBean).get(MesPcnExtConstWords.ASSEMBLY_SHOW_MR_CFG); - return (!StringUtils.isEmpty(assemblyShowMrCfg) && assemblyShowMrCfg.equals(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValueStr())) ? true : false; + return fsmCommonService.checkWcpcMapIsMatchTrue(reqBean, MesPcnExtConstWords.ASSEMBLY_SHOW_MR_CFG); } //封装匹配当前设备的装配件信息 diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesCountDownShowStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesCountDownShowStepService.java index 22de170..c580c93 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesCountDownShowStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesCountDownShowStepService.java @@ -131,10 +131,8 @@ public class MesCountDownShowStepService extends BaseStepService { if (null != countDownCfgArr) return countDownCfgArr; - //获取工位参数 - Map wcpcMap = fsmCommonService.handleFsmWcpcMapDataForDoScan(reqBean); - - String countDownCfg = wcpcMap.containsKey(MesPcnExtConstWords.COUNT_DOWN_CFG) ? wcpcMap.get(MesPcnExtConstWords.COUNT_DOWN_CFG) : null; + //倒计时配置【工位参数】 + String countDownCfg = fsmCommonService.handleFsmWcpcMapDataForDoScanThenBackValue(reqBean, MesPcnExtConstWords.COUNT_DOWN_CFG); if (!StringUtils.isEmpty(countDownCfg)) countDownCfgArr = getCountDownCfgArr(countDownCfg); 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 b030fba..368b14f 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 @@ -5,16 +5,13 @@ import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; import cn.estsh.i3plus.mes.pcn.actor.shipping.dispatch.IFsmCommonService; import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService; import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.IShippingDispatchService; -import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.IStepService; import cn.estsh.i3plus.mes.pcn.websocket.StationWebSocket; import cn.estsh.i3plus.platform.common.util.MesPcnConstWords; -import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil; import cn.estsh.i3plus.pojo.mes.bean.MesWorkCellExtendCfg; import cn.estsh.i3plus.pojo.mes.model.StationRequestBean; import cn.estsh.i3plus.pojo.mes.model.StationResultBean; import cn.estsh.i3plus.pojo.mes.model.StepResult; -import cn.estsh.impp.framework.boot.util.SpringContextsUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -51,7 +48,7 @@ public class MesManyCellTriggerJumpProcessStepService extends BaseStepService { stepResult.unResetScanInfo(); //所有分屏强制跳过工序密码 - String pwd = fsmCommonService.handleFsmWcpcMapDataForDoScan(reqBean).get(MesPcnExtConstWords.MANY_CELL_TRIGGER_JUMP_PROCESS_PWD); + String pwd = fsmCommonService.handleFsmWcpcMapDataForDoScanThenBackValue(reqBean, MesPcnExtConstWords.MANY_CELL_TRIGGER_JUMP_PROCESS_PWD); if (StringUtils.isEmpty(pwd) || !pwd.equals(reqBean.getScanInfo())) 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/MesProductSeqCheckNosortStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSeqCheckNosortStepService.java index 3a8988c..1baee5c 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSeqCheckNosortStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSeqCheckNosortStepService.java @@ -124,11 +124,10 @@ public class MesProductSeqCheckNosortStepService extends MesProductSeqCheckStepS //非排序顺序防错级别配置[工位参数] private String getCheckProductSeqCfg(StationRequestBean reqBean) { - String checkProductSeqCfg = fsmCommonService.handleFsmWcpcMapDataForDoScan(reqBean).get(MesPcnExtConstWords.CHECK_PRODUCT_SEQ_CFG); - return (!StringUtils.isEmpty(checkProductSeqCfg) && checkProductSeqCfg.equals(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValueStr())) ? checkProductSeqCfg : null; + return fsmCommonService.checkWcpcMapIsMatchValue(reqBean, MesPcnExtConstWords.CHECK_PRODUCT_SEQ_CFG, CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValueStr()); } - //前道工艺防错验证 【非排序】 + //顺序防错验证 【非排序】 private Boolean doProductSeqCheckNosort(StationRequestBean reqBean, StepResult stepResult, MesProductionProcessContext productionProcessContext, MesProductionPartContext productionPartContext, String checkProductSeqCfg, List workOrderNoList) { diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSeqCheckSortStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSeqCheckSortStepService.java index 11fc960..14fa886 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSeqCheckSortStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSeqCheckSortStepService.java @@ -105,7 +105,7 @@ public class MesProductSeqCheckSortStepService extends MesProductSeqCheckStepSer } - //前道工艺防错验证 【排序】 + //顺序防错验证 【排序】 private Boolean doProductSeqCheckSort(StationRequestBean reqBean, StepResult stepResult, MesProductionProcessContext productionProcessContext, MesProductionPartContext productionPartContext, Boolean isPushQueue) { String message = StringUtils.isEmpty(stepResult.getMsg()) ? MesPcnExtConstWords.EMPTY : stepResult.getMsg() + MesPcnExtConstWords.SEMICOLON; diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnReadStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnReadStepService.java index 3e28e1f..70ed9a2 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnReadStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnReadStepService.java @@ -67,7 +67,7 @@ public class MesProductSnReadStepService extends BaseStepService { StepResult stepResult = StepResult.getSuccessComplete(); - String endlessLoopReadTimes = fsmCommonService.handleFsmWcpcMapDataForDoScan(reqBean).get(MesPcnExtConstWords.ENDLESS_LOOP_READ_TIMES); + String endlessLoopReadTimes = fsmCommonService.handleFsmWcpcMapDataForDoScanThenBackValue(reqBean, MesPcnExtConstWords.ENDLESS_LOOP_READ_TIMES); if (StringUtils.isEmpty(endlessLoopReadTimes)) endlessLoopReadTimes = MesPcnExtConstWords.ENDLESS_LOOP_READ_TIMES_DEFAULT; if (productionDispatchContextStepService.dispatchOverEndlessLoopReadTimes(reqBean, endlessLoopReadTimes)) { stepThreadSleepAndSendTaskCompleteAndThrowEx(reqBean, new StationResultBean().isWs(false).writeDbLog().checkRepeat(), diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnScanStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnScanStepService.java index 1b9d52f..8abc559 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnScanStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductSnScanStepService.java @@ -121,7 +121,7 @@ public class MesProductSnScanStepService extends BaseStepService { if (StringUtils.isEmpty(scanInfo) && (scanedQty.compareTo(needQty) < 0 || StringUtils.isEmpty(isAllowJump) || isAllowJump)) stepSendGuideAndThrowEx(reqBean, resultBean.writeDbLog(MesPcnEnumUtil.WORK_CELL_SCAN_MONITOR_LOG_TYPE.PROCESS.getValue()), "请扫描主条码!"); //是否支持混腔扫描[工位参数] - String cavityNosortCfg = getCavityNosortCfg(reqBean); + Boolean cavityNosortCfg = fsmCommonService.checkWcpcMapIsMatchTrue(reqBean, MesPcnExtConstWords.CAVITY_NOSORT_CFG); //封装待验证的主条码信息 if (!scanInfo.equals(productionProcessContext.getFinishCode())) equipVariableCollectContextList = doHandleScanProductSnContext(reqBean, scanInfo, equipVariableCollectContextList, cavityNosortCfg); @@ -144,7 +144,7 @@ public class MesProductSnScanStepService extends BaseStepService { String scanInfoName = !scanInfo.equals(productionProcessContext.getFinishCode()) ? "主条码" : "空腔码"; - if (scanedQty.compareTo(needQty) < 0 && !StringUtils.isEmpty(cavityNosortCfg)) + if (scanedQty.compareTo(needQty) < 0 && cavityNosortCfg) return stepDynamicsCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(MesPcnEnumUtil.WORK_CELL_SCAN_MONITOR_LOG_TYPE.SCAN.getValue()).scanInfo(scanInfo), stepResult, false, MesPcnEnumUtil.STATION_BUSI_TYPE.MESSAGE, MesPcnEnumUtil.STATION_DATA_TYPE.TEXT, String.format("当前扫描信息%s[%s],已知腔数[%s],还需要再连续扫描[%s]次主条码!", scanInfoName, scanInfo, needQty, needQty - equipVariableCollectContextList.size())); @@ -161,12 +161,6 @@ public class MesProductSnScanStepService extends BaseStepService { } - //是否支持混腔扫描[工位参数] - private String getCavityNosortCfg(StationRequestBean reqBean) { - String cavityNosortCfg = fsmCommonService.handleFsmWcpcMapDataForDoScan(reqBean).get(MesPcnExtConstWords.CAVITY_NOSORT_CFG); - return (!StringUtils.isEmpty(cavityNosortCfg) && cavityNosortCfg.equals(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValueStr())) ? cavityNosortCfg : null; - } - private Integer calcScanedQty(List equipVariableCollectContextList, List productionPsInContextList) { return (CollectionUtils.isEmpty(equipVariableCollectContextList) ? MesPcnExtConstWords.ZERO : equipVariableCollectContextList.size()) + (CollectionUtils.isEmpty(productionPsInContextList) ? MesPcnExtConstWords.ZERO : productionPsInContextList.size()); } @@ -195,17 +189,11 @@ public class MesProductSnScanStepService extends BaseStepService { Optional optional = CollectionUtils.isEmpty(productionPsInContextList) ? null : productionPsInContextList.stream().filter(o -> (null != o && o.getCheckCraftResult().compareTo(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()) == 0)).findFirst(); if (null == optional || !optional.isPresent()) return false; - //非排序是否允许强过, 默认不支持, 不支持返回null, 存在可以跳过的数据且支持跳过返回true - String isAllowJump = getIsAllowJump(reqBean); + //非排序是否允许强过【工位参数】, 默认不支持, 不支持返回null, 存在可以跳过的数据且支持跳过返回true + String isAllowJump = fsmCommonService.checkWcpcMapIsMatchValue(reqBean, MesPcnExtConstWords.IS_ALLOW_JUMP, CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValueStr()); return StringUtils.isEmpty(isAllowJump) ? null : true; } - //非排序是否允许强过[工位参数] - private String getIsAllowJump(StationRequestBean reqBean) { - String isAllowJump = fsmCommonService.handleFsmWcpcMapDataForDoScan(reqBean).get(MesPcnExtConstWords.IS_ALLOW_JUMP); - return (!StringUtils.isEmpty(isAllowJump) && isAllowJump.equals(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValueStr())) ? isAllowJump : null; - } - //验证扫描信息属于工艺强过码 并且支持跳过,进行数据变更 private void updateProductionPsInContextList(StationRequestBean reqBean, List productionPsInContextList, String craftJumpCode) { productionPsInContextList.forEach(o -> { @@ -234,11 +222,11 @@ public class MesProductSnScanStepService extends BaseStepService { } //封装扫/读信息:主条码信息 - private List doHandleScanProductSnContext(StationRequestBean reqBean, String scanInfo, List equipVariableCollectContextList, String cavityNosortCfg) { + private List doHandleScanProductSnContext(StationRequestBean reqBean, String scanInfo, List equipVariableCollectContextList, Boolean cavityNosortCfg) { if (CollectionUtils.isEmpty(equipVariableCollectContextList)) equipVariableCollectContextList = new ArrayList<>(); - equipVariableCollectContextList.add(new MesEquipVariableCollectContext(reqBean.getOrganizeCode(), scanInfo, StringUtils.isEmpty(cavityNosortCfg) ? MesExtEnumUtil.CELL_MESSAGE_SOURCE.SCAN.getValue() : MesExtEnumUtil.CELL_MESSAGE_SOURCE.MANY.getValue())); + equipVariableCollectContextList.add(new MesEquipVariableCollectContext(reqBean.getOrganizeCode(), scanInfo, !cavityNosortCfg ? MesExtEnumUtil.CELL_MESSAGE_SOURCE.SCAN.getValue() : MesExtEnumUtil.CELL_MESSAGE_SOURCE.MANY.getValue())); return equipVariableCollectContextList; diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductionPartNoReadStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductionPartNoReadStepService.java index 7da2983..1d48742 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductionPartNoReadStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductionPartNoReadStepService.java @@ -67,7 +67,7 @@ public class MesProductionPartNoReadStepService extends BaseStepService { StepResult stepResult = StepResult.getSuccessComplete(); - String endlessLoopReadTimes = fsmCommonService.handleFsmWcpcMapDataForDoScan(reqBean).get(MesPcnExtConstWords.ENDLESS_LOOP_READ_TIMES); + String endlessLoopReadTimes = fsmCommonService.handleFsmWcpcMapDataForDoScanThenBackValue(reqBean, MesPcnExtConstWords.ENDLESS_LOOP_READ_TIMES); if (StringUtils.isEmpty(endlessLoopReadTimes)) endlessLoopReadTimes = MesPcnExtConstWords.ENDLESS_LOOP_READ_TIMES_DEFAULT; if (productionDispatchContextStepService.dispatchOverEndlessLoopReadTimes(reqBean, endlessLoopReadTimes)) { stepThreadSleepAndSendTaskCompleteAndThrowEx(reqBean, new StationResultBean().isWs(false).writeDbLog().checkRepeat(), diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesRecyclablePackageReadStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesRecyclablePackageReadStepService.java index 714f1fc..56a3f51 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesRecyclablePackageReadStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesRecyclablePackageReadStepService.java @@ -68,7 +68,7 @@ public class MesRecyclablePackageReadStepService extends BaseStepService { StepResult stepResult = StepResult.getSuccessComplete(); - String endlessLoopReadTimes = fsmCommonService.handleFsmWcpcMapDataForDoScan(reqBean).get(MesPcnExtConstWords.ENDLESS_LOOP_READ_TIMES); + String endlessLoopReadTimes = fsmCommonService.handleFsmWcpcMapDataForDoScanThenBackValue(reqBean, MesPcnExtConstWords.ENDLESS_LOOP_READ_TIMES); if (StringUtils.isEmpty(endlessLoopReadTimes)) endlessLoopReadTimes = MesPcnExtConstWords.ENDLESS_LOOP_READ_TIMES_DEFAULT; if (productionDispatchContextStepService.dispatchOverEndlessLoopReadTimes(reqBean, endlessLoopReadTimes)) { diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesShippingQueueFindStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesShippingQueueFindStepService.java index a5d833c..505bb39 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesShippingQueueFindStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesShippingQueueFindStepService.java @@ -62,7 +62,7 @@ public class MesShippingQueueFindStepService extends BaseStepService { StepResult stepResult = StepResult.getSuccessComplete(); - String endlessLoopReadTimes = fsmCommonService.handleFsmWcpcMapDataForDoScan(reqBean).get(MesPcnExtConstWords.ENDLESS_LOOP_READ_TIMES); + String endlessLoopReadTimes = fsmCommonService.handleFsmWcpcMapDataForDoScanThenBackValue(reqBean, MesPcnExtConstWords.ENDLESS_LOOP_READ_TIMES); if (StringUtils.isEmpty(endlessLoopReadTimes)) endlessLoopReadTimes = MesPcnExtConstWords.ENDLESS_LOOP_READ_TIMES_DEFAULT; if (productionDispatchContextStepService.dispatchOverEndlessLoopReadTimes(reqBean, endlessLoopReadTimes)) { stepThreadSleepAndSendTaskCompleteAndThrowEx(reqBean, new StationResultBean().isWs(false), diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCheckNosortStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCheckNosortStepService.java index dbc91e7..5d2814d 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCheckNosortStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCheckNosortStepService.java @@ -1,7 +1,6 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionCustomContextStepService; -import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionDispatchContextStepService; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesCellEquipContext; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesEquipVariableCollectContext; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionPartContext; @@ -154,17 +153,11 @@ public class MesWorkOrderCheckNosortStepService extends MesWorkOrderCheckStepSer private Boolean checkIsAllowJump(StationRequestBean reqBean, List productionPartContextList) { Optional optional = CollectionUtils.isEmpty(productionPartContextList) ? null : productionPartContextList.stream().filter(o -> (null != o && o.getCheckSeqResult().compareTo(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()) == 0)).findFirst(); if (null == optional || !optional.isPresent()) return false; - //非排序是否允许强过, 默认不支持, 不支持返回null, 存在可以跳过的数据且支持跳过返回true - String isAllowJump = getIsAllowJump(reqBean); + //非排序是否允许强过【工位参数】, 默认不支持, 不支持返回null, 存在可以跳过的数据且支持跳过返回true + String isAllowJump = fsmCommonService.checkWcpcMapIsMatchValue(reqBean, MesPcnExtConstWords.IS_ALLOW_JUMP, CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValueStr()); return StringUtils.isEmpty(isAllowJump) ? null : true; } - //非排序是否允许强过[工位参数] - private String getIsAllowJump(StationRequestBean reqBean) { - String isAllowJump = fsmCommonService.handleFsmWcpcMapDataForDoScan(reqBean).get(MesPcnExtConstWords.IS_ALLOW_JUMP); - return (!StringUtils.isEmpty(isAllowJump) && isAllowJump.equals(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValueStr())) ? isAllowJump : null; - } - //验证扫描信息属于工艺强过码 并且支持强过,进行数据变更 private void updateProductionPartContextList(StationRequestBean reqBean, List productionPartContextList, String craftJumpCode) { productionPartContextList.forEach(o -> { diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCheckSortStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCheckSortStepService.java index cc2aeb6..ec0a8a0 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCheckSortStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCheckSortStepService.java @@ -181,7 +181,7 @@ public class MesWorkOrderCheckSortStepService extends MesWorkOrderCheckStepServi List equipVariableCollectContextList, List productionPartContextList, List productionPsInContextList, List productionPsOutContextList) { //是否支持扫描完成状态的工单[工位参数] - String cfg = getAllowScanCompleteOrderCfg(reqBean); + Boolean allowCfg = fsmCommonService.checkWcpcMapIsMatchTrue(reqBean, MesPcnExtConstWords.ALLOW_SCAN_COMPLETE_ORDER_CFG); //从上下文中取出生产线与工位对象 MesWorkCenter workCenter = productionProcessContext.getWorkCenter(); @@ -207,9 +207,9 @@ public class MesWorkOrderCheckSortStepService extends MesWorkOrderCheckStepServi return stepResult.isCompleted(false).msg((String) itemMap.get(MesPcnExtConstWords.MESSAGE)); MesWorkOrder workOrder = (MesWorkOrder) itemMap.get(MesWorkOrder.class.getSimpleName()); - if (StringUtils.isEmpty(cfg) && !MesExtEnumUtil.ORDER_STATUS.checkAllowStatus(workCenter.getCenterType(), workOrder.getWorkOrderStatus())) + if (!allowCfg && !MesExtEnumUtil.ORDER_STATUS.checkAllowStatus(workCenter.getCenterType(), workOrder.getWorkOrderStatus())) return stepResult.isCompleted(false).msg(String.format("请检查工单信息,加工单[%s]信息工单状态[%s]!", workOrderNo, MesExtEnumUtil.ORDER_STATUS.valueOfDescription(workOrder.getWorkOrderStatus()))); - if (!StringUtils.isEmpty(cfg) && !MesExtEnumUtil.ORDER_STATUS.checkNosortAllowStatus(workOrder.getWorkOrderStatus())) + if (allowCfg && !MesExtEnumUtil.ORDER_STATUS.checkNosortAllowStatus(workOrder.getWorkOrderStatus())) return stepResult.isCompleted(false).msg(String.format("请检查工单信息,加工单[%s]信息工单状态[%s]!", workOrderNo, MesExtEnumUtil.ORDER_STATUS.valueOfDescription(workOrder.getWorkOrderStatus()))); if (!workOrder.getWorkCenterCode().equals(reqBean.getWorkCenterCode())) return stepResult.isCompleted(false).msg(String.format("请检查工单信息,加工单[%s]信息所属生产线[%s]与当前生产线[%s]不一致!", workOrderNo, workOrder.getWorkCenterCode(), reqBean.getWorkCenterCode())); @@ -219,9 +219,9 @@ public class MesWorkOrderCheckSortStepService extends MesWorkOrderCheckStepServi MesProduceSn produceSn = (MesProduceSn) itemMap.get(MesProduceSn.class.getSimpleName()); if ((StringUtils.isEmpty(workCenter.getIsIgnoreQc()) || workCenter.getIsIgnoreQc().compareTo(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()) != 0) && produceSn.getQcStatus().compareTo(MesExtEnumUtil.PRODUCE_QC_STATUS.SUSPICIOUS.getValue()) >= 0) return stepResult.isCompleted(false).msg(String.format("请检查工单信息,加工单[%s]质量状态[%s]", workOrderNo, MesExtEnumUtil.PRODUCE_QC_STATUS.valueOfDescription(produceSn.getQcStatus()))); - if (StringUtils.isEmpty(cfg) && MesExtEnumUtil.PRODUCE_SN_STATUS.OFFLINE.getValue() <= produceSn.getSnStatus()) + if (!allowCfg && MesExtEnumUtil.PRODUCE_SN_STATUS.OFFLINE.getValue() <= produceSn.getSnStatus()) return stepResult.isCompleted(false).msg(String.format("请检查工单产品条码信息,产品条码[%s]条码状态[%s]", produceSn.getProductSn(), MesExtEnumUtil.PRODUCE_SN_STATUS.valueOfDescription(produceSn.getSnStatus()))); - if (!StringUtils.isEmpty(cfg) && MesExtEnumUtil.PRODUCE_SN_STATUS.OFFLINE.getValue() < produceSn.getSnStatus()) + if (allowCfg && MesExtEnumUtil.PRODUCE_SN_STATUS.OFFLINE.getValue() < produceSn.getSnStatus()) return stepResult.isCompleted(false).msg(String.format("请检查工单产品条码信息,产品条码[%s]条码状态[%s]", produceSn.getProductSn(), MesExtEnumUtil.PRODUCE_SN_STATUS.valueOfDescription(produceSn.getSnStatus()))); MesQueueOrder queueOrder = (MesQueueOrder) itemMap.get(MesQueueOrder.class.getSimpleName()); @@ -302,10 +302,4 @@ public class MesWorkOrderCheckSortStepService extends MesWorkOrderCheckStepServi return true; } - //是否支持扫描完成状态的工单[工位参数] - private String getAllowScanCompleteOrderCfg(StationRequestBean reqBean) { - String cfg = fsmCommonService.handleFsmWcpcMapDataForDoScan(reqBean).get(MesPcnExtConstWords.ALLOW_SCAN_COMPLETE_ORDER_CFG); - return (!StringUtils.isEmpty(cfg) && cfg.equals(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValueStr())) ? cfg : null; - } - } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderQueueAcceptStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderQueueAcceptStepService.java index e5e4e0e..9805f44 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderQueueAcceptStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderQueueAcceptStepService.java @@ -67,11 +67,16 @@ public class MesWorkOrderQueueAcceptStepService extends BaseStepService { private static Map lockMap = new ConcurrentHashMap<>(); @Override + public void title(StationRequestBean reqBean) { + this.sendMessage(reqBean, new StationResultBean().resultObj(MesPcnExtConstWords.STEP_DISABLE_SCAN), String.format("工步: %s", reqBean.getStepName()), MesPcnEnumUtil.STATION_BUSI_TYPE.STEP_TITLE, MesPcnEnumUtil.STATION_DATA_TYPE.TITLE); + } + + @Override public StepResult init(StationRequestBean reqBean) { StepResult stepResult = StepResult.getSuccessComplete(); - String endlessLoopReadTimes = fsmCommonService.handleFsmWcpcMapDataForDoScan(reqBean).get(MesPcnExtConstWords.ENDLESS_LOOP_READ_TIMES); + String endlessLoopReadTimes = fsmCommonService.handleFsmWcpcMapDataForDoScanThenBackValue(reqBean, MesPcnExtConstWords.ENDLESS_LOOP_READ_TIMES); if (StringUtils.isEmpty(endlessLoopReadTimes)) endlessLoopReadTimes = MesPcnExtConstWords.ENDLESS_LOOP_READ_TIMES_DEFAULT; if (productionDispatchContextStepService.dispatchOverEndlessLoopReadTimes(reqBean, endlessLoopReadTimes)) { stepThreadSleepAndSendTaskCompleteAndThrowEx(reqBean, new StationResultBean().isWs(false), diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderReadStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderReadStepService.java index a2958ac..7177aef 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderReadStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderReadStepService.java @@ -64,7 +64,7 @@ public class MesWorkOrderReadStepService extends BaseStepService { StepResult stepResult = StepResult.getSuccessComplete(); - String endlessLoopReadTimes = fsmCommonService.handleFsmWcpcMapDataForDoScan(reqBean).get(MesPcnExtConstWords.ENDLESS_LOOP_READ_TIMES); + String endlessLoopReadTimes = fsmCommonService.handleFsmWcpcMapDataForDoScanThenBackValue(reqBean, MesPcnExtConstWords.ENDLESS_LOOP_READ_TIMES); if (StringUtils.isEmpty(endlessLoopReadTimes)) endlessLoopReadTimes = MesPcnExtConstWords.ENDLESS_LOOP_READ_TIMES_DEFAULT; if (productionDispatchContextStepService.dispatchOverEndlessLoopReadTimes(reqBean, endlessLoopReadTimes)) { stepThreadSleepAndSendTaskCompleteAndThrowEx(reqBean, new StationResultBean().isWs(false).writeDbLog().checkRepeat(),