From 6586b1cd73fcb70effeb75e31142ca1c34daad77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=A5=8E=E5=85=B4?= <2220574228@qq.com> Date: Thu, 28 May 2026 17:42:23 +0800 Subject: [PATCH] =?UTF-8?q?=E5=87=BA=E5=BA=93=E9=85=8D=E9=80=81=E6=98=8E?= =?UTF-8?q?=E7=BB=86=E5=A2=9E=E5=88=A0=E6=94=B9;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ReservationStockOutOrderDomainService.java | 7 ++++++- .../service/StockShelfOrderDomainService.java | 18 ++++++++++++++++-- 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockOutOrder/service/ReservationStockOutOrderDomainService.java b/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockOutOrder/service/ReservationStockOutOrderDomainService.java index 71934fa6d..b0dbbd8c3 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockOutOrder/service/ReservationStockOutOrderDomainService.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockOutOrder/service/ReservationStockOutOrderDomainService.java @@ -109,11 +109,16 @@ public class ReservationStockOutOrderDomainService { if (stockOutOrderDO.getCheckTaskDistribution() == null) { stockOutOrderDO.setCheckTaskDistribution(2); } + stockOutOrderService.insert(stockOutOrderDO); List reservationDeliveryDetailsLinkList = stockOutOrderDO.getReservationDeliveryDetailsLinkList(); + reservationDeliveryDetailsLinkList.forEach(reservationDeliveryDetailsLink -> { + reservationDeliveryDetailsLink.setOrderNumber(stockOutOrderDO.getOutOrderNumber()); + reservationDeliveryDetailsLink.setOrderId(stockOutOrderDO.getOutOrderId()); + }); if (!CollectionUtils.isEmpty(reservationDeliveryDetailsLinkList)) { reservationDeliveryDetailsLinkService.saveBatch(reservationDeliveryDetailsLinkList); } - stockOutOrderService.insert(stockOutOrderDO); + return outMaterialDetailService.batchInsert(stockOutOrderDO.getOutOrderNumber(), stockOutOrderDO.getMaterialDetailList()); } diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/stockShelfOrder/service/StockShelfOrderDomainService.java b/mhd_wms/src/main/java/com/mhd/wms/domain/stockShelfOrder/service/StockShelfOrderDomainService.java index 46be86afd..45eaa1194 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/stockShelfOrder/service/StockShelfOrderDomainService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/stockShelfOrder/service/StockShelfOrderDomainService.java @@ -82,6 +82,7 @@ import com.mhd.wms.domain.taskShelfMaterialDetail.repository.facade.ITaskShelfMa import com.mhd.wms.domain.taskShelfMaterialDetail.repository.todo.TaskShelfMaterialDetailDO; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; @@ -1269,7 +1270,8 @@ public class StockShelfOrderDomainService { materialInventoryOmsParamDO.setKctzType("入库"); materialInventoryOmsParamDO.setLoginUser(loginUser); materialInventoryOmsParamDO.setMaterialInventoryId(null); - omsServiceFeign.omsEdit(materialInventoryOmsParamDO); + //omsServiceFeign.omsEdit(materialInventoryOmsParamDO); + asyncOmsEdit(materialInventoryOmsParamDO); //抄码商品对照数据插入 copyCodeProductComparison(materialBaseInfo,shelfMaterialDetail,inventoryParamDO); } else if (materialInventoryPOS.size() == 1) { @@ -1338,13 +1340,25 @@ public class StockShelfOrderDomainService { materialInventoryOmsParamDO.setTopOrganizationId(shelfMaterialDetail.getTopOrganizationId()); materialInventoryOmsParamDO.setOrganizationId(shelfMaterialDetail.getOrganizationId()); materialInventoryOmsParamDO.setOrganizationName(shelfMaterialDetail.getOrganizationName()); - omsServiceFeign.omsEdit(materialInventoryOmsParamDO); + //omsServiceFeign.omsEdit(materialInventoryOmsParamDO); + asyncOmsEdit(materialInventoryOmsParamDO); //抄码商品对照数据插入 copyCodeProductComparison(materialBaseInfo,shelfMaterialDetail,inventoryParamDO); } } } + // 核心注解:表示这是一个异步方法 + @Async + public void asyncOmsEdit(MaterialInventoryOmsParamDO materialInventoryOmsParamDO) { + try { + omsServiceFeign.omsEdit(materialInventoryOmsParamDO); // 异步执行,不阻塞主线程 + } catch (Exception e) { + // 异步调用失败可以打日志、发告警、落库,不影响主流程 + log.error("异步调用omsEdit失败:{}", e.getMessage()); + } + } + /** * 上架完成、库存入账后写入抄码对照表。数据来自上架明细 {@link ShelfMaterialDetail#getCopyDetails()}, * 与收货明细/PDA 提交的 JSON 一致:key 为序号(字符串),value 为单件净重(千克,支持小数如 1.343)。