From 3c45d4f9f3aba5bc85a9577e43c0dffc71b93a22 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期四, 10 七月 2025 15:54:27 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/controller/ForkLiftController.java |  101 +++++++++++++++++++++++++++++++-------------------
 1 files changed, 63 insertions(+), 38 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/ForkLiftController.java b/src/main/java/com/zy/asrs/controller/ForkLiftController.java
index 95625b5..3344deb 100644
--- a/src/main/java/com/zy/asrs/controller/ForkLiftController.java
+++ b/src/main/java/com/zy/asrs/controller/ForkLiftController.java
@@ -2,6 +2,7 @@
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.core.annotations.ManagerAuth;
 import com.core.common.BaseRes;
 import com.core.common.Cools;
@@ -10,25 +11,18 @@
 import com.zy.asrs.domain.param.LiftOperatorParam;
 import com.zy.asrs.domain.vo.*;
 import com.zy.asrs.entity.BasLift;
+import com.zy.asrs.entity.DeviceConfig;
 import com.zy.asrs.service.BasLiftService;
+import com.zy.asrs.service.DeviceConfigService;
 import com.zy.common.service.CommonService;
-import com.zy.common.utils.ForkLiftUtils;
 import com.zy.common.utils.RedisUtil;
 import com.zy.core.action.ForkLiftAction;
-import com.zy.core.cache.MessageQueue;
 import com.zy.core.cache.OutputQueue;
 import com.zy.core.cache.SlaveConnection;
-import com.zy.core.enums.ForkLiftProtocolStatusType;
-import com.zy.core.enums.ForkLiftTaskModeType;
-import com.zy.core.enums.RedisKeyType;
-import com.zy.core.enums.SlaveType;
-import com.zy.core.model.ForkLiftSlave;
-import com.zy.core.model.LiftSlave;
-import com.zy.core.model.Task;
+import com.zy.core.enums.*;
 import com.zy.core.model.command.*;
 import com.zy.core.model.protocol.ForkLiftProtocol;
-import com.zy.core.model.protocol.LiftStaProtocol;
-import com.zy.core.properties.SlaveProperties;
+import com.zy.core.model.protocol.ForkLiftStaProtocol;
 import com.zy.core.thread.ForkLiftThread;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -48,25 +42,27 @@
     @Autowired
     private CommonService commonService;
     @Autowired
-    private SlaveProperties slaveProperties;
-    @Autowired
     private BasLiftService basLiftService;
     @Autowired
     private RedisUtil redisUtil;
     @Autowired
     private ForkLiftAction forkLiftAction;
