From f1b654fc854bd0a88ef7ee9815f8cfaf33e30007 Mon Sep 17 00:00:00 2001
From: TQS <56479841@qq.com>
Date: 星期四, 20 四月 2023 18:13:52 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |  304 ++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 221 insertions(+), 83 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 5053466..ceba294 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -114,33 +114,33 @@
                 }
                 Short workNo = staProtocol.getWorkNo();
 
-                //20230201. 2鍙峰爢鍨涙満鏈夊嚭搴撲换鍔℃椂锛岀姝㈡柊鏉垮叆搴�
-                if (staProtocol.isLoading() && staProtocol.getWorkNo() == 9995) {
-                    if ( inSta.getStaNo()==103 && devpThread.ioModeOf1F == IoModeType.PAKOUT_MODE) {
-                        //鏈夊嚭搴撲换鍔★紝閫�搴撳埌鍏ュ簱鍙�
-                        staProtocol.setWorkNo((short) 9999);
-                        staProtocol.setStaNo((short)100);
-                        devpThread.setPakMk(staProtocol.getSiteId(), false);
-                        boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-                        News.error("MainServiceImpl  generateStoreWrkFile"+"103涓哄嚭搴撴ā寮忥紝绂佹鍏ュ簱锛岄��鍥炲叆搴撳彛銆傦紒锛侊紒");
-                        continue;
-                    }
-                    if ( inSta.getStaNo()==203 && devpThread.ioModeOf2F == IoModeType.PAKOUT_MODE) {
-                        //鏈夊嚭搴撲换鍔★紝閫�搴撳埌鍏ュ簱鍙�
-                        staProtocol.setWorkNo((short) 9999);
-                        staProtocol.setStaNo((short)200);
-                        devpThread.setPakMk(staProtocol.getSiteId(), false);
-                        boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-                        News.error("MainServiceImpl  generateStoreWrkFile"+"203涓哄嚭搴撴ā寮忥紝绂佹鍏ュ簱锛岄��鍥炲叆搴撳彛銆傦紒锛侊紒");
-                        continue;
-                    }
-                }
-
                 // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
                 if (staProtocol.isAutoing() && staProtocol.isLoading()
                         && staProtocol.isInEnable()
                         && !staProtocol.isEmptyMk() && (workNo == 0 || (workNo >= 9990 && workNo <= 9999))
                         && staProtocol.isPakMk()) {
+
+                    //20230201. 2鍙峰爢鍨涙満鏈夊嚭搴撲换鍔℃椂锛岀姝㈡柊鏉垮叆搴�
+                    if (staProtocol.getWorkNo() == 9995) {
+                        if ( inSta.getStaNo()==103 && devpThread.ioModeOf1F == IoModeType.PAKOUT_MODE) {
+                            //鏈夊嚭搴撲换鍔★紝閫�搴撳埌鍏ュ簱鍙�
+                            staProtocol.setWorkNo((short) 9999);
+                            staProtocol.setStaNo((short)100);
+                            devpThread.setPakMk(staProtocol.getSiteId(), false);
+                            boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+                            News.error("MainServiceImpl  generateStoreWrkFile"+"103涓哄嚭搴撴ā寮忥紝绂佹鍏ュ簱锛岄��鍥炲叆搴撳彛銆傦紒锛侊紒");
+                            continue;
+                        }
+                        if ( inSta.getStaNo()==203 && devpThread.ioModeOf2F == IoModeType.PAKOUT_MODE) {
+                            //鏈夊嚭搴撲换鍔★紝閫�搴撳埌鍏ュ簱鍙�
+                            staProtocol.setWorkNo((short) 9999);
+                            staProtocol.setStaNo((short)200);
+                            devpThread.setPakMk(staProtocol.getSiteId(), false);
+                            boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+                            News.error("MainServiceImpl  generateStoreWrkFile"+"203涓哄嚭搴撴ā寮忥紝绂佹鍏ュ簱锛岄��鍥炲叆搴撳彛銆傦紒锛侊紒");
+                            continue;
+                        }
+                    }
 
                     // 鑾峰彇鏉$爜鎵弿浠俊鎭�
                     BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, inSta.getBarcode());
