From 48020b340d4bce51660fa5b412085e4d4cd769f1 Mon Sep 17 00:00:00 2001
From: LSH
Date: 星期二, 18 七月 2023 17:03:32 +0800
Subject: [PATCH] #完善路径工具类

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |   84 ++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 81 insertions(+), 3 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 08378c0..37e50e7 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -632,7 +632,7 @@
                         }
 
                         //鍒ゆ柇琛岃蛋璺緞鏄惁琚崰鐢�
-                        Integer staNo = wrkMast.getStaNo();
+                        Integer staNo = wrkMast.getSourceStaNo();
                         BasDevp basDevp = basDevpService.selectById(staNo);
                         if (basDevp == null) {
                             continue;//鐩爣绔欎笉瀛樺湪
@@ -641,8 +641,13 @@
                         int startPath = rgvProtocol.getRgvPos().intValue();
                         //鐩爣璺緞鍊�
                         int endPath = basDevp.getLocType3().intValue();
-                        boolean pathUsed = RgvUtils.isPathUsed(startPath, endPath);
-
+                        boolean pathUsed = RgvUtils.isPathUsed(startPath, endPath);//鍒ゆ柇琛岃蛋璺緞鏄惁琚崰鐢�
+                        if (pathUsed) {
+                            //琛岃蛋璺緞琚崰鐢紝绂佹涓嬪彂鍛戒护
+                            continue;
+                        }
+                        //琛岃蛋璺緞绌洪棽锛岄攣瀹氳矾寰�
+                        RgvUtils.lockPath(startPath, endPath, rgvProtocol.getRgvNo(), wrkMast.getWrkNo(), true);
 
                         //  鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
                         RgvCommand rgvCommand = new RgvCommand();
@@ -672,6 +677,24 @@
                             continue;
                         }
 
+                        //鍒ゆ柇琛岃蛋璺緞鏄惁琚崰鐢�
+                        Integer staNo = wrkMast.getStaNo();
+                        BasDevp basDevp = basDevpService.selectById(staNo);
+                        if (basDevp == null) {
+                            continue;//鐩爣绔欎笉瀛樺湪
+                        }
+                        //璧峰璺緞
+                        int startPath = rgvProtocol.getRgvPos().intValue();
+                        //鐩爣璺緞鍊�
+                        int endPath = basDevp.getLocType3().intValue();
+                        boolean pathUsed = RgvUtils.isPathUsed(startPath, endPath);//鍒ゆ柇琛岃蛋璺緞鏄惁琚崰鐢�
+                        if (pathUsed) {
+                            //琛岃蛋璺緞琚崰鐢紝绂佹涓嬪彂鍛戒护
+                            continue;
+                        }
+                        //琛岃蛋璺緞绌洪棽锛岄攣瀹氳矾寰�
+                        RgvUtils.lockPath(startPath, endPath, rgvProtocol.getRgvNo(), wrkMast.getWrkNo(), true);
+
                         //  鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
                         RgvCommand rgvCommand = new RgvCommand();
                         rgvCommand.setRgvNo(wrkMast.getRgvNo()); // RGV缂栧彿
@@ -696,6 +719,24 @@
                         if (rgvProtocol.getTaskNo1() != 0 || rgvProtocol.getLoaded1() != 0) {//RGV鏄惁鏃犱换鍔°�丷GV鏄惁鏃犺揣
                             continue;
                         }
+
+                        //鍒ゆ柇琛岃蛋璺緞鏄惁琚崰鐢�
+                        Integer staNo = wrkMast.getSourceStaNo();
+                        BasDevp basDevp = basDevpService.selectById(staNo);
+                        if (basDevp == null) {
+                            continue;//鐩爣绔欎笉瀛樺湪
+                        }
+                        //璧峰璺緞
+                        int startPath = rgvProtocol.getRgvPos().intValue();
+                        //鐩爣璺緞鍊�
+                        int endPath = basDevp.getLocType3().intValue();
+                        boolean pathUsed = RgvUtils.isPathUsed(startPath, endPath);//鍒ゆ柇琛岃蛋璺緞鏄惁琚崰鐢�
+                        if (pathUsed) {
+                            //琛岃蛋璺緞琚崰鐢紝绂佹涓嬪彂鍛戒护
+                            continue;
+                        }
+                        //琛岃蛋璺緞绌洪棽锛岄攣瀹氳矾寰�
+                        RgvUtils.lockPath(startPath, endPath, rgvProtocol.getRgvNo(), wrkMast.getWrkNo(), true);
 
                         //  鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
                         RgvCommand rgvCommand = new RgvCommand();