+    @Autowired
+    private DeviceConfigService deviceConfigService;
 
     @PostMapping("/table/lift/state")
     @ManagerAuth(memo = "鎻愬崌鏈轰俊鎭〃")
     public R liftStateTable(){
         ArrayList<JSONObject> list = new ArrayList<>();
-        for (ForkLiftSlave slave : slaveProperties.getForkLift()) {
+        List<DeviceConfig> forkliftList = deviceConfigService.selectList(new EntityWrapper<DeviceConfig>()
+                .eq("device_type", String.valueOf(SlaveType.ForkLift)));
+        for (DeviceConfig device : forkliftList) {
             // 琛ㄦ牸琛�
             JSONObject baseObj = new JSONObject();
-            baseObj.put("shuttleNo", slave.getId());
+            baseObj.put("liftNo", device.getDeviceNo());
             list.add(baseObj);
             // 鑾峰彇鎻愬崌鏈轰俊鎭�
-            ForkLiftThread forkLiftThread = (ForkLiftThread) SlaveConnection.get(SlaveType.ForkLift, slave.getId());
+            ForkLiftThread forkLiftThread = (ForkLiftThread) SlaveConnection.get(SlaveType.ForkLift, device.getDeviceNo());
             if (forkLiftThread == null) {
                 continue;
             }
@@ -75,6 +71,8 @@
                 continue;
             }
             JSONObject data = JSON.parseObject(JSON.toJSONString(forkLiftProtocol));
+            List<ForkLiftStaProtocol> forkLiftStaProtocols = forkLiftThread.getForkLiftStaProtocols();
+            data.put("forkLiftStaProtocols", forkLiftStaProtocols);
             baseObj.putAll(data);
         }
         return R.ok().add(list);
@@ -84,13 +82,15 @@
     @ManagerAuth(memo = "鎻愬崌鏈烘暟鎹〃")
     public R liftMsgTable(){
         List<LiftMsgTableVo> list = new ArrayList<>();
-        for (ForkLiftSlave slave : slaveProperties.getForkLift()) {
+        List<DeviceConfig> forkliftList = deviceConfigService.selectList(new EntityWrapper<DeviceConfig>()
+                .eq("device_type", String.valueOf(SlaveType.ForkLift)));
+        for (DeviceConfig device : forkliftList) {
             // 琛ㄦ牸琛�
             LiftMsgTableVo vo = new LiftMsgTableVo();
-            vo.setLiftNo(slave.getId());   //  鎻愬崌鏈哄彿
+            vo.setLiftNo(device.getDeviceNo());   //  鎻愬崌鏈哄彿
             list.add(vo);
             // 鑾峰彇鎻愬崌鏈轰俊鎭�
-            ForkLiftThread forkLiftThread = (ForkLiftThread) SlaveConnection.get(SlaveType.ForkLift, slave.getId());
+            ForkLiftThread forkLiftThread = (ForkLiftThread) SlaveConnection.get(SlaveType.ForkLift, device.getDeviceNo());
             if (forkLiftThread == null) {
                 continue;
             }
@@ -99,8 +99,9 @@
                 continue;
             }
 
-            vo.setWorkNo(forkLiftProtocol.getTaskNo().intValue());//浠诲姟鍙�
+            vo.setWorkNo(forkLiftProtocol.getTaskNo());//浠诲姟鍙�
             vo.setPakMk(forkLiftProtocol.getPakMk()?"Y" : "N");    // 浣滀笟鏍囪
+            vo.setForkLiftStaProtocols(forkLiftThread.getForkLiftStaProtocols());
         }
         return R.ok().add(list);
     }
@@ -111,7 +112,7 @@
         StringBuilder str = new StringBuilder();
         String s;
         int i = 0;
-        while((s = OutputQueue.LIFT.poll()) != null && i <=10) {
+        while((s = OutputQueue.FORKLIFT.poll()) != null && i <=10) {
             str.append("\n").append(s);
             i++;
         }
@@ -121,10 +122,12 @@
     @GetMapping("/detl/{liftNo}")
     public R liftDetl(@PathVariable("liftNo") Integer liftNo){
         LiftDataVo vo = new LiftDataVo();
-        for (ForkLiftSlave liftSlave : slaveProperties.getForkLift()) {
-            if (liftNo.equals(liftSlave.getId())) {
-                vo.setLiftNo(liftSlave.getId());
-                BasLift basLift = basLiftService.selectById(liftSlave.getId());
+        List<DeviceConfig> forkliftList = deviceConfigService.selectList(new EntityWrapper<DeviceConfig>()
+                .eq("device_type", String.valueOf(SlaveType.ForkLift)));
+        for (DeviceConfig device : forkliftList) {
+            if (liftNo.equals(device.getDeviceNo())) {
+                vo.setLiftNo(device.getDeviceNo());
+                BasLift basLift = basLiftService.selectById(device.getDeviceNo());
                 if (!Cools.isEmpty(basLift)) {
                     vo.setWorkNo(basLift.getWrkNo());
                     vo.setPakMk(basLift.getPakMk());
@@ -138,11 +141,13 @@
     @GetMapping("/sensor/detl/{liftNo}")
     public R liftSensorDetl(@PathVariable("liftNo") Integer liftNo){
         LiftSensorDataVo vo = new LiftSensorDataVo();
-        for (ForkLiftSlave liftSlave : slaveProperties.getForkLift()) {
-            if (liftNo.equals(liftSlave.getId())) {
-                vo.setLiftNo(liftSlave.getId());
+        List<DeviceConfig> forkliftList = deviceConfigService.selectList(new EntityWrapper<DeviceConfig>()
+                .eq("device_type", String.valueOf(SlaveType.ForkLift)));
+        for (DeviceConfig device : forkliftList) {
+            if (liftNo.equals(device.getDeviceNo())) {
+                vo.setLiftNo(device.getDeviceNo());
                 // 鑾峰彇鎻愬崌鏈轰俊鎭�
-                ForkLiftThread forkLiftThread = (ForkLiftThread) SlaveConnection.get(SlaveType.ForkLift, liftSlave.getId());
+                ForkLiftThread forkLiftThread = (ForkLiftThread) SlaveConnection.get(SlaveType.ForkLift, device.getDeviceNo());
                 if (forkLiftThread == null) {
                     return R.error("璁惧涓嶅湪绾�");
                 }
@@ -160,9 +165,7 @@
     @PostMapping("/detl/update")
     @ManagerAuth(memo = "淇敼鏁版嵁")
     public R liftUpdate(@RequestParam Integer liftNo,
-                        @RequestParam Short workNo,
-                        @RequestParam String pakMk,
-                        @RequestParam Integer token) {
+                        @RequestParam Short workNo) {
         ForkLiftThread forkLiftThread = (ForkLiftThread) SlaveConnection.get(SlaveType.ForkLift, liftNo);
         if (forkLiftThread == null) {
             return R.error("plc宸叉帀绾�");
@@ -277,15 +280,15 @@
 
         if (param.getLiftTaskMode() == 1) {
             //灏忚溅鎹㈠眰
-            int workNo = commonService.getWorkNo(99);//鑾峰彇浠诲姟鍙�
+            int workNo = commonService.getWorkNo(WrkIoType.MANUAL.id);//鑾峰彇浠诲姟鍙�
 
             Integer startSta = param.getSourceStaNo();
             Integer targetSta = param.getStaNo();
 
             //鑾峰彇鎻愬崌鏈哄懡浠�
-            List<ForkLiftCommand> liftCommand = forkLiftThread.getShuttleSwitchCommand(workNo, startSta, targetSta);
+            ForkLiftCommand liftCommand = forkLiftThread.getShuttleSwitchCommand(workNo, startSta, targetSta);
             ArrayList<ForkLiftCommand> commands = new ArrayList<>();
-            commands.addAll(liftCommand);
+            commands.add(liftCommand);
 
             //鎻愪氦鍒扮嚎绋嬪幓宸ヤ綔
             LiftAssignCommand assignCommand = new LiftAssignCommand();
@@ -299,15 +302,15 @@
             return R.ok();
         } else if (param.getLiftTaskMode() == 2) {
             //绉诲姩鎵樼洏
-            int workNo = commonService.getWorkNo(99);//鑾峰彇浠诲姟鍙�
+            int workNo = commonService.getWorkNo(WrkIoType.MANUAL.id);//鑾峰彇浠诲姟鍙�
 
             Integer startSta = param.getSourceStaNo();
             Integer targetSta = param.getStaNo();
 
             //鑾峰彇鎻愬崌鏈哄懡浠�
-            List<ForkLiftCommand> liftCommand = forkLiftThread.getPickAndPutCommand(workNo, startSta, targetSta);
+            ForkLiftCommand liftCommand = forkLiftThread.getPickAndPutCommand(workNo, startSta, targetSta);
             ArrayList<ForkLiftCommand> commands = new ArrayList<>();
-            commands.addAll(liftCommand);
+            commands.add(liftCommand);
 
             //鎻愪氦鍒扮嚎绋嬪幓宸ヤ綔
             LiftAssignCommand assignCommand = new LiftAssignCommand();
@@ -320,6 +323,28 @@
             forkLiftAction.assignWork(forkLiftProtocol.getLiftNo(), assignCommand);
             return R.ok();
         } else if (param.getLiftTaskMode() == 3) {
+            //绉诲姩
+            int workNo = commonService.getWorkNo(WrkIoType.MANUAL.id);//鑾峰彇浠诲姟鍙�
+
+            Integer startSta = param.getSourceStaNo();
+            Integer targetSta = param.getStaNo();
+
+            //鑾峰彇鎻愬崌鏈哄懡浠�
+            ForkLiftCommand liftCommand = forkLiftThread.getMoveCommand(workNo, startSta, targetSta);
+            ArrayList<ForkLiftCommand> commands = new ArrayList<>();
+            commands.add(liftCommand);
+
+            //鎻愪氦鍒扮嚎绋嬪幓宸ヤ綔
+            LiftAssignCommand assignCommand = new LiftAssignCommand();
+            assignCommand.setCommands(commands);
+            assignCommand.setLiftNo(forkLiftProtocol.getLiftNo().shortValue());
+            assignCommand.setTaskNo((short) workNo);
+            assignCommand.setAuto(false);//鎵嬪姩妯″紡
+            assignCommand.setTaskMode(ForkLiftTaskModeType.MOVE.id.shortValue());
+
+            forkLiftAction.assignWork(forkLiftProtocol.getLiftNo(), assignCommand);
+            return R.ok();
+        } else if (param.getLiftTaskMode() == 4) {
             //浠诲姟纭
             forkLiftThread.reset();
             return R.ok();

--
Gitblit v1.9.1