From eb96c6e4e3e1bc7c2ba72979d4178663c1482c75 Mon Sep 17 00:00:00 2001
From: Junjie <xjj@123>
Date: 星期四, 19 六月 2025 14:33:28 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |   25 ++++++++++++++++++++++---
 1 files changed, 22 insertions(+), 3 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 3432916..689f02c 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -14,6 +14,7 @@
 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;
 import com.zy.common.model.SearchLocParam;
@@ -22,6 +23,7 @@
 import com.zy.common.utils.CollectionUtils;
 import com.zy.common.utils.HttpHandler;
 import com.zy.common.utils.News;
+import com.zy.common.utils.RedisUtil;
 import com.zy.core.CrnThread;
 import com.zy.core.DevpThread;
 import com.zy.core.cache.MessageQueue;
@@ -95,6 +97,8 @@
     private WrkMastLogService wrkMastLogService;
     @Autowired
     private ConfigService configService;
+    @Autowired
+    private RedisUtil redisUtil;
 
     @Value("${wms.url}")
     private String wmsUrl;
@@ -656,11 +660,20 @@
                     continue;
                 }
 
+                Object object = redisUtil.get(RedisConstantType.CRN_MOVE_LOCK);
+                if (object != null) {
+                    continue;
+                }
+
                 List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>()
-                        .eq("crn_no", crn.getId()));
+                        .eq("crn_no", crn.getId())
+                        .notIn("wrk_sts", 5, 14, 15)
+                );
                 if (!wrkMasts.isEmpty()) {
                     continue;
                 }
+
+                CrnSlave.CrnStn crnStn = crn.getCrnInStn().get(0);
 
                 News.info("鍫嗗灈鏈烘棤浠诲姟鑷姩鍥炲叆搴撳彛寰呮満==>>" + crnProtocol.getCrnNo() + "鍙峰爢鍨涙満");
                 // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
@@ -669,16 +682,22 @@
                 crnCommand.setTaskNo((short) 9999); // 宸ヤ綔鍙�
                 crnCommand.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
                 crnCommand.setTaskMode(CrnTaskModeType.CRN_MOVE); // 浠诲姟妯″紡:  鍫嗗灈鏈虹Щ鍔�
-                crnCommand.setSourcePosX((short) 0);     // 婧愬簱浣嶆帓
+                crnCommand.setSourcePosX(crnStn.getRow().shortValue());     // 婧愬簱浣嶆帓
                 crnCommand.setSourcePosY((short) 1);     // 婧愬簱浣嶅垪
                 crnCommand.setSourcePosZ((short) 1);     // 婧愬簱浣嶅眰
                 crnCommand.setDestinationPosX((short) 0);     // 鐩爣搴撲綅鎺�
                 crnCommand.setDestinationPosY((short) 0);     // 鐩爣搴撲綅鍒�
                 crnCommand.setDestinationPosZ((short) 0);     // 鐩爣搴撲綅灞�
-                if (!MessageQueue.offer(SlaveType.Crn, crnProtocol.getCrnNo(), new Task(4, crnCommand))) {
+                if (!MessageQueue.offer(SlaveType.Crn, crnProtocol.getCrnNo(), new Task(2, crnCommand))) {
                     News.error("鍫嗗灈鏈虹Щ鍔ㄥ懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", crnProtocol.getCrnNo(), JSON.toJSON(crnCommand));
                 }
                 crnThread.setBackHpFlag(true);
+                redisUtil.set(RedisConstantType.CRN_MOVE_LOCK + crn.getId(), "lock", 60);
+                try {
+                    Thread.sleep(500);
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
             }
         }
     }

--
Gitblit v1.9.1