From 6f49bcc6b53e34ffd9a2c1fb28d761cf1f427a85 Mon Sep 17 00:00:00 2001
From: TQS <56479841@qq.com>
Date: 星期二, 20 十二月 2022 10:25:51 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |   65 ++++++++++++++++++++++++++++++--
 1 files changed, 60 insertions(+), 5 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 c72a8a9..44e1231 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -63,6 +63,8 @@
     @Autowired
     private WrkMastMapper wrkMastMapper;
     @Autowired
+    private WrkMastService wrkMastService;
+    @Autowired
     private WrkDetlService wrkDetlService;
     @Autowired
     private LocMastService locMastService;
@@ -609,6 +611,7 @@
 
                         // 鏇存柊宸ヤ綔妗g姸鎬佷负 17.鍑哄簱瀹屾垚
                         wrkMast.setWrkSts(17L);
+                        wrkMast.setSteNo(0);
                         wrkMast.setCrnEndTime(new Date());
                         if (wrkMastMapper.updateById(wrkMast) != 0) {
                             // 澶嶄綅鍫嗗灈鏈�
@@ -712,6 +715,18 @@
 //                log.error("{}绔欑偣鏌ヨ鏃犲緟鍏ュ簱鏁版嵁 宸ヤ綔鍙�={}", crnStn.getStaNo(), staProtocol.getWorkNo());
                 continue;
             }
