From 55984cee69223b008f04b7f1c0465ff3371a49fb Mon Sep 17 00:00:00 2001 From: "xiangwei.zhang" <752558143@qq.com> Date: Sat, 14 Sep 2024 15:50:22 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E5=88=A4=E6=96=AD=E5=8F=AF=E7=96=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pcn/api/busi/IMesInputDefectRecordService.java | 7 ++++ .../busi/MesInputDefectRecordController.java | 29 ++++++++++++++ .../busi/MesInputDefectRecordService.java | 44 ++++++++++++++++++++++ 3 files changed, 80 insertions(+) diff --git a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesInputDefectRecordService.java b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesInputDefectRecordService.java index bbe797e..3f93913 100644 --- a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesInputDefectRecordService.java +++ b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesInputDefectRecordService.java @@ -3,6 +3,7 @@ package cn.estsh.i3plus.ext.mes.pcn.api.busi; import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesPartInspectionInputModel; import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesPartInspectionViewModel; import cn.estsh.i3plus.pojo.mes.bean.MesPartTypeDefect; +import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn; import cn.estsh.i3plus.pojo.mes.bean.nc.MesPartInspectionDetail; import io.swagger.annotations.ApiOperation; @@ -28,6 +29,12 @@ public interface IMesInputDefectRecordService { @ApiOperation(value = "完成质检") void savePartInspection(MesPartInspectionInputModel model, String org); + @ApiOperation(value = "客退品") + MesProduceSn customerBack(String organizeCode, String sn, String userName); + + @ApiOperation(value = "客退品提交") + void customerBackCommit(String organizeCode, String sn, String userName); + @ApiOperation(value = "可疑品录入") void saveSusPartInspection(MesPartInspectionInputModel model, String org); } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesInputDefectRecordController.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesInputDefectRecordController.java index 087936c..8e83dd8 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesInputDefectRecordController.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesInputDefectRecordController.java @@ -5,6 +5,7 @@ import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesInputDefectRecordService; import cn.estsh.i3plus.ext.mes.pcn.pojo.constant.MesCommonConstant; import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesPartInspectionInputModel; import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesPartInspectionViewModel; +import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn; import cn.estsh.impp.framework.boot.auth.AuthUtil; import cn.estsh.impp.framework.boot.exception.ImppBusiException; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; @@ -87,5 +88,33 @@ public class MesInputDefectRecordController { } } + @PostMapping("/customerBack") + @ApiOperation(value = "客退品") + public ResultBean customerBack(@RequestBody MesPartInspectionInputModel model) { + try { +// inputDefectRecordService.savePartInspection(model, "CK01"); + MesProduceSn mesProduceSn = inputDefectRecordService.customerBack(model.getOrganizeCode(), model.getSn(), model.getUserInfo()); + return ResultBean.success("客退品已完成,请继续").setResultObject(mesProduceSn); + } catch (ImppBusiException imppException) { + return ResultBean.fail(imppException); + } catch (Exception e) { + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + + @PostMapping("/customerBackCommit") + @ApiOperation(value = "客退品提交") + public ResultBean customerBackCommit(@RequestBody MesPartInspectionInputModel model) { + + try { +// inputDefectRecordService.savePartInspection(model, "CK01"); + inputDefectRecordService.customerBackCommit(model.getOrganizeCode(), model.getSn(), model.getUserInfo()); + return ResultBean.success("客退品提交已完成,请继续"); + } catch (ImppBusiException imppException) { + return ResultBean.fail(imppException); + } catch (Exception e) { + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesInputDefectRecordService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesInputDefectRecordService.java index a8572bf..424f70c 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesInputDefectRecordService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesInputDefectRecordService.java @@ -4,6 +4,7 @@ import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesProdOrgExtService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesConfigService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesInputDefectRecordService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProduceSnExtService; +import cn.estsh.i3plus.ext.mes.pcn.apiservice.util.MesPcnException; import cn.estsh.i3plus.ext.mes.pcn.pojo.constant.MesCommonConstant; import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesPartInspectionInputModel; import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesPartInspectionViewModel; @@ -28,6 +29,8 @@ import cn.estsh.impp.framework.boot.exception.ImppBusiException; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; import cn.estsh.impp.framework.boot.util.ResultBean; import cn.estsh.impp.framework.boot.util.ValidatorBean; +import com.codepoetics.protonpack.collectors.CollectorUtils; +import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -97,6 +100,9 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService @Autowired private MesProductVersionRepository productVersionRepository; + @Autowired + private MesProduceSnLogRepository produceSnLogRepository; + @Override public MesPartInspectionViewModel queryPartInspection(MesPartInspectionInputModel inputModel, String org) { @@ -902,4 +908,42 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService moveRepository.save(move); } + @ApiOperation(value = "客退品查询") + public MesProduceSn customerBack(String organizeCode, String sn, String userName) { + List produceSnList = produceSnExtService.getProduceSnList(organizeCode, sn); + if (CollectionUtils.isEmpty(produceSnList)) { + MesPcnException.throwFlowException("条码不存在"); + } + MesProduceSn mesProduceSn = produceSnList.get(0); + + + return mesProduceSn; + } + + @ApiOperation(value = "客退品提交") + public void customerBackCommit(String organizeCode, String sn, String userName) { + + List produceSnList = produceSnExtService.getProduceSnList(organizeCode, sn); + if (CollectionUtils.isEmpty(produceSnList)) { + MesPcnException.throwFlowException("条码不存在"); + } + MesProduceSn produceSn = produceSnList.get(0); + + MesProduceSnLog produceSnLog = new MesProduceSnLog(); + + if (Objects.equals(produceSn.getSnStatus(), MesExtEnumUtil.PRODUCE_SN_STATUS.OFFLINE.getValue())) { + MesPcnException.throwFlowException("条码状态不为已发运"); + } + produceSn.setSnStatus(MesExtEnumUtil.PRODUCE_SN_STATUS.OFFLINE.getValue()); + ConvertBean.serviceModelUpdate(produceSn, userName); + produceSnExtService.update(produceSn); + + produceSnLog.setProductSn(produceSn.getProductSn()); + produceSnLog.setCustSn(produceSn.getCustSn()); + produceSnLog.setOriProductSn(null); + produceSnLog.setBeforeSnStatus(MesExtEnumUtil.PRODUCE_SN_STATUS.SHIPPED.getValue()); + produceSnLog.setAfterSnStatus(MesExtEnumUtil.PRODUCE_SN_STATUS.OFFLINE.getValue()); + ConvertBean.serviceModelInitialize(produceSnLog, userName); + produceSnLogRepository.save(produceSnLog); + } } From 2322cc606c3d62f54f86643976e7944a2cf173ba Mon Sep 17 00:00:00 2001 From: jun Date: Thu, 19 Sep 2024 10:54:34 +0800 Subject: [PATCH 2/5] =?UTF-8?q?43063=20PDA=E7=82=B9=E6=A3=80=E9=87=8D?= =?UTF-8?q?=E5=A4=8D=E6=89=AB=E6=8F=8F=E4=BA=86=E5=90=8C=E4=B8=80=E4=B8=AA?= =?UTF-8?q?=E6=9D=A1=E7=A0=81=EF=BC=8C=E5=B8=8C=E6=9C=9B=E6=8F=90=E7=A4=BA?= =?UTF-8?q?=E6=B8=85=E6=99=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pcn/apiservice/serviceimpl/busi/MesSpotCheckOrderService.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesSpotCheckOrderService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesSpotCheckOrderService.java index 1e88a4e..0bb540d 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesSpotCheckOrderService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesSpotCheckOrderService.java @@ -3,6 +3,7 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.busi; import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesEquipmentExtService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesEquipmentLogExtService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.spot.IMesSpotCheckOrderService; +import cn.estsh.i3plus.ext.mes.pcn.apiservice.util.MesPcnException; import cn.estsh.i3plus.ext.mes.pcn.pojo.constant.MesCommonConstant; import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesEquipmentSpotCheckModel; import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesSpotCheckOrderModel; @@ -147,6 +148,10 @@ public class MesSpotCheckOrderService implements IMesSpotCheckOrderService { checkEquipment(model, org); return model; } else { + //校验是否重复扫描 + if(model.getOrderPartList().stream().anyMatch(t -> !StringUtils.isEmpty(t.getSn()) && Objects.equals(model.getProduceSn(), t.getSn()))){ + MesPcnException.throwMesBusiException("条码【%s】已扫描,请勿重复扫描", model.getProduceSn()); + } //检查条码 MesProduceSn produceSn = checkProduceSn(model.getProduceSn(), org); @@ -161,7 +166,7 @@ public class MesSpotCheckOrderService implements IMesSpotCheckOrderService { } if (!flg) { - throw new ImppBusiException(String.format("扫描的条码【%s】对应的物料号【%s】在点检单中不存在", produceSn.getProductSn(), produceSn.getPartNo())); + throw new ImppBusiException(String.format("扫描的条码【%s】对应的物料号【%s】在点检单中未匹配到待匹配的数据", produceSn.getProductSn(), produceSn.getPartNo())); } return model; From d2d1d9828100576f86b166ea529f2b3e827ae473 Mon Sep 17 00:00:00 2001 From: jun Date: Thu, 19 Sep 2024 11:49:58 +0800 Subject: [PATCH 3/5] =?UTF-8?q?43072=20=E5=8A=A0=E6=96=99=E9=98=B2?= =?UTF-8?q?=E9=94=99=20=E6=96=99=E7=AE=B1=E8=87=AA=E5=8A=A8=E5=88=9D?= =?UTF-8?q?=E5=A7=8B=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../busi/MesRawPartChargingServiceImpl.java | 27 ++++++---------------- 1 file changed, 7 insertions(+), 20 deletions(-) diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesRawPartChargingServiceImpl.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesRawPartChargingServiceImpl.java index 8b6fb49..e23434c 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesRawPartChargingServiceImpl.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesRawPartChargingServiceImpl.java @@ -1,9 +1,11 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.busi; +import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesNumberRuleMatchDispatchService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesRawPartChargingService; import cn.estsh.i3plus.ext.mes.pcn.apiservice.util.MesPcnException; import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesRawPackageModel; import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesRawPartChargingModel; +import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.platform.common.tool.TimeTool; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; @@ -12,6 +14,7 @@ import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; import cn.estsh.i3plus.pojo.mes.bean.*; import cn.estsh.i3plus.pojo.mes.repository.*; import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; +import cn.estsh.impp.framework.boot.util.SpringContextsUtil; import cn.estsh.impp.framework.boot.util.ValidatorBean; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; @@ -99,7 +102,8 @@ public class MesRawPartChargingServiceImpl implements IMesRawPartChargingService //校验是否已扫描 List mesRawPartCharging = findMesRawPartCharging(mesRawPartChargingModel); if (!CollectionUtils.isEmpty(mesRawPartCharging)) { - MesPcnException.throwMesBusiException("料筒条码【%s】与原料条码【%s】已绑定", mesRawPartChargingModel.getPackageSn(), mesRawPartCharging.iterator().next().getSn()); + //已绑定,再次扫描料筒条码自动初始化 + doMesRawPartChargingInit(mesRawPartChargingModel); } if (Objects.isNull(MesExtEnumUtil.RAW_SCAN_TYPE.valueOfDescription(mesRawPartChargingModel.getMesRawPackagePart().getScanType()))) { MesPcnException.throwMesBusiException("料筒条码【%s】物料【%s】扫描类型信息不存在", mesRawPartChargingModel.getPackageSn(), mesRawPartChargingModel.getMesRawPackagePart().getPartNo()); @@ -219,25 +223,8 @@ public class MesRawPartChargingServiceImpl implements IMesRawPartChargingService } private void checkHomeRuleSn(MesRawPartChargingModel mesRawPartChargingModel) { - if (StringUtils.isEmpty(mesRawPartChargingModel.getMesRawPackagePart().getBarcodeRule())) { - MesPcnException.throwMesBusiException("非自制件,条码规则未维护", mesRawPartChargingModel.getMesRawPackagePart().getPartNo()); - } - if (!mesRawPartChargingModel.getMesRawPackagePart().getBarcodeRule().contains("*")) { - if(!mesRawPartChargingModel.getMesRawPackagePart().getBarcodeRule().equals(mesRawPartChargingModel.getSn())){ - MesPcnException.throwMesBusiException("原料条码【%s】校验条码规则【%s】失败", mesRawPartChargingModel.getSn(), mesRawPartChargingModel.getMesRawPackagePart().getBarcodeRule()); - } - } else if (mesRawPartChargingModel.getMesRawPackagePart().getBarcodeRule().startsWith("*") && mesRawPartChargingModel.getMesRawPackagePart().getBarcodeRule().endsWith("*")) { - if(!mesRawPartChargingModel.getSn().contains(mesRawPartChargingModel.getMesRawPackagePart().getBarcodeRule().replace("*", ""))){ - MesPcnException.throwMesBusiException("原料条码【%s】校验条码规则【%s】失败", mesRawPartChargingModel.getSn(), mesRawPartChargingModel.getMesRawPackagePart().getBarcodeRule()); - } - } else if (mesRawPartChargingModel.getMesRawPackagePart().getBarcodeRule().startsWith("*")) { - if(!mesRawPartChargingModel.getSn().endsWith(mesRawPartChargingModel.getMesRawPackagePart().getBarcodeRule().replace("*", ""))){ - MesPcnException.throwMesBusiException("原料条码【%s】校验条码规则【%s】失败", mesRawPartChargingModel.getSn(), mesRawPartChargingModel.getMesRawPackagePart().getBarcodeRule()); - } - } else if (mesRawPartChargingModel.getMesRawPackagePart().getBarcodeRule().endsWith("*")) { - if(!mesRawPartChargingModel.getSn().startsWith(mesRawPartChargingModel.getMesRawPackagePart().getBarcodeRule().replace("*", ""))){ - MesPcnException.throwMesBusiException("原料条码【%s】校验条码规则【%s】失败", mesRawPartChargingModel.getSn(), mesRawPartChargingModel.getMesRawPackagePart().getBarcodeRule()); - } + if(!(Boolean) ((IMesNumberRuleMatchDispatchService) SpringContextsUtil.getBean(MesExtEnumUtil.ASSEMBLY_MATCH_TYPE.MATCH_TYPE_20.getStrategyClass())).matchNumberRule(mesRawPartChargingModel.getOrganizeCode(), mesRawPartChargingModel.getSn(), mesRawPartChargingModel.getMesRawPackagePart().getBarcodeRule(), mesRawPartChargingModel.getMesRawPackagePart().getBarcodeRule()).get(MesPcnExtConstWords.RESULT)){ + MesPcnException.throwMesBusiException("原料条码【%s】校验条码规则【%s】失败", mesRawPartChargingModel.getSn(), mesRawPartChargingModel.getMesRawPackagePart().getBarcodeRule()); } } From 213e349773fd63c77810be9a42f725340660ec37 Mon Sep 17 00:00:00 2001 From: "xiangwei.zhang" <752558143@qq.com> Date: Thu, 19 Sep 2024 13:59:57 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E6=96=B0=E5=A2=9EbomCode?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ext/mes/pcn/apiservice/serviceimpl/busi/MesWorkOrderService.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesWorkOrderService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesWorkOrderService.java index 5b52147..171bb56 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesWorkOrderService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesWorkOrderService.java @@ -355,6 +355,7 @@ public class MesWorkOrderService implements IMesWorkOrderService { newMesProductOffLine.setSapWorkCenter(mesWorkOrderDb.getErpWorkCenter()); newMesProductOffLine.setOrganizeCode(organizeCode); newMesProductOffLine.setDescription(mesProductionRecord.getCompleteDateTime()); + newMesProductOffLine.setBomCode(mesBom.getBomCode()); ConvertBean.serviceModelInitialize(newMesProductOffLine, userName); mesProductOffLineList.add(newMesProductOffLine); } @@ -681,6 +682,7 @@ public class MesWorkOrderService implements IMesWorkOrderService { newMesProductOffLine.setBomVersion(oldMesWorkOrder.getProductVersion()); newMesProductOffLine.setSerialNumber(productionRecord.getSerialNumber()); newMesProductOffLine.setUnit(mesBom.getUnit()); + newMesProductOffLine.setBomCode(mesBom.getBomCode()); newMesProductOffLine.setItemUnit(mesBom.getItemUnit()); newMesProductOffLine.setWorkOrderNo(oldMesWorkOrder.getWorkOrderNo()); newMesProductOffLine.setWorkOrderType(oldMesWorkOrder.getWorkOrderType()); From 739136d03596e2163891c241e60a456185d7f9c7 Mon Sep 17 00:00:00 2001 From: jun Date: Thu, 19 Sep 2024 16:20:33 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E6=9F=A5=E8=AF=A2bom=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E7=94=9F=E6=95=88=E5=BC=80=E5=A7=8B=E6=97=B6=E9=97=B4=E5=88=86?= =?UTF-8?q?=E7=BB=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ext/mes/pcn/apiservice/serviceimpl/busi/MesWorkOrderService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesWorkOrderService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesWorkOrderService.java index 171bb56..af1742b 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesWorkOrderService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesWorkOrderService.java @@ -463,7 +463,7 @@ public class MesWorkOrderService implements IMesWorkOrderService { } MesBom next = mesBoms.iterator().next(); //如果存在多个bomCode取最新的一个 - return mesBoms.stream().collect(Collectors.groupingBy(MesBom::getBomCode)).get(next.getBomCode()); + return mesBoms.stream().collect(Collectors.groupingBy(t -> t.getBomCode() + t.getEffStartTime())).get(next.getBomCode() + next.getEffStartTime()); } private MesProductVersion getMesProductVersion(MesWorkOrder mesWorkOrder) {