From a4f07b2a0ddb6c210e05afbbb491feeb466203e7 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期一, 09 三月 2026 19:15:50 +0800
Subject: [PATCH] #V3重大更新,升级JDK17,升级SpirngBoot3.5.1

---
 src/main/java/com/zy/core/thread/impl/ZySiemensDualCrnThread.java |  109 +++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 78 insertions(+), 31 deletions(-)

diff --git a/src/main/java/com/zy/core/thread/impl/ZySiemensDualCrnThread.java b/src/main/java/com/zy/core/thread/impl/ZySiemensDualCrnThread.java
index 028650b..8d8883c 100644
--- a/src/main/java/com/zy/core/thread/impl/ZySiemensDualCrnThread.java
+++ b/src/main/java/com/zy/core/thread/impl/ZySiemensDualCrnThread.java
@@ -3,7 +3,7 @@
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.serializer.SerializerFeature;
-import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.core.common.DateUtils;
 import com.core.common.SpringUtils;
 import com.zy.asrs.entity.*;
@@ -87,10 +87,14 @@
                         List<SendDualCrnCommandParam> commandList = (List<SendDualCrnCommandParam>) task.getData();
                         for (SendDualCrnCommandParam sendDualCrnCommandParam : commandList) {
                             DualCrnCommand dualCrnCommand = sendDualCrnCommandParam.getCommands().get(0);
-                            redisUtil.set(RedisKeyType.DUAL_CRN_COMMAND_IDX.key + dualCrnCommand.getTaskNo(), sendDualCrnCommandParam.getCommandIdx(), 60 * 60 * 24);
+                            redisUtil.set(RedisKeyType.DUAL_CRN_COMMAND_IDX.key + dualCrnCommand.getTaskNo(), 0, 60 * 60 * 24);
+                            redisUtil.set(RedisKeyType.DUAL_CRN_COMMAND_.key + dualCrnCommand.getTaskNo(), JSON.toJSONString(sendDualCrnCommandParam, SerializerFeature.DisableCircularReferenceDetect), 60 * 60 * 24);
+                            if (sendDualCrnCommandParam.getStation() == 1) {
+                                redisUtil.set(RedisKeyType.DUAL_CRN_STATION1_FLAG.key + crnProtocol.getCrnNo(), dualCrnCommand.getTaskNo(), 60 * 60 * 24);
+                            }else {
+                                redisUtil.set(RedisKeyType.DUAL_CRN_STATION2_FLAG.key + crnProtocol.getCrnNo(), dualCrnCommand.getTaskNo(), 60 * 60 * 24);
+                            }
                         }
-
-                        redisUtil.set(RedisKeyType.DUAL_CRN_COMMAND_.key + crnProtocol.getCrnNo(), JSON.toJSONString(commandList, SerializerFeature.DisableCircularReferenceDetect), 60 * 60 * 24);
                     } else if (step == 3) {
                         sendCommand((DualCrnCommand) task.getData());
                     }
@@ -120,11 +124,7 @@
                         continue;
                     }
 
-                    Object commandListObj = redisUtil.get(RedisKeyType.DUAL_CRN_COMMAND_.key + crnProtocol.getCrnNo());
-                    if (commandListObj == null) {
-                        continue;
-                    }
-                    List<SendDualCrnCommandParam> commandList = JSON.parseArray(commandListObj.toString(), SendDualCrnCommandParam.class);
+                    List<SendDualCrnCommandParam> commandList = getDualCrnCommandList();
                     for (SendDualCrnCommandParam commandParam : commandList) {
                         processStation(commandParam);
                     }
