From 989fbd8c5ca747e8861daa8d0c22129936b08f91 Mon Sep 17 00:00:00 2001
From: TQS <56479841@qq.com>
Date: 星期六, 19 十一月 2022 20:42:42 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |  154 +++++++++++++++++++++++++++++----------------------
 1 files changed, 87 insertions(+), 67 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 0fd19cd..b35e94d 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -472,12 +472,12 @@
                             }
                             LocMast locMast = null;
                             // 淇敼婧愬簱浣嶇姸鎬� O.绌哄簱浣�
-                            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");
@@ -486,9 +486,9 @@
                                 throw new CoolException(wrkMast.getWrkNo() + "淇敼鐩爣搴撲綅鐘舵�� Q.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴�");
                             }
                             // 搴撳瓨鏄庣粏杞Щ
-                            if (!locDetlService.updateLocNo(wrkMast.getLocNo(), sourceLocNo)) {
-                                throw new CoolException(wrkMast.getWrkNo() + "浠诲姟搴撳瓨鏄庣粏杞Щ澶辫触锛侊紒锛�");
-                            }
+//                            if (!locDetlService.updateLocNo(wrkMast.getLocNo(), sourceLocNo)) {
+//                                throw new CoolException(wrkMast.getWrkNo() + "浠诲姟搴撳瓨鏄庣粏杞Щ澶辫触锛侊紒锛�");
+//                            }
 
                             // 鏉$爜璁惧澶勭悊
                             barcodeThread.setBarcode("");
@@ -541,47 +541,6 @@
     /**
      * 鐩樼偣璐х墿鎶佃揪鐩樼偣鐩爣绔� wrkMast.sourceLoc P ===>> O
      */
