From 1f62eee8e144988e42f3d0ba2e926d056c01f929 Mon Sep 17 00:00:00 2001
From: LSH
Date: 星期三, 28 六月 2023 10:26:45 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |   92 ++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 92 insertions(+), 0 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 12aca3a..a0aefbe 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -513,6 +513,95 @@
     }
 
     /**
+     * 缁戝畾灏忚溅鏂规硶
+     */
+    public synchronized void rgvBindSte() {
+        for (RgvSlave rgv : slaveProperties.getRgv()) {
+            // 鑾峰彇RGV淇℃伅
+            RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId());
+            RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
+            if (rgvProtocol == null) {
+                continue;
+            }
+            BasRgv basRgv = basRgvService.selectById(rgv.getId());
+            if (basRgv == null) {
+                log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", rgv.getId());
+                continue;
+            }
+
+            // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�, 骞朵笖鏃犱换鍔°�佹棤鐗╂椂鎵嶇户缁墽琛�
+            if (rgvProtocol.getStatusType() == RgvStatusType.IDLE
+                    && rgvProtocol.getModeType() == RgvModeType.AUTO
+                    && rgvProtocol.getTaskNo1() == 0 && rgvProtocol.getTaskNo2() == 0
+                    && rgvProtocol.getLoaded1() == 0 && rgvProtocol.getLoaded2() == 0
+            ) {
+                // 濡傛灉鏈�杩戜竴娆℃槸鍏ュ簱妯″紡
+                if (rgvProtocol.getLastIo().equals("I")) {
+                    if (basRgv.getInEnable().equals("Y")) {
+                        this.rgvBindSteIn(rgv, rgvProtocol); //  鍏ュ簱
+                        rgvProtocol.setLastIo("O");
+                    } else if (basRgv.getOutEnable().equals("Y")) {
+                        this.rgvBindSteOut(rgv, rgvProtocol); //  鍑哄簱
+                        rgvProtocol.setLastIo("I");
+                    }
+                }
+                // 濡傛灉鏈�杩戜竴娆℃槸鍑哄簱妯″紡
+                else if (rgvProtocol.getLastIo().equals("O")) {
+                    if (basRgv.getOutEnable().equals("Y")) {
+                        this.rgvBindSteOut(rgv, rgvProtocol); //  鍑哄簱
+                        rgvProtocol.setLastIo("I");
+                    } else if (basRgv.getInEnable().equals("Y")) {
+                        this.rgvBindSteIn(rgv, rgvProtocol); //  鍏ュ簱
+                        rgvProtocol.setLastIo("O");
+                    }
+                }
+            }
+        }
+    }
+
+    /**
+     * 缁戝畾灏忚溅鍏ュ簱鏂规硶
+     */
+    public synchronized void rgvBindSteIn(RgvSlave slave, RgvProtocol rgvProtocol) {
+        for (RgvSlave.RgvStn rgvStn: slave.getRgvInSStn()){
+            Integer staNo = rgvStn.getStaNo();
+            BasDevp basDevp = basDevpService.selectById(rgvStn.getDevpPlcId());
+            if (Cools.isEmpty(basDevp) || basDevp.getWrkNo()==0){
+                continue;
+            }else {
+                WrkMast wrkMast = wrkMastMapper.selectRgvInSteWrkNo(basDevp.getWrkNo());
+                if (!Cools.isEmpty(wrkMast)){
+                    wrkMast.setRgvNo(wrkMast.getCrnNo()>3 ? 2 : 1);
+                    wrkMast.setAppeTime(new Date());
+                    if (wrkMastMapper.updateById(wrkMast)==0){
+                        log.error("缁戝畾灏忚溅鏇存柊宸ヤ綔妗eけ璐ワ紒锛侊紒 [宸ヤ綔鍙凤細{}]", wrkMast.getWrkNo());
+                    }
+                }
+            }
+        }
+    }
+
+    /**
+     * 缁戝畾灏忚溅鍑哄簱鏂规硶
+     */
+    public synchronized void rgvBindSteOut(RgvSlave slave, RgvProtocol rgvProtocol) {
+        for (RgvSlave.RgvStn rgvStn: slave.getRgvOutSStn()){
+            BasDevp basDevp = basDevpService.selectById(rgvStn.getDevpPlcId());
+            if (Cools.isEmpty(basDevp) || basDevp.getWrkNo()==0){
+                continue;
+            }else {
+                WrkMast wrkMast = wrkMastMapper.selectRgvOutSteWrkNo(basDevp.getWrkNo());
+                if (!Cools.isEmpty(wrkMast)){
+                    wrkMast.setRgvNo(rgvStn.getStaNo());
+                    wrkMast.setAppeTime(new Date());
+                    if (wrkMastMapper.updateById(wrkMast)==0){
+                        log.error("缁戝畾灏忚溅鏇存柊宸ヤ綔妗eけ璐ワ紒锛侊紒 [宸ヤ綔鍙凤細{}]", wrkMast.getWrkNo());
+                    }
+                }
+            }
+        }
+    }
+    /**
      * 鍏ュ嚭搴�  ===>>  RGV鍏ュ嚭搴撲綔涓氫笅鍙�
      */
     public synchronized void rgvIoExecute() {
@@ -1243,6 +1332,9 @@
      * 鍏ュ簱  ===>>  RGV鍏ュ簱绔欏埌绔�
      */
     public synchronized void rgvInStn(RgvSlave slave, RgvProtocol rgvProtocol) {
+        WrkMast wrkMast = wrkMastMapper.selectRgvInSteNo(slave.getId());
+
+
         //鏌ユ壘宸ヤ綔鐘舵�佷负2锛堣澶囦笂璧帮級,涓擱GV鍏ュ簱鎺ラ┏绔欑鍚堢殑鐨勫叆搴撳伐浣滄。锛屾彁鍙栧嚭鏈�澶�2绗�
         List<WrkMast> wrkMastTask = getRgvInTask(slave);
         if(wrkMastTask.size() <= 0){

--
Gitblit v1.9.1