From 9f37664a09f400d7308adccda19c515f1d95ec03 Mon Sep 17 00:00:00 2001
From: 18516761980 <4761516tqsxp>
Date: 星期二, 15 三月 2022 16:01:35 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |   94 ++++++++++++++++++++++++++++++++++-------------
 1 files changed, 68 insertions(+), 26 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 b27d91d..b3318a2 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -93,7 +93,6 @@
      * 缁勬墭
      * 鍏ュ簱绔欙紝鏍规嵁鏉$爜鎵弿鐢熸垚鍏ュ簱宸ヤ綔妗o紝宸ヤ綔鐘舵�� 2
      */
-    @Async
     public void generateStoreWrkFile() {
         // 鏍规嵁杈撻�佺嚎plc閬嶅巻
         for (DevpSlave devp : slaveProperties.getDevp()) {
@@ -105,14 +104,14 @@
                     continue;
                 }
                 String barcode = barcodeThread.getBarcode();
-                if(!Cools.isEmpty(barcode)) {
-                    log.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcode(), barcode);
-                    if("NG".endsWith(barcode) || "NoRead".equals(barcode)) {
-                        continue;
-                    }
-                } else {
-                    continue;
-                }
+//                if(!Cools.isEmpty(barcode)) {
+//                    log.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcode(), barcode);
+//                    if("NG".endsWith(barcode) || "NoRead".equals(barcode)) {
+//                        continue;
+//                    }
+//                } else {
+//                    continue;
+//                }
 
                 // 鑾峰彇鍏ュ簱绔欎俊鎭�
                 DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
@@ -126,7 +125,20 @@
                 if (staProtocol.isAutoing() && staProtocol.isLoading()
                         && staProtocol.isInEnable()
                         && !staProtocol.isEmptyMk() && (staProtocol.getWorkNo() == 0 || staProtocol.getWorkNo() == 9999)
-                        && staProtocol.isPakMk() && !Cools.isEmpty(barcode)) {
+                        && staProtocol.isPakMk()){// && !Cools.isEmpty(barcode)) {
+
+                    if(Cools.isEmpty(barcode) || "NG".endsWith(barcode) || "NoRead".equals(barcode)) {
+                        log.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcode(), barcode);
+                        //鏉$爜涓虹┖鎴栬�呬笉绗﹀悎锛岄��搴撳埌172绔欑偣
+                        staProtocol.setWorkNo((short)9999);
+                        staProtocol.setStaNo((short)172);
+                        devpThread.setPakMk(staProtocol.getSiteId(), false);
+                        boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+                        if (!result) {
+                            throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
+                        }
+                        continue;
+                    }
 
                     // 鍒ゆ柇閲嶅宸ヤ綔妗�
                     WrkMast wrkMast = wrkMastMapper.selectPakInStep1(inSta.getStaNo(), barcode);
@@ -247,7 +259,6 @@
      * wms鍏ュ簱
      * 鍏ュ簱绔欙紝鏍规嵁鏉$爜鎵弿鐢熸垚鍏ュ簱宸ヤ綔妗o紝宸ヤ綔鐘舵�� 1 ==>> 2
      */
