From 8daaa603bf8d881584a4296aa12bec655eee244e Mon Sep 17 00:00:00 2001 From: "jhforever.wang@estsh.com" Date: Tue, 14 Jan 2025 13:03:15 +0800 Subject: [PATCH] =?UTF-8?q?44517=20=E8=A3=85=E7=AE=B1=E9=98=B2=E9=94=99?= =?UTF-8?q?=E5=90=8E=E5=90=90=E6=9D=A1=E7=A0=81=E9=9C=80=E6=B1=82=EF=BC=88?= =?UTF-8?q?=E8=8A=9C=E6=B9=96=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MesFunctionPackageProgressService.java | 54 +++++++++++++--------- .../step/MesPackageNoGenerateStepService.java | 12 ++--- .../MesProductionCustomContextStepService.java | 5 +- 3 files changed, 43 insertions(+), 28 deletions(-) diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/function/MesFunctionPackageProgressService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/function/MesFunctionPackageProgressService.java index 4cd9b41..218f235 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/function/MesFunctionPackageProgressService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/station/function/MesFunctionPackageProgressService.java @@ -36,38 +36,43 @@ public class MesFunctionPackageProgressService extends BaseSwsService implements @Override public Object doCustomApiDispatch(StationRequestBean reqBean, StationResultBean resultBean, ButtonDynamicModel buttonDynamicModel) { + Map resultMap = new HashMap<>(); + //获取打包数据 Map packageDataContextMap = productionCustomContextStepService.getPackageDataContext(reqBean); - if (CollectionUtils.isEmpty(packageDataContextMap)) return null; + if (CollectionUtils.isEmpty(packageDataContextMap)) { + resultMap.put(MesPcnExtConstWords.DATA_TYPE, MesPcnEnumUtil.STATION_DATA_TYPE.TEXT.getValue()); + resultMap.put(MesPcnExtConstWords.MESSAGE, "当前无包装信息!"); + return resultMap; + } - if (StringUtils.isEmpty(buttonDynamicModel.getFunctionValue())) { - //封装返回列表 - List resultList = new ArrayList<>(); + //封装返回列表 + List resultList = new ArrayList<>(); - for (String partNo : packageDataContextMap.keySet()) { - if (StringUtils.isEmpty(partNo)) continue; + for (String partNo : packageDataContextMap.keySet()) { + if (StringUtils.isEmpty(partNo)) continue; - List packageDataContextList = JSONObject.parseArray(packageDataContextMap.get(partNo), MesPackageDataContext.class); - packageDataContextList = packageDataContextList.stream().filter(o -> null != o).sorted(Comparator.comparing(MesPackageDataContext::getModifyDatetime).reversed()).collect(Collectors.toList()); + List packageDataContextList = JSONObject.parseArray(packageDataContextMap.get(partNo), MesPackageDataContext.class); + packageDataContextList = packageDataContextList.stream().filter(o -> null != o).sorted(Comparator.comparing(MesPackageDataContext::getModifyDatetime).reversed()).collect(Collectors.toList()); - //列表展示: 包装条码, 装箱个数, 包装规格数量, 装箱开始时间, 装箱结束时间 - resultList.add(new MesPackageDataContext( - packageDataContextList.get(0).getPartNo(), packageDataContextList.get(0).getPartName(), - packageDataContextList.get(0).getPackageNo(), new Double(packageDataContextList.size()), - packageDataContextList.get(0).getPackSpecQty(), packageDataContextList.get(0).getCreateDatetime(), packageDataContextList.get(0).getModifyDatetime()) - ); - } + //列表展示: 包装条码, 装箱个数, 包装规格数量, 装箱开始时间, 装箱结束时间 + resultList.add(new MesPackageDataContext( + packageDataContextList.get(0).getPartNo(), packageDataContextList.get(0).getPartName(), + packageDataContextList.get(0).getPackageNo(), new Double(packageDataContextList.size()), + packageDataContextList.get(0).getPackSpecQty(), packageDataContextList.get(0).getCreateDatetime(), packageDataContextList.get(0).getModifyDatetime()) + ); + } - resultList = resultList.stream().filter(o -> null != o).sorted(Comparator.comparing(MesPackageDataContext::getModifyDatetime).reversed()).collect(Collectors.toList()); + resultList = resultList.stream().filter(o -> null != o).sorted(Comparator.comparing(MesPackageDataContext::getModifyDatetime).reversed()).collect(Collectors.toList()); - return resultList; - } + resultMap.put(MesPcnExtConstWords.DATA, resultList); + if (StringUtils.isEmpty(buttonDynamicModel.getFunctionValue())) return resultMap; resultBean.writeDbLog(MesPcnEnumUtil.WORK_CELL_SCAN_MONITOR_LOG_TYPE.PICK.getValue()).scanInfo(buttonDynamicModel.getFunctionValue()); - Map resultMap = new HashMap<>(); resultMap.put(MesPcnExtConstWords.DATA_TYPE, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT.getValue()); + MesPackageDataContext packageDataContext = JSONObject.parseObject(buttonDynamicModel.getFunctionValue(), MesPackageDataContext.class); if (null == packageDataContext) { return packResultMap(reqBean, resultBean, resultMap, @@ -98,12 +103,19 @@ public class MesFunctionPackageProgressService extends BaseSwsService implements String.format("生产线[%s]工位[%s]强制打包失败,%s", reqBean.getWorkCenterCode(), reqBean.getWorkCellCode(), stepResult.getMsg())); } + // 保存打包数据 + packageDataContextMap.remove(packageDataContext.getPartNo()); + productionCustomContextStepService.dispatchPackageDataContext(reqBean, packageDataContextMap); + + resultList = resultList.stream().filter(o -> (null != o && !o.getPackageNo().equals(packageDataContext.getPackageNo()))).collect(Collectors.toList()); + if (CollectionUtils.isEmpty(resultList)) resultMap.remove(MesPcnExtConstWords.DATA); + else resultMap.put(MesPcnExtConstWords.DATA, resultList); resultMap.put(MesPcnExtConstWords.DATA_TYPE, MesPcnEnumUtil.STATION_DATA_TYPE.TEXT.getValue()); - return packResultMap(reqBean, resultBean, resultMap, String.format("零件号[%s]强制封箱!正在打印中...请稍后!", packageDataContext.getPartNo())); + return packResultMap(reqBean, resultBean, resultMap, String.format("零件号[%s]强制封箱成功!", packageDataContext.getPartNo())); } - private Object packResultMap(StationRequestBean reqBean, StationResultBean resultBean, Map resultMap, String message) { + private Object packResultMap(StationRequestBean reqBean, StationResultBean resultBean, Map resultMap, String message) { this.sendMessage(reqBean, resultBean, message, MesPcnEnumUtil.STATION_BUSI_TYPE.RUNNING_INFO, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT); resultMap.put(MesPcnExtConstWords.MESSAGE, message); return resultMap; diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesPackageNoGenerateStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesPackageNoGenerateStepService.java index 6763778..0be0a6c 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesPackageNoGenerateStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesPackageNoGenerateStepService.java @@ -222,9 +222,8 @@ public class MesPackageNoGenerateStepService extends BaseStepService { String packageTemplate = packingRule.getPackageTemplate(); String printer = packingRule.getPrinter(); - //如果 packageBarcodeRule || packageTemplate || printer 有一个为空, 则需要根据 箱类别代号查询包装定义 - if (StringUtils.isEmpty(generateTypeName) || (StringUtils.isEmpty(packingRule.getPackCode()) && - (StringUtils.isEmpty(packageBarcodeRule) || StringUtils.isEmpty(packageTemplate) || StringUtils.isEmpty(printer)))) { + //如果 packageBarcodeRule || packageTemplate || printer 有一个为空, 则需要根据 箱类别代号查询包装定义, 但是 printer 不进行强验证,可能是否的是默认打印机 + if (StringUtils.isEmpty(generateTypeName) || (StringUtils.isEmpty(packingRule.getPackCode()) && (StringUtils.isEmpty(packageBarcodeRule) || StringUtils.isEmpty(packageTemplate)))) { this.sendMessage(reqBean, new StationResultBean().writeDbLog(), String.format("零件编码[%s]包装物类型对应的包装代码[%s]配置的成品包装规则信息中必要信息无效:统计方式[%s]箱类别代号[%s]!", partNo, packingRuleDetail.getPackageCode(), StringUtils.isEmpty(generateTypeName) ? MesPcnExtConstWords.EMPTY : generateTypeName, packingRule.getPackCode()), MesPcnEnumUtil.STATION_BUSI_TYPE.MESSAGE, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT); @@ -234,8 +233,9 @@ public class MesPackageNoGenerateStepService extends BaseStepService { //判断是否需要查询包装定义 if (StringUtils.isEmpty(packageBarcodeRule) || StringUtils.isEmpty(packageTemplate) || StringUtils.isEmpty(printer)) { //根据箱类别代号查询包装定义 - MesPackingDefine packingDefine = packingRuleService.getPackingDefine(reqBean.getOrganizeCode(), packingRule.getPackCode()); - if (null == packingDefine) { + MesPackingDefine packingDefine = StringUtils.isEmpty(packingRule.getPackCode()) ? null : + packingRuleService.getPackingDefine(reqBean.getOrganizeCode(), packingRule.getPackCode()); + if (null == packingDefine && (StringUtils.isEmpty(packageBarcodeRule) || StringUtils.isEmpty(packageTemplate))) { this.sendMessage(reqBean, new StationResultBean().writeDbLog(), String.format("零件编码[%s]包装物类型对应的包装代码[%s]配置成品包装规则信息中的箱类别代号[%s]未维护包装定义信息!", partNo, packingRuleDetail.getPackageCode(), packingRule.getPackCode()), MesPcnEnumUtil.STATION_BUSI_TYPE.MESSAGE, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT); return null; @@ -244,7 +244,7 @@ public class MesPackageNoGenerateStepService extends BaseStepService { //如果为空, 则取包装定义中维护的信息 if (StringUtils.isEmpty(packageBarcodeRule)) packageBarcodeRule = packingDefine.getPackageBarcodeRule(); if (StringUtils.isEmpty(packageTemplate)) packageTemplate = packingDefine.getPackageTemplate(); - if (StringUtils.isEmpty(printer)) printer = packingDefine.getPrinter(); + if (StringUtils.isEmpty(printer) && null != packingDefine) printer = packingDefine.getPrinter(); //此时 packageBarcodeRule || packageTemplate 仍有一个为空则 记录日志 忽略当前零件的打包 if (StringUtils.isEmpty(packageBarcodeRule) || StringUtils.isEmpty(packageTemplate)) { 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 1759174..b9ec758 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 @@ -276,7 +276,10 @@ public class MesProductionCustomContextStepService extends BaseStepService imple //保存打包数据 [JSON]List @Override public Boolean dispatchPackageDataContext(StationRequestBean reqBean, Map packageDataContextMap) { - if (CollectionUtils.isEmpty(packageDataContextMap)) return false; + if (CollectionUtils.isEmpty(packageDataContextMap)) { + removePackageDataContext(reqBean); + return true; + } return dispatchFsmBusiData(reqBean.getOrganizeCode(), getPackageDataContextKey(reqBean), JSONObject.toJSONString(packageDataContextMap)); }