-    public void pickWrkCompleteStaNo0() {
-        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());
-//                        }
-//                    }
-                }
-
-            }
-        }
-    }
-
-    /**
-     * 鐩樼偣璐х墿鎶佃揪鐩樼偣鐩爣绔� wrkMast.sourceLoc P ===>> O
-     */
     public void pickWrkCompleteStaNo() {
         List<WrkMast> wrkMasts = wrkMastMapper.selectPick17(null, null);
         for (WrkMast wrkMast : wrkMasts) {
@@ -593,9 +552,11 @@
                 if (!locMastService.updateById(locMast)) {
                     throw new CoolException(wrkMast.getWrkNo() + "淇敼婧愬簱浣嶇姸鎬� O.绌哄簱浣�");
                 }
+                locDetlService.delete(new EntityWrapper<LocDetl>().eq("loc_no", wrkMast.getSourceLocNo()));
             }
             // 淇敼宸ヤ綔妗�
             wrkMast.setIoPri(13D);
+            wrkMast.setModiTime(new Date());
             if (wrkMastMapper.updateById(wrkMast) == 0) {
                 log.error("鏇存柊宸ヤ綔妗g殑浼樺厛绾уけ璐ワ紒锛侊紒 [宸ヤ綔鍙�:{}]", wrkMast.getWrkNo());
             }
@@ -740,6 +701,14 @@
                 log.error("鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo());
                 continue;
             }
+
+            //鍔犲己鍒ゆ柇锛屽彧瑕佸瓨鍦ㄧЩ搴撲换鍔★紝璇存槑鍑哄簱浠诲姟鏈畬鍏ㄧ粨鏉燂紝涓嶆墽琛屽叆搴撲换鍔�
+            WrkMast one = wrkMastMapper.selectLocMoveData(slave.getId());
+            if(!Cools.isEmpty(one)){
+                log.error("鍏ュ簱 ===>> 瀛樺湪绉诲簱鏈畬鎴愪换鍔★紝涓嶈兘鍏ュ簱銆傜Щ搴撲换鍔″彿={},鍫嗗灈鏈哄彿={}", one.getWrkNo(), slave.getId());
+                continue;
+            }
+
             // 鑾峰彇宸ヤ綔鐘舵�佷负 2,3,4,5,6 鐨勫叆搴撳伐浣滄。
             WrkMast wrkMast = wrkMastMapper.selectPakInStep23456(slave.getId(), staProtocol.getWorkNo().intValue(), crnStn.getStaNo());
             if(null == wrkMast) {
@@ -934,6 +903,23 @@
                 continue;
             }
 
+            //鍔犲己鍒ゆ柇锛岀‘淇濆洜鍑哄簱瀵艰嚧鐨勭Щ搴撴暣濂椾换鍔″叏閮ㄧ粨鏉熷悗锛屾墠鑳芥墽琛屼笅涓�绗斿嚭搴撲换鍔°�傚彧鏈夊簱浣嶅畬鎴愮Щ搴撳洖鍘诲叏閮ㄤ换鍔″悗锛屾墠璁や负褰撶粍鍑哄簱浠诲姟瀹屾垚
+            WrkMast one = wrkMastMapper.selectLocMoveData(slave.getId());
+            if(!Cools.isEmpty(one)){
+                //瀛樺湪绉诲簱浠诲姟锛屼笖鍦ㄧЩ鍑轰腑锛屼笖绉诲簱婧愬簱浣嶄笌寰呭嚭搴撳簱浣嶄笉鍦ㄥ悓涓�搴撲綅缁勶紝鏃惰烦鍑猴紝纭繚绉诲簱/鍑哄簱鍏ㄥ浠诲姟瀹屾垚鍚庯紝鍐嶆墽琛屼笅涓�绗�
+                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()))){
+                    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()))){
+                    continue;
+                }
+            }
+
             //鍑哄簱搴撲綅涓嶆槸鏈�澶栧眰搴撲綅锛屽垽鏂祬搴撲綅缁勬槸鍚﹂兘涓虹┖锛屾垨瀛樺湪搴撲綅绉昏浆浠诲姟
             boolean flag = false;
             if(!locMastService.isOutMost(wrkMast.getSourceLocNo())){
@@ -969,9 +955,12 @@
                                 flag = true;
                                 break;
                             } else {
-                                log.error("搴撲綅鍑哄簱鍒板爢鍨涙満绔� ===>> 搴撲綅鐘舵�佸湪搴擄紝浣嗘槸娴呭簱浣嶅凡瀛樺湪宸ヤ綔妗d换鍔★紒鍑哄簱搴撲綅={},娴呭簱浣嶅彿={}", shallowLoc.getLocNo());
-                                flag = true;
-                                break;
+                                if (waitWrkMast.getWrkSts()!=18) {
+                                    log.error("搴撲綅鍑哄簱鍒板爢鍨涙満绔� ===>> 搴撲綅鐘舵�佸湪搴擄紝浣嗘槸娴呭簱浣嶅凡瀛樺湪宸ヤ綔妗d换鍔★紒鍑哄簱搴撲綅={},娴呭簱浣嶅彿={}", shallowLoc.getLocNo());
+                                    flag = true;
+                                    break;
+                                }
+
                             }
                         } else if (shallowLoc.getLocSts().equals("Q") || shallowLoc.getLocSts().equals("S")){
                             log.error("搴撲綅鍑哄簱鍒板爢鍨涙満绔� ===>> 娴呭簱浣嶅簱浣嶇姸鎬佷负鍏ュ簱棰勭害锛佸嚭搴撳簱浣�={},娴呭簱浣嶅彿={}", shallowLoc.getLocNo());
@@ -1365,7 +1354,8 @@
                 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")){
+                    if(deepLoc != null && !deepLoc.getLocSts().equals("F") && !deepLoc.getLocSts().equals("D") && !deepLoc.getLocSts().equals("O")){
+                        log.error("绉诲簱鍐嶅洖搴撴椂锛屾繁搴撲綅缁勬繁搴撲綅鐘舵�佷负浣滀笟涓� ===>> deepLoc={},loc_sts={}", deepLoc.getLocNo(), deepLoc.getLocSts());
                         flag = true;
                         break;
                     }
@@ -1378,7 +1368,7 @@
                         wrkMast.setSteNo(null);
                         wrkMast.setModiTime(new Date());
                         if (wrkMastMapper.updateById(wrkMast) == 0) {
-                            log.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
+                            log.error("淇敼宸ヤ綔妗g姸鎬� 17.绉诲簱瀹屾垚 => 2.绉诲簱鍐嶅叆搴撲腑 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
                         }
 
                         if(deepLoc.getLocSts().equals("O")){
@@ -1390,13 +1380,13 @@
                             }
                         }
                         LocMast sourceLoc = locMastService.selectById(wrkMast.getSourceLocNo());
-//                        if(sourceLoc.getLocSts().equals("F")){
+                        if(sourceLoc.getLocSts().equals("F")){
                             sourceLoc.setLocSts("R"); // R.鍑哄簱棰勭害
                             sourceLoc.setModiTime(new Date());
                             if (!locMastService.updateById(sourceLoc)) {
                                 throw new CoolException("鏇存柊绉诲簱鍥炲簱鐩爣搴撲綅鐘舵�佸け璐�");
                             }
-//                        }
+                        }
                         break;
                     }
                 }
