From f57107a13910c3cb75ef6b783fefec063356a40a Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期三, 29 四月 2026 13:38:42 +0800
Subject: [PATCH] 移库wcs上报wms修改状态修复

---
 src/main/java/com/zy/api/service/impl/WcsApiServiceImpl.java |   50 +++++++++++++++++++++++++++++++++-----------------
 1 files changed, 33 insertions(+), 17 deletions(-)

diff --git a/src/main/java/com/zy/api/service/impl/WcsApiServiceImpl.java b/src/main/java/com/zy/api/service/impl/WcsApiServiceImpl.java
index 1614a15..4adb768 100644
--- a/src/main/java/com/zy/api/service/impl/WcsApiServiceImpl.java
+++ b/src/main/java/com/zy/api/service/impl/WcsApiServiceImpl.java
@@ -689,7 +689,7 @@
         if (Objects.isNull(mast)) {
             // pakoutOrderPause 涓鏃讹紝WMS 鍦� WCS 纭鍙栨秷鍚庝細绔嬪嵆鏈湴鍙栨秷骞跺綊妗d换鍔°��
             // 濡傛灉 WCS 鍚庣画鍙堣ˉ鍙� task_cancel 鍥炶皟锛屾鏃跺綋鍓嶅伐浣滄。宸蹭笉瀛樺湪锛屾寜骞傜瓑鎴愬姛澶勭悊銆�
-            if ("task".equalsIgnoreCase(params.getNotifyType()) && "task_cancel".equalsIgnoreCase(params.getMsgType())) {
+            if (isTaskCancelCallback(params)) {
                 return R.ok();
             }
             throw new CoolException("浠诲姟妗d笉瀛樺湪锛侊紒");
@@ -727,29 +727,45 @@
                     throw new CoolException("浠诲姟鐘舵�佷慨鏀瑰け璐ワ紒锛�");
                 }
             }
-        } else if ("task".equalsIgnoreCase(params.getNotifyType())) {
+        } else if (isTaskCompleteCallback(params)) {
             //浠诲姟
-            if ("task_complete".equalsIgnoreCase(params.getMsgType())) {
-
-                if (mast.getIoType() == 1 || mast.getIoType() == 2 || mast.getIoType() == 11 || mast.getIoType() == CHANGE_LOC_IO_TYPE) {
-                    mast.setWrkSts(4L);
-                } else if (isOutboundTask(mast) && canMarkOutboundTaskComplete(mast)) {
-                    mast.setWrkSts(14L);
-                    if(Cools.isEmpty(mast.getStaNo())){
-                        mast.setOveMk("Y");
-                    }
+            if (isInboundOrMoveTask(mast)) {
+                mast.setWrkSts(4L);
+            } else if (isOutboundTask(mast) && canMarkOutboundTaskComplete(mast)) {
+                mast.setWrkSts(14L);
+                if(Cools.isEmpty(mast.getStaNo())){
+                    mast.setOveMk("Y");
                 }
-                if (!wrkMastService.updateById(mast)) {
-                    throw new CoolException("浠诲姟鐘舵�佷慨鏀瑰け璐ワ紒锛�");
-                }
-                //wcs浠诲姟鍙栨秷鎺ュ彛
-            } else if ("task_cancel".equalsIgnoreCase(params.getMsgType())) {
-                workService.cancelWrkMast(String.valueOf(mast.getWrkNo()), 9955L);
             }
+            if (!wrkMastService.updateById(mast)) {
+                throw new CoolException("浠诲姟鐘舵�佷慨鏀瑰け璐ワ紒锛�");
+            }
+        } else if (isTaskCancelCallback(params)) {
+            //wcs浠诲姟鍙栨秷鎺ュ彛
+            workService.cancelWrkMast(String.valueOf(mast.getWrkNo()), 9955L);
         }
         return R.ok();
     }
 
+    private boolean isTaskCompleteCallback(ReceviceTaskParams params) {
+        return params != null && "task_complete".equalsIgnoreCase(params.getMsgType());
+    }
+
+    private boolean isTaskCancelCallback(ReceviceTaskParams params) {
+        return params != null && "task_cancel".equalsIgnoreCase(params.getMsgType());
+    }
+
+    private boolean isInboundOrMoveTask(WrkMast mast) {
+        if (mast == null || mast.getIoType() == null) {
+            return false;
+        }
+        Integer ioType = mast.getIoType();
+        return Objects.equals(ioType, 1)
+                || Objects.equals(ioType, 2)
+                || Objects.equals(ioType, 11)
+                || Objects.equals(ioType, CHANGE_LOC_IO_TYPE);
+    }
+
     private boolean isOutboundCrnTaskRun(ReceviceTaskParams params) {
         return params != null
                 && "Crn".equalsIgnoreCase(params.getNotifyType())

--
Gitblit v1.9.1