From baebeeb3275273f96055c33f9eb6daa1c9ffde2f Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期二, 09 四月 2024 10:33:53 +0800
Subject: [PATCH] Merge branch 'Four-Way-Rack' of http://47.97.1.152:5880/r/zy-asrs-master into Four-Way-Rack

---
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/controller/BasShuttleController.java |   67 +++++++++++++++++++++++++++++++++
 1 files changed, 66 insertions(+), 1 deletions(-)

diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/controller/BasShuttleController.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/controller/BasShuttleController.java
index b5a01f7..cfca0db 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/controller/BasShuttleController.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/controller/BasShuttleController.java
@@ -23,6 +23,14 @@
 import com.zy.asrs.wcs.core.service.TaskService;
 import com.zy.asrs.wcs.core.utils.Utils;
 import com.zy.asrs.wcs.rcs.News;
+import com.zy.asrs.wcs.rcs.cache.SlaveConnection;
+import com.zy.asrs.wcs.rcs.entity.Device;
+import com.zy.asrs.wcs.rcs.entity.DeviceType;
+import com.zy.asrs.wcs.rcs.model.enums.SlaveType;
+import com.zy.asrs.wcs.rcs.model.protocol.ShuttleProtocol;
+import com.zy.asrs.wcs.rcs.service.DeviceService;
+import com.zy.asrs.wcs.rcs.service.DeviceTypeService;
+import com.zy.asrs.wcs.rcs.thread.ShuttleThread;
 import com.zy.asrs.wcs.system.controller.BaseController;
 import com.zy.asrs.wcs.utils.ExcelUtil;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -49,6 +57,10 @@
     private AnalyzeService analyzeService;
     @Autowired
     private MotionService motionService;
+    @Autowired
+    private DeviceService deviceService;
+    @Autowired
+    private DeviceTypeService deviceTypeService;
 
     @PreAuthorize("hasAuthority('core:basShuttle:list')")
     @PostMapping("/basShuttle/page")
@@ -120,10 +132,11 @@
         ExcelUtil.build(ExcelUtil.create(basShuttleService.list(), BasShuttle.class), response);
     }
 
+    //鎵嬪姩鎿嶄綔
     @PreAuthorize("hasAuthority('core:basShuttle:operator')")
     @PostMapping("/basShuttle/operator/shuttle")
     @Transactional
-    public R shuttleOperator(@RequestBody ShuttleOperatorParam param) {
+    public synchronized R shuttleOperator(@RequestBody ShuttleOperatorParam param) {
         if (Cools.isEmpty(param.getShuttleNo(), param.getShuttleTaskMode())) {
             return R.error("鍙傛暟涓虹┖");
         }
@@ -183,4 +196,56 @@
         return R.ok();
     }
 
+    //璺戝簱绯荤粺
+    @PreAuthorize("hasAuthority('core:basShuttle:operator')")
+    @PostMapping("/basShuttle/moveLoc")
+    @Transactional
+    public synchronized R shuttleMoveLoc(@RequestParam Integer shuttleNo,
+                            @RequestParam Integer moveType,
+                            @RequestParam Integer xStart,
+                            @RequestParam Integer xTarget,
+                            @RequestParam Integer yStart,
+                            @RequestParam Integer yTarget) {
+        DeviceType deviceType = deviceTypeService.getOne(new LambdaQueryWrapper<DeviceType>()
+                .eq(DeviceType::getFlag, String.valueOf(SlaveType.Shuttle))
+                .eq(DeviceType::getStatus, 1)
+                .eq(DeviceType::getHostId, getHostId()));
+        if (deviceType == null) {
+            return R.error();
+        }
+
+        Device device = deviceService.getOne(new LambdaQueryWrapper<Device>()
+                .eq(Device::getDeviceType, deviceType.getId())
+                .eq(Device::getStatus, 1)
+                .eq(Device::getHostId, getHostId())
+                .eq(Device::getDeviceNo, shuttleNo));
+        if (device == null) {
+            return R.error();
+        }
+
+        ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, device.getId().intValue());
+        if (shuttleThread == null) {
+            return R.error();
+        }
+
+        ShuttleProtocol shuttleProtocol = shuttleThread.getStatus();
+        if (shuttleProtocol == null) {
+            return R.error();
+        }
+
+        if (!shuttleThread.isIdle()) {
+            return R.error("灏忚溅蹇欑涓�");
+        }
+
+        shuttleProtocol.setMoveLoc(true);//寮�鍚窇搴�
+        shuttleProtocol.setMoveType(moveType);
+        shuttleProtocol.setXStart(xStart);
+        shuttleProtocol.setXTarget(xTarget);
+        shuttleProtocol.setXCurrent(xStart);
+        shuttleProtocol.setYStart(yStart);
+        shuttleProtocol.setYTarget(yTarget);
+        shuttleProtocol.setYCurrent(yStart);
+        return R.ok();
+    }
+
 }

--
Gitblit v1.9.1