From d749f488a802175dfa10851ebdffdb15c9bdeba8 Mon Sep 17 00:00:00 2001
From: Junjie <540245094@qq.com>
Date: 星期日, 24 十二月 2023 13:26:40 +0800
Subject: [PATCH] #提升机

---
 src/main/java/com/zy/asrs/service/BasLiftOptService.java          |    2 +-
 src/main/java/com/zy/core/thread/LiftThread.java                  |   12 ++++++++----
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java       |   16 +++++++++-------
 src/main/resources/mapper/BasLiftOptMapper.xml                    |    1 +
 src/main/java/com/zy/asrs/mapper/BasLiftOptMapper.java            |    2 +-
 src/main/java/com/zy/asrs/service/impl/BasLiftOptServiceImpl.java |    4 ++--
 6 files changed, 22 insertions(+), 15 deletions(-)

diff --git a/src/main/java/com/zy/asrs/mapper/BasLiftOptMapper.java b/src/main/java/com/zy/asrs/mapper/BasLiftOptMapper.java
index c2ffef2..db07888 100644
--- a/src/main/java/com/zy/asrs/mapper/BasLiftOptMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/BasLiftOptMapper.java
@@ -12,7 +12,7 @@
 @Repository
 public interface BasLiftOptMapper extends BaseMapper<BasLiftOpt> {
 
-    BasLiftOpt selectByDeviceWrk(String deviceWrk);
+    BasLiftOpt selectByDeviceWrk(String deviceWrk, Integer liftNo);
 
     List<Map<String, Object>> selectRunStatistic();//鑾峰彇鎻愬崌鏈烘瘡澶╄繍琛屾暟鎹�
 
diff --git a/src/main/java/com/zy/asrs/service/BasLiftOptService.java b/src/main/java/com/zy/asrs/service/BasLiftOptService.java
index 1f00488..b587e79 100644
--- a/src/main/java/com/zy/asrs/service/BasLiftOptService.java
+++ b/src/main/java/com/zy/asrs/service/BasLiftOptService.java
@@ -5,6 +5,6 @@
 
 public interface BasLiftOptService extends IService<BasLiftOpt> {
 
-    BasLiftOpt selectByDeviceWrk(String deviceWrk);
+    BasLiftOpt selectByDeviceWrk(String deviceWrk, Integer liftNo);
 
 }
diff --git a/src/main/java/com/zy/asrs/service/impl/BasLiftOptServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/BasLiftOptServiceImpl.java
index 8761a1d..b9be9da 100644
--- a/src/main/java/com/zy/asrs/service/impl/BasLiftOptServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/BasLiftOptServiceImpl.java
@@ -10,7 +10,7 @@
 public class BasLiftOptServiceImpl extends ServiceImpl<BasLiftOptMapper, BasLiftOpt> implements BasLiftOptService {
 
     @Override
-    public BasLiftOpt selectByDeviceWrk(String deviceWrk) {
-        return this.baseMapper.selectByDeviceWrk(deviceWrk);
+    public BasLiftOpt selectByDeviceWrk(String deviceWrk, Integer liftNo) {
+        return this.baseMapper.selectByDeviceWrk(deviceWrk, liftNo);
     }
 }
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 366bd54..2127fdc 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -5,6 +5,7 @@
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.mapper.Wrapper;
 import com.core.common.Cools;
+import com.core.common.SpringUtils;
 import com.core.exception.CoolException;
 import com.zy.asrs.entity.*;
 import com.zy.asrs.mapper.*;
@@ -1611,8 +1612,7 @@
             NyLiftCommand liftCommand = NyLiftUtils.getLiftCommand(liftProtocol.getLiftNo().intValue(), NyLiftTaskModelType.MOVE_TRAY.id, startSta, targetSta, wrkMast.getWrkNo());
             if (wrkMast.getIoType() == 53 || wrkMast.getIoType() == 57) {
                 //鎷f枡鍐嶅洖搴擄紝閲嶆柊鍒嗛厤璁惧宸ヤ綔鍙�
-                Random random = new Random();
-                int deviceWrk = Math.abs((liftCommand.getTaskNo().intValue() + random.nextInt(9999)));//鑾峰彇璁惧宸ヤ綔鍙�
+                int deviceWrk = commonService.getWorkNo(8);//鐢熸垚鎻愬崌鏈鸿澶囧伐浣滃彿
                 liftCommand.setTaskNo((short) deviceWrk);
             }
             ArrayList<NyLiftCommand> commands = new ArrayList<>();
@@ -1775,10 +1775,13 @@
                         && liftProtocol.getTaskNo() != 0
                         && !liftProtocol.getBusy()
                 ) {
-                    BasLiftOpt basLiftOpt = basLiftOptService.selectByDeviceWrk(liftProtocol.getTaskNo().toString());
                     int taskNo = liftProtocol.getTaskNo().intValue();
-                    if (basLiftOpt != null) {
-                        taskNo = basLiftOpt.getWrkNo();
+                    if (taskNo >= 20000 && taskNo <= 30000) {
+                        //鎻愬崌鏈鸿澶囧伐浣滃彿锛岄渶瑕佹煡璇㈠搴斾换鍔″彿
+                        BasLiftOpt basLiftOpt = basLiftOptService.selectByDeviceWrk(liftProtocol.getTaskNo().toString(), liftSlave.getId());
+                        if (basLiftOpt != null) {
+                            taskNo = basLiftOpt.getWrkNo();
+                        }
                     }
 
                     //灏嗕换鍔℃。鏍囪涓哄畬鎴�
@@ -3523,8 +3526,7 @@
                 //鑾峰彇鎻愬崌鏈哄懡浠わ紝璋冨害鎻愬崌鏈哄埌婧愮珯浣嶇疆
                 NyLiftCommand liftCommand = NyLiftUtils.getLiftCommand(liftProtocol.getLiftNo().intValue(), NyLiftTaskModelType.MOVE_CAR.id, sourceLiftSta.getStaNo(), sourceLiftSta.getStaNo(), wrkMast.getWrkNo());
 
-                Random random = new Random();
-                int deviceWrk = Math.abs((liftCommand.getTaskNo().intValue() + random.nextInt(9999)));//鑾峰彇璁惧宸ヤ綔鍙�
+                int deviceWrk = commonService.getWorkNo(8);//鐢熸垚鎻愬崌鏈鸿澶囧伐浣滃彿
                 liftCommand.setTaskNo((short) deviceWrk);//鏇存崲闅忔満浠诲姟鍙�
 
                 ArrayList<NyLiftCommand> commands = new ArrayList<>();
diff --git a/src/main/java/com/zy/core/thread/LiftThread.java b/src/main/java/com/zy/core/thread/LiftThread.java
index d61e0fa..a9f40e5 100644
--- a/src/main/java/com/zy/core/thread/LiftThread.java
+++ b/src/main/java/com/zy/core/thread/LiftThread.java
@@ -351,11 +351,15 @@
             return false;
         }
 
-        BasLiftOptService basLiftOptService = SpringUtils.getBean(BasLiftOptService.class);
-        BasLiftOpt basLiftOpt = basLiftOptService.selectByDeviceWrk(liftProtocol.getTaskNo().toString());
-        if (basLiftOpt != null) {
-            wrkNo = basLiftOpt.getWrkNo().shortValue();
+        if (wrkNo >= 20000 && wrkNo <= 30000) {
+            //鎻愬崌鏈鸿澶囧伐浣滃彿锛岄渶瑕佹煡璇㈠搴斾换鍔″彿
+            BasLiftOptService basLiftOptService = SpringUtils.getBean(BasLiftOptService.class);
+            BasLiftOpt basLiftOpt = basLiftOptService.selectByDeviceWrk(liftProtocol.getTaskNo().toString(), liftProtocol.getLiftNo().intValue());
+            if (basLiftOpt != null) {
+                wrkNo = basLiftOpt.getWrkNo().shortValue();
+            }
         }
+
         Object o = redisUtil.get(RedisKeyType.LIFT.key + wrkNo);
         if (o == null) {
             return false;
diff --git a/src/main/resources/mapper/BasLiftOptMapper.xml b/src/main/resources/mapper/BasLiftOptMapper.xml
index d6c1a60..95670b0 100644
--- a/src/main/resources/mapper/BasLiftOptMapper.xml
+++ b/src/main/resources/mapper/BasLiftOptMapper.xml
@@ -20,6 +20,7 @@
     <select id="selectByDeviceWrk" resultMap="BaseResultMap">
         select top 1 * from asr_bas_lift_opt
         where device_wrk = #{deviceWrk}
+        and lift_no = #{liftNo}
         order by send_time desc
     </select>
 

--
Gitblit v1.9.1