From 3ad8eac4b257e4bfcaef175ec1477758ad71a420 Mon Sep 17 00:00:00 2001
From: TQS <56479841@qq.com>
Date: 星期四, 15 八月 2024 19:57:47 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/utils/Utils.java                  |   35 +++++++----
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |   69 ++++++++++++++++++++--
 src/main/resources/application.yml                          |   26 ++++++--
 3 files changed, 104 insertions(+), 26 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 bd49c1f..09879c4 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -213,7 +213,7 @@
                             // plc 澶勭悊
                             barcodeThread.setBarcode("");
                             staProtocol.setWorkNo(dto.getWorkNo().shortValue());
-                            staProtocol.setStaNo(dto.getStaNo().shortValue());
+                            staProtocol.setStaNo(Utils.getStaNoConvertCentreOther3(dto.getStaNo(),inSta.getStaNo()).shortValue());
                             devpThread.setPakMk(staProtocol.getSiteId(), false);
 
                             ledThread.errorReset();
@@ -854,9 +854,33 @@
                                     continue;
                                 }
                                 WrkMast onlyWrkNo = wrkMastMapper.selectByOnlyWrkNo(crnProtocol.getTaskNo().intValue());
+                                if (Cools.isEmpty(onlyWrkNo) && (crnStn.getStaNo()  == 112 || crnStn.getStaNo() == 212)){
+                                    //  鍒ゆ柇鍫嗗灈鏈虹姸鎬佺瓑寰呯‘璁�
+                                    if (crnProtocol.modeType == CrnModeType.AUTO
+                                            && crnProtocol.statusType == CrnStatusType.WAITING
+                                            && crnProtocol.forkPosType == CrnForkPosType.HOME
+                                            && crnProtocol.getBay().equals(crnStn.getBay().shortValue()) && crnProtocol.getLevel().equals(crnStn.getLev().shortValue())) {
+                                        News.info("鍫嗗灈鏈烘帴椹充换鍔″畬鎴愶紝宸ヤ綔鍙凤細"+crnProtocol.getTaskNo()+"锛涙墽琛屽爢鍨涙満鍙凤細"+crnSlave.getId()+"锛涙帴椹虫斁璐т綅锛�"+crnStn.getStaNo()+"锛涙帴椹宠璧扮洰鏍囩珯锛�"+Utils.getStaNoConvertCentreOther2(crnStn.getStaNo()));
+                                        // 涓嬪彂绔欑偣淇℃伅
+                                        News.error("new867===>"+crnProtocol.getTaskNo());
+                                        News.error("new867===>"+Utils.getStaNoConvertCentreOther2(crnStn.getStaNo()).toString());
+                                        staProtocol.setWorkNo(crnProtocol.getTaskNo());
+                                        staProtocol.setStaNo(Utils.getStaNoConvertCentreOther2(crnStn.getStaNo()).shortValue());
+                                        if (!MessageQueue.offer(SlaveType.Devp, crnStn.getDevpPlcId(), new Task(2, staProtocol))) {
+                                            continue;
+                                        }
+                                        // 澶嶄綅鍫嗗灈鏈�
+                                        crnThread.setResetFlag(true);
+                                        continue;
+                                    }
+                                }
                                 if (Cools.isEmpty(onlyWrkNo) ||
-                                        (onlyWrkNo.getStaNo()!=114 && onlyWrkNo.getStaNo()!=214 &&
-                                        onlyWrkNo.getSourceStaNo()!=114 && onlyWrkNo.getSourceStaNo()!=214)){
+                                        ((onlyWrkNo.getStaNo()!=114 && onlyWrkNo.getStaNo()!=214 &&
+                                                onlyWrkNo.getSourceStaNo()!=114 && onlyWrkNo.getSourceStaNo()!=214)
+                                                &&
+                                                (onlyWrkNo.getStaNo()!=113 && onlyWrkNo.getStaNo()!=213 &&
+                                                        onlyWrkNo.getSourceStaNo()!=113 && onlyWrkNo.getSourceStaNo()!=213))
+                                ){
                                     continue;
                                 }
                                 //  鍒ゆ柇鍫嗗灈鏈虹姸鎬佺瓑寰呯‘璁�
