From 9079c4f09f4c267576638b5f41c8aa695742a66a Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期一, 06 四月 2026 21:00:46 +0800
Subject: [PATCH] #取消出库优化

---
 src/main/java/com/zy/common/service/CommonService.java |   49 ++++++++++++++++++++++++++++++++-----------------
 1 files changed, 32 insertions(+), 17 deletions(-)

diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java
index c34ef3d..8c4ef5a 100644
--- a/src/main/java/com/zy/common/service/CommonService.java
+++ b/src/main/java/com/zy/common/service/CommonService.java
@@ -20,6 +20,7 @@
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.ArrayList;
 import java.util.Comparator;
@@ -124,7 +125,8 @@
         return true;
     }
 
-    public boolean cancelTask(CancelTaskParam param, boolean allowDirectCancel) {
+    @Transactional
+    public boolean cancelTask(CancelTaskParam param) {
         WrkMast wrkMast = null;
         Integer wrkNo = param.getWrkNo();
         String taskNo = param.getTaskNo();//wms浠诲姟鍙�
@@ -139,17 +141,6 @@
 
         if (null == wrkMast) {
             throw new CoolException("浠诲姟涓嶅瓨鍦�");
-        }
-
-        if (allowDirectCancel) {
-            boolean updated = wrkMastService.update(null, new UpdateWrapper<WrkMast>()
-                    .eq("wrk_no", wrkMast.getWrkNo())
-                    .set("mk", "taskCancel")
-                    .set("modi_time", new Date()));
-            if (!updated) {
-                throw new CoolException("浠诲姟鍙栨秷澶辫触");
-            }
-            return true;
         }
 
         Long expectedWrkSts;
@@ -176,6 +167,34 @@
                 .set("modi_time", new Date()));
         if (!updated) {
             throw new CoolException("浠诲姟鐘舵�佸凡鍙樺寲锛屽彇娑堝け璐�");
+        }
+        return true;
+    }
+
+    @Transactional
+    public boolean forceCancelTask(CancelTaskParam param) {
+        WrkMast wrkMast = null;
+        Integer wrkNo = param.getWrkNo();
+        String taskNo = param.getTaskNo();//wms浠诲姟鍙�
+
+        if (wrkNo == null) {
+            if (!Cools.isEmpty(taskNo)) {
+                wrkMast = wrkMastService.getOne(new QueryWrapper<WrkMast>().eq("wms_wrk_no", taskNo));
+            }
+        } else {
+            wrkMast = wrkMastService.selectByWorkNo(wrkNo);
+        }
+
+        if (wrkMast == null) {
+            throw new CoolException("浠诲姟涓嶅瓨鍦�");
+        }
+
+        boolean updated = wrkMastService.update(null, new UpdateWrapper<WrkMast>()
+                .eq("wrk_no", wrkMast.getWrkNo())
+                .set("mk", "taskForceCancel")
+                .set("modi_time", new Date()));
+        if (!updated) {
+            throw new CoolException("浠诲姟寮哄埗鍙栨秷澶辫触");
         }
         return true;
     }
@@ -282,10 +301,6 @@
     }
 
     public CancelTaskBatchResult cancelTaskBatch(CancelTaskBatchParam param) {
-        return cancelTaskBatch(param, false);
-    }
-
-    public CancelTaskBatchResult cancelTaskBatch(CancelTaskBatchParam param, boolean allowDirectCancel) {
         if (param == null) {
             throw new CoolException("鍙傛暟涓嶈兘涓虹┖");
         }
@@ -305,7 +320,7 @@
 
             boolean cancelStatus = false;
             try {
-                cancelStatus = cancelTask(cancelTaskParam, allowDirectCancel);
+                cancelStatus = cancelTask(cancelTaskParam);
             } catch (Exception e) {
             }
 

--
Gitblit v1.9.1