From cfe1f5bce95f2a77d391417763e3e13820781e89 Mon Sep 17 00:00:00 2001
From: cl <1442464845@qq.com>
Date: 星期三, 29 四月 2026 10:39:21 +0800
Subject: [PATCH] 反馈格式调整

---
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java |   46 +++++++++++++++++++++++++++++++++++++---------
 1 files changed, 37 insertions(+), 9 deletions(-)

diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java
index 20dfcd1..0605c3c 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java
@@ -55,6 +55,8 @@
 import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.transaction.support.TransactionSynchronization;
+import org.springframework.transaction.support.TransactionSynchronizationManager;
 import org.springframework.web.client.HttpStatusCodeException;
 import org.springframework.web.client.RestTemplate;
 
@@ -597,7 +599,36 @@
         if (StringUtils.isNotBlank(task.getTaskCode())) {
             rcsBusTaskNoticeService.notifyTaskStatus(task.getTaskCode(), task.getTaskStatus());
         }
+        final Long taskIdForFinish = task.getId();
+        if (TransactionSynchronizationManager.isSynchronizationActive()) {
+            TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronization() {
+                @Override
+                public void afterCommit() {
+                    taskService.runStockFinishAfterManualComplete(taskIdForFinish);
+                }
+            });
+        }
         return task;
+    }
+
+    @Override
+    public void runStockFinishAfterManualComplete(Long taskId) {
+        if (taskId == null) {
+            return;
+        }
+        try {
+            Task t = taskService.getById(taskId);
+            if (t == null) {
+                return;
+            }
+            if (Objects.equals(t.getTaskStatus(), TaskStsType.COMPLETE_IN.id)) {
+                taskService.complateInTask(Collections.singletonList(t));
+            } else if (Objects.equals(t.getTaskStatus(), TaskStsType.COMPLETE_OUT.id)) {
+                taskService.completeTask(Collections.singletonList(t));
+            }
+        } catch (Exception e) {
+            log.warn("鎵嬪姩瀹岀粨鍚庣珛鍗冲簱瀛樻敹灏惧け璐ワ紝灏嗙敱瀹氭椂浠诲姟閲嶈瘯锛宼askId={}锛歿}", taskId, e.getMessage());
+        }
     }
 
     /**
@@ -2817,19 +2848,16 @@
                     }
                 }
             }
-            // 鍑哄簱浠呬簯浠撴潵婧愬崟鎹弬涓庝笂鎶�
-            if (!isInbound) {
-                boolean hasCloudSource = taskItems.stream().anyMatch(this::hasCloudOrderRef);
-                if (!hasCloudSource) {
-//                    log.info("鍏�/鍑哄簱缁撴灉涓婃姤寰呭姙璺宠繃锛氭棤浜戜粨鏉ユ簮鍗曟嵁锛宼askId={}", task.getId());
-                    log.info("鍏�/鍑哄簱缁撴灉涓婃姤寰呭姙璺宠繃锛氭墜鍔ㄥ垱寤哄嚭搴撳崟鎹笉閫氱煡浜戜粨锛宼askId={}", task.getId());
-                    return;
-                }
+            // 鍏�/鍑哄簱鍧囦粎浜戜粨鏉ユ簮鍗曟嵁鍙備笌涓婃姤锛堟槑缁嗛渶甯� platOrderCode 鎴� platWorkCode锛�
+            boolean hasCloudSource = taskItems.stream().anyMatch(this::hasCloudOrderRef);
+            if (!hasCloudSource) {
+                log.info("鍏�/鍑哄簱缁撴灉涓婃姤寰呭姙璺宠繃锛氭棤浜戜粨鏉ユ簮鍗曟嵁锛宼askId={}", task.getId());
+                return;
             }
             ObjectMapper om = new ObjectMapper();
             Date now = new Date();
             for (TaskItem item : taskItems) {
-                if (!isInbound && !hasCloudOrderRef(item)) {
+                if (!hasCloudOrderRef(item)) {
                     continue;
                 }
                 String orderNo = isInbound ? sourceToOrderNo.get(item.getSource()) : (item.getPlatOrderCode() != null ? item.getPlatOrderCode() : item.getPlatWorkCode());

--
Gitblit v1.9.1