From 20b72a000801cf006bfe1f487baabc110594832f Mon Sep 17 00:00:00 2001
From: cl <1442464845@qq.com>
Date: 星期日, 05 四月 2026 17:55:42 +0800
Subject: [PATCH] 重量

---
 src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java |   32 ++++++++++++++++++++++++++++++--
 1 files changed, 30 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
index aa515c1..a456d9b 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -10,6 +10,7 @@
 import com.zy.asrs.task.AbstractHandler;
 import com.zy.asrs.task.core.ReturnT;
 import com.zy.common.entity.Parameter;
+import com.zy.integration.iot.biz.IotInstructionService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -18,6 +19,7 @@
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
 
+import java.math.BigDecimal;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -49,6 +51,8 @@
     private OrderPakinService orderPakinService;
     @Autowired
     private WorkService workService;
+    @Autowired
+    private IotInstructionService iotInstructionService;
 
     @Value("${erp.switch.ErpReportOld}")
     private boolean erpReportOld;
@@ -88,11 +92,30 @@
         if (!Cools.isEmpty(erpReport) && !"true".equalsIgnoreCase(erpReport)) {
             return false;
         }
-        if (wrkMast == null || Cools.isEmpty(wrkMast.getBarcode())) {
+        if (wrkMast == null) {
             return false;
         }
         Integer ioType = wrkMast.getIoType();
-        return ioType != null && (ioType == 101 || ioType == 108 || ioType == 110);
+        if (ioType == null || (ioType != 101 && ioType != 108 && ioType != 110)) {
+            return false;
+        }
+        return !Cools.isEmpty(resolveOutboundPalletId(wrkMast));
+    }
+
+    private String resolveOutboundPalletId(WrkMast wrkMast) {
+        if (!Cools.isEmpty(wrkMast.getBarcode())) {
+            return wrkMast.getBarcode();
+        }
+        List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
+        if (Cools.isEmpty(wrkDetls)) {
+            return null;
+        }
+        for (WrkDetl wrkDetl : wrkDetls) {
+            if (!Cools.isEmpty(wrkDetl.getZpallet())) {
+                return wrkDetl.getZpallet();
+            }
+        }
+        return null;
     }
 
     public ReturnT<String> doIn(WrkMast wrkMast) {
@@ -437,6 +460,7 @@
                 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                 return FAIL.setMsg("鏇存柊鍏ュ簱瀹屾垚鐘舵�佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
             }
+            iotInstructionService.queueWorkCompletion(wrkMast);
         } catch (Exception e) {
             log.error("fail", e);
             e.printStackTrace();
@@ -505,6 +529,7 @@
                     if (locMast.getLocSts().equals("R")) {
                         locMast.setLocSts("O");
                         locMast.setBarcode("");
+                        locMast.setScWeight(BigDecimal.ZERO);
                         locMast.setModiTime(now);
                         locMast.setIoTime(now);
                         if (!locMastService.updateById(locMast)) {
@@ -554,6 +579,7 @@
                     if (locMast.getLocSts().equals("R")) {
                         locMast.setLocSts("O");
                         locMast.setBarcode("");
+                        locMast.setScWeight(BigDecimal.ZERO);
                         locMast.setModiTime(now);
                         locMast.setIoTime(now);
                         if (!locMastService.updateById(locMast)) {
@@ -586,6 +612,7 @@
                 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                 return FAIL.setMsg("鏇存柊鍑哄簱瀹屾垚鐘舵�佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
             }
+            iotInstructionService.queueWorkCompletion(wrkMast);
         } catch (Exception e) {
             log.error("fail", e);
             e.printStackTrace();
@@ -595,3 +622,4 @@
         return SUCCESS;
     }
 }
+

--
Gitblit v1.9.1