From 4ad955ed562ce9add346779791f8678b55b8c2a8 Mon Sep 17 00:00:00 2001
From: skyouc <creaycat@gmail.com>
Date: 星期一, 08 十二月 2025 15:59:03 +0800
Subject: [PATCH] Merge branch 'jsxswms' of http://47.97.1.152:5880/r/zy-asrs into jsxswms

---
 src/main/java/com/zy/asrs/service/impl/TaskServiceImpl.java |   53 ++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 40 insertions(+), 13 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/TaskServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/TaskServiceImpl.java
index a983123..396a1ae 100644
--- a/src/main/java/com/zy/asrs/service/impl/TaskServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/TaskServiceImpl.java
@@ -17,6 +17,7 @@
 import java.util.Collections;
 import java.util.Date;
 import java.util.List;
+import java.util.Objects;
 import java.util.concurrent.TimeUnit;
 
 @Service("taskService")
@@ -34,6 +35,12 @@
     private TaskService taskService;
     @Autowired
     private TaskDetlLogService taskDetlLogService;
+    @Autowired
+    private BasStationService basStationService;
+    @Autowired
+    private OrderDetlPakinService orderDetlService;
+    @Autowired
+    private OrderPakinService orderService;
 
     @Override
     @Transactional(rollbackFor = Exception.class)
@@ -67,7 +74,7 @@
     @Override
     @Transactional
     public void pickWrkMast(String workNo, Long userId) {
-        Task wrkMast = this.selectById(workNo);
+        Task wrkMast = this.selectOne(new EntityWrapper<Task>().eq("wrk_no", workNo) );
         if (Cools.isEmpty(wrkMast)) {
             throw new CoolException(workNo + "宸ヤ綔妗d笉瀛樺湪");
         }
@@ -154,6 +161,18 @@
                 locMast.setModiUser(userId);
                 locCacheService.updateById(locMast);
             }
+
+            BasStation station = basStationService.selectOne(new EntityWrapper<BasStation>().eq("dev_no", wrkMast.getSourceStaNo()));
+            if (station.getLocSts().equals("R")) {
+                station.setLocSts(wrkMast.getIoType().equals(1)?"F":"D");
+                station.setModiTime(new Date());
+                station.setModiUser(userId);
+                if (!basStationService.updateById(station)) {
+                    throw new CoolException("鏇存柊婧愮珯鐐圭姸鎬佸け璐�");
+                }
+            } else {
+                throw new CoolException("鏇存柊婧愮珯鐐圭姸鎬佸け璐ワ紝鐩爣搴撲綅鐘舵�侊細" + station.getLocSts());
+            }
             // 鍑哄簱鍙栨秷锛堜慨鏀规簮搴撲綅锛�
         } else if (wrkMast.getWrkSts() > 10 && wrkMast.getWrkSts() != 14) {
             locNo = wrkMast.getSourceLocNo();
@@ -175,6 +194,18 @@
                 locMast.setModiTime(now);
                 locMast.setModiUser(userId);
                 locCacheService.updateById(locMast);
+            }
+
+            BasStation station = basStationService.selectOne(new EntityWrapper<BasStation>().eq("dev_no", wrkMast.getStaNo()));
+            if (station.getLocSts().equals("S")) {
+                station.setLocSts("O");
+                station.setModiTime(new Date());
+                station.setModiUser(userId);
+                if (!basStationService.updateById(station)) {
+                    throw new CoolException("鏇存柊婧愮珯鐐圭姸鎬佸け璐�");
+                }
+            } else {
+                throw new CoolException("鏇存柊婧愮珯鐐圭姸鎬佸け璐ワ紝鐩爣搴撲綅鐘舵�侊細" + station.getLocSts());
             }
         } else {
             throw new CoolException("褰撳墠宸ヤ綔鐘舵�佹棤娉曞彇娑�");
@@ -201,34 +232,30 @@
             List<TaskDetl> wrkDetls = taskDetlService.selectList(new EntityWrapper<TaskDetl>().eq("wrk_no", wrkMast.getWrkNo()));
             for (TaskDetl wrkDetl : wrkDetls) {
                 if (!Cools.isEmpty(wrkDetl.getOrderNo())) {
-//                    if (!orderDetlService.decrease(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getAnfme())) {
-//                        throw new CoolException("璁㈠崟鏁版嵁鍥炴粴澶辫触");
-//                    }
                     OrderInAndOutUtil.decrease(Boolean.FALSE, wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(),
                             wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(),
                             wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3(), wrkDetl.getAnfme());
 
                     //淇敼璁㈠崟涓昏〃鐘舵��,娌℃湁浣滀笟鏁伴噺鏃舵墠鍙互淇敼
                     boolean flag = true;
-//                    List<OrderDetl> orderDetls = orderDetlService.selectList(new EntityWrapper<OrderDetl>().eq("order_no",wrkDetl.getOrderNo()));
-                    Order order = OrderInAndOutUtil.selectByNo(Boolean.FALSE, wrkDetl.getOrderNo());
-                    List<OrderDetl> orderDetls = OrderInAndOutUtil.selectByOrderId(Boolean.FALSE, order.getId());
-                    for (OrderDetl orderDetl : orderDetls) {
+                    OrderPakin order =  orderService.selectByNo(wrkDetl.getOrderNo());  //OrderInAndOutUtil.selectByNo(Boolean.FALSE, wrkDetl.getOrderNo());
+                    if (Objects.isNull(order)) {
+                        throw new CoolException("鍗曟嵁淇℃伅涓嶅瓨鍦紒锛�");
+                    }
+                    List<OrderDetlPakin> orderDetls = orderDetlService.selectByOrderId(order.getId()); //OrderInAndOutUtil.selectByOrderId(Boolean.FALSE, order.getId());
+                    for (OrderDetlPakin orderDetl : orderDetls) {
                         if (orderDetl.getWorkQty() > 0) {
                             flag = false;
                         }
                     }
                     if (flag) {
-//                        Order order = orderService.selectOne(new EntityWrapper<Order>().eq("order_no",wrkDetl.getOrderNo()));
                         if (!Cools.isEmpty(order) && order.getSettle() == 2) {
                             order.setSettle(1L);
                             order.setUpdateBy(userId);
                             order.setUpdateTime(now);
                         }
-//                        if(!orderService.update(order,new EntityWrapper<Order>().eq("order_no",wrkDetl.getOrderNo()))){
-//                            throw new CoolException("淇敼璁㈠崟鐘舵�佸け璐�");
-//                        }
-                        OrderInAndOutUtil.updateOrder(Boolean.FALSE, order.getId(), order.getSettle(), userId);
+
+                        orderService.updateById(order);
                     }
                 }
             }

--
Gitblit v1.9.1