From 506b9ea416e08db32ddd93362bd3a915061de3c7 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@63.com>
Date: 星期四, 10 三月 2022 11:04:03 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |   82 ++++++++++++++++++++++++++++++++++++----
 1 files changed, 73 insertions(+), 9 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 2b49984..250d4ac 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -577,8 +577,7 @@
                     }
                 // 娌℃湁灏忚溅
                 } else {
-                    // 鍫嗗灈鏈哄叆搴�
-                    // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+                    // 鍫嗗灈鏈哄叆搴� 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
                     CrnCommand crnCommand = new CrnCommand();
                     crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
                     crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙�
@@ -599,7 +598,7 @@
                         wrkMast.setCrnStrTime(now);
                         wrkMast.setModiTime(now);
                         if (wrkMastMapper.updateById(wrkMast) == 0) {
-                            log.error("淇敼宸ヤ綔妗g姸鎬� {} => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkSts$(), wrkMast.getWrkNo());
+                            log.error("淇敼宸ヤ綔妗g姸鎬� {} => 7.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkSts$(), wrkMast.getWrkNo());
                         }
                         return true;
                     }
@@ -607,9 +606,52 @@
 
             // 鐩爣搴撲綅 ===>> 闈炴渶澶栧眰搴撲綅
             } else {
-                // 鍒ゆ柇灏忚溅鏄惁鍦ㄥ綋鍓嶇粍搴撲綅锛屽鏋滄槸鍒欏爢鍨涙満灏嗚揣鐗╂斁缃皬杞︿笂锛屽鏋滀笉鏄紝鍒欑洿鎺ュ爢鍨涙満鎼Щ灏忚溅鑷冲綋鍓嶇粍鐨勬渶澶栧眰搴撲綅
+                // 鍒ゆ柇灏忚溅鏄惁鍦ㄥ綋鍓嶇粍搴撲綅锛屽鏋滄槸鍒欏皢绌挎杞︾Щ鑷虫渶澶栧眰锛岀瓑寰呭爢鍨涙満鏀捐揣锛涘鏋滀笉鏄紝鍒欏爢鍨涙満瀵绘壘绌挎杞︼紝骞舵斁缃綋鍓嶇粍鏈�澶栧眰
                 Integer steNo = this.hasCarOfIdle(wrkMast.getLocNo());
+                // 鏈夊皬杞�
+                if (steNo != null) {
+                    // 灏忚溅琛岃蛋鍒板爢鍨涙満寰呮惉绉荤偣
+                    if (wrkMast.getWrkSts() == 2L) {
+                        this.letCarBeReady(wrkMast, steNo);
+                    }
+                    // 鍫嗗灈鏈哄皢璐ф斁鑷冲皬杞︿笂 3.灏忚溅寰呮惉 ===>> 7.鍚婅溅鍏ュ簱涓�
+                    if (wrkMast.getWrkSts() == 3L) {
+                        // 灏忚溅澶勪簬绌洪棽
+                        SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, steNo);
+                        SteProtocol steProtocol = steThread.getSteProtocol();
+                        if (steProtocol == null) { continue; }
+                        if (steProtocol.getStatusType().equals(SteStatusType.IDLE)) {
+                            // 鍫嗗灈鏈哄叆搴� 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+                            CrnCommand crnCommand = new CrnCommand();
+                            crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
+                            crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙�
+                            crnCommand.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
+                            crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡:  搴撲綅绉昏浆
+                            crnCommand.setSourcePosX(crnStn.getRow().shortValue());     // 婧愬簱浣嶆帓
+                            crnCommand.setSourcePosY(crnStn.getBay().shortValue());     // 婧愬簱浣嶅垪
+                            crnCommand.setSourcePosZ(crnStn.getLev().shortValue());     // 婧愬簱浣嶅眰
+                            crnCommand.setDestinationPosX(Utils.getGroupRow(locMast.getLocNo()).shortValue());     // 鐩爣搴撲綅鎺�
+                            crnCommand.setDestinationPosY(locMast.getBay1().shortValue());     // 鐩爣搴撲綅鍒�
+                            crnCommand.setDestinationPosZ(locMast.getLev1().shortValue());     // 鐩爣搴撲綅灞�
+                            if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) {
+                                log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
+                            } else {
+                                // 淇敼宸ヤ綔妗g姸鎬�  3.灏忚溅寰呮惉 ===>> 7.鍚婅溅鍏ュ簱涓�
+                                Date now = new Date();
+                                wrkMast.setWrkSts(7L);
+                                wrkMast.setCrnStrTime(now);
+                                wrkMast.setModiTime(now);
+                                if (wrkMastMapper.updateById(wrkMast) == 0) {
+                                    log.error("淇敼宸ヤ綔妗g姸鎬� 3.灏忚溅寰呮惉 => 7.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
+                                }
+                                return true;
+                            }
+                        }
+                    }
+                // 娌℃湁灏忚溅
+                } else {
 
+                }
 
 
             }
