From 7912915a2b076e7ed4772ce2939f33862587a54b Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@63.com>
Date: 星期二, 22 三月 2022 17:19:32 +0800
Subject: [PATCH] Merge branch 'xgmwcs' of http://47.97.1.152:5880/r/zy-wcs into xgmwcs

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |  154 ++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 103 insertions(+), 51 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 5e351b0..b5c0f3b 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -89,6 +89,8 @@
     private BasCrnErrorMapper basCrnErrorMapper;
     @Value("${wms.url}")
     private String wmsUrl;
+    @Value("${crnBackHp.enable}")
+    private boolean crnBackHp;
 
     /**
      * 缁勬墭
@@ -105,14 +107,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;
+                }
 
                 // 鑾峰彇鍏ュ簱绔欎俊鎭�
                 SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
@@ -123,8 +125,8 @@
                     staProtocol = staProtocol.clone();
                 }
 
-                // 鍏ュ嚭搴撴ā寮忓垽鏂�
-                if (devpThread.ioMode != IoModeType.PAKIN_MODE) { continue; }
+//                // 鍏ュ嚭搴撴ā寮忓垽鏂�
+//                if ( inSta.getStaNo()==180 && devpThread.ioMode != IoModeType.PAKIN_MODE) { continue; }
 
                 // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
                 if (staProtocol.isAutoing() && staProtocol.isLoading()
@@ -132,18 +134,18 @@
                         && !staProtocol.isEmptyMk() && (staProtocol.getWorkNo() == 0 || staProtocol.getWorkNo() == 9999)
                         && 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;
-                    }
+//                    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);
@@ -278,8 +280,8 @@
                     staProtocol = staProtocol.clone();
                 }
 
-                // 鍏ュ嚭搴撴ā寮忓垽鏂�
-                if (devpThread.ioMode != IoModeType.PAKIN_MODE) { continue; }
+//                // 鍏ュ嚭搴撴ā寮忓垽鏂�
+//                if (devpThread.ioMode != IoModeType.PAKIN_MODE) { continue; }
 
                 // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
                 if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable()
@@ -328,14 +330,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枡鍏ュ簱绔欎俊鎭�
                 SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
@@ -346,23 +348,23 @@
                     staProtocol = staProtocol.clone();
                 }
 
-                // 鍏ュ嚭搴撴ā寮忓垽鏂�
-                if (devpThread.ioMode != IoModeType.PAKIN_MODE) { continue; }
+//                // 鍏ュ嚭搴撴ā寮忓垽鏂�
+//                if (devpThread.ioMode != IoModeType.PAKIN_MODE) { continue; }
 
                 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;
-                    }
+//                    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) {
@@ -549,7 +551,57 @@
             }
             // 搴撲綅绉昏浆
             this.locToLoc(crn, crnProtocol);
+
+            if (crnBackHp) {
+                //鍫嗗灈鏈烘病鏈夋墽琛屼腑浠诲姟锛岃澶囧瓨鍦ㄥ叆搴撲换鍔℃椂鍙洖鍘熺偣
+                this.crnRebackHp(crn, crnProtocol);
+            }
         }
+    }
+
+    /**
+     * 鍥炲師鐐癸紝鍫嗗灈鏈烘病鏈夋墽琛屼腑浠诲姟锛岃澶囧瓨鍦ㄥ叆搴撲换鍔℃椂鍙洖鍘熺偣
+     * @param slave
+     * @param crnProtocol
+     */
+    public void crnRebackHp(CrnSlave slave, CrnProtocol crnProtocol){
+            // 鍫嗗灈鏈烘帶鍒惰繃婊�
+            if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0
+                || crnProtocol.getModeType() != CrnModeType.AUTO) {
+                return;
+            }
+
+            // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
+            if (wrkMastMapper.selectWorking(slave.getId()) != null) {
+                return;
+            }
+
+            //鍫嗗灈鏈烘湁鎵ц涓换鍔★紝杩囨护
+            if (wrkMastMapper.selectCrnWorking(slave.getId()) != null) {
+                return;
+            }
+
+            //杈撻�佺嚎娌℃湁鍏ュ簱浠诲姟锛岃繃婊�
+            if (wrkMastMapper.selectDevWorking(slave.getId()) == null) {
+                return;
+            }
+
+            // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+            CrnCommand crnCommand = new CrnCommand();
+            crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
+            crnCommand.setTaskNo((short) 1); // 宸ヤ綔鍙�
+            crnCommand.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
+            crnCommand.setTaskMode(CrnTaskModeType.GO_ORIGIN); // 浠诲姟妯″紡:  鍥炲師鐐�
+            crnCommand.setSourcePosX((short) 0);     // 婧愬簱浣嶆帓
+            crnCommand.setSourcePosY((short) 0);     // 婧愬簱浣嶅垪
+            crnCommand.setSourcePosZ((short) 0);     // 婧愬簱浣嶅眰
+            crnCommand.setDestinationPosX((short) 0);     // 鐩爣搴撲綅鎺�
+            crnCommand.setDestinationPosY((short) 0);     // 鐩爣搴撲綅鍒�
+            crnCommand.setDestinationPosZ((short) 0);     // 鐩爣搴撲綅灞�
+            if (!MessageQueue.offer(SlaveType.Crn, slave.getId(), new Task(2, crnCommand))) {
+                log.error("鍫嗗灈鏈哄洖鍘熺偣鍛戒护涓嬪彂澶辫触锛屽爢鍨涙満鍙�={}锛屼换鍔℃暟鎹�={}", slave.getId(), JSON.toJSON(crnCommand));
+            } else {
+            }
     }
 
     /**
@@ -711,8 +763,8 @@
                 staProtocol = staProtocol.clone();
             }
 
-            // 鍏ュ嚭搴撴ā寮忓垽鏂�
-            if (devpThread.ioMode != IoModeType.PAKOUT_MODE) { continue; }
+//            // 鍏ュ嚭搴撴ā寮忓垽鏂�
+//            if (devpThread.ioMode != IoModeType.PAKOUT_MODE) { continue; }
 
 
             // 鏌ヨ绔欑偣璇︾粏淇℃伅
@@ -835,7 +887,7 @@
         }
 
         // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
-        if (wrkMastMapper.selectLocMoving(slave.getId()) != null) {
+        if (wrkMastMapper.selectWorking(slave.getId()) != null) {
             return;
         }
 
@@ -1042,8 +1094,8 @@
                     staProtocol = staProtocol.clone();
                 }
 
-                // 鍏ュ嚭搴撴ā寮忓垽鏂�
-                if (devpThread.ioMode != IoModeType.PAKIN_MODE) { continue; }
+//                // 鍏ュ嚭搴撴ā寮忓垽鏂�
+//                if (devpThread.ioMode != IoModeType.PAKIN_MODE) { continue; }
 
                 // 绔欑偣鏉′欢鍒ゆ柇
                 if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable()

--
Gitblit v1.9.1