From 27c5a35a00fc37f7bdd727e6a53e1c8ddae81b4f Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期二, 23 九月 2025 14:52:11 +0800
Subject: [PATCH] 缓冲区功能调整

---
 src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java |   45 +++++++++++++++++++++++++++++++--------------
 1 files changed, 31 insertions(+), 14 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 f9b67b0..4389d7f 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -7,6 +7,7 @@
 import com.zy.asrs.enums.LocStsType;
 import com.zy.asrs.service.*;
 import com.zy.asrs.service.impl.LocCacheServiceImpl;
+import com.zy.asrs.service.impl.OrderPakinServiceImpl;
 import com.zy.asrs.task.AbstractHandler;
 import com.zy.asrs.task.core.ReturnT;
 import lombok.extern.slf4j.Slf4j;
@@ -16,10 +17,8 @@
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
 
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Objects;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * Created by vincent on 2020/7/4
@@ -46,7 +45,9 @@
     @Autowired
     private OrderDetlPakoutService orderDetlPakoutService;
     @Autowired
-    private LocCacheServiceImpl locCacheService;
+    private LocCacheService locCacheService;
+    @Autowired
+    private OrderPakinService orderPakinService;
 
     public ReturnT<String> start(WrkMast wrkMast) {
         // 4.鍏ュ簱瀹屾垚
@@ -59,7 +60,6 @@
         return SUCCESS;
     }
 
-    @Transactional(rollbackFor = Exception.class)
     public ReturnT<String> doIn(WrkMast wrkMast) {
         if (wrkMast.getTaskType().equals("agv")) {
             Date now = new Date();
@@ -67,12 +67,11 @@
             if (Objects.isNull(locCache)) {
                 throw new CoolException("鏁版嵁閿欒锛屽簱浣嶄笉瀛樺湪锛侊紒");
             }
-            List<WaitPakin> apallet = waitPakinService.selectList(new EntityWrapper<WaitPakin>().eq("apallet", wrkMast.getBarcode()));
+            List<WaitPakin> apallet = waitPakinService.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", wrkMast.getBarcode()));
             if (Objects.isNull(apallet)) {
                 throw new CoolException("鏁版嵁閿欒锛氱粍鎵樻暟鎹笉瀛樺湪锛侊紒");
             }
 
-            List<LocDetl> detls = new ArrayList<>();
             apallet.forEach(pakin -> {
                 LocDetl detl = new LocDetl();
                 BeanUtils.copyProperties(pakin, detl);
@@ -88,19 +87,37 @@
                         .setAreaName(locCache.getAreaName())
                         .setUnit(pakin.getUnit())
                         .setBatch(pakin.getBatch());
-                detls.add(detl);
-            });
 
-            if (!locDetlService.insertBatch(detls)) {
-                throw new CoolException("搴撲綅鏄庣粏淇濆瓨澶辫触锛侊紒");
-            }
+                if (!locDetlService.insert(detl)) {
+                    throw new CoolException("搴撲綅鏄庣粏淇濆瓨澶辫触锛侊紒");
+                }
+            });
 
             locCache.setLocSts(LocStsType.LOC_STS_TYPE_F.type);
             locCache.setModiTime(new Date());
-
+            locCache.setBarcode("");
+            locCache.setModiTime(new Date());
+            locCache.setIoTime(new Date());
             if (!locCacheService.updateById(locCache)) {
                 throw new CoolException("搴撲綅鐘舵�佷慨鏀瑰け璐ワ紒");
             }
+            wrkMast.setWrkSts(5L);
+            wrkMast.setModiTime(new Date());
+            if (!wrkMastService.updateById(wrkMast)) {
+                throw new CoolException("浠诲姟鐘舵�佷慨鏀瑰け璐ワ紒锛�");
+            }
+
+            Set<Long> list = apallet.stream().map(WaitPakin::getOrderId).collect(Collectors.toSet());
+            List<OrderPakin> pakins = orderPakinService.selectList(new EntityWrapper<OrderPakin>().in("order_id", list));
+            if (Objects.isNull(pakins) || pakins.isEmpty()) {
+                throw new CoolException("鍗曟嵁涓嶅瓨鍦紒锛�");
+            }
+            pakins.forEach(orderPakin -> {
+                orderPakin.setSettle(4L);
+                if (!orderPakinService.updateById(orderPakin)) {
+                    throw new CoolException("鍗曟嵁淇敼澶辫触锛侊紒");
+                }
+            });
         } else {
             Date now = new Date();
             LocMast locMast = locMastService.selectById(wrkMast.getLocNo());

--
Gitblit v1.9.1