@@ -154,23 +154,27 @@
 
         boolean send = false;
         if (station == 1) {
-            if (dualCommand.getTaskMode().intValue() == DualCrnTaskModeType.PICK.id) {
-                if (crnProtocol.getStatus().equals(DualCrnStatusType.IDLE.id)) {
-                    send = true;
-                }
-            } else if (dualCommand.getTaskMode().intValue() == DualCrnTaskModeType.PUT.id) {
-                if (crnProtocol.getStatus().equals(DualCrnStatusType.FETCH_COMPLETE.id)) {
-                    send = true;
+            if (crnProtocol.getTaskSend() == 0) {
+                if (dualCommand.getTaskMode().intValue() == DualCrnTaskModeType.PICK.id) {
+                    if (crnProtocol.getStatus().equals(DualCrnStatusType.IDLE.id)) {
+                        send = true;
+                    }
+                } else if (dualCommand.getTaskMode().intValue() == DualCrnTaskModeType.PUT.id) {
+                    if (crnProtocol.getStatus().equals(DualCrnStatusType.FETCH_COMPLETE.id)) {
+                        send = true;
+                    }
                 }
             }
         }else {
-            if (dualCommand.getTaskMode().intValue() == DualCrnTaskModeType.PICK.id) {
-                if (crnProtocol.getStatusTwo().equals(DualCrnStatusType.IDLE.id)) {
-                    send = true;
-                }
-            } else if (dualCommand.getTaskMode().intValue() == DualCrnTaskModeType.PUT.id) {
-                if (crnProtocol.getStatusTwo().equals(DualCrnStatusType.FETCH_COMPLETE.id)) {
-                    send = true;
+            if (crnProtocol.getTaskSendTwo() == 0) {
+                if (dualCommand.getTaskMode().intValue() == DualCrnTaskModeType.PICK.id) {
+                    if (crnProtocol.getStatusTwo().equals(DualCrnStatusType.IDLE.id)) {
+                        send = true;
+                    }
+                } else if (dualCommand.getTaskMode().intValue() == DualCrnTaskModeType.PUT.id) {
+                    if (crnProtocol.getStatusTwo().equals(DualCrnStatusType.FETCH_COMPLETE.id)) {
+                        send = true;
+                    }
                 }
             }
         }
@@ -242,6 +246,7 @@
 
         //宸ヤ綅1
         crnProtocol.setTaskNo(0);
+        crnProtocol.setDeviceTaskNo(0);
         crnProtocol.setStatus(-1);
         crnProtocol.setBay(0);
         crnProtocol.setLevel(0);
@@ -252,6 +257,7 @@
 
         //宸ヤ綅2
         crnProtocol.setTaskNoTwo(0);
+        crnProtocol.setDeviceTaskNoTwo(0);
         crnProtocol.setStatusTwo(-1);
         crnProtocol.setBayTwo(0);
         crnProtocol.setLevelTwo(0);
@@ -276,7 +282,7 @@
 
         }
         if (basDualCrnpService != null) {
-            BasDualCrnp basDualCrnp = basDualCrnpService.selectOne(new EntityWrapper<BasDualCrnp>().eq("crn_no", deviceConfig.getDeviceNo()));
+            BasDualCrnp basDualCrnp = basDualCrnpService.getOne(new QueryWrapper<BasDualCrnp>().eq("crn_no", deviceConfig.getDeviceNo()));
             if(basDualCrnp == null) {
                 basDualCrnp = new BasDualCrnp();
                 basDualCrnp.setCrnNo(deviceConfig.getDeviceNo());
@@ -286,7 +292,7 @@
                 basDualCrnp.setMaxInTask(5);
                 basDualCrnp.setMaxOutTask(5);
                 basDualCrnp.setCreateTime(new Date());
-                basDualCrnpService.insert(basDualCrnp);
+                basDualCrnpService.save(basDualCrnp);
             }
         }
     }
@@ -311,7 +317,7 @@
         crnProtocol.setMode(crnStatus.getMode());
 
         //宸ヤ綅1
-        crnProtocol.setTaskNo(crnStatus.getTaskNo());
+        crnProtocol.setDeviceTaskNo(crnStatus.getTaskNo());
         crnProtocol.setStatus(crnStatus.getStatus());
         crnProtocol.setForkPos(crnStatus.getForkPos());
         crnProtocol.setLoaded(crnStatus.getLoaded());
@@ -319,7 +325,7 @@
         crnProtocol.setTaskSend(crnStatus.getTaskSend());
 
         //宸ヤ綅2
-        crnProtocol.setTaskNoTwo(crnStatus.getTaskNoTwo());
+        crnProtocol.setDeviceTaskNoTwo(crnStatus.getTaskNoTwo());
         crnProtocol.setStatusTwo(crnStatus.getStatusTwo());
         crnProtocol.setForkPosTwo(crnStatus.getForkPosTwo());
         crnProtocol.setLoadedTwo(crnStatus.getLoadedTwo());
@@ -386,7 +392,7 @@
                         log.setStatus(1);
                         log.setCreateTime(new Date());
                         log.setSystemStatus(JSON.toJSONString(crnProtocol));
-                        errLogService.insert(log);
+                        errLogService.save(log);
                         if (log.getId() != null) {
                             redisUtil.set(errFlagKey, log.getId(), 60 * 60 * 24);
                         }
@@ -487,10 +493,10 @@
     }
 
     @Override
-    public DualCrnCommand getResetCommand(Integer crnNo, Integer station) {
+    public DualCrnCommand getResetCommand(Integer taskNo, Integer crnNo, Integer station) {
         DualCrnCommand crnCommand = new DualCrnCommand();
         crnCommand.setCrnNo(crnNo); // 鍫嗗灈鏈虹紪鍙�
-        crnCommand.setTaskNo(0); // 宸ヤ綔鍙�
+        crnCommand.setTaskNo(taskNo); // 宸ヤ綔鍙�
         crnCommand.setTaskMode(DualCrnTaskModeType.CONFIRM.id); // 浠诲姟妯″紡:  纭
         crnCommand.setSourcePosX(0);     // 婧愬簱浣嶆帓
         crnCommand.setSourcePosY(0);     // 婧愬簱浣嶅垪
@@ -531,8 +537,49 @@
                     JSON.toJSONString(response)
             );
             if (bean != null) {
-                bean.insert(basDualCrnpOpt);
+                bean.save(basDualCrnpOpt);
             }
         }
     }