@@ -1031,7 +1055,39 @@
                             crnCommand.setTaskNo(onlyWrkNo.getWrkNo().shortValue()); // 宸ヤ綔鍙�
                             crnCommand.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
                             crnCommand.setCommand((short) 0);
-                            crnCommand.setTaskMode(CrnTaskModeType.XY_MOVE); // 浠诲姟妯″紡:  绔欎綅杞Щ
+                            crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡:  搴撲綅绉昏浆
+                            crnCommand.setSourcePosX(crnStn.getRow().shortValue());     // 婧愬簱浣嶆帓
+                            crnCommand.setSourcePosY(crnStn.getBay().shortValue());     // 婧愬簱浣嶅垪
+                            crnCommand.setSourcePosZ(crnStn.getLev().shortValue());     // 婧愬簱浣嶅眰
+                            crnCommand.setDestinationPosX(Utils.getRow(staProtocol.getSiteId()));     // 鐩爣搴撲綅鎺�
+                            crnCommand.setDestinationPosY(Utils.getBay(staProtocol.getSiteId()));     // 鐩爣搴撲綅鍒�
+                            crnCommand.setDestinationPosZ(Utils.getLev(staProtocol.getSiteId()));     // 鐩爣搴撲綅灞�
+                            if (!MessageQueue.offer(SlaveType.Crn, slave.getId(), new Task(2, crnCommand))) {
+                                News.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", slave.getId(), JSON.toJSONString(crnCommand));
+                            }
+                            return true;
+                        }
+                    } else if (!Cools.isEmpty(onlyWrkNo) && onlyWrkNo.getCrnNo()==2 && onlyWrkNo.getWrkSts()>16 && crnProtocol.getCrnNo()!=2 && onlyWrkNo.getIoType()>100){
+                        //                News.error("{}绔欑偣鏌ヨ鏃犲緟鍏ュ簱鏁版嵁 宸ヤ綔鍙�={}", crnStn.getStaNo(), staProtocol.getWorkNo());
+                        // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
+                        if (wrkMastMapper.selectWorking(slave.getId()) != null) {
+                            continue;
+                        }
+                        if (Cools.isEmpty(staProtocol.getWorkNo()) || !staProtocol.isLoading()){
+                            continue;
+                        }
+                        //  鍒ゆ柇鍫嗗灈鏈虹姸鎬佺瓑寰呯‘璁�
+                        if (crnProtocol.modeType == CrnModeType.AUTO
+                                && crnProtocol.statusType == CrnStatusType.IDLE
+                                && crnProtocol.forkPosType == CrnForkPosType.HOME) {
+                            News.info("鍫嗗灈鏈烘帴椹充换鍔℃墽琛岋紝宸ヤ綔鍙凤細"+staProtocol.getWorkNo()+"锛涙墽琛屽爢鍨涙満鍙凤細"+slave.getId()+"锛涙帴椹冲彇璐т綅锛�"+crnStn.getStaNo()+"锛涙帴椹虫斁璐т綅锛�"+staProtocol.getSiteId());
+                            // 鍫嗗灈鏈烘帴椹充换鍔″懡浠や笅鍙戝尯 --------------------------------------------------------------------------
+                            CrnCommand crnCommand = new CrnCommand();
+                            crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
+                            crnCommand.setTaskNo(onlyWrkNo.getWrkNo().shortValue()); // 宸ヤ綔鍙�
+                            crnCommand.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
+                            crnCommand.setCommand((short) 0);
+                            crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡:  搴撲綅绉昏浆
                             crnCommand.setSourcePosX(crnStn.getRow().shortValue());     // 婧愬簱浣嶆帓
                             crnCommand.setSourcePosY(crnStn.getBay().shortValue());     // 婧愬簱浣嶅垪
                             crnCommand.setSourcePosZ(crnStn.getLev().shortValue());     // 婧愬簱浣嶅眰
@@ -1044,7 +1100,7 @@
                             return true;
                         }
                     }
-                    continue;
+                        continue;
                 } catch (Exception e){
                     News.info("鍫嗗灈鏈烘帴椹充换鍔℃墽琛岋紝寮傚父锛�"+e.getMessage());
                 }
