From 947aa556843b17e1b5a003767a1cf6ae85ec39fe Mon Sep 17 00:00:00 2001
From: Junjie <xjj@123>
Date: 星期五, 20 六月 2025 16:51:25 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |   31 ++++++++++++++++++++++++++-----
 1 files changed, 26 insertions(+), 5 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..9702348 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();
+                }
             }
         }
     }
@@ -1840,10 +1859,11 @@
             List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", shallowLoc.getLocNo()));
             for (LocDetl locDetl : locDetls) {
                 WrkDetl wrkDetl = new WrkDetl();
+                wrkDetl.sync(locDetl);
                 wrkDetl.setWrkNo(workNo);
                 wrkDetl.setIoTime(now);
                 wrkDetl.setAnfme(locDetl.getAnfme());
-                VersionUtils.setWrkDetl(wrkDetl, locDetl); // 鐗堟湰鎺у埗
+//                VersionUtils.setWrkDetl(wrkDetl, locDetl); // 鐗堟湰鎺у埗
                 wrkDetl.setAppeTime(now);
                 wrkDetl.setModiTime(now);
                 if (!wrkDetlService.insert(wrkDetl)) {
@@ -1964,10 +1984,11 @@
 
                         for (LocDetl locDetl : locDetls) {
                             WrkDetl wrkDetl = new WrkDetl();
+                            wrkDetl.sync(locDetl);
                             wrkDetl.setWrkNo(workNo);
                             wrkDetl.setIoTime(new Date());
                             wrkDetl.setAnfme(locDetl.getAnfme());
-                            VersionUtils.setWrkDetl(wrkDetl, locDetl); // 鐗堟湰鎺у埗
+//                            VersionUtils.setWrkDetl(wrkDetl, locDetl); // 鐗堟湰鎺у埗
                             wrkDetl.setAppeTime(new Date());
                             wrkDetl.setModiTime(new Date());
                             if (!wrkDetlService.insert(wrkDetl)) {

--
Gitblit v1.9.1