From 86f1da5c382460162d68d218e16057fe5be81d10 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期三, 09 十一月 2022 10:57:52 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |  374 ++++++++++++++++++++++++++++++----------------------
 1 files changed, 214 insertions(+), 160 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 ad8937d..6a731a5 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -470,13 +470,14 @@
                             if (wrkMastMapper.setSteEmpty(wrkMast.getWrkNo()) == 0) {
                                 throw new CoolException(wrkMast.getWrkNo() + "鏇存柊宸ヤ綔妗f暟鎹姸鎬佸け璐�");
                             }
+                            LocMast locMast = null;
                             // 淇敼婧愬簱浣嶇姸鎬� O.绌哄簱浣�
-                            LocMast locMast = locMastService.selectById(sourceLocNo);
-                            locMast.setLocSts("O");
-                            locMast.setModiTime(new Date());
-                            if (!locMastService.updateById(locMast)) {
-                                throw new CoolException(wrkMast.getWrkNo() + "淇敼婧愬簱浣嶇姸鎬� O.绌哄簱浣�");
-                            }
+//                            locMast = locMastService.selectById(sourceLocNo);
+//                            locMast.setLocSts("O");
+//                            locMast.setModiTime(new Date());
+//                            if (!locMastService.updateById(locMast)) {
+//                                throw new CoolException(wrkMast.getWrkNo() + "淇敼婧愬簱浣嶇姸鎬� O.绌哄簱浣�");
+//                            }
                             // 淇敼鐩爣搴撲綅鐘舵�� Q.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴�
                             locMast = locMastService.selectById(wrkMast.getLocNo());
                             locMast.setLocSts("Q");
@@ -534,6 +535,47 @@
                 }
             }
 
+        }
+    }
+
+    /**
+     * 鐩樼偣璐х墿鎶佃揪鐩樼偣鐩爣绔� wrkMast.sourceLoc P ===>> O
+     */
+    public void pickWrkCompleteStaNo() {
+        for (DevpSlave devp : slaveProperties.getDevp()) {
+            // 閬嶅巻鎷f枡鍏ュ簱鍙�
+            for (DevpSlave.Sta pickSta : devp.getPickOutSta()) {
+                // 鑾峰彇鎷f枡鍏ュ簱绔欎俊鎭�
+                DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+                StaProtocol staProtocol = devpThread.getStation().get(pickSta.getStaNo());
+                if (staProtocol == null) {
+                    continue;
+                } else {
+                    staProtocol = staProtocol.clone();
+                }
+                if (staProtocol.getWorkNo() > 0) {
+                    WrkMast wrkMast = wrkMastMapper.selectPick17(pickSta.getStaNo(), staProtocol.getWorkNo().intValue());
+                    if (Cools.isEmpty(wrkMast)) {
+                        log.error("{}绔欐嫞鏂欍�佸苟鏉裤�佺洏鐐规绱换鍔″け璐ワ紒浠诲姟鍙凤細{}", pickSta.getStaNo(), staProtocol.getWorkNo());
+                    } else {
+                        // 淇敼婧愬簱浣嶇姸鎬� O.绌哄簱浣�
+                        LocMast locMast = locMastService.selectById(wrkMast.getSourceLocNo());
+                        if (locMast.getLocSts().equals("P")) {
+                            locMast.setLocSts("O");
+                            locMast.setModiTime(new Date());
+                            if (!locMastService.updateById(locMast)) {
+                                throw new CoolException(wrkMast.getWrkNo() + "淇敼婧愬簱浣嶇姸鎬� O.绌哄簱浣�");
+                            }
+                        }
+                        // 淇敼宸ヤ綔妗�
+                        wrkMast.setIoPri(13D);
+                        if (wrkMastMapper.updateById(wrkMast) == 0) {
+                            log.error("鏇存柊宸ヤ綔妗g殑浼樺厛绾уけ璐ワ紒锛侊紒 [宸ヤ綔鍙�:{}]", wrkMast.getWrkNo());
+                        }
+                    }
+                }
+
+            }
         }
     }
 
@@ -1185,6 +1227,8 @@
                     }
                 }
 
+            } else {
+                // todo
             }
             // 涓嶆槸鏈�澶栧眰搴撲綅锛岄渶瑕佷娇鐢ㄧ┛姊溅鎼繍鍚庯紝鍐嶅爢鍨涙満绉诲簱
         } else {
@@ -1287,43 +1331,53 @@
             return;
         }
 