@@ -1097,7 +1097,7 @@
                             .last(" and wrk_sts>11 and io_type in (103,107) "));
                     if(!Cools.isEmpty(one)){
                         News.error("MainServiceImpl  1099琛�"+"瀛樺湪鎹℃枡銆佺洏鐐规湭鍏ュ簱璐х墿锛�2鍙峰爢鍨涙満鏆傛椂绂佹鍑哄簱锛侊紒锛�");
-                        return false;
+                        continue;
                     }
                 }
 
@@ -1133,79 +1133,87 @@
                 if(one.getWrkSts() > 10 && (Utils.getGroupRow(wrkMast.getSourceLocNo()) != Utils.getGroupRow(one.getSourceLocNo())
                         || Utils.getBay(wrkMast.getSourceLocNo()) != Utils.getBay(one.getSourceLocNo())
                         || Utils.getLev(wrkMast.getSourceLocNo()) != Utils.getLev(one.getSourceLocNo()))){
-                    return false;
+                    continue;
                 }
                 //瀛樺湪绉诲簱浠诲姟锛屼笖鍦ㄧЩ鍥炰腑锛屼笖绉诲簱鐩爣搴撲綅涓庡緟鍑哄簱搴撲綅涓嶅湪鍚屼竴搴撲綅缁勶紝鏃惰烦鍑猴紝纭繚绉诲簱/鍑哄簱鍏ㄥ浠诲姟瀹屾垚鍚庯紝鍐嶆墽琛屼笅涓�绗�
                 if(one.getWrkSts() < 11  && (Utils.getGroupRow(wrkMast.getSourceLocNo()) != Utils.getGroupRow(one.getLocNo())
                         || Utils.getBay(wrkMast.getSourceLocNo()) != Utils.getBay(one.getLocNo())
                         || Utils.getLev(wrkMast.getSourceLocNo()) != Utils.getLev(one.getLocNo()))){
-                    return false;
+                    continue;
                 }
             }
 
             //鍑哄簱搴撲綅涓嶆槸鏈�澶栧眰搴撲綅锛屽垽鏂祬搴撲綅缁勬槸鍚﹂兘涓虹┖锛屾垨瀛樺湪搴撲綅绉昏浆浠诲姟
             boolean flag = false;
