From 68242c8f3acc051368eeb1246b2fb6327a783bfc Mon Sep 17 00:00:00 2001
From: 1 <1>
Date: 星期二, 04 十一月 2025 09:05:39 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/core/thread/LedThread.java             |    1 
 src/main/java/com/zy/asrs/controller/RgvController.java     |    8 +
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |   72 ++++---------
 src/main/webapp/views/console.html                          |  157 +++++++++++++++++--------------
 src/main/webapp/views/rgv.html                              |    4 
 src/main/java/com/zy/core/thread/SiemensDevpThread.java     |   25 ++++
 6 files changed, 140 insertions(+), 127 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/RgvController.java b/src/main/java/com/zy/asrs/controller/RgvController.java
index 35ede00..98f3848 100644
--- a/src/main/java/com/zy/asrs/controller/RgvController.java
+++ b/src/main/java/com/zy/asrs/controller/RgvController.java
@@ -11,8 +11,10 @@
 import com.zy.asrs.domain.vo.RgvStateTableVo;
 import com.zy.asrs.entity.BasRgv;
 import com.zy.asrs.entity.BasRgvErr;
+import com.zy.asrs.entity.BasRgvMap;
 import com.zy.asrs.entity.WrkMast;
 import com.zy.asrs.mapper.BasRgvErrMapper;
+import com.zy.asrs.mapper.BasRgvMapMapper;
 import com.zy.asrs.service.BasRgvService;
 import com.zy.asrs.service.LocMastService;
 import com.zy.asrs.service.WrkMastService;
@@ -62,7 +64,8 @@
     private MainServiceImpl mainService;
     @Autowired
     private LocMastService locMastService;
-
+    @Autowired
+    private BasRgvMapMapper basRgvMapMapper;
     @ManagerAuth(memo = "瑙i攣灏忚溅")
     @PostMapping("/lock")
     public R lock(CrnOperatorParam param){
@@ -88,13 +91,14 @@
 
             RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
             if (rgvProtocol == null) continue;
+            BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
 
             vo.setStatusType(rgvProtocol.modeType.desc);   // 妯″紡鐘舵��
             vo.setStatus(String.valueOf(rgvProtocol.getMode())); // 鐘舵��
             vo.setWorkNo1(rgvProtocol.getTaskNo1());      // 宸ヤ綅1浠诲姟鍙�
             vo.setStatus1(rgvProtocol.getStatusType1().desc); // 宸ヤ綅1鐘舵��
             vo.setLoading1(rgvProtocol.getLoaded1() ? "鏈夌墿" : "鏃犵墿"); // 宸ヤ綅1鏈夌墿
-            vo.setRgvPos(rgvProtocol.getRgvPos());
+            vo.setRgvPos(basRgvMap != null?basRgvMap.getNowRoute():0);
             vo.setRgvPos1(rgvProtocol.getRgvPosI2());
             vo.setWalkPos(Objects.equals(rgvProtocol.getWalkPos(), 1) ? "鍦ㄥ畾浣�" : "涓嶅湪瀹氫綅");
             vo.setPakMk(rgvThread.isPakMk() ? "鏃犻攣" : "閿佸畾");
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 5a7a4f6..3db0c17 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -1079,7 +1079,7 @@
             //mark - 3 - ....
             this.locToLoc(crn, crnProtocol,mark);
             //棰勮皟搴�
-            this.crnRebackHp(crnProtocol, crnThread);
+//            this.crnRebackHp(crnProtocol, crnThread);
 
         }
 //        News.infoNoLog(""+mark+" - 0"+" - 鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂鎵ц瀹屾垚");
@@ -1102,6 +1102,9 @@
                 case 5: x =18; break;
             }
 
+            if(crnProtocol.getCrnNo() != 5){
+                return;
+            }
             // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�3,12
             if (wrkMastMapper.selectWorking(crnProtocol.getCrnNo()) != null) {
                 return;
@@ -2351,6 +2354,9 @@
                 if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(2, new ArrayList<>()))) {
                     News.error("{}鍙稬ED鏄剧ず榛樿鍛戒护涓嬪彂澶辫触锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort());
                 }
+//                if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(4, new ArrayList<>()))) {
+//                    News.error("{}鍙稬ED鏄剧ず榛樿鍛戒护涓嬪彂澶辫触锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort());
+//                }
             }
         }
     }