-        //鏌ユ壘搴撲綅
-        boolean flag = false;
-        String[] deeplocs  = Utils.getDeepLocs(wrkMast.getSourceLocNo());
-        if(!Cools.isEmpty(deeplocs)){
-            for(String deepLocNo : deeplocs) {
-                LocMast deepLoc = locMastService.selectById(deepLocNo);
+        if (wrkMast.getWrkSts() == 17) {
+            //鏌ユ壘搴撲綅
+            boolean flag = false;
+            String[] deeplocs  = Utils.getDeepLocs(wrkMast.getSourceLocNo());
+            if(!Cools.isEmpty(deeplocs)){
+                for(String deepLocNo : deeplocs) {
+                    LocMast deepLoc = locMastService.selectById(deepLocNo);
 //                WrkMast waitWrkMast = wrkMastMapper.selectByLocNo(deepLocNo);
-                if(deepLoc != null && !deepLoc.getLocSts().equals("F") && deepLoc.getLocSts().equals("D") && deepLoc.getLocSts().equals("O")){
-                    flag = true;
-                    break;
-                }
-                if(deepLoc != null && deepLoc.getLocSts().equals("O")){
-                    //淇敼绉诲簱宸ヤ綔妗�
-                    wrkMast.setSourceLocNo(wrkMast.getLocNo());
-                    wrkMast.setIoPri((double)9999);
-                    wrkMast.setWrkSts(2L);
-                    wrkMast.setLocNo(deepLocNo);
-                    wrkMast.setSteNo(null);
-                    wrkMast.setModiTime(new Date());
-                    if (wrkMastMapper.updateById(wrkMast) == 0) {
-                        log.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
+                    if(deepLoc != null && !deepLoc.getLocSts().equals("F") && deepLoc.getLocSts().equals("D") && deepLoc.getLocSts().equals("O")){
+                        flag = true;
+                        break;
                     }
-
-                    if(deepLoc.getLocSts().equals("O")){
-                        deepLoc.setLocSts("S"); // S.鍏ュ簱棰勭害
-                        deepLoc.setModiTime(new Date());
-                        if (!locMastService.updateById(deepLoc)) {
-                            log.error("鍙屾繁搴撲綅 --- 鏇存柊鐩爣搴撲綅鐘舵�佸け璐ワ紒 寰呯Щ杞祬搴撲綅锛�" + deepLoc.getLocNo());
-                            throw new CoolException("鏇存柊绉诲簱鍥炲簱鐩爣搴撲綅鐘舵�佸け璐�");
+                    if(deepLoc != null && deepLoc.getLocSts().equals("O")){
+                        //淇敼绉诲簱宸ヤ綔妗�
+                        wrkMast.setSourceLocNo(wrkMast.getLocNo());
+                        wrkMast.setIoPri((double)9999);
+                        wrkMast.setWrkSts(2L);
+                        wrkMast.setLocNo(deepLocNo);
+                        wrkMast.setSteNo(null);
+                        wrkMast.setModiTime(new Date());
+                        if (wrkMastMapper.updateById(wrkMast) == 0) {
+                            log.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
                         }
+
+                        if(deepLoc.getLocSts().equals("O")){
+                            deepLoc.setLocSts("S"); // S.鍏ュ簱棰勭害
+                            deepLoc.setModiTime(new Date());
+                            if (!locMastService.updateById(deepLoc)) {
+                                log.error("鍙屾繁搴撲綅 --- 鏇存柊鐩爣搴撲綅鐘舵�佸け璐ワ紒 寰呯Щ杞祬搴撲綅锛�" + deepLoc.getLocNo());
+                                throw new CoolException("鏇存柊绉诲簱鍥炲簱鐩爣搴撲綅鐘舵�佸け璐�");
+                            }
+                        }
+                        LocMast sourceLoc = locMastService.selectById(wrkMast.getSourceLocNo());
+                        if(sourceLoc.getLocSts().equals("F")){
+                            sourceLoc.setLocSts("R"); // R.鍑哄簱棰勭害
+                            sourceLoc.setModiTime(new Date());
+                            if (!locMastService.updateById(sourceLoc)) {
+                                throw new CoolException("鏇存柊绉诲簱鍥炲簱鐩爣搴撲綅鐘舵�佸け璐�");
+                            }
+                        }
+                        break;
                     }
-                    break;
                 }
             }
-        }
-        if(flag){
-            return;
+            if(flag){
+                return;
+            }
         }
 
         // 鑾峰彇婧愬簱浣嶄俊鎭�
@@ -2325,134 +2379,134 @@
                         }
                         // 鍏ュ簱 ===>> 杩佸嚭灏忚溅 瀹屾垚
                     }
-//                    if (wrkMast.getWrkSts() == 16) {
-//                        Date now = new Date();
-////                        if (locMastService.isOutMost(wrkMast.getLocNo())) {
-////                            // 16.鍚婅溅鍑哄簱涓� ==> 9.鍏ュ簱瀹屾垚
-////                            wrkMast.setWrkSts(9L);
-////                            wrkMast.setCrnEndTime(now);
-////                        } else {
-////                            // 16.鍚婅溅鍑哄簱涓� ==> 9.鍏ュ簱瀹屾垚
-////                            wrkMast.setWrkSts(9L);
-////                        }
+                    if (wrkMast.getWrkSts() == 16) {
+                        Date now = new Date();
 //                        if (locMastService.isOutMost(wrkMast.getLocNo())) {
-//                            wrkMast.setWrkSts(17L);
-//                        }
-//                        wrkMast.setModiTime(now);
-//                        // 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満
-//                        if (wrkMastMapper.updateById(wrkMast) > 0) {
-//                            // 鍫嗗灈鏈哄浣�
-//                            crnThread.setResetFlag(true);
-//                        } else {
-//                            log.error("淇敼宸ヤ綔妗g姸鎬� 16.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
-//                        }
-//                    } else if (wrkMast.getWrkSts() == 4) {
-//                        // 4.杩佸叆灏忚溅 ==> 6.灏忚溅寰呭叆
-//                        wrkMast.setWrkSts(6L);
-//                        Date now = new Date();
-//                        wrkMast.setCrnEndTime(now);
-//                        wrkMast.setModiTime(now);
-//                        // 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満
-//                        if (wrkMastMapper.updateById(wrkMast) > 0) {
-//                            // 鍫嗗灈鏈哄浣�
-//                            crnThread.setResetFlag(true);
-//                            // 绌挎杞﹂噸鏂板畾浣嶆帓鍒楀眰
-//                            SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, wrkMast.getSteNo());
-//                            if (!steThread.confirmPos()) {
-//                                log.error("{}鍙风┛姊溅閲嶆柊瀹氫綅澶辫触锛佷綔涓氬伐浣滄。浠诲姟鍙凤細{}", wrkMast.getSteNo(), wrkMast.getWrkNo());
-//                            }
-//                            // 绌挎杞﹀幓寰呮満浣�
-//                            BasSte basSte = basSteService.selectById(wrkMast.getSteNo());
-//                            SteCommand steCommand = new SteCommand();
-//                            steCommand.setSteNo(wrkMast.getSteNo()); // 绌挎杞︾紪鍙�
-//                            steCommand.setTaskNo(9999); // 宸ヤ綔鍙�
-//                            steCommand.setTaskMode(SteTaskModeType.findWaiting(basSte.getRow())); // 浠诲姟妯″紡:  鍘昏繎鐐� 绛夊緟鍫嗗灈鏈哄弶鍙�
-////                        steCommand.setRow(Utils.getGroupRow(steProtocol.getRow().intValue()).shortValue());
-////                        steCommand.setBay(steProtocol.getBay());
-////                        steCommand.setLev(steProtocol.getLev());
-//                            if (!MessageQueue.offer(SlaveType.Ste, wrkMast.getSteNo(), new Task(2, steCommand))) {
-//                                log.error("绌挎杞﹀緟鏈轰綅鍛戒护涓嬪彂澶辫触锛岀┛姊溅鍙�={}锛屼换鍔℃暟鎹�={}", wrkMast.getSteNo(), JSON.toJSON(steCommand));
-//                            }
-//                        } else {
-//                            log.error("淇敼宸ヤ綔妗g姸鎬� 4.杩佸叆灏忚溅 => 6.灏忚溅寰呭叆 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
-//                        }
-//                        // 鍏ュ簱 ===>> 杩佸嚭灏忚溅 瀹屾垚
-//                    } else if (wrkMast.getWrkSts() == 7){
-//                        // 鍒ゆ柇鏄惁闇�瑕佸皬杞﹀叆搴�
-//                        if (locMastService.isOutMost(wrkMast.getLocNo())) {
-//                            // ==> 9.鍏ュ簱瀹屾垚
+//                            // 16.鍚婅溅鍑哄簱涓� ==> 9.鍏ュ簱瀹屾垚
 //                            wrkMast.setWrkSts(9L);
-//                            Date now = new Date();
 //                            wrkMast.setCrnEndTime(now);
-//                            wrkMast.setModiTime(now);
-//                            // 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満
-//                            if (wrkMastMapper.updateById(wrkMast) > 0) {
-//                                // 鍫嗗灈鏈哄浣�
-//                                crnThread.setResetFlag(true);
-//                            } else {
-//                                log.error("淇敼宸ヤ綔妗g姸鎬� 7.鍚婅溅鍏ュ簱涓� => 9.鍏ュ簱瀹屾垚 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
-//                            }
 //                        } else {
-//                            // 缁欑┛姊溅涓嬪彂鍛戒护
-//                            Integer steNo = wrkMast.getSteNo();
-//                            SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, steNo);
-//                            SteProtocol steProtocol = steThread.getSteProtocol();
-//                            if (steProtocol == null) { continue; }
-//                            if (steProtocol.isIdle()) {
-//                                // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
-//                                SteCommand steCommand = new SteCommand();
-//                                steCommand.setSteNo(steNo); // 绌挎杞︾紪鍙�
-//                                steCommand.setTaskNo(wrkMast.getWrkNo()); // 宸ヤ綔鍙�
-//                                steCommand.setTaskMode(SteTaskModeType.findInByLoc(wrkMast.getLocNo())); // 浠诲姟妯″紡: 鎼叆搴�
-//                                if (!MessageQueue.offer(SlaveType.Ste, steNo, new Task(2, steCommand))) {
-//                                    log.error("绌挎杞﹀懡浠や笅鍙戝け璐ワ紝绌挎杞﹀彿={}锛屼换鍔℃暟鎹�={}", steNo, JSON.toJSON(steCommand));
-//                                } else {
-//                                    // 淇敼宸ヤ綔妗g姸鎬� 7.鍚婅溅鍏ュ簱涓� => 8.灏忚溅鎼叆搴�
-//                                    wrkMast.setWrkSts(8L);
-//                                    Date now = new Date();
-//                                    wrkMast.setCrnEndTime(now);
-//                                    wrkMast.setModiTime(now);
-//                                    if (wrkMastMapper.updateById(wrkMast) > 0) {
-//                                        // 鍫嗗灈鏈哄浣�
-//                                        crnThread.setResetFlag(true);
-//                                    } else {
-//                                        log.error("淇敼宸ヤ綔妗g姸鎬� 7.鍚婅溅鍏ュ簱涓� => 8.灏忚溅鎼叆搴� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
-//                                    }
-//                                }
-//                            }
+//                            // 16.鍚婅溅鍑哄簱涓� ==> 9.鍏ュ簱瀹屾垚
+//                            wrkMast.setWrkSts(9L);
 //                        }
-//                    } else if (wrkMast.getWrkSts() == 13) {
-//                        // 缁欑┛姊溅涓嬪彂鍛戒护
-//                        Integer steNo = wrkMast.getSteNo();
-//                        SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, steNo);
-//                        SteProtocol steProtocol = steThread.getSteProtocol();
-//                        if (steProtocol == null) { continue; }
-//                        // 绌挎杞﹂噸鏂板畾浣嶆帓鍒楀眰
-//                        if (!steThread.confirmPos()) {
-//                            log.error("{}鍙风┛姊溅閲嶆柊瀹氫綅澶辫触锛佷綔涓氬伐浣滄。浠诲姟鍙凤細{}", wrkMast.getSteNo(), wrkMast.getWrkNo());
-//                        }
-//                        // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
-//                        SteCommand steCommand = new SteCommand();
-//                        steCommand.setSteNo(steNo); // 绌挎杞︾紪鍙�
-//                        steCommand.setTaskNo(wrkMast.getWrkNo()); // 宸ヤ綔鍙�
-//                        steCommand.setTaskMode(SteTaskModeType.findOutByLoc(wrkMast.getSourceLocNo())); // 浠诲姟妯″紡:  鎼嚭搴�
-//                        if (!MessageQueue.offer(SlaveType.Ste, steNo, new Task(2, steCommand))) {
-//                            log.error("绌挎杞﹀懡浠や笅鍙戝け璐ワ紝绌挎杞﹀彿={}锛屼换鍔℃暟鎹�={}", steNo, JSON.toJSON(steCommand));
-//                        } else {
-//                            // 13.杩佸叆灏忚溅 ==> 14.灏忚溅鎼嚭搴�
-//                            wrkMast.setWrkSts(14L);
-//                            Date now = new Date();
-//                            wrkMast.setCrnEndTime(now);
-//                            wrkMast.setModiTime(now);
-//                            // 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満
-//                            if (wrkMastMapper.updateById(wrkMast) > 0) {
-//                                // 鍫嗗灈鏈哄浣�
-//                                crnThread.setResetFlag(true);
-//                            } else {
-//                                log.error("淇敼宸ヤ綔妗g姸鎬� 13.杩佸叆灏忚溅 ==> 14.灏忚溅鎼嚭搴� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
-//                            }
-//                        }
-//                    }
+                        if (locMastService.isOutMost(wrkMast.getLocNo())) {
+                            wrkMast.setWrkSts(17L);
+                        }
+                        wrkMast.setModiTime(now);
+                        // 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満
+                        if (wrkMastMapper.updateById(wrkMast) > 0) {
+                            // 鍫嗗灈鏈哄浣�
+                            crnThread.setResetFlag(true);
+                        } else {
+                            log.error("淇敼宸ヤ綔妗g姸鎬� 16.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
+                        }
+                    } else if (wrkMast.getWrkSts() == 4) {
+                        // 4.杩佸叆灏忚溅 ==> 6.灏忚溅寰呭叆
+                        wrkMast.setWrkSts(6L);
+                        Date now = new Date();
+                        wrkMast.setCrnEndTime(now);
+                        wrkMast.setModiTime(now);
+                        // 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満
+                        if (wrkMastMapper.updateById(wrkMast) > 0) {
+                            // 鍫嗗灈鏈哄浣�
+                            crnThread.setResetFlag(true);
+                            // 绌挎杞﹂噸鏂板畾浣嶆帓鍒楀眰
+                            SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, wrkMast.getSteNo());
+                            if (!steThread.confirmPos()) {
+                                log.error("{}鍙风┛姊溅閲嶆柊瀹氫綅澶辫触锛佷綔涓氬伐浣滄。浠诲姟鍙凤細{}", wrkMast.getSteNo(), wrkMast.getWrkNo());
+                            }
+                            // 绌挎杞﹀幓寰呮満浣�
+                            BasSte basSte = basSteService.selectById(wrkMast.getSteNo());
+                            SteCommand steCommand = new SteCommand();
+                            steCommand.setSteNo(wrkMast.getSteNo()); // 绌挎杞︾紪鍙�
+                            steCommand.setTaskNo(9999); // 宸ヤ綔鍙�
+                            steCommand.setTaskMode(SteTaskModeType.findWaiting(basSte.getRow())); // 浠诲姟妯″紡:  鍘昏繎鐐� 绛夊緟鍫嗗灈鏈哄弶鍙�
+//                        steCommand.setRow(Utils.getGroupRow(steProtocol.getRow().intValue()).shortValue());
+//                        steCommand.setBay(steProtocol.getBay());
+//                        steCommand.setLev(steProtocol.getLev());
+                            if (!MessageQueue.offer(SlaveType.Ste, wrkMast.getSteNo(), new Task(2, steCommand))) {
+                                log.error("绌挎杞﹀緟鏈轰綅鍛戒护涓嬪彂澶辫触锛岀┛姊溅鍙�={}锛屼换鍔℃暟鎹�={}", wrkMast.getSteNo(), JSON.toJSON(steCommand));
+                            }
+                        } else {
+                            log.error("淇敼宸ヤ綔妗g姸鎬� 4.杩佸叆灏忚溅 => 6.灏忚溅寰呭叆 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
+                        }
+                        // 鍏ュ簱 ===>> 杩佸嚭灏忚溅 瀹屾垚
+                    } else if (wrkMast.getWrkSts() == 7){
+                        // 鍒ゆ柇鏄惁闇�瑕佸皬杞﹀叆搴�
+                        if (locMastService.isOutMost(wrkMast.getLocNo())) {
+                            // ==> 9.鍏ュ簱瀹屾垚
+                            wrkMast.setWrkSts(9L);
+                            Date now = new Date();
+                            wrkMast.setCrnEndTime(now);
+                            wrkMast.setModiTime(now);
+                            // 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満
+                            if (wrkMastMapper.updateById(wrkMast) > 0) {
+                                // 鍫嗗灈鏈哄浣�
+                                crnThread.setResetFlag(true);
+                            } else {
+                                log.error("淇敼宸ヤ綔妗g姸鎬� 7.鍚婅溅鍏ュ簱涓� => 9.鍏ュ簱瀹屾垚 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
+                            }
+                        } else {
+                            // 缁欑┛姊溅涓嬪彂鍛戒护
+                            Integer steNo = wrkMast.getSteNo();
+                            SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, steNo);
+                            SteProtocol steProtocol = steThread.getSteProtocol();
+                            if (steProtocol == null) { continue; }
+                            if (steProtocol.isIdle()) {
+                                // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+                                SteCommand steCommand = new SteCommand();
+                                steCommand.setSteNo(steNo); // 绌挎杞︾紪鍙�
+                                steCommand.setTaskNo(wrkMast.getWrkNo()); // 宸ヤ綔鍙�
+                                steCommand.setTaskMode(SteTaskModeType.findInByLoc(wrkMast.getLocNo())); // 浠诲姟妯″紡: 鎼叆搴�
+                                if (!MessageQueue.offer(SlaveType.Ste, steNo, new Task(2, steCommand))) {
+                                    log.error("绌挎杞﹀懡浠や笅鍙戝け璐ワ紝绌挎杞﹀彿={}锛屼换鍔℃暟鎹�={}", steNo, JSON.toJSON(steCommand));
+                                } else {
+                                    // 淇敼宸ヤ綔妗g姸鎬� 7.鍚婅溅鍏ュ簱涓� => 8.灏忚溅鎼叆搴�
+                                    wrkMast.setWrkSts(8L);
+                                    Date now = new Date();
+                                    wrkMast.setCrnEndTime(now);
+                                    wrkMast.setModiTime(now);
+                                    if (wrkMastMapper.updateById(wrkMast) > 0) {
+                                        // 鍫嗗灈鏈哄浣�
+                                        crnThread.setResetFlag(true);
+                                    } else {
+                                        log.error("淇敼宸ヤ綔妗g姸鎬� 7.鍚婅溅鍏ュ簱涓� => 8.灏忚溅鎼叆搴� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
+                                    }
+                                }
+                            }
+                        }
+                    } else if (wrkMast.getWrkSts() == 13) {
+                        // 缁欑┛姊溅涓嬪彂鍛戒护
+                        Integer steNo = wrkMast.getSteNo();
+                        SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, steNo);
+                        SteProtocol steProtocol = steThread.getSteProtocol();
+                        if (steProtocol == null) { continue; }
+                        // 绌挎杞﹂噸鏂板畾浣嶆帓鍒楀眰
+                        if (!steThread.confirmPos()) {
+                            log.error("{}鍙风┛姊溅閲嶆柊瀹氫綅澶辫触锛佷綔涓氬伐浣滄。浠诲姟鍙凤細{}", wrkMast.getSteNo(), wrkMast.getWrkNo());
+                        }
+                        // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+                        SteCommand steCommand = new SteCommand();
+                        steCommand.setSteNo(steNo); // 绌挎杞︾紪鍙�
+                        steCommand.setTaskNo(wrkMast.getWrkNo()); // 宸ヤ綔鍙�
+                        steCommand.setTaskMode(SteTaskModeType.findOutByLoc(wrkMast.getSourceLocNo())); // 浠诲姟妯″紡:  鎼嚭搴�
+                        if (!MessageQueue.offer(SlaveType.Ste, steNo, new Task(2, steCommand))) {
+                            log.error("绌挎杞﹀懡浠や笅鍙戝け璐ワ紝绌挎杞﹀彿={}锛屼换鍔℃暟鎹�={}", steNo, JSON.toJSON(steCommand));
+                        } else {
+                            // 13.杩佸叆灏忚溅 ==> 14.灏忚溅鎼嚭搴�
+                            wrkMast.setWrkSts(14L);
+                            Date now = new Date();
+                            wrkMast.setCrnEndTime(now);
+                            wrkMast.setModiTime(now);
+                            // 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満
+                            if (wrkMastMapper.updateById(wrkMast) > 0) {
+                                // 鍫嗗灈鏈哄浣�
+                                crnThread.setResetFlag(true);
+                            } else {
+                                log.error("淇敼宸ヤ綔妗g姸鎬� 13.杩佸叆灏忚溅 ==> 14.灏忚溅鎼嚭搴� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
+                            }
+                        }
+                    }
                 }
             }
         }

--
Gitblit v1.9.1