From 13d295c4210ee589b3e524bd157f85c63bca5a3e Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期四, 30 四月 2026 13:12:08 +0800
Subject: [PATCH] 1.出库单据转历史档有问题 2.新增单据历史档 3.修复入库完成转明细失败

---
 src/main/java/com/zy/api/service/impl/WcsApiServiceImpl.java |   20 +++++++++++++-------
 1 files changed, 13 insertions(+), 7 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 4f05ca0..2c21901 100644
--- a/src/main/java/com/zy/api/service/impl/WcsApiServiceImpl.java
+++ b/src/main/java/com/zy/api/service/impl/WcsApiServiceImpl.java
@@ -734,6 +734,7 @@
         } else if (isTaskCompleteCallback(params)) {
             //浠诲姟
             boolean needUpdate = false;
+            applyTaskCompleteWeight(params, mast);
             if (isInboundOrMoveTask(mast)) {
                 if (isInboundOrMoveTaskCompletionHandled(mast)) {
                     return R.ok();
@@ -778,11 +779,9 @@
         if (!isTaskCompleteCallback(params) || Cools.isEmpty(params.getSuperTaskNo())) {
             return false;
         }
-        WrkMastLog wrkMastLog = wrkMastLogService.selectOne(new EntityWrapper<WrkMastLog>().eq("wrk_no", params.getSuperTaskNo()));
-        return wrkMastLog != null
-                && wrkMastLog.getWrkSts() != null
-                && (Objects.equals(wrkMastLog.getWrkSts().longValue(), INBOUND_FINISHED_WRK_STS)
-                || Objects.equals(wrkMastLog.getWrkSts().longValue(), INBOUND_ERP_REPORT_PENDING_WRK_STS));
+        return wrkMastLogService.selectCount(new EntityWrapper<WrkMastLog>()
+                .eq("wrk_no", params.getSuperTaskNo())
+                .in("wrk_sts", Arrays.asList((int) INBOUND_FINISHED_WRK_STS, (int) INBOUND_ERP_REPORT_PENDING_WRK_STS))) > 0;
     }
 
     private boolean isInboundOrMoveTask(WrkMast mast) {
@@ -791,9 +790,16 @@
         }
         Integer ioType = mast.getIoType();
         return Objects.equals(ioType, 1)
-                || Objects.equals(ioType, 2)
+                || Objects.equals(ioType, 10)
                 || Objects.equals(ioType, 11)
                 || Objects.equals(ioType, CHANGE_LOC_IO_TYPE);
+    }
+
+    private void applyTaskCompleteWeight(ReceviceTaskParams params, WrkMast mast) {
+        if (params == null || mast == null || params.getWeight() == null) {
+            return;
+        }
+        mast.setScWeight(BigDecimal.valueOf(params.getWeight()));
     }
 
     private boolean isOutboundCrnTaskRun(ReceviceTaskParams params) {
@@ -1421,7 +1427,7 @@
         if (Objects.isNull(wrkMast)) {
             return;
         }
-        if (wrkMast.getIoType()==1 || wrkMast.getIoType()==11) {
+        if (wrkMast.getIoType()==1 || wrkMast.getIoType()==10 || wrkMast.getIoType()==11) {
             wrkMast.setWrkSts(2L);
             wrkMast.setModiTime(new Date());
             wrkMastService.updateById(wrkMast);

--
Gitblit v1.9.1