From 29e0a8a8f74a7155f7e6c0d854bb7566c655b0c8 Mon Sep 17 00:00:00 2001
From: pjb <pjb123456>
Date: 星期三, 13 八月 2025 18:11:54 +0800
Subject: [PATCH] 记录输送线异常日志,手动站点转移,

---
 src/main/java/com/zy/service/impl/MainServiceImpl.java |  392 ++++++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 324 insertions(+), 68 deletions(-)

diff --git a/src/main/java/com/zy/service/impl/MainServiceImpl.java b/src/main/java/com/zy/service/impl/MainServiceImpl.java
index 5b6df08..e7d7fe8 100644
--- a/src/main/java/com/zy/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/service/impl/MainServiceImpl.java
@@ -77,6 +77,7 @@
 
     // 鎴愬搧搴撳爢鍨涙満鍑哄簱绔欑偣鍒皉gv鎺ラ┏鐐�
     public static final Map<Integer,Short>  crnOutSiteToRgvSite = new HashMap<>();
+    public static final Map<Integer,Short>  crnOutSiteToRgvSite2 = new HashMap<>();
 
     static {
         emptyPalletSiteMap.put(1001,"M"); // emptyPalletSiteMap.put(1002,"M");
@@ -104,6 +105,9 @@
         outGzxSiteList.add(1081);outGzxSiteList.add(1084);outGzxSiteList.add(1087);
 
         crnOutSiteToRgvSite.put(1093, (short) 1091);crnOutSiteToRgvSite.put(1099, (short) 1097);crnOutSiteToRgvSite.put(1107, (short) 1105);
+
+        crnOutSiteToRgvSite2.put(1087, (short) 1089);crnOutSiteToRgvSite2.put(1084, (short) 1086);crnOutSiteToRgvSite2.put(1081, (short) 1083);
+        crnOutSiteToRgvSite2.put(1043, (short) 1041);crnOutSiteToRgvSite2.put(1016, (short) 1018);
     }
 
     @Autowired
@@ -147,6 +151,9 @@
     @Resource
     private ConfigService configService;
 
+    @Resource
+    private BasDevpErrLogService basDevpErrLogService;
+
     @Value("${wms.url}")
     private String wmsUrl;
 
@@ -180,34 +187,34 @@
                 // 灏哄妫�娴嬪紓甯�
                 boolean back = false;
                 String errMsg = "";
-//                if (staProtocol.isFrontErr()) {
-//                    errMsg = "鍓嶈秴闄�";
-//                    back = true;
-//                }
-//                if (!back && staProtocol.isBackErr()) {
-//                    errMsg = "鍚庤秴闄�";
-//                    back = true;
-//                }
-//                if (!back && staProtocol.isHighErr()) {
-//                    errMsg = "楂樿秴闄�";
-//                    back = true;
-//                }
-//                if (!back && staProtocol.isLeftErr()) {
-//                    errMsg = "宸﹁秴闄�";
-//                    back = true;
-//                }
-//                if (!back && staProtocol.isRightErr()) {
-//                    errMsg = "鍙宠秴闄�";
-//                    back = true;
-//                }
-//                if (!back && staProtocol.isWeightErr()) {
-//                    errMsg = "瓒呴噸";
-//                    back = true;
-//                }
-//                if (!back && staProtocol.isBarcodeErr()) {
-//                    errMsg = "鎵爜澶辫触";
-//                    back = true;
-//                }
+                if (staProtocol.isFrontErr()) {
+                    errMsg = "鍓嶈秴闄�";
+                    back = true;
+                }
+                if (!back && staProtocol.isBackErr()) {
+                    errMsg = "鍚庤秴闄�";
+                    back = true;
+                }
+                if (!back && staProtocol.isHighErr()) {
+                    errMsg = "楂樿秴闄�";
+                    back = true;
+                }
+                if (!back && staProtocol.isLeftErr()) {
+                    errMsg = "宸﹁秴闄�";
+                    back = true;
+                }
+                if (!back && staProtocol.isRightErr()) {
+                    errMsg = "鍙宠秴闄�";
+                    back = true;
+                }
+                if (!back && staProtocol.isWeightErr()) {
+                    errMsg = "瓒呴噸";
+                    back = true;
+                }
+                if (!back && staProtocol.isBarcodeErr()) {
+                    errMsg = "鎵爜澶辫触";
+                    back = true;
+                }
                 // 閫�鍥�
                 if (back && staProtocol.isInEnable() && staProtocol.isLoading() && staProtocol.getWorkNo() == 0) {
                     MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errMsg));