@@ -2954,52 +2960,18 @@
                     log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�2", rgvSlave.getRgvNo());
                     continue;
                 }
-
-                // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅涓�鏃犵墿//rgv鍙敤
-                if (rgvProtocol.getStatusType() == RgvStatusType.IDLE &&
-                    rgvProtocol.getModeType() == RgvModeType.AUTO
-                    && !rgvProtocol.isLoaded1ing()  //鐜板満淇敼锛氬彔鐩樻満锛屼笉婊¢兘绠楁棤鐗╋紝鎬庝箞鍒ゆ柇闇�瑕佽窡鐢垫帶瀵规帴
-                    && rgvProtocol.getTaskNo1()==0
-                        && !rgvProtocol.isLoaded2ing()
-                        && rgvProtocol.getTaskNo2()==0
-                        &&rgvThread.isPakMk()
-                ) {
-                    BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
-
-                    Integer rgvNoOther = basRgvMap.getRgvNoOther((int) rgvProtocol.getRgvNo());
-                    RgvThread rgvThreadOther = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvNoOther);
-                    RgvProtocol rgvProtocolOther = rgvThreadOther.getRgvProtocol();
-                    if (rgvProtocolOther == null) {
-                        continue;
-                    }else {
-                        rgvProtocolOther = rgvProtocolOther.clone();
-                    }
-                    if (rgvProtocolOther.getStatusType() == RgvStatusType.IDLE
-                        && rgvProtocolOther.getModeType() == RgvModeType.AUTO
-                        && !rgvProtocolOther.isLoaded1ing()
-                        && rgvProtocolOther.getTaskNo1()==0
-                        && !rgvProtocolOther.isLoaded2ing()
-                        && rgvProtocolOther.getTaskNo2()==0
-                        &&rgvThreadOther.isPakMk()
-                    ){
-                        //瀵瑰伐浣滄。杩涜鍒ゆ柇
-                        basRgvMap.setNowRoute(rgvProtocol.getRgvPosI());
-                        if (rgvProtocol.getTaskNo1() >0 && rgvProtocol.getTaskNo1()<=9000){
-                            WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(rgvProtocol.getTaskNo1().intValue());
-                            rgvMapUpdate(basRgvMap, wrkMastSta.getStaStart(), wrkMastSta.getStaEnd(),"2366");
-                        }else if (rgvProtocol.getTaskNo1() == 0){
-                            rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute(),"2366");
-                        }
-
-                    }
-
-
-
+                Integer site = rgvProtocol.getRgvNo() == 1 ? rgvProtocol.getRgvPosI1() : rgvProtocol.getRgvPosI2();
+                if (site == 0) {
+                    continue;
                 }
+                rgvSlave.setNowRoute(site); // 鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
+                if (!basRgvMapService.updateById(rgvSlave)) {
+                    log.error("灏忚溅鏇存柊鍦板浘澶辫触");
+                }
+
             }
         }catch (Exception e){
-            log.error("4109琛屾墽琛屽皬杞﹀垵濮嬪寲浠诲姟涓嬪彂澶辫触");
-            log.error("4109琛�"+e);
+            log.error("灏忚溅鏇存柊鍦板浘澶辫触");
         }
     }
 