@@ -2422,12 +2412,35 @@
 //                        }
                         if (locMastService.isOutMost(wrkMast.getLocNo())) {
                             wrkMast.setWrkSts(17L);
-//                            LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
-//                            locMast.setLocSts("F");
-//                            locMast.setModiTime(new Date());
-//                            if (!locMastService.updateById(locMast)) {
-//                                log.error("");
-//                            }
+                            // 榛樿鐩爣搴撲綅鏄┖鏉�
+                            String locSts = "D";
+                            // 搴撲綅绉昏浆鍒ゆ柇鏄惁涓虹┖鏉跨Щ杞�
+                            if (wrkMast.getEmptyMk().equals("N")) {
+                                locSts = "F";
+                                // 杞Щ搴撳瓨鏄庣粏鏁版嵁: 搴撳瓨鍙� 鐢卞伐浣滄。婧愬簱浣嶅彉涓虹洰鏍囧簱浣�
+                                if (!locDetlService.updateLocNo(wrkMast.getLocNo(), wrkMast.getSourceLocNo())) {
+                                    log.error("搴撲綅绉昏浆 ===>> 杞Щ搴撳瓨鏄庣粏鏁版嵁澶辫触锛沎婧愬簱浣�={}],[鐩爣搴撲綅={}]", wrkMast.getSourceLocNo(), wrkMast.getLocNo());
+                                    continue;
+                                }
+                            }
+                            // 淇敼婧愬簱浣嶇姸鎬� ==> O
+                            LocMast sourceLoc = locMastService.selectById(wrkMast.getSourceLocNo());
+                            if (null != sourceLoc) {
+                                sourceLoc.setBarcode("");
+                                sourceLoc.setLocSts("O");
+                                sourceLoc.setModiTime(now);
+                                sourceLoc.setIoTime(now);
+                                if (!locMastService.updateById(sourceLoc)) {
+                                    log.error("搴撲綅绉昏浆 ===>> 淇敼婧愬簱浣嶇姸鎬佸け璐ワ紱[workNo={}],[sourceLoc={}]", wrkMast.getWrkNo(), wrkMast.getSourceLocNo());
+                                }
+                            }
+                            // 淇敼鐩爣搴撲綅鐘舵�� ==> .locSts
+                            LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
+                            locMast.setLocSts(locSts);
+                            locMast.setModiTime(new Date());
+                            if (!locMastService.updateById(locMast)) {
+                                log.error("");
+                            }
                         }
                         wrkMast.setModiTime(now);
                         // 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満
@@ -2559,8 +2572,12 @@
             SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, ste.getId());
             SteProtocol steProtocol = steThread.getSteProtocol();
             if (steProtocol == null) { continue; }
-            if (steProtocol.getWaiting() && steProtocol.getTaskNo() != 0) {
-                log.info("ste[id={}] 鎵ц宸ヤ綔妗e畬鎴愶紝浠诲姟鍙�={}", steProtocol.getSteNo(), steProtocol.getTaskNo());
+            if (steProtocol.getWaiting() && steProtocol.getTaskNo() == 0){
+                log.info("ste[id={}] 鏀跺埌绛夊緟WCS纭淇″彿锛屼絾鏄换鍔″彿(鍦板潃V824)涓�0", steProtocol.getSteNo());
+            }
+
+            if (steProtocol.getWaiting() && steProtocol.getTaskNo() != 0 && steProtocol.getStatus() == 10) {
+                log.info("ste[id={}] 鎵ц宸ヤ綔妗e畬鎴愶紝浠诲姟鍙�={}, 绌挎杞︾姸鎬�={}", steProtocol.getSteNo(), steProtocol.getTaskNo(), steProtocol.getStatus());
                 if (steProtocol.getTaskNo() == 9999) {
                     steThread.setResetFlag(true);
                 } else {
@@ -3066,10 +3083,13 @@
                     List<WrkDetl> wrkDetls = wrkDetlService.findByWorkNo(wrkMast.getWrkNo());
                     wrkDetls.forEach(wrkDetl -> {
                         if (wrkMast.getIoType() == 101) {
-                            ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getAnfme()));
+                            ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getAnfme()));
                         }
                         if (wrkMast.getIoType() == 103 && (null == wrkDetl.getInspect() || 0 == wrkDetl.getInspect())) {
-                            ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getAnfme()));
+                            ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getAnfme()));
+                        }
+                        if (wrkMast.getIoType() == 107) {
+                            ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getAnfme()));
                         }
                     });
                 }

--
Gitblit v1.9.1