@@ -725,6 +766,24 @@
                             continue;
                         }
 
+                        //鍒ゆ柇琛岃蛋璺緞鏄惁琚崰鐢�
+                        Integer staNo = wrkMast.getStaNo();
+                        BasDevp basDevp = basDevpService.selectById(staNo);
+                        if (basDevp == null) {
+                            continue;//鐩爣绔欎笉瀛樺湪
+                        }
+                        //璧峰璺緞
+                        int startPath = rgvProtocol.getRgvPos().intValue();
+                        //鐩爣璺緞鍊�
+                        int endPath = basDevp.getLocType3().intValue();
+                        boolean pathUsed = RgvUtils.isPathUsed(startPath, endPath);//鍒ゆ柇琛岃蛋璺緞鏄惁琚崰鐢�
+                        if (pathUsed) {
+                            //琛岃蛋璺緞琚崰鐢紝绂佹涓嬪彂鍛戒护
+                            continue;
+                        }
+                        //琛岃蛋璺緞绌洪棽锛岄攣瀹氳矾寰�
+                        RgvUtils.lockPath(startPath, endPath, rgvProtocol.getRgvNo(), wrkMast.getWrkNo(), true);
+
                         //  鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
                         RgvCommand rgvCommand = new RgvCommand();
                         rgvCommand.setRgvNo(wrkMast.getRgvNo()); // RGV缂栧彿
@@ -750,6 +809,10 @@
 
             }
         }
+    }
+
+    private boolean rgvIoExecuteWrk2To3() {
+        return false;
     }
 
     /**
@@ -1735,11 +1798,26 @@
                     wrkMast1.setWrkSts(27L);//27.RGV鏀捐揣瀹屾垚
                 }
 
+                //瑙i攣璺緞
+                RgvUtils.unLockPath(wrkMast1.getRgvNo());
+
                 wrkMast1.setModiTime(now);
                 if (wrkMastMapper.updateById(wrkMast1) == 0) {
                     log.error("宸ヤ綅1淇敼宸ヤ綔妗g姸鎬佸け璐ワ紒锛侊紝宸ヤ綔鍙�={}", wrkMast1.getWrkNo());
                 }
 
+                //  鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+                RgvCommand rgvCommand = new RgvCommand();
+                rgvCommand.setRgvNo(rgv.getId()); // RGV缂栧彿
+                rgvCommand.setAckFinish1((short) 1);  // 宸ヤ綅1浠诲姟瀹屾垚纭浣�
+                rgvCommand.setTaskNo1(wrkMast1.getWrkNo().shortValue()); // 宸ヤ綅1宸ヤ綔鍙�
+                rgvCommand.setTaskMode1(RgvTaskModeType.NONE); // 宸ヤ綅1浠诲姟妯″紡:  鏃�
+                rgvCommand.setCommand((short) 1);   //宸ヤ綅1浠诲姟纭
+                if (!MessageQueue.offer(SlaveType.Crn, wrkMast1.getRgvNo(), new Task(4, rgvCommand))) {
+                    //step=2,宸ヤ綅1銆�2浠诲姟纭锛�   step=4锛屽伐浣�1纭锛�     step=5锛屽伐浣�2浠诲姟纭
+                    log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgv.getId(), JSON.toJSON(rgvCommand));
+                }
+
 //                //宸ヤ綅1鍙栬揣瀹屾垚鍚庯紝宸ヤ綅2鏄棤璐х┖闂茬姸鎬佹椂锛屽噯澶囩粰宸ヤ綅2鍙戜换鍔★紝纭鏄惁鏈夊緟鎵цRGV浠诲姟
 //                if (rgvProtocol.getModeType() == RgvModeType.AUTO
 //                        && rgvProtocol.getTaskNo1() > 0 && rgvProtocol.getTaskNo2() == 0

--
Gitblit v1.9.1