@@ -3330,6 +3302,7 @@
                     }
                     BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
                     basRgvMap.setNowRoute(rgvProtocol.getRgvNo() == 1?rgvProtocol.getRgvPosI1():rgvProtocol.getRgvPosI2()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
+                    basRgvMapService.updateById(basRgvMap);
                     Integer workNo = 0;
                     if(rgvProtocol.getTaskNo2() > 9999|| rgvProtocol.getTaskNo1() > 9999){
                         workNo = rgvProtocol.getTaskNo1() !=0 ? rgvProtocol.getTaskNo1() : rgvProtocol.getTaskNo2();
@@ -3396,6 +3369,7 @@
                     }
                     BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
                     basRgvMap.setNowRoute(rgvProtocol.getRgvNo() == 1?rgvProtocol.getRgvPosI1():rgvProtocol.getRgvPosI2()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
+                    basRgvMapService.updateById(basRgvMap);
                     Integer workNo = 0;
                     if(basRgv.getPakToCrn().equals("1")){
                         workNo = rgvProtocol.getTaskNo1() !=0 ? rgvProtocol.getTaskNo1():rgvProtocol.getTaskNo2();  //姝e父鎯呭喌鍑哄簱鏀捐揣浼樺厛宸ヤ綅1鏀�
@@ -3491,11 +3465,11 @@
                 basRgvService.updateById(basRgv);
                 rgvThread.setPakMk(true);
             }
-            List<WrkMastSta> wrkMastStaPakingNum = wrkMastStaService.selectPakingWrkNum(basRgv.getRgvNo());
-            if(wrkMastStaPakingNum.size() <1){
-                basRgv.setPakAll("1"); //闃叉鏃犲叾浠栦换鍔℃椂锛岃繛缁彇璐ф棤娉曟仮澶�
-                basRgvService.updateById(basRgv);
-            }
+//            List<WrkMastSta> wrkMastStaPakingNum = wrkMastStaService.selectPakingWrkNum(basRgv.getRgvNo());
+//            if(wrkMastStaPakingNum.size() <1){
+//                basRgv.setPakAll("1"); //闃叉鏃犲叾浠栦换鍔℃椂锛岃繛缁彇璐ф棤娉曟仮澶�
+//                basRgvService.updateById(basRgv);
+//            }
 
         }
     }
diff --git a/src/main/java/com/zy/core/thread/LedThread.java b/src/main/java/com/zy/core/thread/LedThread.java
index fb69130..d7a24fb 100644
--- a/src/main/java/com/zy/core/thread/LedThread.java
+++ b/src/main/java/com/zy/core/thread/LedThread.java
@@ -106,7 +106,6 @@
 
     private void reset() {
         commandList = null;
-
         stringBuffer.delete(0, stringBuffer.length());
     }
 
diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index 22f833c..30b1455 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -448,6 +448,8 @@
         OperateResultExOne<byte[]> result4 = null;//1054-1079
         OperateResultExOne<byte[]> result5 = null;//1080-1110
         OperateResultExOne<byte[]> resultErr = null;
+        OperateResultExOne<byte[]> resultAlarm = null;
+
         if(staNoSize == 102){
             result1 = siemensS7Net.Read("DB100.0", (short) (2768));//1001-1028
             result2 = siemensS7Net.Read("DB101.0", (short) (1268));//1029-1037
@@ -455,11 +457,13 @@
             result4 = siemensS7Net.Read("DB103.0", (short) (2824));//1054-1079
             result5 = siemensS7Net.Read("DB102.0", (short) (3428));//1080-1110
             resultErr = siemensS7Net.Read("DB3.0", (short) (536));
+//            resultAlarm = siemensS7Net.Read("DB800.0", (short) (220));
         }else{
             result1 = siemensS7Net.Read("DB200.0", (short) (3000));//2001-2030
             result2 = siemensS7Net.Read("DB201.0", (short) (720));//2031-2037
             result3 = siemensS7Net.Read("DB400.0", (short) (600));//4001-4006
             resultErr = siemensS7Net.Read("DB3.0", (short) (354));
+//            resultAlarm = siemensS7Net.Read("DB800.0", (short) (126));
 
         }
 
@@ -562,6 +566,25 @@
                     staProtocol.setInEnable(status1[2]); // 鍙叆
                     staProtocol.setOutEnable(status1[2]);// 鍙嚭
                     staProtocol.setErr(status1[6]);
+
+//                    boolean[] statusAlarm = siemensS7Net.getByteTransform().TransBool(resultAlarm.Content, 2*i, 1);
+//                    //鎶ヨ
+//                    staProtocol.setPassTimeOut(statusAlarm[0]);
+//                    staProtocol.setObjectNoIdError(statusAlarm[1]);
+//                    staProtocol.setIdNoObjectError(statusAlarm[2]);
+//                    staProtocol.setLmfrError(statusAlarm[3]);
+//                    staProtocol.setLiftError(statusAlarm[4]);
+//                    staProtocol.setDlfrError(statusAlarm[5]);
+//                    staProtocol.setDmfrError(statusAlarm[6]);
+//                    staProtocol.setVfdError(statusAlarm[7]);
+//                    staProtocol.setSrvError(statusAlarm[8]);
+//                    staProtocol.setRes1(statusAlarm[9]);
+//                    staProtocol.setRes2(statusAlarm[10]);
+//                    staProtocol.setRes3(statusAlarm[11]);
+//                    staProtocol.setCommunicationTimeOut(statusAlarm[12]);
+//                    staProtocol.setParameterIncompleteError(statusAlarm[13]);
+//                    staProtocol.setDataNotClear(statusAlarm[14]);
+//                    staProtocol.setSetParameterError(statusAlarm[15]);
 
                     //鎶ヨ
                     staProtocol.setPassTimeOut(statusErr[0]);
