From 3d53b8a757df0bc9dbc7307454f5c6302ddae216 Mon Sep 17 00:00:00 2001
From: ytfl <ytfl@qq.com>
Date: 星期二, 15 七月 2025 14:25:39 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |  100 ++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 77 insertions(+), 23 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 9702348..4a445a0 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -13,7 +13,6 @@
 import com.zy.asrs.mapper.WrkMastMapper;
 import com.zy.asrs.service.*;
 import com.zy.asrs.utils.Utils;
-import com.zy.asrs.utils.VersionUtils;
 import com.zy.common.constant.RedisConstantType;
 import com.zy.common.model.LocTypeDto;
 import com.zy.common.model.MatDto;
@@ -233,9 +232,14 @@
                             LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>()
                                     .eq("loc_no", dto.getLocNo()));
 
+                            short staNo = dto.getStaNo().shortValue();
+                            if (inSta.getStaNo() == 1002) {
+                                staNo = 2002;
+                            }
+
                             barcodeThread.setBarcode("");
                             staProtocol.setWorkNo(dto.getWorkNo().shortValue());
-                            staProtocol.setStaNo(dto.getStaNo().shortValue());
+                            staProtocol.setStaNo(staNo);
                             staProtocol.setPalletSize(locMast.getLocType2());
                             devpThread.setPakMk(staProtocol.getSiteId(), false);
                             boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
