From aeaf3e43e425ef0de84c1819f318f20e90471f90 Mon Sep 17 00:00:00 2001
From: 1 <1>
Date: 星期四, 02 十月 2025 11:49:37 +0800
Subject: [PATCH] #和得服务器

---
 src/main/java/com/zy/asrs/service/impl/WrkMastStaServiceImpl.java |    8 +
 src/main/java/com/zy/core/thread/RgvThread.java                   |    3 
 src/main/java/com/zy/asrs/utils/RouteUtils.java                   |    7 
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java       |  109 +++++++++++-------
 src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java    |    2 
 src/main/resources/mapper/WrkMastMapper.xml                       |    2 
 src/main/java/com/zy/core/MainProcess.java                        |    6 
 src/main/java/com/zy/asrs/service/WrkMastStaService.java          |    3 
 src/main/java/com/zy/asrs/mapper/WrkMastStaMapper.java            |    1 
 src/main/java/com/zy/core/thread/SiemensDevpThread.java           |  180 ++++--------------------------
 src/main/resources/application.yml                                |    4 
 src/main/resources/mapper/WrkMastStaMapper.xml                    |    6 +
 12 files changed, 124 insertions(+), 207 deletions(-)

diff --git a/src/main/java/com/zy/asrs/mapper/WrkMastStaMapper.java b/src/main/java/com/zy/asrs/mapper/WrkMastStaMapper.java
index 32fcad3..8fcaed7 100644
--- a/src/main/java/com/zy/asrs/mapper/WrkMastStaMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/WrkMastStaMapper.java
@@ -40,4 +40,5 @@
     List<WrkMastSta> selectByWorkStaList(@Param("workSta") Integer workSta, @Param("rgvNo") Short rgvNo);
     WrkMastSta selectByWorkSta(@Param("workSta") Integer workSta, @Param("rgvNo") Integer rgvNo);
 
+    List<WrkMastSta> selectLockWrk(@Param("rgvNo") Integer rgvNo);
 }
diff --git a/src/main/java/com/zy/asrs/service/WrkMastStaService.java b/src/main/java/com/zy/asrs/service/WrkMastStaService.java
index 29f1e00..cd5e055 100644
--- a/src/main/java/com/zy/asrs/service/WrkMastStaService.java
+++ b/src/main/java/com/zy/asrs/service/WrkMastStaService.java
@@ -3,5 +3,8 @@
 import com.baomidou.mybatisplus.service.IService;
 import com.zy.asrs.entity.WrkMastSta;
 
+import java.util.List;
+
 public interface WrkMastStaService extends IService<WrkMastSta> {
+    List<WrkMastSta> selectLockWrk(Integer rgvNo);
 }
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 ff0b065..1b70a6d 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -3045,7 +3045,7 @@
             // 鑾峰彇RGV淇℃伅
             RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId());
             RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
-            if (rgvProtocol == null) {
+            if (rgvProtocol.getStatusType1() != RgvStatusType.IDLE && rgvProtocol.getModeType() != RgvModeType.AUTO) {
                 continue;
             }
             BasRgv basRgv = basRgvService.selectById(rgv.getId());
@@ -3054,10 +3054,16 @@
                 continue;
             }
             //灏忚溅鏃犱换鍔℃椂璺宠繃
