From 7ad6e2d4018bc72c5e602107d17f04a71534868a Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期六, 06 一月 2024 15:22:09 +0800
Subject: [PATCH] #空托入库+配置文件

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |  113 +++++++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 98 insertions(+), 15 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 34b993d..16e6874 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -118,7 +118,7 @@
                 String barcode = barcodeThread.getBarcode();
                 //9998閫�鍥烇紝9996绌烘澘
                 if (!Cools.isEmpty(barcode) && (staProtocol.getWorkNo() != 9998 || staProtocol.getWorkNo() != 9996)) {
-                    log.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcode(), barcode);
+//                    log.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcode(), barcode);
                     if ("NG".endsWith(barcode) || "NoRead".equals(barcode)) {
                         String errorMsg = "15绔欐壂鐮佸け璐ワ紝宸查��鍥�14绔�";
                         staProtocol.setWorkNo((short) 9998);
@@ -380,7 +380,7 @@
                 String barcode = barcodeThread.getBarcode();
 
                 if (!Cools.isEmpty(barcode) && (staProtocol.getWorkNo() != 9998 || staProtocol.getWorkNo() != 9996)) {
-                    log.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", pickSta.getBarcode(), barcode);
+//                    log.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", pickSta.getBarcode(), barcode);
                     if ("NG".endsWith(barcode) || "NoRead".equals(barcode)) {
                         staProtocol.setWorkNo((short) 9998);
                         staProtocol.setStaNo((short) 14);
@@ -689,9 +689,91 @@
 
     /**
      * 鍏ュ簱  ===>>  鍫嗗灈鏈虹珯鍒板簱浣�
-     * 鏍规嵁鍏ュ簱鏃堕棿杩涜鎺掑簭鍏ュ簱
+     * 鏍规嵁鍏ュ簱鏃堕棿杩涜鎺掑簭鍏ュ簱,鍚屼竴鍫嗗灈鏈哄厛鏌ヨ鎵�鏈夊伐浣滄。浠诲姟鍙凤紝鍐嶆牴鎹紭鍏堢骇銆佹椂闂存帓搴忥紝纭繚鍏堣繘鍏堝嚭
      */
     public synchronized void crnStnToLoc(CrnSlave slave, CrnProtocol crnProtocol) {
+        for (CrnSlave.CrnStn crnStn : slave.getCrnInStn()) {
+            boolean flag = false;
+            // 鑾峰彇鍫嗗灈鏈哄叆搴撶珯淇℃伅
+            DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId());
+            StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo());
+            if (staProtocol == null) {
+                continue;
+            } else {
+                staProtocol = staProtocol.clone();
+            }
+            // 鏌ヨ绔欑偣璇︾粏淇℃伅
+            BasDevp staDetl = basDevpService.selectById(crnStn.getStaNo());
+            if (staDetl == null) {
+                log.error("鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo());
+                continue;
+            }
+            if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() > 0 && staProtocol.isInEnable()
+                    && staDetl.getCanining()!=null && staDetl.getCanining().equals("Y")) {
+                flag = true;
+            }
+            if (!flag) {
+                continue;
+            }
+            // 鑾峰彇宸ヤ綔鐘舵�佷负2锛堣澶囦笂璧帮級鐨勫叆搴撳伐浣滄。
+            WrkMast wrkMast = wrkMastMapper.selectPakInStep2(slave.getId(), staProtocol.getWorkNo().intValue(),crnStn.getStaNo());
+            if(null == wrkMast) {
+                log.error("鏌ヨ鏃犲緟鍏ュ簱鏁版嵁--wrk_sts=2, 宸ヤ綔鍙�={}", staProtocol.getWorkNo());
+                continue;
+            }
+            // 鑾峰彇搴撲綅淇℃伅
+            LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
+            if (locMast == null) {
+                log.error("鏌ヨ搴撳瓨鏃犳暟鎹�--搴撲綅鍙穥}", wrkMast.getLocNo());
+                continue;
+            }
+            if (!locMast.getLocSts().equals("S") && !locMast.getLocSts().equals("Q")) {
+                log.error("鍏ュ簱鎿嶄綔搴撲綅鐘舵�佷笉绗﹀悎--鐘舵��, 搴撲綅鍙�={}锛屽簱浣嶇姸鎬�={}", wrkMast.getLocNo(), locMast.getLocSts());
+                continue;
+            }
+            CrnThread crnThreadNow = (CrnThread) SlaveConnection.get(SlaveType.Crn, wrkMast.getCrnNo());
+            CrnProtocol crnProtocolNow = crnThreadNow.getCrnProtocol();
+
+            // 鍫嗗灈鏈烘帶鍒惰繃婊�
+            if (!crnProtocolNow.getStatusType().equals(CrnStatusType.IDLE) || crnProtocolNow.getTaskNo() != 0) {
+                continue;
+            }
+
+            // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+            CrnCommand crnCommand = new CrnCommand();
+            crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
+            crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙�
+            crnCommand.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
+            crnCommand.setTaskMode(CrnTaskModeType.PAKIN); // 浠诲姟妯″紡:  搴撲綅绉昏浆
+            crnCommand.setSourcePosX(crnStn.getRow().shortValue());     // 婧愬簱浣嶆帓
+            crnCommand.setSourcePosY(crnStn.getBay().shortValue());     // 婧愬簱浣嶅垪
+            crnCommand.setSourcePosZ(crnStn.getLev().shortValue());     // 婧愬簱浣嶅眰
+            crnCommand.setDestinationPosX(locMast.getRow1().shortValue());     // 鐩爣搴撲綅鎺�
+            crnCommand.setDestinationPosY(locMast.getBay1().shortValue());     // 鐩爣搴撲綅鍒�
+            crnCommand.setDestinationPosZ(locMast.getLev1().shortValue());     // 鐩爣搴撲綅灞�
+            log.error("1"+crnCommand+crnProtocol);
+            if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) {
+                log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
+            } else {
+                System.err.println("鍏ュ簱鍒板簱浣嶅懡浠や笅鍙�");
+                // 淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓�
+                Date now = new Date();
+                wrkMast.setWrkSts(3L);
+                wrkMast.setCrnStrTime(now);
+                wrkMast.setModiTime(now);
+                if (wrkMastMapper.updateById(wrkMast) == 0) {
+                    log.error("淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
+                }
+            }
+        }
+
+    }
+
+    /**
+     * 鍏ュ簱  ===>>  鍫嗗灈鏈虹珯鍒板簱浣�
+     * 鏍规嵁鍏ュ簱鏃堕棿杩涜鎺掑簭鍏ュ簱
+     */
+    public synchronized void crnStnToLoc2(CrnSlave slave, CrnProtocol crnProtocol) {
         String methodName = Thread.currentThread().getStackTrace()[1].getMethodName();
         List<WrkMast> wrkMasts= new ArrayList<>();
         //鎸囬拡
@@ -729,7 +811,7 @@
                 wrkMasts.add(wrkMast);
                 count++;
                 if(count==0) continue;
-                if(wrkMast.getWrkDate().getTime()<wrkMasts.get(i).getWrkDate().getTime() && wrkMast.getIoPri()<wrkMasts.get(i).getIoPri())
+                if(wrkMast.getWrkDate().getTime()<wrkMasts.get(i).getWrkDate().getTime() && wrkMast.getIoPri()>=wrkMasts.get(i).getIoPri())
                     i=count;
                 crnStn1=crnStn;
             }
@@ -737,6 +819,8 @@
                 continue;
             }
         }
