From 27d697c382af6aae0eab733a20a1d6b03fa5bd17 Mon Sep 17 00:00:00 2001 From: jun Date: Mon, 9 Sep 2024 17:09:03 +0800 Subject: [PATCH] =?UTF-8?q?43012=20=E5=85=B3=E9=97=AD=E5=B7=A5=E5=8D=95?= =?UTF-8?q?=E6=97=B6=EF=BC=8C=E8=AF=95=E5=88=B6=E5=8D=95=E5=92=8C=E8=AF=95?= =?UTF-8?q?=E5=88=B6=E9=9B=B6=E4=BB=B6=E4=B8=8D=E5=85=81=E8=AE=B8=E5=9B=9E?= =?UTF-8?q?=E4=BC=A0SAP?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../serviceimpl/base/MesWorkOrderService.java | 28 +++++++++++++++------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java index 12d15d3..e75e9e0 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java @@ -664,6 +664,10 @@ public class MesWorkOrderService extends BaseMesService implements } item.setWorkCenterCode(mesWorkCenter.getWorkCenterCode()); item.setErpWorkCenter(mesWorkCenter.getErpWorkCenter()); + //校验产线零件是否存在 + if (!checkWorkCenterPartRelation(item.getWorkCenterCode(),item.getPartNo()) && (StringUtil.isEmpty(item.getOrderFlag()) || !MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.P.getValue().equals(item.getOrderFlag()))){ + MesException.throwMesBusiException(String.format("工单产线【%s】与工单零件【%s】没有维护产线零件关系",mesWorkCenter.getWorkCenterCode(),item.getPartNo())); + } //获取客户物料信息 MesCustomerPart customerPart = null == mesCustomerPartMap ? null : mesCustomerPartMap.get(item.getPartNo()); if (!Objects.isNull(customerPart)) { @@ -1038,15 +1042,21 @@ public class MesWorkOrderService extends BaseMesService implements return; } log.info("关闭工单个数{},工单:{}",mesWorkOrderList.size(),mesWorkOrderList.stream().map(MesWorkOrder::getWorkOrderNo).collect(Collectors.toList())); - //关闭工单回传 - List partNoAndDataKey = mesWorkOrderList.stream().map(t -> new StringJoiner(MesExtConstWords.COMMA).add(t.getPartNo()).add(t.getProductVersion()).add(t.getPlanStartTime().substring(0, 10)).toString()).distinct().collect(Collectors.toList()); - List mesWorkOrderToSapList = new ArrayList<>(); - for (String partNoAndData : partNoAndDataKey) { - MesWorkOrderToSap orderToSap = new MesWorkOrderToSap(organizeCode, partNoAndData.split(MesExtConstWords.COMMA)[0], partNoAndData.split(MesExtConstWords.COMMA)[1], 0d, partNoAndData.split(MesExtConstWords.COMMA)[2]); - ConvertBean.serviceModelInitialize(orderToSap,userName); - mesWorkOrderToSapList.add(orderToSap); - } - mesWorkOrderToSapRepository.saveAll(mesWorkOrderToSapList); + //查询自制件零件 + List partNoList = mesPartSapService.findMesPartSapByPartNoList(mesWorkOrderList.stream().map(MesWorkOrder::getPartNo).distinct().collect(Collectors.toList()), organizeCode).stream().filter(t -> t.getIsTestPiece() == CommonEnumUtil.FALSE).map(MesPartSap::getPartNo).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(partNoList)) { + //关闭工单回传 + List partNoAndDataKey = mesWorkOrderList.stream().filter(t -> !MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.P.getValue().equals(t.getOrderFlag()) && partNoList.contains(t.getPartNo())).map(t -> new StringJoiner(MesExtConstWords.COMMA).add(t.getPartNo()).add(t.getProductVersion()).add(t.getPlanStartTime().substring(0, 10)).toString()).distinct().collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(partNoAndDataKey)) { + List mesWorkOrderToSapList = new ArrayList<>(); + for (String partNoAndData : partNoAndDataKey) { + MesWorkOrderToSap orderToSap = new MesWorkOrderToSap(organizeCode, partNoAndData.split(MesExtConstWords.COMMA)[0], partNoAndData.split(MesExtConstWords.COMMA)[1], 0d, partNoAndData.split(MesExtConstWords.COMMA)[2]); + ConvertBean.serviceModelInitialize(orderToSap, userName); + mesWorkOrderToSapList.add(orderToSap); + } + mesWorkOrderToSapRepository.saveAll(mesWorkOrderToSapList); + } + } //关闭工单 baseRDao.updateByProperties(new String[]{"modifyUser", "modifyDatetime", "workOrderStatus","systemSyncStatus"}, new Object[]{userName, TimeTool.getNowTime(true), MesExtEnumUtil.ORDER_STATUS.CLOSE.getValue(),CommonEnumUtil.FALSE}, ddlPackBean);