-            if(rgvProtocol.getTaskNo1() ==0 && rgvProtocol.getTaskNo2() == 0){
+            if(rgvProtocol.getTaskNo1() ==0 && rgvProtocol.getTaskNo2() == 0 ){
                 continue;
             }
-            //鍏ュ簱鏀捐揣
+            if(!rgvThread.isPaking()){
+                continue;
+            }
+            List<WrkMastSta> wrkMastStaLock = wrkMastStaService.selectLockWrk(rgv.getId());
+            if(wrkMastStaLock.size() == 1){
+                continue;
+            }
             if(rgvThread.isPakIn()){
                 for(RgvSlave.RgvStn rgvStn : rgv.getRgvInPStn()){//鍏ュ簱鏀捐揣绔欑偣
                     boolean flag = false;
@@ -3101,6 +3107,7 @@
                     boolean sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta); //鍛戒护涓嬪彂
                     if (sign){
                         try{
+                            rgvThread.setPaking(false);
                             wrkMast.setSheetNo("2");
                             wrkMastSta.setWrkSts(2);
                             wrkMastStaMapper.updateById(wrkMastSta);
@@ -3163,6 +3170,7 @@
                     boolean sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta); //鍛戒护涓嬪彂
                     if (sign){
                         try{
+                            rgvThread.setPaking(false);
                             wrkMastSta.setWrkSts(2);
                             wrkMastStaMapper.updateById(wrkMastSta);
                             log.error("鏇存柊灏忚溅浠诲姟鎴愬姛");
@@ -3214,6 +3222,7 @@
                     && !rgvProtocol.isLoaded1ing()
                     && !rgvProtocol.isLoaded2ing()){
                 rgvThread.setPakRgv(true);
+                rgvThread.setPakMk(true);
                 rgvThread.setPakIn(true);
                 rgvThread.setPakOut(true);
                 rgvThread.setPakToCrn(true);
@@ -3239,8 +3248,12 @@
                 log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�4", rgv.getId());
                 continue;
             }
+            if(rgvProtocol.getStatusType1() == RgvStatusType.WORKING){
+//                log.error("瑙i攣");
+                rgvThread.setPaking(true);
+            }
             // 鍙湁褰揜GV绌洪棽 骞朵笖 鏃犱换鍔℃椂鎵嶇户缁墽琛�
-            if (rgvProtocol.getStatusType1() == RgvStatusType.IDLE && rgvProtocol.getModeType() == RgvModeType.AUTO && rgvThread.isPakMk() && rgvThread.isPakToCrn()) {
+            if (rgvProtocol.getStatusType1() == RgvStatusType.IDLE && rgvProtocol.getModeType() == RgvModeType.AUTO && rgvThread.isPakMk() && rgvThread.isPakToCrn() && rgvThread.isPaking()) {
                 News.warnNoLog(""+mark+" - 0"+" - 寮�濮嬫墽琛孯GV鍏ュ嚭搴撲綔涓氫笅鍙�");
                 // 濡傛灉鏈�杩戜竴娆℃槸鍏ュ簱妯″紡
 //                rgvRunWrkMastInTest();
@@ -3279,11 +3292,12 @@
 //                rgvPreScheduling();//鑻ユ殏鏃犱笅鍙戜换鍔¢璋冨害鎻愬墠鍒板彇璐х偣
 //            }
 
-            if (rgvProtocol.getStatusType1() == RgvStatusType.IDLE && rgvProtocol.getModeType() == RgvModeType.AUTO) {
-                //灏忚溅鎵ц鏀捐揣浠诲姟
-                rgvOutExecute();
 
-            }
+//            if (rgvProtocol.getStatusType1() == RgvStatusType.IDLE && rgvProtocol.getModeType() == RgvModeType.AUTO) {
+//                //灏忚溅鎵ц鏀捐揣浠诲姟
+//                rgvOutExecute();
+//
+//            }
         }
     }
     public synchronized void rgvRunWrkMastInTest(){
@@ -3335,6 +3349,7 @@
             StaProtocol staProtocol = devpThread.getStation().get(rgvStn.getStaNo());
             StaProtocol staProtocol2 = null;  //杩炵画鍙栬揣浠诲姟绔欑偣
             RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, (int) rgvProtocol.getRgvNo());
+            WrkMastSta wrkMastSta3 = null;//杩炲彇涓や釜
             if(rgvStn.getStaNo2()!= null ){
                 staProtocol2 = devpThread.getStation().get(rgvStn.getStaNo2());
                 if (staProtocol2 == null) {
@@ -3348,18 +3363,9 @@
                     News.error("" + mark + " - 1" + " - 2" + " - 鍏ュ簱 ===>>Rgv绔欑偣鍦ㄦ暟鎹簱涓嶅瓨鍦�, 绔欑偣缂栧彿={}", rgvStn.getStaNo());
                     continue;
                 }
-                WrkMastSta wrkMastSta2 = wrkMastStaMapper.selectByWrkNo(staProtocol2.getWorkNo());
-                if(wrkMastSta2 != null){
-                    wrkMastSta2.setMk(1);
-                    try{
-                        wrkMastStaMapper.updateById(wrkMastSta2);
-                        log.error("閿佸畾鐩搁殧绔欑偣浠诲姟");
-                    }catch (Exception e){
-                        log.error("閿佸畾鐩搁殧绔欑偣浠诲姟澶辫触");
-                    }
-
-                }
+                wrkMastSta3 = wrkMastStaMapper.selectByWrkNo(staProtocol2.getWorkNo());
             }
+
             if (staProtocol == null) {
                 News.infoNoLog("" + mark + " - 1" + " - 1" + " - Rgv鍏ュ簱绔欎俊鎭�(staProtocol!=null缁х画鎵ц)锛歴taProtocol=" + staProtocol);
                 continue;
@@ -3389,7 +3395,7 @@
                 case 2: route = RouteUtils.getRouteTwo();break;
             }
             basRgvMap.setNowRoute(rgvProtocol.getRgvPosI2()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
-            WrkMastSta wrkMastSta = wrkMastStaMapper.selectNoInterfere(route, route, Long.valueOf(staProtocol.getWorkNo()));//鏍规嵁绔欑偣宸ヤ綔鍙峰拰灏忚溅宸ヤ綔鑼冨洿妫�绱换鍔℃。
+             WrkMastSta wrkMastSta = wrkMastStaMapper.selectNoInterfere(route, route, Long.valueOf(staProtocol.getWorkNo()));//鏍规嵁绔欑偣宸ヤ綔鍙峰拰灏忚溅宸ヤ綔鑼冨洿妫�绱换鍔℃。
             if( null == wrkMastSta ) {
                 News.infoNoLog("" + mark + " - 1" + " - 4" + " - 鏌ヨ鏃犲緟鍏ュ簱鏁版嵁--wrk_sts0, 宸ヤ綔鍙�={}", staProtocol.getWorkNo());
                 continue;
@@ -3411,7 +3417,17 @@
             boolean sign = false;
             sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta); //鍛戒护涓嬪彂
             if (sign){
+                if(wrkMastSta3 != null){
+                    wrkMastSta3.setMk(1);
+                    try{
+                        wrkMastStaMapper.updateById(wrkMastSta3);
+                        log.error("閿佸畾鐩搁殧绔欑偣浠诲姟");
+                    }catch (Exception e){
+                        log.error("閿佸畾鐩搁殧绔欑偣浠诲姟澶辫触");
+                    }
 
+                }
+                rgvThread.setPaking(false);
                 rgvThread.setPakOut(false);//鍑哄簱涓嶅厑璁�
                 try{
                     wrkMastSta.setWrkSts(1);
@@ -3438,6 +3454,8 @@
             StaProtocol staProtocol = devpThread.getStation().get(rgvStn.getStaNo());
             RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, (int) rgvProtocol.getRgvNo());
             StaProtocol staProtocol2 = null;
+            WrkMastSta wrkMastSta3 = null;
+
             if(rgvStn.getStaNo2()!= null ){
                 staProtocol2 = devpThread.getStation().get(rgvStn.getStaNo2());
                 if (staProtocol2 == null) {
@@ -3451,18 +3469,7 @@
                     News.error("" + mark + " - 1" + " - 2" + " - 鍏ュ簱 ===>>Rgv绔欑偣鍦ㄦ暟鎹簱涓嶅瓨鍦�, 绔欑偣缂栧彿={}", rgvStn.getStaNo());
                     continue;
                 }
-                WrkMastSta wrkMastSta2 = wrkMastStaMapper.selectByWrkNo(staProtocol2.getWorkNo());
-                if(wrkMastSta2 != null){
-                    wrkMastSta2.setMk(1);
-                    try{
-                        wrkMastStaMapper.updateById(wrkMastSta2);
-                        log.error("閿佸畾鐩搁殧绔欑偣浠诲姟");
-                    }catch (Exception e){
-                        log.error("閿佸畾鐩搁殧绔欑偣浠诲姟澶辫触");
-                    }
-
-                }
-
+                wrkMastSta3 = wrkMastStaMapper.selectByWrkNo(staProtocol2.getWorkNo());
 
             }
             if (staProtocol == null) {
@@ -3519,6 +3526,17 @@
                 if(LEFT_POSITION.contains(wrkMastSta.getStaEnd())){
                     rgvThread.setPakToCrn(false); //閿佸畾灏忚溅鍙兘鎺ユ帴椹充换鍔�
                 }
+                if(wrkMastSta3 != null){
+                    wrkMastSta3.setMk(1);
+                    try{
+                        wrkMastStaMapper.updateById(wrkMastSta3);
+                        log.error("閿佸畾鐩搁殧绔欑偣浠诲姟");
+                    }catch (Exception e){
+                        log.error("閿佸畾鐩搁殧绔欑偣浠诲姟澶辫触");
+                    }
+
+                }
+                rgvThread.setPaking(false);
                 rgvThread.setPakIn(false);//鍏ュ簱涓嶅厑璁�
                 try{
                     wrkMastSta.setWrkSts(1);
@@ -3754,9 +3772,9 @@
 //        }
 //        return wrkEnable;
 //    }
-//    /**
-//     * 灏忚溅棰勮皟搴�
-//     */
+    /**
+     * 灏忚溅棰勮皟搴�
+     */
 //    public synchronized  void rgvPreScheduling(){
 //        try{
 //            List<BasRgvMap> basRgvMaps = basRgvMapService.selectList(new EntityWrapper<>());
@@ -3793,7 +3811,7 @@
 //                    // 鏍规嵁杈撻�佺嚎plc閬嶅巻
 //                    for (DevpSlave devp : slaveProperties.getDevp()) {
 //                        // 閬嶅巻鍏ュ簱鍙�  鍏ュ簱棰勮皟搴�
-//                        List<Integer> staNos = Arrays.asList( 1043, 1104,1037);
+//                        List<Integer> staNos = Arrays.asList( 1043, 1104, 1029, 1022, 1019, 1008, 1005);
 //                        for (Integer staNo : staNos) {
 //                            SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
 //                            StaProtocol staProtocol = devpThread.getStation().get(staNo);
@@ -3801,9 +3819,8 @@
 //                                RgvCommand rgvCommand = new RgvCommand();
 //                                rgvCommand.setRgvNo((int) rgvProtocol.getRgvNo()); // RGV缂栧彿
 //                                rgvCommand.setAckFinish1(false);  // 宸ヤ綅1浠诲姟瀹屾垚纭浣�
-//                                rgvCommand.setTaskNo1(9999); // 宸ヤ綅1宸ヤ綔鍙�
+//                                rgvCommand.setTaskNo(9999); // 宸ヤ綅1宸ヤ綔鍙�
 //                                rgvCommand.setTaskMode1(RgvTaskModeType.X_MOVE); // 宸ヤ綅1浠诲姟妯″紡:  绉诲姩
-//                                rgvCommand.setEndStaNo1(0);   //宸ヤ綅1 鏀捐揣鍚庤鍘荤殑浣嶇疆
 //                                switch (staNo){
 //                                    case 1043: rgvCommand.setTargetPosition1(1042);break;  //宸ヤ綅1鐩爣绔欑偣
 //                                    case 1104: rgvCommand.setTargetPosition1(1105);break;
@@ -3858,6 +3875,7 @@
                 log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
                 return false;
             } else {
+
                 return true;
             }
 
@@ -3927,18 +3945,23 @@
             for (DevpSlave devp : slaveProperties.getDevp()) {
                 // 閬嶅巻鎷f枡鍏ュ簱鍙�
                 for (DevpSlave.Sta armSta : devp.getArmSta()) {
-                    // 鑾峰彇鏉$爜鎵弿浠俊鎭�
-                    BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, armSta.getBarcode());
-                    if (barcodeThread == null) {
+
+                    // 鑾峰彇绔欑偣淇℃伅
+                    SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+                    StaProtocol staProtocol = devpThread.getStation().get(armSta.getStaNo());
+                    if (staProtocol == null) {
                         continue;
+                    } else {
+                        staProtocol = staProtocol.clone();
                     }
-                    String barcode = barcodeThread.getBarcode();
-                    barcode="999997";
+                    String barcode = staProtocol.getBarcode();
                     if(!Cools.isEmpty(barcode)) {
                         if("NG".endsWith(barcode) || "NoRead".equals(barcode)) {
+                            log.error("鏈烘鑷傛姄鍙栦换鍔″畬鎴愶細"+JSON.toJSON(barcode)+"===銆嬫墭鐩樻潯鐮佸紓甯�");
                             continue;
                         }
                     } else {
+                        log.error("鏈烘鑷傛姄鍙栦换鍔″畬鎴愶細===銆嬫墭鐩樻潯鐮佷负绌�");
                         continue;
                     }
 
diff --git a/src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java
index bf4ca83..153d547 100644
--- a/src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java
@@ -36,4 +36,6 @@
     public WrkMast selectByWrkNo(int wrkNo) {
         return this.baseMapper.selectByWrkNo(wrkNo);
     }
+
+
 }
diff --git a/src/main/java/com/zy/asrs/service/impl/WrkMastStaServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WrkMastStaServiceImpl.java
index f72f40a..32717ff 100644
--- a/src/main/java/com/zy/asrs/service/impl/WrkMastStaServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WrkMastStaServiceImpl.java
@@ -6,7 +6,13 @@
 import com.zy.asrs.service.WrkMastStaService;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 @Service("wrkMastStaService")
 public class WrkMastStaServiceImpl extends ServiceImpl<WrkMastStaMapper, WrkMastSta> implements WrkMastStaService {
-
+    @Override
+    public List<WrkMastSta> selectLockWrk(Integer rgvNo){
+        Integer rgvNo1 = rgvNo;
+        return this.baseMapper.selectLockWrk(rgvNo);
+    }
 }
diff --git a/src/main/java/com/zy/asrs/utils/RouteUtils.java b/src/main/java/com/zy/asrs/utils/RouteUtils.java
index 15101f5..aa3e001 100644
--- a/src/main/java/com/zy/asrs/utils/RouteUtils.java
+++ b/src/main/java/com/zy/asrs/utils/RouteUtils.java
@@ -322,8 +322,11 @@
     }
 
     public static  Short SouStaEnd(Integer endSta,Integer souSta){
-       if (souSta == 159) {
-           return (short)161;
+       if (souSta == 1103) {
+           return (short)1105;
+       }
+       if(souSta == 1047){
+           return (short)1042;
        }
        return souSta.shortValue();
     }
diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java
index 2c8fec0..85c5b9f 100644
--- a/src/main/java/com/zy/core/MainProcess.java
+++ b/src/main/java/com/zy/core/MainProcess.java
@@ -90,7 +90,7 @@
 
 //                    mainService.outOfDevp(11);
 
-                if (i>10){
+                if (i>2){
                     //绌烘墭鐩樿嚜鍔ㄥ嚭搴�
 //                    mainService.autoEmptyOut();
                     //绌烘墭鐩樿嚜鍔ㄥ叆搴�
@@ -132,6 +132,10 @@
                 try{
                     //RGV灏忚溅鍑哄叆搴撳彇璐т笅鍙�
                     mainService.rgvIoExecute(11);
+                    if(k > 2){
+                        mainService.rgvOutExecute();
+                        k = 0;
+                    }
                 }catch (Exception e){
                     log.error("RGV  ===>>  灏忚溅浠诲姟浣滀笟涓嬪彂寮傚父"+e);
                 }
diff --git a/src/main/java/com/zy/core/thread/RgvThread.java b/src/main/java/com/zy/core/thread/RgvThread.java
index 3bbc231..c41d911 100644
--- a/src/main/java/com/zy/core/thread/RgvThread.java
+++ b/src/main/java/com/zy/core/thread/RgvThread.java
@@ -71,6 +71,8 @@
     private boolean PakRgv = true;
     //鎺ラ┏鏍囪
     private boolean PakToCrn = true;
+    // 浠诲姟閿佸畾
+    private boolean Paking = true;
 
     public RgvThread(RgvSlave slave) {
         this.slave = slave;
@@ -273,7 +275,6 @@
                 rgvProtocol.setErr11(status3[2]);
                 rgvProtocol.setErr12(status3[3]);
                 BasRgvMapService basRgvMapService = SpringUtils.getBean(BasRgvMapService.class);
-
 
                 OutputQueue.RGV.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛", DateUtils.convert(new Date()), slave.getId()));
                 try {
diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index 0a4a413..7926c47 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -27,6 +27,7 @@
 import lombok.Data;
 import lombok.extern.slf4j.Slf4j;
 
+import java.nio.charset.StandardCharsets;
 import java.text.MessageFormat;
 import java.util.*;
 import java.util.concurrent.ConcurrentHashMap;
@@ -110,6 +111,11 @@
         // 鍏朵粬绔欑偣鍚岀悊缁х画鍔�
     }};
 
+    public static final Map<Integer, Integer> siteErrOffsetMap = new HashMap<Integer, Integer>() {{
+        put(1036, 512);put(1103, 476);put(1047, 452);
+
+    }};
+
     // 鐗规畩绔欑偣闆嗗悎
     private static final Set<Integer> specialSites = new HashSet<>(
             Arrays.asList(1001,1005,1008,1011,1015,1019,1022,1025,1029, 1032,1039));
@@ -129,7 +135,7 @@
         add(3); add(4);
     }};
     public static final ArrayList<Integer> staNosErrList = new ArrayList<Integer>() {{
-        add(1036);
+        add(1103);add(1036);add(1047);
     }};
 
     private Integer count=0;
@@ -286,6 +292,7 @@
         OperateResultExOne<byte[]> result3 = siemensS7Net.Read("DB104.0", (short) (1268));//1042-1053
         OperateResultExOne<byte[]> result4 = siemensS7Net.Read("DB103.0", (short) (2824));//1054-1079
         OperateResultExOne<byte[]> result5 = siemensS7Net.Read("DB102.0", (short) (3428));//1080-1110
+        OperateResultExOne<byte[]> resultErr = siemensS7Net.Read("DB3.0", (short) (536));//1080-1110
 
 
 
@@ -327,10 +334,24 @@
                 if(specialSites2.contains(siteId)){
                     staProtocol.setStaNo((short)siemensS7Net.getByteTransform().TransInt32(result.Content, offset + offset2 + 48));   // 鐩爣绔�
                     staProtocol.setBarcode(String.valueOf(siemensS7Net.getByteTransform().TransInt32(result.Content, offset + offset2 + 52)));  //鏉$爜
-
+                }
+                if(staNosErrList.contains(siteId)){
+                    Integer offsetErr = siteErrOffsetMap.get(siteId);
+                    boolean[] statusErr = siemensS7Net.getByteTransform().TransBool(resultErr.Content, offsetErr, 2);
+                    staProtocol.setFrontErr(statusErr[2]);
+                    staProtocol.setBackErr(statusErr[3]);
+                    staProtocol.setHighErr(statusErr[5]);
+                    staProtocol.setLeftErr(statusErr[11]);
+                    staProtocol.setRightErr(statusErr[12]);
+// 鍙栧嚭454~458浣嶇疆鐨�5涓瓧鑺�
+                    byte[] bytes = Arrays.copyOfRange(resultErr.Content, (offsetErr + 14), (offsetErr + 19));
+// 杞崲鎴愬瓧绗︿覆锛圫7閲孋HAR鏄崟瀛楄妭缂栫爜锛岀洿鎺SCII鍗冲彲锛�
+                    String plcStr = new String(bytes, StandardCharsets.US_ASCII).trim();
+// 鍒ゆ柇鏄惁绛変簬 "error"
+                    staProtocol.setBarcodeErr("error".equalsIgnoreCase(plcStr));
                 }
 
-                boolean[] status = siemensS7Net.getByteTransform().TransBool(result.Content, offset + offset3, 2);
+                boolean[] status = siemensS7Net.getByteTransform().TransBool(result.Content, offset + offset3, 1);
                 staProtocol.setAutoing(!status[0]);  // 鑷姩
                 boolean[] status1 = siemensS7Net.getByteTransform().TransBool(result.Content, offset + offset3 - 4, 3);
 
@@ -387,159 +408,6 @@
 //            News.error(JSON.toJSONString(barcode+"绾跨▼"+barcodeId));
 
         }
-
-
-//        BasRgvMapService basRgvMapService = SpringUtils.getBean(BasRgvMapService.class);
-//        RGV灏忚溅1
-//        Thread.sleep(100);
-//        OperateResultExOne<byte[]> resultCar1 = siemensS7Net.Read("DB101.0",(short)36);
-//        if (resultCar1.IsSuccess) {
-//            BasRgvMap basRgvMap = basRgvMapService.selectByRgvNo((int) siemensS7Net.getByteTransform().TransInt16(resultCar1.Content, 0) + 1);
-//            if (!Cools.isEmpty(basRgvMap)){
-//                Integer siteId1 = 1;
-//                Integer siteId2 = 2;
-//                StaProtocol staProtocol1 = station.get(siteId1);
-//                StaProtocol staProtocol2 = station.get(siteId2);
-//
-//                if (null == staProtocol1) {
-//                    staProtocol1 = new StaProtocol();
-//                    staProtocol1.setSiteId(siteId1);
-//                    station.put(siteId1, staProtocol1);
-//                }
-//                if (null == staProtocol2) {
-//                    staProtocol2 = new StaProtocol();
-//                    staProtocol2.setSiteId(siteId2);
-//                    station.put(siteId2, staProtocol2);
-//
-//                }
-//                String pos = String.valueOf(getRgvPosI(siemensS7Net.getByteTransform().TransInt32(resultCar1.Content, 4)));
-//                staProtocol1.setAutoing(siemensS7Net.getByteTransform().TransInt16(result.Content, 2) == 0);
-//                staProtocol2.setAutoing(siemensS7Net.getByteTransform().TransInt16(result.Content, 2) == 0);
-//                staProtocol1.setNearbySta(pos);
-//                staProtocol1.setStaNo((short) siemensS7Net.getByteTransform().TransInt32(resultCar1.Content, 28));
-//                staProtocol2.setStaNo((short) siemensS7Net.getByteTransform().TransInt32(resultCar1.Content, 32));
-//                staProtocol1.setWorkNo(siemensS7Net.getByteTransform().TransInt32(resultCar1.Content, 16));
-//                staProtocol2.setWorkNo(siemensS7Net.getByteTransform().TransInt32(resultCar1.Content, 20));
-//                boolean[] status1 = siemensS7Net.getByteTransform().TransBool(resultCar1.Content, 24, 1);
-//                staProtocol1.setLoading(status1[0]);
-//                staProtocol2.setLoading(status1[1]);
-//                //                staProtocol.setNearbySta(String.valueOf(siemensS7Net.getByteTransform().TransInt16(result3.Content, 8)));
-//            }
-//        }
-        //RGV灏忚溅2
-//        Thread.sleep(100);
-//        OperateResultExOne<byte[]> result4 = siemensS7Net.Read("DB50.212",(short)10);
-//        if (result4.IsSuccess) {
-//            BasRgvMap basRgvMap = basRgvMapService.selectByRgvNo((int) siemensS7Net.getByteTransform().TransInt16(result4.Content, 0));
-//            if (!Cools.isEmpty(basRgvMap)){
-//                Integer siteId = 2;
-//                StaProtocol staProtocol = station.get(siteId);
-//                if (null == staProtocol) {
-//                    staProtocol = new StaProtocol();
-//                    staProtocol.setSiteId(siteId);
-//                    station.put(siteId, staProtocol);
-//                }
-//                staProtocol.setAutoing(true);
-//                staProtocol.setNearbySta(String.valueOf(siemensS7Net.getByteTransform().TransInt16(result4.Content, 8)));
-//            }
-//        }
-
-//        //RGV灏忚溅3
-////        Thread.sleep(100);
-//        OperateResultExOne<byte[]> result5 = siemensS7Net.Read("DB50.224",(short)10);
-//        if (result5.IsSuccess) {
-//            BasRgvMap basRgvMap = basRgvMapService.selectByRgvNo((int) siemensS7Net.getByteTransform().TransInt16(result5.Content, 0));
-//            if (!Cools.isEmpty(basRgvMap)){
-//                Integer siteId = 3;
-//                StaProtocol staProtocol = station.get(siteId);
-//                if (null == staProtocol) {
-//                    staProtocol = new StaProtocol();
-//                    staProtocol.setSiteId(siteId);
-//                    station.put(siteId, staProtocol);
-//                }
-//                staProtocol.setAutoing(true);
-//                staProtocol.setNearbySta(String.valueOf(siemensS7Net.getByteTransform().TransInt16(result5.Content, 8)));
-//            }
-//        }
-
-
-
-        //鏉$爜鎵弿鍣�
-//        ArrayList<Integer> barcodeListMat = BarcodeListMat;
-//        OperateResultExOne<byte[]> result2Mat = siemensS7Net.Read("DB103.0", (short) (barcodeListMat.size() * 30));
-//        if (result2Mat.IsSuccess) {
-//            for (int i = 0; i < barcodeListMat.size(); i++) {
-//                Integer barcodeId = barcodeListMat.get(i);
-//                String barcode = siemensS7Net.getByteTransform().TransString(result2Mat.Content,i*30,30, "UTF-8");
-//                BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, barcodeId + 1);
-//                if(!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) {
-//                    barcodeThread.setBarcode(barcode);
-//                }
-//            }
-//        }
-        //澶栧舰妫�娴�
-//        ArrayList<Integer> staNoErrs = staNosErrList;
-//        int staNoErrsSize = staNoErrs.size();
-//        OperateResultExOne<byte[]> resultErr = siemensS7Net.Read("DB101.800", (short) (staNoErrsSize*8));
-//        if (resultErr.IsSuccess){
-//            for (int i = 0;i<3;i++){
-//                Integer siteId = staNoErrs.get(i); // 绔欑偣缂栧彿
-//                boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr.Content, i*4+2, 1);
-//                StaProtocol staProtocol = station.get(siteId);
-//                staProtocol.setFrontErr(status[0]);
-//                staProtocol.setBackErr(status[1]);
-//                staProtocol.setHighErr(status[2]);
-//                staProtocol.setLeftErr(status[3]);
-//                staProtocol.setRightErr(status[4]);
-//                staProtocol.setWeightErr(status[5]);
-//                staProtocol.setBarcodeErr(status[6]);
-//            }
-//        }
-
-//        OperateResultExOne<byte[]> resultErr2 = siemensS7Net.Read("DB13.2", (short) (staNoSize*4));
-//        if (resultErr2.IsSuccess) {
-//            for (int i = 0; i < staNoSize; i++) {
-//                Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
-//                boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr2.Content, i*4, 1);
-//                StaProtocol staProtocol = station.get(siteId);
-//                staProtocol.setBreakerErr(status[0]);
-//                staProtocol.setInfraredErr(status[1]);
-//                staProtocol.setOutTimeErr(status[2]);
-//                staProtocol.setSeizeSeatErr(status[3]);
-//                staProtocol.setWrkYgoodsN(status[4]);
-//                staProtocol.setInverterErr(status[5]);
-//                staProtocol.setContactErr(status[6]);
-//                staProtocol.setUpcontactErr(status[7]);
-//
-//            }
-//        }
-//        OperateResultExOne<byte[]> resultErr3 = siemensS7Net.Read("DB13.400", (short) 3);
-//        if (resultErr3.IsSuccess) {
-//            if (staError1 == null){
-//                staError1 = new StaError1();
-//            }
-//            boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr3.Content, 0, 3);
-//            staError1.setEMERGENCY_Stop_Core(status[0]);
-//            staError1.setEMERGENCY_STOP1(status[1]);
-//            staError1.setEMERGENCY_STOP2(status[2]);
-//            staError1.setEMERGENCY_STOP3(status[3]);
-//            staError1.setEMERGENCY_STOP4(status[4]);
-//
-//            staError1.setDoor_EMERGENCY_STOP1(status[5]);
-//            staError1.setDoor_EMERGENCY_STOP2(status[6]);
-//            staError1.setDoor_EMERGENCY_STOP3(status[7]);
-//            staError1.setDoor_EMERGENCY_STOP4(status[8]);
-//            staError1.setDoor_EMERGENCY_STOP5(status[9]);
-//            staError1.setDoor_EMERGENCY_STOP6(status[10]);
-//
-//            staError1.setDoor_Open_Err1(status[11]);
-//            staError1.setDoor_Open_Err1(status[12]);
-//            staError1.setDoor_Open_Err1(status[13]);
-//            staError1.setDoor_Open_Err1(status[14]);
-//            staError1.setDoor_Open_Err1(status[15]);
-//            staError1.setDoor_Open_Err1(status[16]);
-//
-//        }
 
 
         if (result1.IsSuccess && result2.IsSuccess) {
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 89ffe04..10ca84f 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -434,7 +434,7 @@
       led: ${wcs-slave.led[1].id}
     # 鍏ュ簱鍙�1
     inSta[0]:
-      staNo: 1043
+      staNo: 1047
       barcode: ${wcs-slave.barcode[1].id}
       backSta: 1041
       led: ${wcs-slave.led[1].id}
@@ -457,7 +457,7 @@
       backSta: 1037
     # 鍏ュ簱鍙�1
     inSta[2]:
-      staNo: 1104
+      staNo: 1103
       barcode: ${wcs-slave.barcode[2].id}
       backSta: 1041
       led: ${wcs-slave.led[2].id}
diff --git a/src/main/resources/mapper/WrkMastMapper.xml b/src/main/resources/mapper/WrkMastMapper.xml
index 66aac22..576d59f 100644
--- a/src/main/resources/mapper/WrkMastMapper.xml
+++ b/src/main/resources/mapper/WrkMastMapper.xml
@@ -78,7 +78,7 @@
         select * from asr_wrk_mast
         where wrk_sts=5
         or (wrk_sts=15 and ove_mk='Y' and wrk_no not in (select wrk_no from asr_bas_devp))
-        or (wrk_sts=15 and dateadd(mi,15,crn_end_time) &lt;= getdate() and wrk_no not in (select wrk_no from asr_bas_devp))
+        or (wrk_sts=15 and dateadd(mi,3,crn_end_time) &lt;= getdate() and wrk_no not in (select wrk_no from asr_bas_devp))
         or (wrk_sts=15 and crn_end_time is null and wrk_no not in (select wrk_no from asr_bas_devp))
         order by io_time,wrk_no asc
     </select>
diff --git a/src/main/resources/mapper/WrkMastStaMapper.xml b/src/main/resources/mapper/WrkMastStaMapper.xml
index d24b83b..81852a1 100644
--- a/src/main/resources/mapper/WrkMastStaMapper.xml
+++ b/src/main/resources/mapper/WrkMastStaMapper.xml
@@ -19,6 +19,7 @@
         <result column="bign_time" property="bignTime" />
         <result column="work_sta" property="workSta"/>
         <result column="rgv_no" property="rgvNo"/>
+        <result column="mk" property="mk"/>
 
     </resultMap>
 
@@ -150,6 +151,11 @@
             and wrk_sts = #{wrkSts}
         </if>
     </select>
+    <select id="selectLockWrk" resultMap="BaseResultMap">
+        select * from asr_wrk_mast_sta
+        where mk = 1
+        and rgv_no = #{rgvNo}
+    </select>
 
 
 

--
Gitblit v1.9.1