@@ -669,7 +692,7 @@
         OperateResultExOne<byte[]> reasultBarcode3 = siemensS7Net.Read("DB102.2780", (short) 4);//1103
         OperateResultExOne<byte[]> reasultBarcode4 = siemensS7Net.Read("DB201.344", (short) 4);//2037
         OperateResultExOne<byte[]> reasultBarcode5 = siemensS7Net.Read("DB400.112", (short) 4);//4001
-        OperateResultExOne<byte[]> reasultBarcode6 = siemensS7Net.Read("DB201.716", (short) 4);//4001
+        OperateResultExOne<byte[]> reasultBarcode6 = siemensS7Net.Read("DB201.716", (short) 4);//2033
 
         if(barcodeList.get(0) == 0){
             if(reasultBarcode1.IsSuccess){
diff --git a/src/main/webapp/views/console.html b/src/main/webapp/views/console.html
index c125dd0..a31638f 100644
--- a/src/main/webapp/views/console.html
+++ b/src/main/webapp/views/console.html
@@ -56,8 +56,8 @@
                     <span class="machine-put-flag">鍏ュ簱</span>
                     <span class="machine-take-flag">鍑哄簱</span>
                     <span class="machine-stock-move-flag">搴撳埌搴�</span>
-                    <span class="machine-site-move-flag">绔欏埌绔�</span>
-                    <span class="machine-p-move-flag">PToP</span>
+<!--                    <span class="machine-site-move-flag">绔欏埌绔�</span>-->
+<!--                    <span class="machine-p-move-flag">PToP</span>-->
                     <span class="machine-error-flag">寮傚父</span>
                     <span class="machine-auto-flag">鑷姩</span>
                     <span class="machine-unauto-flag">闈炶嚜鍔�/鎵嬪姩</span>
@@ -689,82 +689,95 @@
         }
     }
 
