From 850273b8707537450399fa0d0070c413fb177db5 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期三, 21 九月 2022 16:36:04 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |   48 ++++++++++++++++++++++++++----------------------
 1 files changed, 26 insertions(+), 22 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
index 30aae8a..f37d508 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -1149,27 +1149,30 @@
         SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, steNo);
         SteProtocol steProtocol = steThread.getSteProtocol();
         if (steProtocol == null) { return; }
-        if (steProtocol.isIdle()) {
 
-            // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
-            SteCommand steCommand = new SteCommand();
-            steCommand.setSteNo(steNo); // 绌挎杞︾紪鍙�
-            steCommand.setTaskNo(wrkCharge.getWrkNo()); // 宸ヤ綔鍙�
-            steCommand.setTaskMode(SteTaskModeType.findWaiting(steProtocol.getRow().intValue())); // 浠诲姟妯″紡:  鍘昏繎鐐� 绛夊緟鍫嗗灈鏈哄弶鍙�
+        if (!basSteService.updatePakMk(steNo, "Y")) {
+            log.error("淇敼绌挎杞︿綔涓氱姸鎬� 澶辫触锛侊紒锛岀┛姊溅={}", steNo);
+            return;
+        }
 
-            steCommand.setRow(Utils.getGroupRow(steProtocol.getRow().intValue()).shortValue());
-            steCommand.setBay(steProtocol.getBay());
-            steCommand.setLev(steProtocol.getLev());
+        // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+        SteCommand steCommand = new SteCommand();
+        steCommand.setSteNo(steNo); // 绌挎杞︾紪鍙�
+        steCommand.setTaskNo(wrkCharge.getWrkNo()); // 宸ヤ綔鍙�
+        steCommand.setTaskMode(SteTaskModeType.findOriginByLoc(steProtocol.getRow())); // 浠诲姟妯″紡:  鍘昏繎鐐� 绛夊緟鍫嗗灈鏈哄弶鍙�
 
-            if (!MessageQueue.offer(SlaveType.Ste, steNo, new Task(2, steCommand))) {
-                log.error("绌挎杞﹀懡浠や笅鍙戝け璐ワ紝绌挎杞﹀彿={}锛屼换鍔℃暟鎹�={}", steNo, JSON.toJSON(steCommand));
-            } else {
-                // 淇敼宸ヤ綔妗g姸鎬� 缁戝畾绌挎杞�
-                wrkCharge.setSteNo(steNo);
-                wrkCharge.setModiTime(new Date());
-                if (!wrkChargeService.updateById(wrkCharge)) {
-                    log.error("淇敼宸ヤ綔妗g姸鎬� 缁戝畾绌挎杞� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkCharge.getWrkNo());
-                }
+        steCommand.setRow(Utils.getGroupRow(steProtocol.getRow().intValue()).shortValue());
+        steCommand.setBay(steProtocol.getBay());
+        steCommand.setLev(steProtocol.getLev());
+
+        if (!MessageQueue.offer(SlaveType.Ste, steNo, new Task(2, steCommand))) {
+            log.error("绌挎杞﹀懡浠や笅鍙戝け璐ワ紝绌挎杞﹀彿={}锛屼换鍔℃暟鎹�={}", steNo, JSON.toJSON(steCommand));
+        } else {
+            // 淇敼宸ヤ綔妗g姸鎬� 缁戝畾绌挎杞�
+            wrkCharge.setSteNo(steNo);
+            wrkCharge.setModiTime(new Date());
+            if (!wrkChargeService.updateById(wrkCharge)) {
+                log.error("淇敼宸ヤ綔妗g姸鎬� 缁戝畾绌挎杞� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkCharge.getWrkNo());
             }
         }
     }
@@ -2054,13 +2057,13 @@
             BasSte basSte = basSteService.selectById(ste.getId());
             if (Cools.isEmpty(steProtocol, basSte)) { continue; }
             try {
-                if (!steProtocol.statusType.equals(SteStatusType.IDLE)) {
+                if (!steProtocol.statusType.equals(SteStatusType.IDLE) || basSte.getPakMk().equals("Y")) {
                     continue;
                 }
                 if (steProtocol.getCharge() > Float.parseFloat(basSte.getChargeLine())) {
                     continue;
                 }
-                WrkCharge wrkCharge = wrkChargeService.selectById(steProtocol.getTaskNo());
+                WrkCharge wrkCharge = wrkChargeService.selectWorking(steProtocol.getSteNo().intValue());
 
                 if (wrkCharge == null) {
                     String idleLoc = basSte.getIdleLoc();
@@ -2071,8 +2074,9 @@
                     wrkCharge.setCrnNo(basSte.getCrnNo());
                     wrkCharge.setIoPri((double) 10);
                     wrkCharge.setLocNo(idleLoc);
-                    if (wrkChargeService.insert(wrkCharge)) {
+                    if (!wrkChargeService.insert(wrkCharge)) {
                         log.error("淇濆瓨{}鍙风┛姊溅鍏呯數浠诲姟澶辫触!!!", ste.getId());
+                        continue;
                     }
 
                     if (Utils.getGroupRow(idleLoc).equals(Utils.getGroupRow(steProtocol.getRow().intValue())) && steProtocol.getBay() == Utils.getBay(idleLoc) && steProtocol.getLev() == Utils.getLev(idleLoc)) {
@@ -2121,7 +2125,7 @@
 
                     } else if (wrkCharge.getWrkSts() == 6L) {
                         // 灏忚溅琛岄┒鑷冲厖鐢典綅
-                        if (steProtocol.isIdle()) {
+                        if (steProtocol.statusType.equals(SteStatusType.IDLE) && steProtocol.getPakMk().equals("N")) {
                             // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
                             SteCommand steCommand = new SteCommand();
                             steCommand.setSteNo(wrkCharge.getSteNo()); // 绌挎杞︾紪鍙�

--
Gitblit v1.9.1