@@ -626,8 +668,6 @@
 
     /**
      * 褰撳墠搴撲綅缁勬槸鍚﹀瓨鍦ㄧ┖闂插皬杞�
-     * @param locNo
-     * @return
      */
     public Integer hasCarOfIdle(String locNo) {
         for (SteSlave ste : slaveProperties.getSte()) {
@@ -666,6 +706,7 @@
                 // 淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.灏忚溅寰呮惉
                 Date now = new Date();
                 wrkMast.setWrkSts(3L);
+                wrkMast.setSteNo(steNo);
                 wrkMast.setCrnStrTime(now);
                 wrkMast.setModiTime(now);
                 if (wrkMastMapper.updateById(wrkMast) == 0) {
@@ -937,6 +978,23 @@
     }
 
     /**
+     * 绌挎杞﹀叆搴�
+     */
+    public void carGenerateStore() {
+        for (SteSlave ste : slaveProperties.getSte()) {
+            // 鑾峰彇鍫嗗灈鏈轰俊鎭�
+            SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, ste.getId());
+            SteProtocol steProtocol = steThread.getSteProtocol();
+            if (steProtocol == null) { continue; }
+            if (steProtocol.getStatusType().equals(SteStatusType.IDLE)) {
+
+                wrkMastMapper.selectPakInStep8()
+
+            }
+        }
+    }
+
+    /**
      * 鍫嗗灈鏈洪拡瀵逛簬灏忚溅杩佺Щ宸ヤ綔鐨勫畬鎴�
      */
     @Async
@@ -991,10 +1049,16 @@
                     log.error("鍫嗗灈鏈哄浜庣瓑寰呯‘璁や笖浠诲姟瀹屾垚鐘舵�侊紝浣嗘湭鎵惧埌宸ヤ綔妗c�傚爢鍨涙満鍙�={}锛屽伐浣滃彿={}", crn.getId(), crnProtocol.getTaskNo());
                     continue;
                 }
-                // 鍏ュ簱 + 搴撲綅杞Щ  ==> 9.鍏ュ簱瀹屾垚
+                // 鍏ュ簱 + 搴撲綅杞Щ
                 if (wrkMast.getWrkSts() == 7 || (wrkMast.getWrkSts() == 12 && wrkMast.getIoType() == 11)){
-                    wrkMast.setWrkSts(9L);
-                } else  {
+                    if (locMastService.isOutMost(wrkMast.getLocNo())) {
+                        // ==> 9.鍏ュ簱瀹屾垚
+                        wrkMast.setWrkSts(9L);
+                    } else {
+                        // ==> 8.灏忚溅鎼叆搴�
+                        wrkMast.setWrkSts(8L);
+                    }
+                } else {
                     continue;
                 }
                 Date now = new Date();

--
Gitblit v1.9.1