+
+    public List<SendDualCrnCommandParam> getDualCrnCommandList() {
+        List<SendDualCrnCommandParam> commandList = new ArrayList<>();
+        SendDualCrnCommandParam command1 = getDualCrnCommandList(1);
+        SendDualCrnCommandParam command2 = getDualCrnCommandList(2);
+        if (command1 != null) {
+            commandList.add(command1);
+        }
+
+        if (command2 != null) {
+            commandList.add(command2);
+        }
+
+        return commandList;
+    }
+
+    public SendDualCrnCommandParam getDualCrnCommandList(int station) {
+        SendDualCrnCommandParam sendDualCrnCommandParam = null;
+        String key = null;
+        if (station == 1 && crnProtocol.getTaskNo() > 0) {
+            key = RedisKeyType.DUAL_CRN_COMMAND_.key + crnProtocol.getTaskNo();
+        } else if (station == 2 && crnProtocol.getTaskNoTwo() > 0) {
+            key = RedisKeyType.DUAL_CRN_COMMAND_.key + crnProtocol.getTaskNoTwo();
+        }
+
+        if (key == null) {
+            return null;
+        }
+
+        Object commandObj = redisUtil.get(key);
+        if (commandObj == null) {
+            return null;
+        }
+
+        sendDualCrnCommandParam = JSON.parseObject(commandObj.toString(), SendDualCrnCommandParam.class);
+        if (sendDualCrnCommandParam == null) {
+            return null;
+        }
+
+        return sendDualCrnCommandParam;
+    }
 }

--
Gitblit v1.9.1