@@ -827,12 +834,25 @@
         if (config != null && config.getStatus() == 1) {
             crnAvailableOut = true;
         }
+        // 闄愬埗鍘绘崋缁戞満鍣ㄤ换鍔℃暟
+        int kbWrks = wrkMastMapper.selectCountByKb();
         for (CrnSlave.CrnStn crnStn : slave.getCrnOutStn()) {
             // 鑾峰彇宸ヤ綔鐘舵�佷负11锛堢敓鎴愬嚭搴揑D锛夌殑鍑哄簱宸ヤ綔妗�
             List<WrkMast> wrkMasts = wrkMastMapper.selectPakOutStep11(slave.getId(), crnStn.getStaNo());
             for (WrkMast wrkMast : wrkMasts) {
                 if (wrkMast == null) {
                     continue;
+                }
+                if (wrkMast.getStaNo() == 1031) {
+                    // 鑾峰彇1033鏃犵姸鎬佹椂浠诲姟鏁�+1
+                    SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
+                    StaProtocol staProtocol = devpThread.getStation().get(1033);
+                    if (staProtocol.isLoading() && staProtocol.getWorkNo() == 0) {
+                        kbWrks ++;
+                    }
+                    if (kbWrks > 2) {
+                        continue;
+                    }
                 }
                 // 宸ヤ綔妗g姸鎬佸垽鏂�
                 if (wrkMast.getIoType() < 100 || wrkMast.getSourceStaNo() == null) {
@@ -1263,15 +1283,15 @@
             if (crnProtocol == null) {
                 continue;
             }
-            if (true) {
-//            if (crnProtocol.getModeType() != CrnModeType.STOP) {
+//            if (true) {
+            if (crnProtocol.getModeType() != CrnModeType.STOP) {
                 // 鏈変换鍔�
                 if (crnProtocol.getTaskNo() != 0) {
 
                     BasErrLog latest = basErrLogService.findLatestByTaskNo(crn.getId(), crnProtocol.getTaskNo().intValue());
                     // 鏈夊紓甯�
                     if (latest == null) {
-                        News.warnNoLog(""+mark+" - 1"+" - 寮�濮嬫墽琛岋細鍫嗗灈鏈哄紓甯镐俊鎭褰� 锛� 鏈変换鍔★紝鏈夊紓甯�");
+//                        News.warnNoLog(""+mark+" - 1"+" - 寮�濮嬫墽琛岋細鍫嗗灈鏈哄紓甯镐俊鎭褰� 锛� 鏈変换鍔★紝鏈夊紓甯�");
                         if (crnProtocol.getAlarm() != null && crnProtocol.getAlarm() > 0) {
                             WrkMast wrkMast = wrkMastMapper.selectById(crnProtocol.getTaskNo());
                             if (wrkMast == null) {
@@ -1374,6 +1394,174 @@
     }
 
     /**
+     * 杈撻�佺嚎寮傚父
+     */
+    public synchronized void recDevpErr() {
+        Date now = new Date();
+        for (DevpSlave devp : slaveProperties.getDevp()) {
+            Integer devpId = devp.getId();
+            DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devpId);
+            Map<Integer, StaProtocol> station = devpThread.getStation();
+            for (Map.Entry<Integer, StaProtocol> entry : station.entrySet()) {
+                Integer siteNo = entry.getKey();
+                StaProtocol staProtocol = entry.getValue();
+                Integer workNo = staProtocol.getWorkNo();
+                // 杈撻�佺嚎鎶ヨ
+                String plcErr = staPlcErr(staProtocol);
+                if (staProtocol.isAutoing()) {
+                    // 鏈変换鍔�
+                    if (staProtocol.getWorkNo() != 0 && staProtocol.getWorkNo() <= 9000) {
+
+                        // 鑾峰彇杈撻�佺嚎鎶ヨ淇℃伅
+                        BasDevpErrLog latestByTaskNo = basDevpErrLogService.findLatestByTaskNo(siteNo, workNo);
+
+                        // 鏈夊紓甯�
+                        if (latestByTaskNo == null) {
+                            if (!plcErr.equals("")) {
+                                WrkMast wrkMast = wrkMastMapper.selectById(workNo);
+                                if (wrkMast == null) {
+                                    continue;
+                                }
+
+                                BasDevpErrLog basErrLog = new BasDevpErrLog(
+                                        null,    // 缂栧彿
+                                        wrkMast.getWrkNo(),    // 宸ヤ綔鍙�
+                                        now,    // 鍙戠敓鏃堕棿
+                                        null,    // 缁撴潫鏃堕棿
+                                        wrkMast.getWrkSts(),    // 宸ヤ綔鐘舵��
+                                        wrkMast.getIoType(),    // 鍏ュ嚭搴撶被鍨�
+                                        wrkMast.getCrnNo(),    // 鍫嗗灈鏈�
+                                        devpId,    // plc
+                                        wrkMast.getLocNo(),    // 鐩爣搴撲綅
+                                        wrkMast.getStaNo(),    // 鐩爣绔�
+                                        siteNo,    // 婧愮珯
+                                        wrkMast.getSourceLocNo(),    // 婧愬簱浣�
+                                        wrkMast.getBarcode(),    // 鏉$爜
+                                        0,    // 寮傚父鐮�
+                                        plcErr,    // 寮傚父
+                                        1,    // 寮傚父鎯呭喌
+                                        now,    // 娣诲姞鏃堕棿
+                                        null,    // 娣诲姞浜哄憳
+                                        now,    // 淇敼鏃堕棿
+                                        null,    // 淇敼浜哄憳
+                                        "浠诲姟涓紓甯�"    // 澶囨敞
+                                );
+                                if (!basDevpErrLogService.insert(basErrLog)) {
+                                    log.error("杈撻�佺嚎寮傚父淇℃伅鎻掑叆琛╝sr_bas_devp_err_log寮傚父锛歿}", basErrLog);
+                                }
+                            }
+                        } else {
+                            // 寮傚父淇
+                            if (plcErr.equals("")) {
+                                latestByTaskNo.setEndTime(now);
+                                latestByTaskNo.setUpdateTime(now);
+                                latestByTaskNo.setStatus(2);
+                                if (!basDevpErrLogService.updateById(latestByTaskNo)) {
+                                    log.error("杈撻�佺嚎寮傚父璁板綍淇澶辫触asr_bas_devp_err_log寮傚父锛歿}", latestByTaskNo);
+                                }
+                            }
+                        }
+                        // 鏃犱换鍔�
+                    } else {
+                        BasDevpErrLog latest = basDevpErrLogService.findLatest(siteNo);
+                        // 鏈夊紓甯�
+                        if (!plcErr.equals("")) {
+                            // 璁板綍鏂板紓甯�
+                            if (latest == null || !latest.getError().equals(plcErr) || latest.getStatus() == 2 ) {
+                                BasDevpErrLog basErrLog = new BasDevpErrLog(
+                                        null,    // 缂栧彿
+                                        null,    // 宸ヤ綔鍙�
+                                        now,    // 鍙戠敓鏃堕棿
+                                        null,    // 缁撴潫鏃堕棿
+                                        null,    // 宸ヤ綔鐘舵��
+                                        null,    // 鍏ュ嚭搴撶被鍨�
+                                        0,    // 鍫嗗灈鏈�
+                                        devpId,    // plc
+                                        null,    // 鐩爣搴撲綅
+                                        null,    // 鐩爣绔�
+                                        siteNo,    // 婧愮珯
+                                        null,    // 婧愬簱浣�
+                                        null,    // 鏉$爜
+                                        0,    // 寮傚父鐮�
+                                        plcErr,    // 寮傚父
+                                        1,    // 寮傚父鎯呭喌
+                                        now,    // 娣诲姞鏃堕棿
+                                        null,    // 娣诲姞浜哄憳
+                                        now,    // 淇敼鏃堕棿
+                                        null,    // 淇敼浜哄憳
+                                        "鏃犱换鍔″紓甯�"    // 澶囨敞
+                                );
+                                if (!basDevpErrLogService.insert(basErrLog)) {
+                                    log.error("杈撻�佺嚎寮傚父璁板綍asr_bas_devp_err_log寮傚父锛歿}", basErrLog);
+                                }
+                            }
+                            // 鏃犲紓甯�
+                        } else {
+                            // 寮傚父淇
+                            if (latest != null && latest.getStatus() == 1) {
+                                latest.setEndTime(now);
+                                latest.setUpdateTime(now);
+                                latest.setStatus(2);
+                                if (!basDevpErrLogService.updateById(latest)) {
+                                    log.error("杈撻�佺嚎寮傚父璁板綍淇澶辫触asr_bas_devp_err_log寮傚父锛歿}", latest);
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+        }
+    }
+
+    // 鑾峰彇杈撻�佺嚎鎶ヨ
+    public String staPlcErr(StaProtocol staProtocol){
+        Integer siteId = staProtocol.getSiteId();
+        if (staProtocol.getBreakerErr()){
+            return "鏂矾鍣ㄦ晠闅�";
+        }
+        if (staProtocol.getInfraredErr()){
+            return "鍏夌數寮傚父";
+        }
+        if (staProtocol.getOutTimeErr()){
+            return "杩愯瓒呮椂";
+        }
+        if (staProtocol.getSeizeSeatErr()){
+            return "鍗犱綅瓒呮椂";
+        }
+        if (staProtocol.getWrkYgoodsN()){
+            return "鏈変换鍔℃棤璐ф晠闅�";
+        }
+        if (staProtocol.getInverterErr()){
+            return "鍙橀鍣ㄦ晠闅�";
+        }
+        if (staProtocol.getContactErr()){
+            return "鐢垫満鎺ヨЕ鍣ㄦ晠闅�";
+        }
+        if (staProtocol.getUpcontactErr()){
+            return "椤跺崌鐢垫満鎺ヨЕ鍣ㄦ晠闅�";
+        }
+        if (staProtocol.isFrontErr()){
+            return "鍓嶈秴闄�";
+        }
+        if (staProtocol.isBackErr()){
+            return "鍚庤秴闄�";
+        }
+        if (staProtocol.isHighErr()){
+            return "楂樿秴闄�";
+        }
+        if (staProtocol.isLeftErr()){
+            return "宸﹁秴闄�";
+        }
+        if (staProtocol.isRightErr()){
+            return "鍙宠秴闄�";
+        }
+        if (staProtocol.isBarcodeErr() && siteId != 1083 && siteId != 1086 && siteId != 1089 ){
+            return "鎵爜澶辫触";
+        }
+        return "";
+    }
+
+    /**
      * 鍑哄簱  ===>> 宸ヤ綔妗d俊鎭啓鍏ed鏄剧ず鍣�
      */
     public synchronized void ledExecute(Integer mark) {
@@ -1426,6 +1614,9 @@
                     case 110:
                         ledCommand.setTitle("绌烘澘鍑哄簱");
                         ledCommand.setEmptyMk(true);
+                        break;
+                    case 120:
+                        ledCommand.setTitle("鎵嬪姩杞Щ");
                         break;
                     default:
                         News.error("浠诲姟鍏ュ嚭搴撶被鍨嬮敊璇紒锛侊紒[宸ヤ綔鍙凤細{}] [鍏ュ嚭搴撶被鍨嬶細{}]", wrkMast.getWrkNo(), wrkMast.getIoType());
@@ -1753,7 +1944,7 @@
             } else {
                 staProtocol = staProtocol.clone();
             }
-            if (staProtocol.isAutoing() && staProtocol.isLoading() && (staProtocol.isInEnable() || staProtocol.isOutEnable() && site == 1090) && staProtocol.getWorkNo() != 0 && staProtocol.getWorkNo() < 9000) {
+            if (staProtocol.isAutoing() && staProtocol.isLoading() && (staProtocol.isInEnable() || staProtocol.isOutEnable() && site == 1090) && staProtocol.getWorkNo() != 0 && (staProtocol.getWorkNo() <= 9000 || staProtocol.getWorkNo()>=30000)) {
                 if (staProtocol.getSiteId() == 1034 && !staProtocol.isHigh()) { // 1034绌烘瘝鎷栧洖娴佷换鍔¢渶瑕侀珮淇″彿
                     continue;
                 }
@@ -1764,49 +1955,49 @@
                     continue;
                 }
                 // 1083,1086,1089 澶栧舰妫�娴嬪け璐ワ紝涓嶆槸鍘诲紓甯稿彛鐨� 鍋滃湪鍘熷
-//                if (staProtocol.getSiteId() == 1083 || staProtocol.getSiteId() == 1086 || staProtocol.getSiteId() == 1089 && wrkMast.getStaNo() != 1090) {
-//                    boolean back = false;
-//                    String errMsg = "";
-//                    if (staProtocol.isFrontErr()) {
-//                        errMsg = "鍓嶈秴闄�";
-//                        back = true;
-//                    }
-//                    if (!back && staProtocol.isBackErr()) {
-//                        errMsg = "鍚庤秴闄�";
-//                        back = true;
-//                    }
-//                    if (!back && staProtocol.isHighErr()) {
-//                        errMsg = "楂樿秴闄�";
-//                        back = true;
-//                    }
-//                    if (!back && staProtocol.isLeftErr()) {
-//                        errMsg = "宸﹁秴闄�";
-//                        back = true;
-//                    }
-//                    if (!back && staProtocol.isRightErr()) {
-//                        errMsg = "鍙宠秴闄�";
-//                        back = true;
-//                    }
-//                    if (back) {
-//                        log.error("{}绔欑偣锛屽褰㈡娴嬪け璐ワ細{}",site,errMsg);
-//                        continue;
-//                    }
-//                }
+                if (staProtocol.getSiteId() == 1083 || staProtocol.getSiteId() == 1086 || staProtocol.getSiteId() == 1089 && wrkMast.getStaNo() != 1090) {
+                    boolean back = false;
+                    String errMsg = "";
+                    if (staProtocol.isFrontErr()) {
+                        errMsg = "鍓嶈秴闄�";
+                        back = true;
+                    }
+                    if (!back && staProtocol.isBackErr()) {
+                        errMsg = "鍚庤秴闄�";
+                        back = true;
+                    }
+                    if (!back && staProtocol.isHighErr()) {
+                        errMsg = "楂樿秴闄�";
+                        back = true;
+                    }
+                    if (!back && staProtocol.isLeftErr()) {
+                        errMsg = "宸﹁秴闄�";
+                        back = true;
+                    }
+                    if (!back && staProtocol.isRightErr()) {
+                        errMsg = "鍙宠秴闄�";
+                        back = true;
+                    }
+                    if (back) {
+                        log.error("{}绔欑偣锛屽褰㈡娴嬪け璐ワ細{}",site,errMsg);
+                        continue;
+                    }
+                }
                 if (staProtocol.getSiteId() == 1090 && wrkMast.getStaNo() == 1090) {
                     continue;
                 }
-                if ((wrkMast.getWrkSts() == 2 || wrkMast.getWrkSts() == 15) && (wrkMast.getRgvNo() == null || wrkMast.getRgvDstaNo() == 1090)) {
+                if ((wrkMast.getWrkSts() == 2 || wrkMast.getWrkSts() == 15 || (wrkMast.getIoType() == 120 && wrkMast.getWrkSts() == 52)) && (wrkMast.getRgvNo() == null || wrkMast.getRgvDstaNo() == 1090)) {
                     // 鏈�1090鐨勪换鍔¤烦杩噐gv鍒嗛厤
                     if(wrkMast.getStaNo() == 1090) {
                         DevpThread devpThread2 = (DevpThread) SlaveConnection.get(SlaveType.Devp, 2);
                         StaProtocol staProtocol2 = devpThread2.getStation().get(1090);
                         if(!staProtocol2.isAutoing() || staProtocol2.isLoading() || staProtocol2.getWorkNo() != 0) {
-                            log.info("鍘诲紓甯稿彛鐩爣绔欑偣锛岄潪鑷姩锛屾湁鐗╋紝宸ヤ綔鍙蜂负锛歿}",staProtocol2.getWorkNo());
+                            log.info("{}鍘诲紓甯稿彛鐩爣绔欑偣锛岃嚜鍔�:{}锛屾湁鐗�:{}锛屽伐浣滃彿涓猴細{}",wrkMast.getWrkNo(),staProtocol2.isAutoing(),staProtocol2.isLoading(),staProtocol2.getWorkNo());
                             continue;
                         }
-                        int count = wrkMastService.selectCount(new EntityWrapper<WrkMast>().where("sta_no = 1090 and wrk_sts in (9,10)"));
+                        int count = wrkMastService.selectCount(new EntityWrapper<WrkMast>().where("sta_no = 1090 AND (wrk_sts IN (9,10) OR (wrk_sts = 2 AND rgv_finish_time IS NOT NULL))"));
                         if (count > 0) {
-                            log.info("鍘诲紓甯稿彛锛屼絾鏄墠闈㈡湁鍘诲紓甯稿彛浠诲姟鏁帮細{}",count);
+                            log.info("{}鍘诲紓甯稿彛锛屼絾鏄墠闈㈡湁鍘诲紓甯稿彛浠诲姟鏁帮細{}",wrkMast.getWrkNo(),count);
                             continue;
                         }
                     }
@@ -1825,7 +2016,7 @@
     /**
      * rgv鏀捐揣瀹屾垚锛岀粰杈撻�佺嚎涓嬪彂浠诲姟
      */
-    public synchronized void rgvToDev() {
+    public synchronized void rgvToDev() throws InterruptedException {
         for (Integer site : rgvConnectionSiteList) {
             // 杈撻�佺嚎plc缂栧彿
             Integer devpPlcId = site < 1044 ? 1 : site <= 1090 ? 2 : 3;
@@ -1863,12 +2054,20 @@
                     wrkMast.setWrkSts(15L);
                     wrkMast.setModiTime(new Date());
                     wrkMastService.updateById(wrkMast);
-                } else if(wrkMast.getIoType() == 110 && (wrkMast.getStaNo() == 1002 || wrkMast.getStaNo() == 1020 ||wrkMast.getStaNo() == 1035)) {
+                } else if(wrkMast.getIoType() == 110 && (wrkMast.getStaNo() == 1002 || wrkMast.getStaNo() == 1020 ||wrkMast.getStaNo() == 1035 || wrkMast.getStaNo() == 1024)) {
                     if(wrkMast.getWrkSts() != 2 ){
                         log.warn("rgv鏀捐揣瀹屾垚110锛宺gv鏈浣�:rgv鍙穥}锛屼换鍔″彿锛歿}锛屼换鍔$姸鎬亄}",wrkMast.getRgvNo(),wrkMast.getWrkNo(),wrkMast.getWrkSts());
                         continue;
                     }
                     wrkMast.setWrkSts(15L);
+                    wrkMast.setModiTime(new Date());
+                    wrkMastService.updateById(wrkMast);
+                } else if(wrkMast.getIoType() == 120) {
+                    if(wrkMast.getWrkSts() != 53 ){
+                        log.warn("rgv鏀捐揣瀹屾垚120锛宺gv鏈浣�:rgv鍙穥}锛屼换鍔″彿锛歿}锛屼换鍔$姸鎬亄}",wrkMast.getRgvNo(),wrkMast.getWrkNo(),wrkMast.getWrkSts());
+                        continue;
+                    }
+                    wrkMast.setWrkSts(54L);
                     wrkMast.setModiTime(new Date());
                     wrkMastService.updateById(wrkMast);
                 }
@@ -1877,10 +2076,11 @@
                 staProtocol.setWorkNo(staProtocol.getHideWorkNo());
                 staProtocol.setStaNo(wrkMast.getStaNo().shortValue());
                 if (!MessageQueue.offer(SlaveType.Devp, devpPlcId, new Task(2, staProtocol))) {
-                    log.info("rgv鎼繍瀹屾垚缁欒緭閫佺嚎涓嬪彂鍛戒护澶辫触!,plc id:{},绔欑偣{}锛屼换鍔″彿锛歿}锛岀洰鏍囩珯锛歿}", devpPlcId,staProtocol.getStaNo(), staProtocol.getWorkNo(), staProtocol.getStaNo());
+                    log.info("rgv鎼繍瀹屾垚缁欒緭閫佺嚎涓嬪彂鍛戒护澶辫触!,plc id:{},绔欑偣{}锛屼换鍔″彿锛歿}锛岀洰鏍囩珯锛歿}", devpPlcId,staProtocol.getSiteId(), staProtocol.getWorkNo(), staProtocol.getStaNo());
                 } else {
-                    log.info("rgv鎼繍瀹屾垚缁欒緭閫佺嚎涓嬪彂鍛戒护鎴愬姛plc id:{}!,绔欑偣{}锛屼换鍔″彿锛歿}锛岀洰鏍囩珯锛歿}", devpPlcId,staProtocol.getStaNo(), staProtocol.getWorkNo(), staProtocol.getStaNo());
+                    log.info("rgv鎼繍瀹屾垚缁欒緭閫佺嚎涓嬪彂鍛戒护鎴愬姛plc id:{}!,绔欑偣{}锛屼换鍔″彿锛歿}锛岀洰鏍囩珯锛歿}", devpPlcId,staProtocol.getSiteId(), staProtocol.getWorkNo(), staProtocol.getStaNo());
                 }
+                Thread.sleep(300);
             }
         }
     }
@@ -2413,4 +2613,60 @@
             }
         }
     }
+
+    /**
+     * 鎵嬪姩绔欎綅杞Щ
+     */
+    public synchronized void manualStationTransfer() {
+        WrkMast wrkMast = wrkMastMapper.selectByIoTypeAndWrkSts(120, 51L);
+
+        if (Cools.isEmpty(wrkMast)) {
+            return;
+        }
+        int devpId;
+        if (wrkMast.getSourceStaNo() < 1044) {
+            devpId = 1;
+        } else if (wrkMast.getSourceStaNo() < 1091) {
+            devpId = 2;
+        } else {
+            devpId = 3;
+        }
+        SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devpId);
+        try {
+            StaProtocol staProtocol = devpThread.getStation().get(wrkMast.getSourceStaNo());
+
+            if (staProtocol == null) {
+                wrkMast.setIoTime(new Date());
+                wrkMastService.updateById(wrkMast);
+                return;
+            } else {
+                staProtocol = staProtocol.clone();
+            }
+
+            // 绔欑偣鏉′欢鍒ゆ柇
+            if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() == 0 && staProtocol.isPakMk()) {
+                // 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护
+                StaProtocol staProtocolNew = new StaProtocol();
+                staProtocolNew.setSiteId(staProtocol.getSiteId());
+                staProtocolNew.setWorkNo(wrkMast.getWrkNo());
+                staProtocolNew.setStaNo(crnOutSiteToRgvSite2.get(wrkMast.getSourceStaNo()));
+                devpThread.setPakMk(staProtocol.getSiteId(), false);
+                boolean result = MessageQueue.offer(SlaveType.Devp, devpId, new Task(2, staProtocolNew));
+                log.info("鎵嬪姩绔欎綅杞Щ杈撻�佺嚎涓嬪彂锛�" + staProtocolNew.getWrkNo() + "," + staProtocolNew.getSiteId());
+                if (!result) {
+                    News.errorNoLog("" + " - 1" + " - 鏇存柊plc绔欑偣淇℃伅澶辫触");
+                    throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
+                }
+
+                wrkMast.setIoTime(new Date());
+                wrkMast.setWrkSts(52L);
+                wrkMastService.updateById(wrkMast);
+            } else {
+                wrkMast.setIoTime(new Date());
+                wrkMastService.updateById(wrkMast);
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
 }

--
Gitblit v1.9.1