-    @Async
     public void generateStoreWrkFile0() {
         // 鏍规嵁杈撻�佺嚎plc閬嶅巻
         for (DevpSlave devp : slaveProperties.getDevp()) {
@@ -298,8 +309,7 @@
     /**
      * 鎷f枡銆佸苟鏉裤�佺洏鐐瑰啀鍏ュ簱
      */
-    @Async
-    public void stnToCrnStnPick(){
+    public synchronized void stnToCrnStnPick(){
         for (DevpSlave devp : slaveProperties.getDevp()) {
             // 閬嶅巻鎷f枡鍏ュ簱鍙�
             for (DevpSlave.Sta pickSta : devp.getPickSta()) {
@@ -309,14 +319,14 @@
                     continue;
                 }
                 String barcode = barcodeThread.getBarcode();
-                if(!Cools.isEmpty(barcode)) {
-                    log.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", pickSta.getBarcode(), barcode);
-                    if("NG".endsWith(barcode) || "NoRead".equals(barcode)) {
-                        continue;
-                    }
-                } else {
-                    continue;
-                }
+//                if(!Cools.isEmpty(barcode)) {
+//                    log.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", pickSta.getBarcode(), barcode);
+//                    if("NG".endsWith(barcode) || "NoRead".equals(barcode)) {
+//                        continue;
+//                    }
+//                } else {
+//                    continue;
+//                }
 
                 // 鑾峰彇鎷f枡鍏ュ簱绔欎俊鎭�
                 DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
@@ -327,6 +337,20 @@
                     staProtocol = staProtocol.clone();
                 }
                 if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() && staProtocol.isPakMk()){
+
+                    if(Cools.isEmpty(barcode) || "NG".endsWith(barcode) || "NoRead".equals(barcode)) {
+                        log.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", pickSta.getBarcode(), barcode);
+                        //鏉$爜涓虹┖鎴栬�呬笉绗﹀悎锛岄��搴撳埌172绔欑偣
+                        staProtocol.setWorkNo((short)9999);
+                        staProtocol.setStaNo((short)172);
+                        devpThread.setPakMk(staProtocol.getSiteId(), false);
+                        boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+                        if (!result) {
+                            throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
+                        }
+                        continue;
+                    }
+
                     WrkMast wrkMast = wrkMastMapper.selectPickStep(barcode);
                     if (wrkMast == null) {
                         // 鏃犳嫞鏂欐暟鎹�
@@ -596,6 +620,11 @@
                         moveLocForDeepLocPakin(slave, shallowLoc, wrkMast);
                     }
                     continue;
+                } else if (shallowLoc.getLocSts().equals("Q")){
+                    WrkMast waitWrkMast = wrkMastMapper.selectByLocNo(shallowLocNo);
+                    if (null != waitWrkMast && waitWrkMast.getWrkSts()==4) {
+                        continue;
+                    }
                 }
             }
 
@@ -694,13 +723,17 @@
                         if (null == waitWrkMast) {
                             log.error("{}搴撲綅寮傚父锛屾湭妫�绱㈠埌鐩稿簲宸ヤ綔妗o紒", shallowLocNo);
                         } else {
-                            waitWrkMast.setIoPri(15D);
-                            waitWrkMast.setModiTime(new Date());
-                            if (wrkMastMapper.updateById(waitWrkMast) == 0) {
-                                log.error("璋冩暣宸ヤ綔妗d紭鍏堢骇澶辫触锛佸伐浣滃彿={}", waitWrkMast.getWrkNo());
+                            if(waitWrkMast.getWrkSts() == 11) {
+                                waitWrkMast.setIoPri(15D);
+                                waitWrkMast.setModiTime(new Date());
+                                if (wrkMastMapper.updateById(waitWrkMast) == 0) {
+                                    log.error("璋冩暣宸ヤ綔妗d紭鍏堢骇澶辫触锛佸伐浣滃彿={}", waitWrkMast.getWrkNo());
+                                }
+                                continue;
+                            } else {
+
                             }
                         }
-                        continue;
                     } else if (shallowLoc.getLocSts().equals("F") || shallowLoc.getLocSts().equals("D")) {
                         // 姝ゆ爣璁伴伩鍏嶅娆℃墽琛岀Щ搴撲换鍔�
                         if (Cools.isEmpty(wrkMast.getUpdMk()) || "N".equals(wrkMast.getUpdMk())) {
@@ -1332,6 +1365,15 @@
         for (Integer row : rows) {
             if (Utils.isDeepLoc(slaveProperties, row)) {
                 loc = locMastService.queryFreeLocMast(row, shallowLoc.getLocType1());
+
+                if (Utils.isDeepLoc(slaveProperties, loc.getLocNo())){
+                    String shallowLocNo = Utils.getShallowLoc(slaveProperties, loc.getLocNo());
+                    LocMast shallowLoc1 = locMastService.selectById(shallowLocNo);
+                    if(!shallowLoc1.getLocSts().equals("O")){
+                        loc = null;
+                    }
+                }
+
                 if (null != loc) { break; }
             }
         }

--
Gitblit v1.9.1