From ac2cb6a654d6de15ca8c9c0bafd5acfb25680748 Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期三, 24 四月 2024 16:56:24 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |  111 +++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 102 insertions(+), 9 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 662e8d7..41c240f 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -391,7 +391,7 @@
 
 //                    WrkMast wrkMast = wrkMastMapper.selectPakInStep3(staProtocol.getWorkNo().intValue());
                     WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("barcode", barcode));
-                    ledThread.errorReset();
+
                     if (wrkMast == null) {
                         wrkMast = wrkMastMapper.selectPickStep(barcode);
                     }
@@ -524,13 +524,15 @@
                             && crnProtocol.forkPosType == CrnForkPosType.HOME) {
 
                         // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
-
-                        // 涓嬪彂绔欑偣淇℃伅
-                        staProtocol.setWorkNo(wrkMast.getWrkNo().shortValue());
-                        staProtocol.setStaNo(wrkMast.getStaNo().shortValue());
-                        if (!MessageQueue.offer(SlaveType.Devp, crnStn.getDevpPlcId(), new Task(2, staProtocol))) {
-                            continue;
+                        if (crnProtocol.getCrnNo() !=5){
+                            // 涓嬪彂绔欑偣淇℃伅
+                            staProtocol.setWorkNo(wrkMast.getWrkNo().shortValue());
+                            staProtocol.setStaNo(wrkMast.getStaNo().shortValue());
+                            if (!MessageQueue.offer(SlaveType.Devp, crnStn.getDevpPlcId(), new Task(2, staProtocol))) {
+                                continue;
+                            }
                         }
+
 
                         if (crnStn.getStaNo() == 1016 || crnStn.getStaNo() == 1019) {
                             // 鏇存柊宸ヤ綔妗g姸鎬佷负13.RGV鎼繍涓�
@@ -582,6 +584,9 @@
                 // 濡傛灉鏈�杩戜竴娆℃槸鍏ュ簱妯″紡
                 if (crnProtocol.getLastIo().equals("I")) {
                     if (basCrnp.getInEnable().equals("Y")) {
+                        if (crn.getId() == 5){
+                            continue;
+                        }
                         this.crnStnToLoc(crn, crnProtocol); //  鍏ュ簱
                         crnProtocol.setLastIo("O");
                     } else if (basCrnp.getOutEnable().equals("Y")) {
@@ -595,6 +600,9 @@
                         this.locToCrnStn(crn, crnProtocol); //  鍑哄簱
                         crnProtocol.setLastIo("I");
                     } else if (basCrnp.getInEnable().equals("Y")) {
+                        if (crn.getId() == 5){
+                            continue;
+                        }
                         this.crnStnToLoc(crn, crnProtocol); //  鍏ュ簱
                         crnProtocol.setLastIo("O");
                     }
@@ -2291,12 +2299,17 @@
 
                         BasDevp basDevp = basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("dev_no", staDesc.getCrnStn()));
 
+                        WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("crn_no", staDesc.getCrnNo()).gt("io_type", 100));
+                        if (!Cools.isEmpty(wrkMast)){
+                            continue;
+                        }
+
                         if (basDevp.getAutoing().equals("Y") && basDevp.getLoading().equals("N")
                                 && basDevp.getWrkNo() == 0 && basDevp.getCanining().equals("Y")){
 //                             鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护
                             staProtocol.setWorkNo((short) 9997);
-//                            staProtocol.setStaNo(basDevp.getDevNo().shortValue());
-                            staProtocol.setStaNo((short) 1013);
+                            staProtocol.setStaNo(basDevp.getDevNo().shortValue());
+//                            staProtocol.setStaNo((short) 1013);
                             devpThread.setPakMk(staProtocol.getSiteId(), false);
                             boolean result = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(2, staProtocol));
                             if (!result) {
@@ -2405,4 +2418,84 @@
 
     }
 
+    public synchronized void crn5InTask(){
+        for (CrnSlave crnSlave : slaveProperties.getCrn()) {
+            if (crnSlave.getId() != 5){
+                continue;
+            }
+            // 鑾峰彇鍫嗗灈鏈轰俊鎭�
+            CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crnSlave.getId());
+            CrnProtocol crnProtocol = crnThread.getCrnProtocol();
+            if (crnProtocol == null) {
+                continue;
+            }
+            BasCrnp basCrnp = basCrnpService.selectById(crnSlave.getId());
+            if (basCrnp == null) {
+                log.error("{}鍙峰爢鍨涙満灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", crnSlave.getId());
+                continue;
+            }
+            // 鍙湁褰撳爢鍨涙満绌洪棽 骞朵笖 鏃犱换鍔℃椂鎵嶇户缁墽琛�
+            if (crnProtocol.getStatusType() == CrnStatusType.IDLE && crnProtocol.getTaskNo() == 0 && crnProtocol.getModeType() == CrnModeType.AUTO
+                    && crnProtocol.getLoaded() == 0 && crnProtocol.getForkPos() == 0) {
+
+                Crn5InTaskSta(crnSlave,crnProtocol);
+
+            }
+
+        }
+    }
+    public void Crn5InTaskSta(CrnSlave slave, CrnProtocol crnProtocol){
+        for (CrnSlave.CrnStn crnStn : slave.getCrnInStn()) {
+            // 鏌ヨ宸ヤ綔妗�
+            WrkMast wrkMast = wrkMastMapper.selectCrn5Task2();
+            if (wrkMast == null) {
+                return;
+            }
+            // 鑾峰彇搴撲綅淇℃伅
+            LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
+            if (locMast == null) {
+                log.error("鏌ヨ搴撳瓨鏃犳暟鎹�--搴撲綅鍙穥}", wrkMast.getLocNo());
+                return;
+            }
+            if (!locMast.getLocSts().equals("S") && !locMast.getLocSts().equals("Q")) {
+                log.error("鍏ュ簱鎿嶄綔搴撲綅鐘舵�佷笉绗﹀悎--鐘舵��, 搴撲綅鍙�={}锛屽簱浣嶇姸鎬�={}", wrkMast.getLocNo(), locMast.getLocSts());
+                return;
+            }
+            // 鍫嗗灈鏈烘帶鍒惰繃婊�
+            if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) {
+                return;
+            }
+
+            // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+            CrnCommand crnCommand = new CrnCommand();
+            crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
+            crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙�
+            crnCommand.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
+            crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡:  搴撲綅绉昏浆
+            crnCommand.setSourcePosX(crnStn.getRow().shortValue());     // 婧愬簱浣嶆帓
+            crnCommand.setSourcePosY(crnStn.getBay().shortValue());     // 婧愬簱浣嶅垪
+            crnCommand.setSourcePosZ(crnStn.getLev().shortValue());     // 婧愬簱浣嶅眰
+            crnCommand.setDestinationPosX(locMast.getRow1()==9?(short)4:(short)5);     // 鐩爣搴撲綅鎺�
+            crnCommand.setDestinationPosY(locMast.getBay1().shortValue());     // 鐩爣搴撲綅鍒�
+            crnCommand.setDestinationPosZ(locMast.getLev1().shortValue());     // 鐩爣搴撲綅灞�
+            crnCommand.setLocType1(locMast.getLocType1().shortValue());     // 璐х墿绫诲瀷
+            if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) {
+                log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
+            } else {
+                // 淇敼宸ヤ綔妗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());
+                }
+            }
+        }
+
+
+
+
+    }
+
 }

--
Gitblit v1.9.1