-            if(!locMastService.isOutMost(wrkMast.getSourceLocNo())){
+            if(!locMastService.isOutMost(wrkMast.getSourceLocNo())) {
                 WrkMast wrkMastMove = wrkMastMapper.selectLocMoveWorking(slave.getId());
-                if(wrkMastMove != null && wrkMast.getWrkNo() == 11){
+                if (wrkMastMove != null && wrkMast.getWrkNo() == 11) {
                     continue;
                 }
 
-                String[] shallowlocs  = Utils.getShallowLocs(wrkMast.getSourceLocNo());
-                if(!Cools.isEmpty(shallowlocs)){
-                    for(String shallowLocNo : shallowlocs){
-                        LocMast shallowLoc = locMastService.selectById(shallowLocNo);
-                        WrkMast waitWrkMast = wrkMastMapper.selectByLocNo(shallowLocNo);
-                        if (shallowLoc.getLocSts().equals("P") || shallowLoc.getLocSts().equals("R")) {
-                            if (null == waitWrkMast) {
-                                News.error("{}搴撲綅寮傚父锛屾湭妫�绱㈠埌鐩稿簲宸ヤ綔妗o紒", shallowLocNo);
-                            } else {
-                                //iotype=11锛寃rksts=17锛岃鏄庤揣鐗╁凡缁忕Щ搴撳埌鏆傚瓨搴撲綅锛岀瓑寰呭洖鍘熷簱浣�,姝ゆ椂鍏佽缁х画鍑哄簱
-                                if (waitWrkMast.getIoType()!=11 || waitWrkMast.getWrkSts()!=17) {
-                                    waitWrkMast.setIoPri((double) 9999);
-                                    waitWrkMast.setModiTime(new Date());
-                                    if (wrkMastMapper.updateById(waitWrkMast) == 0) {
-                                        News.error("璋冩暣宸ヤ綔妗d紭鍏堢骇澶辫触锛佸伐浣滃彿={}", waitWrkMast.getWrkNo());
-                                    }
-                                    if (waitWrkMast.getWrkSts() != 17) {
-                                        flag = true;
-                                    }
-                                    break;
-                                }
-                            }
-                        } else if (shallowLoc.getLocSts().equals("F") || shallowLoc.getLocSts().equals("D")) {
-                            if (null == waitWrkMast) {
-                                // 鐢熸垚涓�绗旂Щ搴撲换鍔″伐浣滄。銆佹敼鍙樻祬搴撲綅鐨勬簮搴�/鐩爣搴� 搴撲綅鐘舵��
-                                // 娌℃湁浣滀笟涓殑鍑哄簱浠诲姟鏃讹紝鎵嶈兘鐢熸垚绉诲簱浠诲姟
-                                WrkMast one2 = wrkMastService.selectOne(new EntityWrapper<WrkMast>()
-                                        .eq("crn_no",slave.getId())
-                                        .last(" and wrk_sts in (12,13,14,15,16)"));
-                                if(one2==null) {
-                                    moveLocForDeepLoc(slave, shallowLoc);
+                WrkMast two = wrkMastMapper.selectWorking1(slave.getId(), wrkMast.getWrkNo());
+                if (two != null) {//2鍙锋満鏈夊湪鎵ц浠诲姟鏃讹紝绂佹鐢熸垚绉诲簱宸ヤ綔妗�
+                    continue;
+                } else {
+                    String[] shallowlocs = Utils.getShallowLocs(wrkMast.getSourceLocNo());
+                    if (!Cools.isEmpty(shallowlocs)) {
+                        for (String shallowLocNo : shallowlocs) {
+                            LocMast shallowLoc = locMastService.selectById(shallowLocNo);
+                            WrkMast waitWrkMast = wrkMastMapper.selectByLocNo(shallowLocNo);
+                            if (shallowLoc.getLocSts().equals("P") || shallowLoc.getLocSts().equals("R")) {
+                                if (null == waitWrkMast) {
+                                    News.error("{}搴撲綅寮傚父锛屾湭妫�绱㈠埌鐩稿簲宸ヤ綔妗o紒", shallowLocNo);
                                 } else {
-                                    News.error("娴呭簱浣嶉樆濉炴椂锛屼笖娴呭簱浣嶅瓨鍦ㄤ綔涓氫腑鍑哄簱浠诲姟锛佸伐浣滃彿={}", one2.getWrkNo());
+                                    //iotype=11锛寃rksts=17锛岃鏄庤揣鐗╁凡缁忕Щ搴撳埌鏆傚瓨搴撲綅锛岀瓑寰呭洖鍘熷簱浣�,姝ゆ椂鍏佽缁х画鍑哄簱
+                                    if (waitWrkMast.getIoType() != 11 || waitWrkMast.getWrkSts() != 17) {
+                                        waitWrkMast.setIoPri((double) 9999);
+                                        waitWrkMast.setModiTime(new Date());
+                                        if (wrkMastMapper.updateById(waitWrkMast) == 0) {
+                                            News.error("璋冩暣宸ヤ綔妗d紭鍏堢骇澶辫触锛佸伐浣滃彿={}", waitWrkMast.getWrkNo());
+                                        }
+                                        if (waitWrkMast.getWrkSts() != 17) {
+                                            flag = true;
+                                        }
+                                        break;
+                                    }
                                 }
-                                flag = true;
-                                break;
-                            } else {
-                                if (waitWrkMast.getWrkSts()!=18) {
-                                    News.error("搴撲綅鍑哄簱鍒板爢鍨涙満绔� ===>> 搴撲綅鐘舵�佸湪搴擄紝浣嗘槸娴呭簱浣嶅凡瀛樺湪宸ヤ綔妗d换鍔★紒鍑哄簱搴撲綅={},娴呭簱浣嶅彿={}", shallowLoc.getLocNo());
+                            } else if (shallowLoc.getLocSts().equals("F") || shallowLoc.getLocSts().equals("D")) {
+                                if (null == waitWrkMast) {
+                                    // 鐢熸垚涓�绗旂Щ搴撲换鍔″伐浣滄。銆佹敼鍙樻祬搴撲綅鐨勬簮搴�/鐩爣搴� 搴撲綅鐘舵��
+                                    // 娌℃湁浣滀笟涓殑鍑哄簱浠诲姟鏃讹紝鎵嶈兘鐢熸垚绉诲簱浠诲姟
+                                    WrkMast one2 = wrkMastService.selectOne(new EntityWrapper<WrkMast>()
+                                            .eq("crn_no", slave.getId())
+                                            .last(" and wrk_sts in (12,13,14,15,16)"));
+                                    if (one2 == null) {
+                                        moveLocForDeepLoc(slave, shallowLoc);
+                                        // 缃《浠诲姟
+                                        wrkMast.setIoPri((double) 9999);
+                                        wrkMastMapper.updateById(wrkMast);
+                                    } else {
+                                        News.error("娴呭簱浣嶉樆濉炴椂锛屼笖娴呭簱浣嶅瓨鍦ㄤ綔涓氫腑鍑哄簱浠诲姟锛佸伐浣滃彿={}", one2.getWrkNo());
+                                    }
                                     flag = true;
                                     break;
+                                } else {
+                                    if (waitWrkMast.getWrkSts() != 18) {
+                                        News.error("搴撲綅鍑哄簱鍒板爢鍨涙満绔� ===>> 搴撲綅鐘舵�佸湪搴擄紝浣嗘槸娴呭簱浣嶅凡瀛樺湪宸ヤ綔妗d换鍔★紒鍑哄簱搴撲綅={},娴呭簱浣嶅彿={}", shallowLoc.getLocNo());
+                                        flag = true;
+                                        break;
+                                    }
+
                                 }
-
+                            } else if (shallowLoc.getLocSts().equals("Q") || shallowLoc.getLocSts().equals("S")) {
+                                News.error("搴撲綅鍑哄簱鍒板爢鍨涙満绔� ===>> 娴呭簱浣嶅簱浣嶇姸鎬佷负鍏ュ簱棰勭害锛佸嚭搴撳簱浣�={},娴呭簱浣嶅彿={}", shallowLoc.getLocNo());
+                                flag = true;
+                                break;
                             }
-                        } else if (shallowLoc.getLocSts().equals("Q") || shallowLoc.getLocSts().equals("S")){
-                            News.error("搴撲綅鍑哄簱鍒板爢鍨涙満绔� ===>> 娴呭簱浣嶅簱浣嶇姸鎬佷负鍏ュ簱棰勭害锛佸嚭搴撳簱浣�={},娴呭簱浣嶅彿={}", shallowLoc.getLocNo());
-                            flag = true;
-                            break;
-                        }
 
-                        //20230307 ADD锛屽啀鍔犱竴娆″垽鏂紝褰撴祬搴撲綅鐘舵�佷笉涓篛鏃讹紝涓嶆墽琛屽綋鍓嶅嚭搴撲换鍔�
-                        if(shallowLoc!=null && !shallowLoc.getLocSts().equals("O")){
-                            News.error("鍋氫簡娴呭簱浣嶉樆濉炲鐞嗗悗鍙嶅鍒ゆ柇锛屾祬搴撲綅鐘舵�佷笉涓篛 ===>> 娴呭簱浣嶅簱浣嶇姸鎬佷负鍏ュ簱棰勭害锛佸嚭搴撳簱浣�={},娴呭簱浣嶅彿={}", wrkMast.getSourceLocNo(), shallowLoc.getLocNo());
-                            flag = true;
-                            break;
+                            //20230307 ADD锛屽啀鍔犱竴娆″垽鏂紝褰撴祬搴撲綅鐘舵�佷笉涓篛鏃讹紝涓嶆墽琛屽綋鍓嶅嚭搴撲换鍔�
+                            if (shallowLoc != null && !shallowLoc.getLocSts().equals("O")) {
+                                News.error("鍋氫簡娴呭簱浣嶉樆濉炲鐞嗗悗鍙嶅鍒ゆ柇锛屾祬搴撲綅鐘舵�佷笉涓篛 ===>> 娴呭簱浣嶅簱浣嶇姸鎬佷负鍏ュ簱棰勭害锛佸嚭搴撳簱浣�={},娴呭簱浣嶅彿={}", wrkMast.getSourceLocNo(), shallowLoc.getLocNo());
+                                flag = true;
+                                break;
+                            }
                         }
                     }
                 }
@@ -1624,6 +1632,7 @@
             String locNo = Utils.append(row, bay, lev);
             String[] deeplocs  = Utils.getDeepLocs(locNo);
             if(!Cools.isEmpty(deeplocs)){
+                boolean ret = false;
                 for(String deepLocNo : deeplocs) {
                     LocMast deepLoc = locMastService.selectById(deepLocNo);
                     WrkMast waitWrkMast = wrkMastMapper.selectByLocNo1(deepLocNo);
@@ -1667,12 +1676,40 @@
                                 throw new CoolException("鏇存柊绉诲簱鍥炲簱鐩爣搴撲綅鐘舵�佸け璐�");
                             }
                         }
+                        ret = true;
                         break;
-//                    } else {
-//                        LocMast curLoc = locMastService.selectById(locNo);
-//                        if(curLoc != null && curLoc.getLocSts().equals("O")){
-//
-//                        }
+                    }
+                }
+                if(ret == false && !flag){//娣卞簱浣嶉兘涓嶄负O
+                    LocMast curLoc = locMastService.selectById(locNo);
+                    if(curLoc != null && curLoc.getLocSts().equals("O")){
+                        //淇敼绉诲簱宸ヤ綔妗�
+                        wrkMast.setSourceLocNo(wrkMast.getLocNo());
+                        wrkMast.setIoPri((double)9999);
+                        wrkMast.setWrkSts(2L);
+                        wrkMast.setLocNo(locNo);
+                        wrkMast.setSteNo(0);
+                        wrkMast.setModiTime(new Date());
+                        if (wrkMastMapper.updateById(wrkMast) == 0) {
+                            News.error("淇敼宸ヤ綔妗g姸鎬� 17.绉诲簱瀹屾垚 => 2.绉诲簱鍐嶅叆搴撲腑 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
+                        }
+
+                        if(curLoc.getLocSts().equals("O")){
+                            curLoc.setLocSts("S"); // S.鍏ュ簱棰勭害
+                            curLoc.setModiTime(new Date());
+                            if (!locMastService.updateById(curLoc)) {
+                                News.error("鍙屾繁搴撲綅 --- 鏇存柊鐩爣搴撲綅鐘舵�佸け璐ワ紒 寰呯Щ杞祬搴撲綅锛�" + curLoc.getLocNo());
+                                throw new CoolException("鏇存柊绉诲簱鍥炲簱鐩爣搴撲綅鐘舵�佸け璐�");
+                            }
+                        }
+                        LocMast sourceLoc = locMastService.selectById(wrkMast.getSourceLocNo());
+                        if(sourceLoc.getLocSts().equals("R") || sourceLoc.getLocSts().equals("D")){
+                            sourceLoc.setLocSts("R"); // R.鍑哄簱棰勭害
+                            sourceLoc.setModiTime(new Date());
+                            if (!locMastService.updateById(sourceLoc)) {
+                                throw new CoolException("鏇存柊绉诲簱鍥炲簱鐩爣搴撲綅鐘舵�佸け璐�");
+                            }
+                        }
                     }
                 }
             }
@@ -1810,6 +1847,64 @@
                     if (wrkMast.getWrkSts() == 3L) {
                         this.carMoveIn(wrkMast, wrkMast.getSteNo(), crnProtocol);
                     }
+                }
+            } else { //2023-4-20锛� 鏈�澶栧眰搴撲綅锛屾惉璧板皬杞︾洿鎺ョЩ搴�
+                // 鍒ゆ柇灏忚溅鏄惁鍦ㄦ渶澶栧眰搴撲綅锛屽鏋滄槸鍒欐惉璧帮紝濡傛灉涓嶆槸锛屽垯鐩存帴鍫嗗灈鏈哄叆搴�
+                Integer steNo = this.hasCar(wrkMast.getLocNo());
+                // 鏈夊皬杞�
+                if (steNo != null) {
+                    // 灏忚溅琛岃蛋鍒板爢鍨涙満寰呮惉绉荤偣
+                    if (wrkMast.getWrkSts() == 2L && wrkMast.getSteNo() == 0) {
+                        // 娌℃湁鍏朵粬浠诲姟
+                        if (null == wrkMastMapper.selectPakin(slave.getId(), steNo)) {
+                            this.letCarBeReady(wrkMast, steNo, wrkMast.getLocNo());
+                        }
+                    }
+                    // 灏忚溅鎼蛋
+                    if (wrkMast.getWrkSts() == 3L) {
+                        this.carMoveOut(wrkMast, steNo, crnProtocol);
+                    }
+                    // 娌℃湁灏忚溅
+                } else {
+
+                    // 褰撳墠鍏ュ簱搴撲綅缁勬病鏈夊皬杞� 鍫嗗灈鏈哄垯鍘荤珯鐐瑰彇璐у叆搴�
+                    // case 1锛氫粠濮嬭嚦缁堝簱浣嶇粍閮芥病鏈夊皬杞︼紝娌℃湁杩佸嚭灏忚溅鍔ㄤ綔锛屾墍浠ュ伐浣滅姸鎬� = 2
+                    // case 2锛氬爢鍨涙満宸茬粡鎼嚭灏忚溅锛屾湁杩佸嚭灏忚溅鍔ㄤ綔锛屾墍浠ュ伐浣滅姸鎬� = 6
+                    if (wrkMast.getWrkSts() == 2L && wrkMast.getSteNo() == 0) {
+
+                        // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
+                        if (wrkMastMapper.selectWorking(slave.getId()) != null) {
+                            return;
+                        }
+
+                        // 鍫嗗灈鏈哄叆搴� 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+                        CrnCommand crnCommand = new CrnCommand();
+                        crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
+                        crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙�
+                        crnCommand.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
+                        crnCommand.setCommand((short) 0);
+                        crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡:  搴撲綅绉昏浆
+                        crnCommand.setSourcePosX(sourceLoc.getRow1().shortValue());     // 婧愬簱浣嶆帓
+                        crnCommand.setSourcePosY(sourceLoc.getBay1().shortValue());     // 婧愬簱浣嶅垪
+                        crnCommand.setSourcePosZ(sourceLoc.getLev1().shortValue());     // 婧愬簱浣嶅眰
+                        crnCommand.setDestinationPosX(Utils.getGroupRow(loc.getLocNo()).shortValue());     // 鐩爣搴撲綅鎺�
+                        crnCommand.setDestinationPosY(loc.getBay1().shortValue());     // 鐩爣搴撲綅鍒�
+                        crnCommand.setDestinationPosZ(loc.getLev1().shortValue());     // 鐩爣搴撲綅灞�
+                        if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) {
+                            News.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
+                        } else {
+                            // 淇敼宸ヤ綔妗g姸鎬�  7.鍚婅溅鍏ュ簱涓�
+                            Date now = new Date();
+                            wrkMast.setWrkSts(7L);
+                            wrkMast.setCrnStrTime(now);
+                            wrkMast.setModiTime(now);
+                            if (wrkMastMapper.updateById(wrkMast) == 0) {
+                                News.error("淇敼宸ヤ綔妗g姸鎬� {} => 7.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkSts$(), wrkMast.getWrkNo());
+                            }
+                            return;
+                        }
+                    }
+
                 }
             }
         }
@@ -2501,7 +2596,7 @@
                     // 鍏呯數浠诲姟
                     WrkCharge wrkCharge = wrkChargeService.selectById(crnProtocol.getTaskNo());
                     if (wrkCharge == null) {
-                        News.error("鍫嗗灈鏈哄浜庣瓑寰呯‘璁や笖浠诲姟瀹屾垚鐘舵�侊紝浣嗘湭鎵惧埌宸ヤ綔妗c�傚爢鍨涙満鍙�={}锛屽伐浣滃彿={}", crn.getId(), crnProtocol.getTaskNo());
+                        News.error("鍫嗗灈鏈哄浜庣瓑寰呯‘璁や笖浠诲姟瀹屾垚鐘舵�侊紝浣嗘湭鎵惧埌鍏呯數宸ヤ綔妗c�傚爢鍨涙満鍙�={}锛屽伐浣滃彿={}", crn.getId(), crnProtocol.getTaskNo());
                         continue;
                     } else {
                         // 灏忚溅鎼嚦鎸囧畾搴撲綅瀹屾垚
@@ -2761,6 +2856,36 @@
                             News.error("淇敼宸ヤ綔妗g姸鎬� 4.杩佸叆灏忚溅 => 6.灏忚溅寰呭叆 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
                         }
                         // 鍏ュ簱 ===>> 杩佸嚭灏忚溅 瀹屾垚
+                    } else if (wrkMast.getWrkSts() == 5) {
+                        // 5.杩佸嚭灏忚溅 ==> 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()) {
+                                News.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))) {
+                                News.error("绌挎杞﹀緟鏈轰綅鍛戒护涓嬪彂澶辫触锛岀┛姊溅鍙�={}锛屼换鍔℃暟鎹�={}", wrkMast.getSteNo(), JSON.toJSON(steCommand));
+                            }
+                        } else {
+                            News.error("淇敼宸ヤ綔妗g姸鎬� 5.杩佸嚭灏忚溅 => 6.灏忚溅寰呭叆 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
+                        }
                     }
                     if (wrkMast.getWrkSts() == 16) {
                         Date now = new Date();
@@ -2946,10 +3071,11 @@
                 News.info("ste[id={}] 鏀跺埌绛夊緟WCS纭淇″彿锛屼絾鏄换鍔″彿(鍦板潃V824)涓�0", steProtocol.getSteNo());
             }
 
-            if (steProtocol.getWaiting() && steProtocol.getTaskNo() != 0 && steProtocol.getStatus() == 10) {
+            if (steProtocol.getWaiting() && steProtocol.getTaskNo() != 0) {
                 News.info("ste[id={}] 鎵ц宸ヤ綔妗e畬鎴愶紝浠诲姟鍙�={}, 绌挎杞︾姸鎬�={}", steProtocol.getSteNo(), steProtocol.getTaskNo(), steProtocol.getStatus());
                 if (steProtocol.getTaskNo() == 9999) {
                     steThread.setResetFlag(true);
+                    News.info("ste[id={}]灏忚溅澶嶄綅鏍囪 9999 鎴愬姛锛侊紒锛屽伐浣滃彿={}", steProtocol.getSteNo(), 9999);
                 } else {
                     // 鏌ヨ鏄惁鏈夊緟鍏ュ簱鐨勪换鍔�
                     WrkMast wrkMast = wrkMastMapper.selectCarWaiting(steProtocol.getTaskNo().intValue());
@@ -2966,6 +3092,7 @@
                                     News.error("淇敼鍏呯數浠诲姟鐘舵�� 21.鍑嗗鍏呯數 ===>> 22.灏忚溅寰呮惉 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkCharge.getWrkNo());
                                 } else {
                                     steThread.setResetFlag(true);
+                                    News.info("ste[id={}]灏忚溅澶嶄綅鏍囪 21.鍑嗗鍏呯數 ===>> 22.灏忚溅寰呮惉 鎴愬姛锛侊紒锛屽伐浣滃彿={}", steProtocol.getSteNo(), wrkCharge.getWrkNo());
                                 }
                             } else if (wrkCharge.getWrkSts() == 25) {
                                 // 25.灏忚溅鍘诲厖鐢� ===>> 26.绛夊緟鍏呯數
@@ -2974,6 +3101,7 @@
                                     News.error("淇敼鍏呯數浠诲姟鐘舵�� 25.灏忚溅鍘诲厖鐢� ===>> 26.绛夊緟鍏呯數 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkCharge.getWrkNo());
                                 } else {
                                     steThread.setResetFlag(true);
+                                    News.info("ste[id={}]灏忚溅澶嶄綅鏍囪 25.灏忚溅鍘诲厖鐢� ===>> 26.绛夊緟鍏呯數 鎴愬姛锛侊紒锛屽伐浣滃彿={}", steProtocol.getSteNo(), wrkCharge.getWrkNo());
                                 }
                             }  else if (wrkCharge.getWrkSts() == 32) {
                                 // 32.灏忚溅璧拌 ===>> 33.灏忚溅寰呮惉
@@ -2982,6 +3110,7 @@
                                     News.error("淇敼婕旂ず浠诲姟鐘舵�� 25.灏忚溅鍘诲厖鐢� ===>> 26.绛夊緟鍏呯數 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkCharge.getWrkNo());
                                 } else {
                                     steThread.setResetFlag(true);
+                                    News.info("ste[id={}]灏忚溅澶嶄綅鏍囪 25.灏忚溅鍘诲厖鐢� ===>> 26.绛夊緟鍏呯數 鎴愬姛锛侊紒锛屽伐浣滃彿={}", steProtocol.getSteNo(), wrkCharge.getWrkNo());
                                 }
                             } else if (wrkCharge.getWrkSts() == 36) {
                                 // 36.灏忚溅璧拌 ===>> 37.婕旂ず瀹屾垚
@@ -2990,9 +3119,13 @@
                                     News.error("淇敼婕旂ず浠诲姟鐘舵�� 36.灏忚溅璧拌 ===>> 37.婕旂ず瀹屾垚 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkCharge.getWrkNo());
                                 } else {
                                     steThread.setResetFlag(true);
+                                    News.info("ste[id={}]灏忚溅澶嶄綅鏍囪 36.灏忚溅璧拌 ===>> 37.婕旂ず瀹屾垚 鎴愬姛锛侊紒锛屽伐浣滃彿={}", steProtocol.getSteNo(), wrkCharge.getWrkNo());
                                 }
                             }
                         }
+                    }else{
+                        News.info("ste[id={}] 鎵ц宸ヤ綔妗e畬鎴愶紝浠诲姟鍙�={}, 绌挎杞︾姸鎬�={}锛屽伐浣滄。鐘舵��={}",
+                                steProtocol.getSteNo(), steProtocol.getTaskNo(), steProtocol.getStatus(), wrkMast.getWrkSts());
                     }
 
                     if (wrkMast == null) { continue; }
@@ -3002,9 +3135,10 @@
                             wrkMast.setWrkSts(3L);
                             wrkMast.setModiTime(now);
                             if (wrkMastMapper.updateById(wrkMast) == 0) {
-                                News.error("淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.灏忚溅寰呮惉 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
+                                News.error("ste[id={}] 淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.灏忚溅寰呮惉 澶辫触锛侊紒锛屽伐浣滃彿={}", steProtocol.getSteNo(), wrkMast.getWrkNo());
                             } else {
                                 steThread.setResetFlag(true);
+                                News.info("ste[id={}]灏忚溅澶嶄綅鏍囪 淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.灏忚溅寰呮惉 鎴愬姛锛侊紒锛屽伐浣滃彿={}", steProtocol.getSteNo(), wrkMast.getWrkNo());
                             }
                             break;
                         case 8:
@@ -3015,6 +3149,7 @@
                                 News.error("淇敼宸ヤ綔妗g姸鎬� 8.灏忚溅鎼叆搴� => 9.鍏ュ簱瀹屾垚 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
                             } else {
                                 steThread.setResetFlag(true);
+                                News.info("ste[id={}]灏忚溅澶嶄綅鏍囪 淇敼宸ヤ綔妗g姸鎬� 8.灏忚溅鎼叆搴� => 9.鍏ュ簱瀹屾垚 鎴愬姛锛侊紒宸ヤ綔鍙�={}", steProtocol.getSteNo(), wrkMast.getWrkNo());
                             }
                             break;
                         case 11:
@@ -3045,6 +3180,7 @@
                                 News.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.灏忚溅寰呮惉 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
                             } else {
                                 steThread.setResetFlag(true);
+                                News.info("ste[id={}]灏忚溅澶嶄綅鏍囪 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.灏忚溅寰呮惉 鎴愬姛锛侊紒锛屽伐浣滃彿={}", steProtocol.getSteNo(), wrkMast.getWrkNo());
                             }
                             break;
                         case 14:
@@ -3055,6 +3191,7 @@
                                 News.error("淇敼宸ヤ綔妗g姸鎬� 14.灏忚溅鎼嚭搴� => 15.绛夊緟鍚婅溅 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
                             } else {
                                 steThread.setResetFlag(true);
+                                News.info("ste[id={}]灏忚溅澶嶄綅鏍囪 淇敼宸ヤ綔妗g姸鎬� 14.灏忚溅鎼嚭搴� => 15.绛夊緟鍚婅溅 鎴愬姛锛侊紒锛屽伐浣滃彿={}", steProtocol.getSteNo(), wrkMast.getWrkNo());
                             }
                             break;
                     }
@@ -3679,6 +3816,7 @@
                                     News.error("淇敼鍏呯數浠诲姟鐘舵�� 26.绛夊緟鍏呯數 ===> 28.瀹屾垚鍏呯數 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkCharge.getWrkNo());
                                 } else {
                                     steThread.setResetFlag(true);
+                                    News.info("淇敼鍏呯數浠诲姟鐘舵�� 26.绛夊緟鍏呯數 ===> 28.瀹屾垚鍏呯數 鎴愬姛锛侊紒锛屽伐浣滃彿={}", wrkCharge.getWrkNo());
                                 }
                             }
                         } else {

--
Gitblit v1.9.1