+
+
             if(!Cools.isEmpty(wrkMasts)){
             wrkMast=wrkMasts.get(i);
             // 鑾峰彇搴撲綅淇℃伅
@@ -812,20 +896,20 @@
 //                    }catch(Exception ignore){}
 //                }
 
-                        // 淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓�
-                        Date now = new Date();
-                        wrkMast.setWrkSts(3L);
-                        wrkMast.setCrnStrTime(now);
-                        wrkMast.setModiTime(now);
-                        if (wrkMastMapper.updateById(wrkMast) == 0) {
-                            News.error(methodName + ":淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
-                        }
-                    }
+                                // 淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓�
+                                Date now = new Date();
+                                wrkMast.setWrkSts(3L);
+                                wrkMast.setCrnStrTime(now);
+                                wrkMast.setModiTime(now);
+                                if (wrkMastMapper.updateById(wrkMast) == 0) {
+                                    News.error(methodName + ":淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
+                                }
+                            }
                         }
                     }
                 }else News.error(methodName + ":鍏ュ簱鎿嶄綔搴撲綅鐘舵�佷笉绗﹀悎--鐘舵��, 搴撲綅鍙�={}锛屽簱浣嶇姸鎬�={}", wrkMast.getLocNo(), locMast.getLocSts());
             }else News.error(methodName + ":鏌ヨ搴撳瓨鏃犳暟鎹�--搴撲綅鍙穥}", wrkMast.getLocNo());
-            }
+        }
     }
 
     public synchronized void crnStnToLoc1(CrnSlave slave, CrnProtocol crnProtocol) {
@@ -1530,7 +1614,6 @@
                         && staProtocol.isLoading()
                         && staProtocol.isInEnable()
                         && staProtocol.isEmptyMk()
-                        && (staProtocol.getWorkNo() == 9996)
                         && staProtocol.isPakMk()) {
 
                     try {

--
Gitblit v1.9.1