+
+            // 鍒ゆ柇鏄惁宸插瓨鍦ㄥ皬杞︾粦瀹氫换鍔�
+            BasSte basSte = basSteService.findByCrnNo(wrkMast.getCrnNo());
+            if(basSte == null) continue;
+            WrkMast one1 = wrkMastService.selectOne(new EntityWrapper<WrkMast>()
+                    .eq("ste_no",basSte.getSteNo())
+                    .last(" and wrk_sts > 10"));
+            if(one1 != null){
+                log.error("{}鍏ュ簱浠诲姟鏃犳硶浣滀笟锛屽洜鍑哄簱浠诲姟宸茬粦瀹氬皬杞�!", wrkMast.getWrkNo());
+                continue;
+            }
+
             if (wrkMast.getWrkSts() < 3) {
                 if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() > 0 && staProtocol.isInEnable()
                         && staDetl.getCanining()!=null && staDetl.getCanining().equals("Y")) {
@@ -869,7 +884,7 @@
                     }
                 // 娌℃湁灏忚溅
                 } else {
-                    if (wrkMast.getWrkSts() == 2L && wrkMast.getSteNo() == null) {
+                    if (wrkMast.getWrkSts() == 2L && (wrkMast.getSteNo() == null || wrkMast.getSteNo() == 0)) {
                         // 瀵绘壘褰撳墠鍫嗗灈鏈哄搴旂殑灏忚溅
                         SteThread steThread = queryIdleCar(wrkMast);
                         if (steThread != null) {
@@ -902,22 +917,32 @@
                 continue;
             }
 
+            // 鍒ゆ柇鏄惁宸插瓨鍦ㄥ皬杞︾粦瀹氫换鍔�
+            BasSte basSte = basSteService.findByCrnNo(wrkMast.getCrnNo());
+            if(basSte == null) continue;
+            WrkMast one1 = wrkMastService.selectOne(new EntityWrapper<WrkMast>()
+                    .eq("ste_no",basSte.getSteNo())
+                    .last(" and wrk_sts < 10"));
+            if(one1 != null){
+                log.error("{}鍑哄簱浠诲姟鏃犳硶浣滀笟锛屽洜鍏ュ簱浠诲姟宸茬粦瀹氬皬杞�!", wrkMast.getWrkNo());
+                continue;
+            }
+
             //鍔犲己鍒ゆ柇锛岀‘淇濆洜鍑哄簱瀵艰嚧鐨勭Щ搴撴暣濂椾换鍔″叏閮ㄧ粨鏉熷悗锛屾墠鑳芥墽琛屼笅涓�绗斿嚭搴撲换鍔°�傚彧鏈夊簱浣嶅畬鎴愮Щ搴撳洖鍘诲叏閮ㄤ换鍔″悗锛屾墠璁や负褰撶粍鍑哄簱浠诲姟瀹屾垚
             WrkMast one = wrkMastMapper.selectLocMoveData(slave.getId());
             if(!Cools.isEmpty(one)){
                 //瀛樺湪绉诲簱浠诲姟锛屼笖鍦ㄧЩ鍑轰腑锛屼笖绉诲簱婧愬簱浣嶄笌寰呭嚭搴撳簱浣嶄笉鍦ㄥ悓涓�搴撲綅缁勶紝鏃惰烦鍑猴紝纭繚绉诲簱/鍑哄簱鍏ㄥ浠诲姟瀹屾垚鍚庯紝鍐嶆墽琛屼笅涓�绗�
-                if(one.getWrkSts() > 10 && (Utils.getGroupRow(wrkMast.getSourceLocNo()) != Utils.getGroupRow(one.getSourceLocNo())
+                if(wrkMast.getWrkNo() ==11  && 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())
+                if(wrkMast.getWrkNo() ==11  && 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;
                 }
-                log.info("");
             }
 
             //鍑哄簱搴撲綅涓嶆槸鏈�澶栧眰搴撲綅锛屽垽鏂祬搴撲綅缁勬槸鍚﹂兘涓虹┖锛屾垨瀛樺湪搴撲綅绉昏浆浠诲姟
@@ -1184,6 +1209,23 @@
         if (null == wrkMast) {
             return;
         }
+        // 杩囨护
+        if (null != wrkMastMapper.selectPakin(slave.getId(), null)) {
+            log.error("{}鍑哄簱浠诲姟鏃犳硶浣滀笟锛屽洜瀛樺湪鍏ュ簱涓换鍔�!", wrkMast.getWrkNo());
+            return;
+        }
+
+        // 鍒ゆ柇鏄惁宸插瓨鍦ㄥ皬杞︾粦瀹氫换鍔�
+        BasSte basSte = basSteService.findByCrnNo(wrkMast.getCrnNo());
+        if(basSte == null) return;
+        WrkMast one = wrkMastService.selectOne(new EntityWrapper<WrkMast>()
+                .eq("ste_no",basSte.getSteNo())
+                .last(" and io_type != 11 and wrk_sts < 10"));
+        if(one != null){
+            log.error("{}绉诲簱浠诲姟鏃犳硶浣滀笟锛屽洜鍏ュ簱浠诲姟宸茬粦瀹氬皬杞�!", wrkMast.getWrkNo());
+            return;
+        }
+
         // 鑾峰彇婧愬簱浣嶄俊鎭�
         LocMast sourceLoc = locMastService.selectById(wrkMast.getSourceLocNo());
         if (null == sourceLoc) {
@@ -1470,7 +1512,20 @@
                     if (wrkMast.getWrkSts() == 2L && (wrkMast.getSteNo() == null || wrkMast.getSteNo() == 0)) {
                         // 娌℃湁鍏朵粬浠诲姟
                         if (null == wrkMastMapper.selectPakin(slave.getId(), steNo)) {
-                            this.letCarBeWaiting(wrkMast, steNo, wrkMast.getLocNo());
+                            SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, steNo);
+                            SteProtocol steProtocol = steThread.getSteProtocol();
+                            if (steProtocol == null) { return; }
+                            if(steProtocol.getLoca()==3 || steProtocol.getLoca()==4){
+                                //灏忚溅宸茬粡鍦ㄥ緟鏈轰綅鏃讹紝鏃犻渶涓嬪彂鍒板緟鏈轰綅浠诲姟锛岀洿鎺ユ洿鏂扮姸鎬佸井3锛屽悓鏃剁粦瀹氬皬杞�
+                                wrkMast.setWrkSts(3L);
+                                wrkMast.setSteNo(steNo);
+                                wrkMast.setModiTime(new Date());
+                                if (wrkMastMapper.updateById(wrkMast) == 0) {
+                                    log.error("淇敼宸ヤ綔妗g姸鎬� 缁戝畾绌挎杞� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
+                                }
+                            } else {
+                                this.letCarBeWaiting(wrkMast, steNo, wrkMast.getLocNo());
+                            }
                         }
                     }
                     // 鍫嗗灈鏈哄皢璐ф斁鑷冲皬杞︿笂 3.灏忚溅寰呮惉锛堝皬杞︿笉鐢ㄦ惉杩愶紝宸茬粡鍦ㄥ綋鍓嶇粍搴撲綅锛� / 6.灏忚溅寰呭叆  ===>> 7.鍚婅溅鍏ュ簱涓�

--
Gitblit v1.9.1