From 2813341fbe56da21d55685608ce2b48c520ca5a8 Mon Sep 17 00:00:00 2001
From: 1 <1@123>
Date: 星期四, 26 二月 2026 13:19:34 +0800
Subject: [PATCH] lsh#
---
rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java | 89 +++++++++++++++++++++++++++++++++++++-------
1 files changed, 74 insertions(+), 15 deletions(-)
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java
index cd0ab43..67eefb8 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java
@@ -18,6 +18,9 @@
import com.vincent.rsf.server.common.domain.BaseParam;
import com.vincent.rsf.server.common.domain.PageParam;
import com.vincent.rsf.server.manager.controller.dto.LocStockDto;
+import com.vincent.rsf.server.manager.controller.dto.OrderOutItemDto;
+import com.vincent.rsf.server.manager.controller.params.OrderOutTaskParam;
+import com.vincent.rsf.server.manager.controller.params.OutStockToTaskParams;
import com.vincent.rsf.server.manager.controller.params.PakinItem;
import com.vincent.rsf.server.manager.controller.params.WaitPakinParam;
import com.vincent.rsf.server.manager.entity.*;
@@ -112,6 +115,8 @@
private WarehouseAreasItemServiceImpl warehouseAreasItemService;
@Autowired
private LocItemService locItemService;
+ @Autowired
+ private OutStockService outStockService;
/**
@@ -523,22 +528,45 @@
throw new CoolException("璁″垝鏀惰揣鏁伴噺淇敼澶辫触锛侊紒");
}
- // 绔嬪嵆瑙﹀彂寮傛浠诲姟锛屼笉绛夊緟缁撴灉
- if (!Cools.isEmpty(palletId.get()) && StringUtils.isNotBlank(syncOrder.getOrderNo()) && !Cools.isEmpty(syncOrder.getStationId())) {
- //缁勬墭
- WaitPakinParam pakinParam = new WaitPakinParam();
- pakinParam.setBarcode(palletId.get());
- pakinParam.setStaNo(syncOrder.getStationId());
+ if (!rule.equals(SerialRuleCode.SYS_OUT_STOCK_CODE)){
+ // 鍏ュ簱锛氳仈鍔ㄧ粍鎵�
+ // 绔嬪嵆瑙﹀彂寮傛浠诲姟锛屼笉绛夊緟缁撴灉
+ if (!Cools.isEmpty(palletId.get()) && StringUtils.isNotBlank(syncOrder.getOrderNo()) && !Cools.isEmpty(syncOrder.getStationId())) {
+ //缁勬墭
+ WaitPakinParam pakinParam = new WaitPakinParam();
+ pakinParam.setBarcode(palletId.get());
+ pakinParam.setStaNo(syncOrder.getStationId());
- boolean itemsCheck = waitPakinService.mergeItemsCheck(pakinParam, loginUserId);
- if (itemsCheck) {
- CompletableFuture.runAsync(() -> {
- try {
- asyncMergeItemsWcs(pakinParam, syncOrder.getOrderNo(), loginUserId);
- } catch (Exception e) {
- log.warn("璁㈠崟 {} 寮�濮嬭嚜鍔ㄧ粍鎵�", syncOrder.getOrderNo());
- }
- });
+ boolean itemsCheck = waitPakinService.mergeItemsCheck(pakinParam, loginUserId);
+ if (itemsCheck) {
+ CompletableFuture.runAsync(() -> {
+ try {
+ asyncMergeItemsWcs(pakinParam, syncOrder.getOrderNo(), loginUserId);
+ } catch (Exception e) {
+ log.warn("璁㈠崟 {} 寮�濮嬭嚜鍔ㄧ粍鎵�", syncOrder.getOrderNo());
+ }
+ });
+ }
+ }
+ } else {
+ // 鍑哄簱锛氭寚瀹氬嚭搴�
+ // 绔嬪嵆瑙﹀彂寮傛浠诲姟锛屼笉绛夊緟缁撴灉
+ if (!Cools.isEmpty(palletId.get()) && StringUtils.isNotBlank(syncOrder.getOrderNo()) && !Cools.isEmpty(syncOrder.getStationId())) {
+ Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getBarcode, palletId.get()));
+ if (!Cools.isEmpty(loc)) {
+// outStockService.getOrderOutTaskItem(orderOutTaskParam,param.getOrderItemId());
+ //鍑哄簱
+// boolean itemsCheck = waitPakinService.mergeItemsCheck(pakinParam, loginUserId);
+// if (true) {
+ CompletableFuture.runAsync(() -> {
+ try {
+ asyncOutboundExecutionWcs(syncOrder.getStationId(), wkOrder.getId(), loginUserId);
+ } catch (Exception e) {
+ log.warn("璁㈠崟 {} 寮�濮嬭嚜鍔ㄥ嚭搴�", syncOrder.getOrderNo());
+ }
+ });
+// }
+ }
}
}
});
@@ -580,6 +608,37 @@
}
}
+ @Async
+ public void asyncOutboundExecutionWcs(String stationId ,Long orderId, Long loginUserId) {
+ try {
+
+ OrderOutTaskParam orderOutTaskParam = new OrderOutTaskParam();
+ orderOutTaskParam.setOrderId(orderId);
+ orderOutTaskParam.setWaveId(16L);
+ List<OrderOutItemDto> orderOutTaskItemAuto = outStockService.getOrderOutTaskItemAuto(orderOutTaskParam);
+
+ List<OutStockToTaskParams> tasks = new ArrayList<>();
+ for (OrderOutItemDto orderOutItemDto : orderOutTaskItemAuto){
+ OutStockToTaskParams outStockToTaskParams = new OutStockToTaskParams(orderOutItemDto);
+ outStockToTaskParams.setId(orderOutItemDto.getLocItem().getId());
+// outStockToTaskParams.setOutQty(locItemServiceOne.getAnfme());
+ outStockToTaskParams.setLocCode(orderOutItemDto.getLocItem().getLocCode());
+ outStockToTaskParams.setBarcode(orderOutItemDto.getLocItem().getBarcode());
+ outStockToTaskParams.setSiteNo(stationId);
+ tasks.add(outStockToTaskParams);
+ }
+ if (tasks.isEmpty()){
+ log.warn("璁㈠崟ID {} 娌℃湁鎵惧埌鍙嚭搴撴槑缁嗭紝璺宠繃鑷姩鍑哄簱", orderId);
+ return;
+ }
+ outStockService.genOutStockTask(tasks, loginUserId, orderId);
+
+ log.info("璁㈠崟ID {} 鑷姩鍑哄簱锛屽叡澶勭悊 {} 涓槑缁�", orderId, tasks.size());
+ } catch (Exception e) {
+ log.error("璁㈠崟ID {} 鑷姩鍑哄簱: {}", orderId, e.getMessage(), e);
+ }
+ }
+
/**
* @author Ryan
* @date 2025/8/19
--
Gitblit v1.9.1