@@ -4108,9 +4164,6 @@
      */
     public synchronized void ledReset() {
         for (LedSlave led : slaveProperties.getLed()) {
-            if (led.getId()>3){
-                continue;
-            }
             // 鑾峰彇杈撻�佺嚎plc绾跨▼
             DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, led.getDevpPlcId());
             // 鍛戒护闆嗗悎
diff --git a/src/main/java/com/zy/asrs/utils/Utils.java b/src/main/java/com/zy/asrs/utils/Utils.java
index d16c27a..dfb0cab 100644
--- a/src/main/java/com/zy/asrs/utils/Utils.java
+++ b/src/main/java/com/zy/asrs/utils/Utils.java
@@ -224,14 +224,14 @@
      */
     public static short getRow(Integer staNo) {
         switch (staNo){
-            case 108:
-                return 4;
-            case 208:
-                return 18;
-            case 112:
+            case 107:
                 return 3;
-            case 212:
+            case 207:
                 return 19;
+            case 112:
+                return 4;
+            case 212:
+                return 18;
         }
         throw new RuntimeException("绔欑偣瑙f瀽寮傚父");
     }
@@ -241,14 +241,14 @@
      */
     public static short getBay(Integer staNo) {
         switch (staNo){
-            case 108:
-                return 5;
-            case 208:
-                return 5;
-            case 112:
+            case 107:
                 return 2;
-            case 212:
+            case 207:
                 return 6;
+            case 112:
+                return 5;
+            case 212:
+                return 5;
         }
         throw new RuntimeException("绔欑偣瑙f瀽寮傚父");
     }
@@ -274,6 +274,17 @@
         }
     }
 
+    public static Integer getStaNoConvertCentreOther3(Integer staNo,Integer staNoS){//鏀捐揣涓鸿幏鍙栬璧扮洰鏍囦綅
+        switch (staNoS){
+            case 113:
+                return 112;
+            case 213:
+                return 212;
+            default:
+                return staNo;
+        }
+    }
+
     /**
      * 閫氳繃鎺掑垪灞傛嫾鎺ュ嚭搴撲綅鍙�
      */
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 8c9d61f..95e5285 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -63,6 +63,13 @@
       row: 4
       bay: 4
       lev: 1
+    # 鍫嗗灈鏈哄叆搴撶珯鐐�
+    crnInStn[1]:
+      devpPlcId: ${wcs-slave.devp[1].id}
+      staNo: 112
+      row: 3
+      bay: 2
+      lev: 1
     # 鍫嗗灈鏈哄嚭搴撶珯鐐�
     crnOutStn[0]:
       devpPlcId: ${wcs-slave.devp[0].id}
@@ -131,6 +138,13 @@
       staNo: 207
       row: 18
       bay: 4
+      lev: 1
+    # 鍫嗗灈鏈哄叆搴撶珯鐐�
+    crnInStn[1]:
+      devpPlcId: ${wcs-slave.devp[2].id}
+      staNo: 212
+      row: 19
+      bay: 6
       lev: 1
     # 鍫嗗灈鏈哄嚭搴撶珯鐐�
     crnOutStn[0]:
@@ -226,7 +240,7 @@
     inSta[0]:
       staNo: 113
       barcode: ${wcs-slave.barcode[2].id}
-      backSta: 100
+      backSta: 114
       led: ${wcs-slave.led[2].id}
     # 绌烘澘鍏ュ簱鍙�1
     emptyInSta[0]:
@@ -246,7 +260,7 @@
     inSta[0]:
       staNo: 213
       barcode: ${wcs-slave.barcode[3].id}
-      backSta: 100
+      backSta: 214
       led: ${wcs-slave.led[3].id}
     # 绌烘澘鍏ュ簱鍙�1
     emptyInSta[0]:
@@ -301,14 +315,14 @@
   # LED4
   led[3]:
     id: 4
-    ip: 10.10.10.207
+    ip: 10.10.10.208
     port: 5005
     devpPlcId: ${wcs-slave.devp[1].id}
-    staArr: 200
+    staArr: 114
   # LED5
   led[4]:
     id: 5
-    ip: 10.10.10.207
+    ip: 10.10.10.209
     port: 5005
     devpPlcId: ${wcs-slave.devp[2].id}
-    staArr: 200
+    staArr: 214

--
Gitblit v1.9.1