From 57e23c353a177b9c003a2f524a2adeaf641e2e4c Mon Sep 17 00:00:00 2001
From: ZY <zc857179121@qq.com>
Date: 星期五, 16 八月 2024 17:09:55 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/wms-dev' into wms-dev

---
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskTimer.java |   99 ++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 92 insertions(+), 7 deletions(-)

diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskTimer.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskTimer.java
index 90bbd5a..4b78bed 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskTimer.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskTimer.java
@@ -21,18 +21,40 @@
 
     @Autowired
     private TaskService taskService;
+
     @Autowired
     private TaskDetlService taskDetlService;
+
     @Autowired
     private TaskDetlFieldService taskDetlFieldService;
+
     @Autowired
     private LocService locService;
+
     @Autowired
     private LocDetlService locDetlService;
+
     @Autowired
     private LocDetlFieldService locDetlFieldService;
+
     @Autowired
     private WaitPakinService waitPakinService;
+
+    @Autowired
+    private WaitPakinLogService waitPakinLogService;
+
+    @Autowired
+    private TaskDetlLogService taskDetlLogService;
+
+    @Autowired
+    private TaskDetlFieldLogService taskDetlFieldLogService;
+
+    @Autowired
+    private OrderService orderService;
+
+    @Autowired
+    private OrderDetlService orderDetlService;
+
 
     @Scheduled(cron = "0/3 * * * * ? ")
     @Transactional
@@ -51,11 +73,11 @@
                 switch (task.getTaskType().intValue()) {
                     case 1://鍏ュ簱
                         Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getLocNo, task.getTargetLoc()).eq(Loc::getHostId, hostId));
-                        if(loc == null) {
+                        if (loc == null) {
                             throw new CoolException("搴撲綅涓嶅瓨鍦�");
                         }
 
-                        if(loc.getLocStsId() != LocStsType.S.val()){
+                        if (loc.getLocStsId() != LocStsType.S.val()) {
                             throw new CoolException("搴撲綅鐘舵�佷笉澶勪簬S.鍏ュ簱棰勭害");
                         }
 
@@ -68,7 +90,7 @@
 
 
                         List<TaskDetl> taskDetls = taskDetlService.getTaskDetlByTaskId(task.getId());
-                        if(taskDetls.isEmpty()) {
+                        if (taskDetls.isEmpty()) {
                             throw new CoolException("浠诲姟鏄庣粏涓嶅瓨鍦�");
                         }
 
@@ -94,6 +116,7 @@
                                 locDetlField.setDetlId(locDetl.getId());
                                 locDetlField.setFieldId(detlField.getFieldId());
                                 locDetlField.setName(detlField.getName());
+                                locDetlField.setValue(detlField.getValue());
                                 locDetlField.setHostId(hostId);
                                 if (!locDetlFieldService.save(locDetlField)) {
                                     throw new CoolException("鎻掑叆鏄庣粏鎵╁睍瀛楁澶辫触");
@@ -101,8 +124,21 @@
                             }
                         }
 
-                        //鍒犻櫎缁勬墭閫氱煡妗�
-                        waitPakinService.remove(new LambdaQueryWrapper<WaitPakin>().eq(WaitPakin::getBarcode, task.getBarcode()).eq(WaitPakin::getHostId, hostId));
+                        //缁勬墭閫氱煡妗h浆鍘嗗彶妗�
+                        List<WaitPakin> waitPakins = waitPakinService.list(new LambdaQueryWrapper<WaitPakin>().eq(WaitPakin::getBarcode, task.getBarcode()).eq(WaitPakin::getHostId, hostId));
+                        if (waitPakins.isEmpty()) {
+                            throw new CoolException("缁勬墭閫氱煡妗d笉瀛樺湪");
+                        }
+                        for (WaitPakin waitPakin : waitPakins) {
+                            WaitPakinLog waitPakinLog = new WaitPakinLog();
+                            waitPakinLog.sync(waitPakin);
+                            if (!waitPakinLogService.save(waitPakinLog)) {
+                                throw new CoolException("缁勬墭閫氱煡妗h浆鍘嗗彶妗eけ璐�");
+                            }
+
+                            //鍒犻櫎缁勬墭閫氱煡妗�
+                            waitPakinService.removeById(waitPakin.getId());
+                        }
 
                         break;
                 }
@@ -116,7 +152,7 @@
         } catch (Exception e) {
             e.printStackTrace();
             TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-        }finally {
+        } finally {
             InterceptorIgnoreHelper.clearIgnoreStrategy();
         }
     }
@@ -126,11 +162,60 @@
     public void outExecute() {
         InterceptorIgnoreHelper.handle(IgnoreStrategy.builder().tenantLine(true).build());
         try {
+            //鑾峰彇鍑哄簱瀹屾垚浠诲姟
+            List<Task> list = taskService.list(new LambdaQueryWrapper<Task>().eq(Task::getTaskSts, 199));
+            if (list.isEmpty()) {
+                return;
+            }
+            for (Task task : list) {
+                //鍚屾鏁版嵁
+                Long hostId = task.getHostId();
+                Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getLocNo, task.getOriginLoc()).eq(Loc::getHostId, hostId));
+                if (loc == null) {
+                    throw new CoolException("搴撲綅涓嶅瓨鍦�");
+                }
+                if (loc.getLocStsId() != LocStsType.R.val()) {
+                    throw new CoolException("搴撲綅鐘舵�佷笉澶勪簬R.鍑哄簱棰勭害");
+                }
+                List<TaskDetl> taskDetls = taskDetlService.getTaskDetlByTaskId(task.getId());
+                if (taskDetls.isEmpty()) {
+                    throw new CoolException("浠诲姟鏄庣粏涓嶅瓨鍦�");
+                }
+                switch (task.getTaskType().intValue()) {
+                    //鍑哄簱
+                    case 101:
+                        loc.setLocStsId(LocStsType.O.val());
+                        loc.setBarcode("");
+                        if (!locService.updateById(loc)) {
+                            throw new CoolException("搴撲綅鐘舵�佹洿鏂板け璐�");
+                        }
+                        List<LocDetl> detlList = locDetlService.list(new LambdaQueryWrapper<LocDetl>().eq(LocDetl::getLocNo, loc.getId()).eq(LocDetl::getHostId, hostId));
+                        //鍒犻櫎搴撳瓨鏄庣粏
+                        for (LocDetl locDetl : detlList) {
+                            if (!locDetlService.removeById(locDetl)) {
+                                throw new CoolException("鍒犻櫎搴撳瓨鏄庣粏澶辫触");
+                            }
+                            List<LocDetlField> detlFields = locDetlFieldService.list(new LambdaQueryWrapper<LocDetlField>().eq(LocDetlField::getDetlId, locDetl.getId()).eq(LocDetlField::getHostId, hostId));
+                            for (LocDetlField detlField : detlFields) {
+                                if (!locDetlFieldService.removeById(detlField)) {
+                                    throw new CoolException("鍒犻櫎鏄庣粏鎵╁睍瀛楁澶辫触");
+                                }
+                            }
+                        }
+                        break;
+
+                }
+
+                task.setTaskSts(200L);//200.搴撳瓨鏇存柊瀹屾垚
+                if (!taskService.updateById(task)) {
+                    throw new CoolException("搴撳瓨鏇存柊澶辫触");
+                }
+            }
 
         } catch (Exception e) {
             e.printStackTrace();
             TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-        }finally {
+        } finally {
             InterceptorIgnoreHelper.clearIgnoreStrategy();
         }
     }

--
Gitblit v1.9.1