@@ -639,6 +643,10 @@
      */
     public synchronized void crnMove() {
         for (CrnSlave crn : slaveProperties.getCrn()) {
+            if (crn.getId() == 1) {
+                continue;
+            }
+
             // 鑾峰彇鍫嗗灈鏈轰俊鎭�
             CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
             CrnProtocol crnProtocol = crnThread.getCrnProtocol();
@@ -787,12 +795,14 @@
                     if (null == waitWrkMast) {
                         News.error(""+mark+" - 1"+" - 10"+" - {}搴撲綅寮傚父锛屾湭妫�绱㈠埌鐩稿簲宸ヤ綔妗o紒", shallowLocNo);
                     } else {
-                        waitWrkMast.setIoPri(15D);
-                        waitWrkMast.setModiTime(new Date());
-                        if (wrkMastMapper.updateById(waitWrkMast) == 0) {
-                            News.error(""+mark+" - 1"+" - 11"+" - 璋冩暣宸ヤ綔妗d紭鍏堢骇澶辫触锛佸伐浣滃彿={}", waitWrkMast.getWrkNo());
+                        if (waitWrkMast.getWrkSts() != 14 && waitWrkMast.getIoType() > 100) {
+                            waitWrkMast.setIoPri(15D);
+                            waitWrkMast.setModiTime(new Date());
+                            if (wrkMastMapper.updateById(waitWrkMast) == 0) {
+                                News.error(""+mark+" - 1"+" - 11"+" - 璋冩暣宸ヤ綔妗d紭鍏堢骇澶辫触锛佸伐浣滃彿={}", waitWrkMast.getWrkNo());
+                            }
+                            continue;
                         }
-                        continue;
                     }
 
                 } else if (shallowLoc.getLocSts().equals("F") || shallowLoc.getLocSts().equals("D")) {
@@ -958,7 +968,7 @@
 
                     if (crnProtocol.getCrnNo() == 1) {
                         //鍒ゆ柇鍫嗗灈鏈哄拰褰撳墠浠诲姟鏄惁澶勪簬涓�涓贩閬�
-                        if (Utils.getLaneByLocNo(wrkMast.getLocNo()) != crnProtocol.getCrnLane()) {
+                        if (Utils.getLaneByLocNo(wrkMast.getSourceLocNo()) != crnProtocol.getCrnLane()) {
                             //鍒ゆ柇鍫嗗灈鏈烘墍鍦ㄥ贩閬撴槸鍚﹀瓨鍦ㄥ叾浠栦换鍔★紝濡傚瓨鍦ㄥ垯浼樺厛鎵ц
                             List<WrkMast> currentWrkMasts = wrkMastService.selectLaneWrkMast(crnProtocol.getCrnLane(), false);
                             if (!currentWrkMasts.isEmpty()) {
@@ -2199,16 +2209,19 @@
 
     // RGV  ===>> 鎵ц瀵筊GV鎿嶄綔
     public synchronized void rgvExecute(Integer mark) {
-        ArrayList<Integer> list = new ArrayList<Integer>(){{add(1090);add(1091);}};
+        ArrayList<Integer> list = new ArrayList<Integer>(){{add(2003);add(2002);}};
         for (Integer staNo : list) {
             Integer devpId = null;
+            Integer rgvStaNoDevpId = null;
             Integer rgvStaNo = null;
-            if (staNo == 1090) {
+            if (staNo == 2003) {
                 devpId = 1;
-                rgvStaNo = 1091;
+                rgvStaNo = 2002;
+                rgvStaNoDevpId = 2;
             }else {
                 devpId = 2;
-                rgvStaNo = 1090;
+                rgvStaNo = 2003;
+                rgvStaNoDevpId = 1;
             }
 
             SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devpId);
@@ -2229,7 +2242,49 @@
             ) {
                 WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>()
                         .eq("wrk_no", staProtocol.getWorkNo()));
+
+                if (wrkMast == null) {
+                    continue;
+                }
+
                 if (wrkMast.getWrkSts() == 201) {
+                    continue;
+                }
+
+                SiemensDevpThread devpThread2 = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, rgvStaNoDevpId);
+                if (devpThread2 == null) {
+                    continue;
+                }
+                StaProtocol staProtocolRgvStaNo = devpThread2.getStation().get(rgvStaNo);
+                if (staProtocolRgvStaNo == null) {
+                    continue;
+                }
+
+                if (!staProtocolRgvStaNo.isAutoing()) {
+                    continue;
+                }
+
+                if (staProtocolRgvStaNo.isLoading()) {
+                    continue;
+                }
+
+                // 鑾峰彇RGV淇℃伅
+                RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, 1);
+                if (rgvThread == null) {
+                    continue;
+                }
+
+                RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
+                if (rgvProtocol == null) {
+                    continue;
+                }
+
+                if (rgvProtocol.statusType1 != RgvStatusType.IDLE && rgvProtocol.getTaskNo1() != 0) {
+                    continue;
+                }
+
+                Object object = redisUtil.get(RedisConstantType.RGV_MOVE_LOCK + wrkMast.getWrkNo());
+                if (object != null) {
                     continue;
                 }
 
@@ -2250,6 +2305,7 @@
                 wrkMast.setWrkSts(201L);//201.RGV鎼繍涓�
                 wrkMast.setModiTime(new Date());
                 wrkMastService.updateById(wrkMast);
+                redisUtil.set(RedisConstantType.RGV_MOVE_LOCK + wrkMast.getWrkNo(), "lock", 60 * 60);
             }
         }
     }
@@ -2269,7 +2325,7 @@
             }
 
             //  鐘舵�侊細绛夊緟纭 骞朵笖  浠诲姟瀹屾垚浣� = 1
-            if (rgvProtocol.statusType == RgvStatusType.WAITING && rgvProtocol.getTaskNo1() != 0) {
+            if (rgvProtocol.statusType1 == RgvStatusType.WAITING && rgvProtocol.getTaskNo1() != 0) {
                 News.warnNoLog(""+mark+" - 0"+" - 寮�濮嬫墽琛屽RGV宸ヤ綔妗g殑瀹屾垚鎿嶄綔");
                 // 鑾峰彇鍏ュ簱寰呯‘璁ゅ伐浣滄。
                 WrkMast wrkMast = wrkMastMapper.selectPakInStep3(rgvProtocol.getTaskNo1().intValue());
@@ -2278,25 +2334,25 @@
                     continue;
                 }
 
-                if (Cools.isEmpty(wrkMast.getMemo())) {
-                    News.error(""+mark+" - 1"+" - RGV澶勪簬绛夊緟纭涓斾换鍔″畬鎴愮姸鎬侊紝浣嗗伐浣滄。鏁版嵁寮傚父銆俁GV鍙�={}锛屽伐浣滃彿={}", rgvSlave.getId(), rgvProtocol.getTaskNo1());
+                if (wrkMast.getWrkSts() != 201) {
                     continue;
                 }
 
                 Integer devpId = null;
                 Integer devpStaNo = null;
                 String locNo = null;
+                Long updateWrkSts = null;
                 if (wrkMast.getIoType() < 100) {
                     //鍏ュ簱
-                    wrkMast.setWrkSts(2L);
+                    updateWrkSts = 2L;
                     devpId = 1;
-                    devpStaNo = 1090;
+                    devpStaNo = 2003;
                     locNo = wrkMast.getLocNo();
                 }else {
                     //鍑哄簱
-                    wrkMast.setWrkSts(15L);
+                    updateWrkSts = 15L;
                     devpId = 2;
-                    devpStaNo = 1091;
+                    devpStaNo = 2002;
                     locNo = wrkMast.getSourceLocNo();
                 }
 
@@ -2323,10 +2379,8 @@
                     if (!result) {
                         throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
                     }
-
-                    Date now = new Date();
-                    wrkMast.setModiTime(now);
-                    wrkMastMapper.updateById(wrkMast);
+                    wrkMastMapper.updateWrkSts(updateWrkSts, wrkMast.getWrkNo());
+                    rgvThread.setResetFlag1(true);
                 }
             }
         }

--
Gitblit v1.9.1