-    // 灏忚溅鍋忕Щ鍔ㄧ敾
     function carAnimate(id, target) {
-        // debugger
         var targetTop = 0;
-        if (id === 1 || id === '1' || id === '2' || id === 2 || id === '3' || id === 3 ||id === '4' || id === 4) {
-            switch (target) {
-                case 1004:
-                    targetTop += 84;
-                    break;
-                case 1007:
-                    targetTop += 128;
-                    break;
-                case 1010:
-                    targetTop += 190;
-                    break;
-                case 1014:
-                    targetTop += 240;
-                    break;
-                case 1018:
-                    targetTop += 300;
-                    break;
-                case 1021:
-                    targetTop += 350;
-                    break;
-                case 1024:
-                    targetTop += 415;
-                    break;
-                case 1028:
-                    targetTop += 465;
-                    break;
-                case 1031:
-                    targetTop += 530;
-                    break;
-                case 1035:
-                    targetTop += 580;
-                    break;
-                case 2003:
-                    targetTop += 84;
-                    break;
-                case 2006:
-                    targetTop += 128;
-                    break;
-                case 2009:
-                    targetTop += 19.;
-                    break;
-                case 2012:
-                    targetTop += 240;
-                    break;
-                case 2015:
-                    targetTop += 300;
-                    break;
-                case 2018:
-                    targetTop += 350;
-                    break;
-                case 2021:
-                    targetTop += 415;
-                    break;
-                case 2024:
-                    targetTop += 465;
-                    break;
-                case 2027:
-                    targetTop += 530;
-                    break;
-                case 2030:
-                    targetTop += 580;
-                    break;
-                default:
-                    return;
-            }
-        } else {
-            return;
+
+        // 纭繚 target 鏄湁鏁堢殑绔欑偣
+        if (target === -1) {
+            console.log("绔欑偣鏃犳晥锛岃烦杩囧姩鐢�");
+            return; // 璺宠繃鏃犳晥绔欑偣
         }
 
-        $("#site-" + id).animate({top: targetTop + 'px'}, 0);
+        // 璁$畻鐩爣绔欑偣鐨� top 鍊�
+        switch (target) {
+            case 1004:
+                targetTop += 84;
+                break;
+            case 1007:
+                targetTop += 128;
+                break;
+            case 1010:
+                targetTop += 190;
+                break;
+            case 1014:
+                targetTop += 240;
+                break;
+            case 1018:
+                targetTop += 300;
+                break;
+            case 1021:
+                targetTop += 350;
+                break;
+            case 1024:
+                targetTop += 415;
+                break;
+            case 1028:
+                targetTop += 465;
+                break;
+            case 1031:
+                targetTop += 530;
+                break;
+            case 1035:
+                targetTop += 580;
+                break;
+            case 2003:
+                targetTop += 84;
+                break;
+            case 2006:
+                targetTop += 128;
+                break;
+            case 2009:
+                targetTop += 190;
+                break;
+            case 2012:
+                targetTop += 240;
+                break;
+            case 2015:
+                targetTop += 300;
+                break;
+            case 2018:
+                targetTop += 350;
+                break;
+            case 2021:
+                targetTop += 415;
+                break;
+            case 2024:
+                targetTop += 465;
+                break;
+            case 2027:
+                targetTop += 530;
+                break;
+            case 2030:
+                targetTop += 580;
+                break;
+            default:
+                return; // 鏃犳晥鐨勭珯鐐癸紝璺宠繃
+        }
+
+        // 鑾峰彇褰撳墠绔欑偣浣嶇疆
+        var currentTop = $("#site-" + id).position().top;
+
+        // 璁$畻涓や釜绔欑偣涔嬮棿鐨勮窛绂�
+        var distance = Math.abs(targetTop - currentTop);
+
+        // 璁$畻鍔ㄧ敾鏃堕棿锛岃窛绂昏秺杩滄椂闂磋秺闀匡紝鏈�灏忔椂闂翠负500ms锛屾渶澶т负2000ms
+        var duration = Math.max(500, Math.min(distance / 2, 2000));
+
+        // 鎵ц鍔ㄧ敾锛屽钩婊戝湴绉诲姩鍒扮洰鏍囦綅缃�
+        $("#site-" + id).animate({ top: targetTop + 'px' }, duration);
     }
 
+
     // 妫�鏌� URL 涓槸鍚﹀寘鍚� fullscreen=true 鍙傛暟
     function checkFullscreen() {
         const urlParams = new URLSearchParams(window.location.search);
diff --git a/src/main/webapp/views/rgv.html b/src/main/webapp/views/rgv.html
index 1fad76a..96dbf2f 100644
--- a/src/main/webapp/views/rgv.html
+++ b/src/main/webapp/views/rgv.html
@@ -120,7 +120,7 @@
                     <th>宸ヤ綅1宸ヤ綔鍙�</th>
                     <th>宸ヤ綅2宸ヤ綔鍙�</th>
                     <th>鐘舵��</th>
-                    <th>璧拌鐩爣绔�</th>
+                    <th>璧拌鐩爣鐐逛綅</th>
                     <th>宸ヤ綅1鐩爣绔�</th>
                     <th>宸ヤ綅2鐩爣绔�</th>
                     <!--                    <th>婧愬簱浣�</th>-->
@@ -341,7 +341,7 @@
                         setVal(tr.children("td").eq(2), table[i-1].workNo1);
                         setVal(tr.children("td").eq(3), table[i-1].status1);
                         setVal(tr.children("td").eq(4), table[i-1].loading1);
-                        setVal(tr.children("td").eq(5), table[i-1].rgvPos1);
+                        setVal(tr.children("td").eq(5), table[i-1].rgvPos);
                         // setVal(tr.children("td").eq(6), table[i-1].walkPos);
                         // setVal(tr.children("td").eq(8), table[i-1].workNo2);
                         // setVal(tr.children("td").eq(9), table[i-1].status2);

--
Gitblit v1.9.1