From 3bb8c58c42badd5768cacfda3c9a5ccce9136e4e Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期二, 09 四月 2024 15:24:12 +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/domain/param/ShuttleMoveLocParam.java |   20 ++++++
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/timer/DeviceTimer.java                |    6 +-
 zy-asrs-flow/src/pages/device/shuttle/index.jsx                                      |   64 +++++++++++++++++++-
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/controller/BasShuttleController.java  |   24 +++----
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/action/ShuttleAction.java             |    9 ++
 5 files changed, 99 insertions(+), 24 deletions(-)

diff --git a/zy-asrs-flow/src/pages/device/shuttle/index.jsx b/zy-asrs-flow/src/pages/device/shuttle/index.jsx
index c370945..be86591 100644
--- a/zy-asrs-flow/src/pages/device/shuttle/index.jsx
+++ b/zy-asrs-flow/src/pages/device/shuttle/index.jsx
@@ -13,6 +13,11 @@
     const [openOpera, setOpenOpera] = useState(false);
     const [currentData, setCurrentData] = useState(null);
     const [targetLoc, setTargetLoc] = useState("");
+    const [xStart, setXStart] = useState(1);
+    const [xTarget, setXTarget] = useState(1);
+    const [yStart, setYStart] = useState(1);
+    const [yTarget, setYTarget] = useState(1);
+    const [moveLocType, setMoveLocType] = useState(1);
 
     useEffect(() => {
         var newWs = new WebSocket("ws://127.0.0.1:9090/wcs/ws/shuttle/websocket");
@@ -112,6 +117,54 @@
             message.warning("璇锋眰澶辫触");
             return false;
         }
+    }
+
+    const shuttleMoveLoc = async () => {
+        if (xStart == '' || xTarget == '' || yStart == '' || yTarget == '') {
+            message.warning('璇疯緭鍏ュ弬鏁�');
+            return;
+        }
+
+        try {
+            const resp = await Http.doPost('api/basShuttle/moveLoc', {
+                shuttleNo: currentData.shuttleNo,
+                moveType: moveLocType,
+                startX: xStart,
+                targetX: xTarget,
+                startY: yStart,
+                targetY: yTarget,
+            });
+            if (resp.code === 200) {
+                message.success("璇锋眰鎴愬姛");
+                return true;
+            } else {
+                message.warning(resp.msg);
+                return false;
+            }
+        } catch (error) {
+            message.warning("璇锋眰澶辫触");
+            return false;
+        }
+    }
+
+    const xStartChange = (e) => {
+        setXStart(e.target.value)
+    }
+
+    const xTargetChange = (e) => {
+        setXTarget(e.target.value)
+    }
+
+    const yStartChange = (e) => {
+        setYStart(e.target.value)
+    }
+
+    const yTargetChange = (e) => {
+        setYTarget(e.target.value)
+    }
+
+    const moveLocTypeChange = (e) => {
+        setMoveLocType(e)
     }
 
     let codeContent = (<PageContainer
@@ -230,18 +283,19 @@
                     <div style={{ marginBottom: '15px' }}>
                         <Card title="璺戝簱绯荤粺" style={{ width: 300 }}>
                             <div className="commandItem">
-                                <div><Input addonBefore="X璧风偣" defaultValue="1" /></div>
-                                <div><Input addonBefore="X缁堢偣" defaultValue="1" /></div>
-                                <div><Input addonBefore="Y璧风偣" defaultValue="1" /></div>
-                                <div><Input addonBefore="Y缁堢偣" defaultValue="1" /></div>
+                                <div><Input addonBefore="X璧风偣" defaultValue="1" onChange={xStartChange} /></div>
+                                <div><Input addonBefore="X缁堢偣" defaultValue="1" onChange={xTargetChange} /></div>
+                                <div><Input addonBefore="Y璧风偣" defaultValue="1" onChange={yStartChange} /></div>
+                                <div><Input addonBefore="Y缁堢偣" defaultValue="1" onChange={yTargetChange} /></div>
                                 <div>
                                     <Select
                                         defaultValue="0"
+                                        onChange={moveLocTypeChange}
                                         style={{ width: 120 }}
                                         options={[{ value: '0', label: '璺戣建閬�' }, { value: '1', label: '璺戝簱浣�' }, { value: '2', label: '姣嶈建閬撳惊鐜窇' }, { value: '3', label: '瀛愯建閬撳惊鐜窇' }]}
                                     />
                                 </div>
-                                <Button>璺戝簱</Button>
+                                <Button onClick={() => shuttleMoveLoc()}>璺戝簱</Button>
                             </div>
                         </Card>
                     </div>
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/action/ShuttleAction.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/action/ShuttleAction.java
index 6f55847..515b53e 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/action/ShuttleAction.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/action/ShuttleAction.java
@@ -217,8 +217,13 @@
             return;
         }
 
-        //灏忚溅绌洪棽涓旀湁璺戝簱绋嬪簭
-        if (!(shuttleThread.isIdle() && shuttleProtocol.getMoveLoc())) {
+        //灏忚溅寮�鍚窇搴撴ā寮�
+        if (!shuttleProtocol.getMoveLoc()) {
+            return;
+        }
+
+        //灏忚溅绌洪棽
+        if (!shuttleThread.isIdle()) {
             return;
         }
 
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 cfca0db..905f5ec 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
@@ -10,6 +10,7 @@
 import com.zy.asrs.wcs.common.domain.BaseParam;
 import com.zy.asrs.wcs.common.domain.KeyValVo;
 import com.zy.asrs.wcs.common.domain.PageParam;
+import com.zy.asrs.wcs.core.domain.param.ShuttleMoveLocParam;
 import com.zy.asrs.wcs.core.domain.param.ShuttleOperatorParam;
 import com.zy.asrs.wcs.core.entity.BasShuttle;
 import com.zy.asrs.wcs.core.entity.Motion;
@@ -200,12 +201,7 @@
     @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) {
+    public synchronized R shuttleMoveLoc(@RequestBody ShuttleMoveLocParam param) {
         DeviceType deviceType = deviceTypeService.getOne(new LambdaQueryWrapper<DeviceType>()
                 .eq(DeviceType::getFlag, String.valueOf(SlaveType.Shuttle))
                 .eq(DeviceType::getStatus, 1)
@@ -218,7 +214,7 @@
                 .eq(Device::getDeviceType, deviceType.getId())
                 .eq(Device::getStatus, 1)
                 .eq(Device::getHostId, getHostId())
-                .eq(Device::getDeviceNo, shuttleNo));
+                .eq(Device::getDeviceNo, param.getShuttleNo()));
         if (device == null) {
             return R.error();
         }
@@ -238,13 +234,13 @@
         }
 
         shuttleProtocol.setMoveLoc(true);//寮�鍚窇搴�
-        shuttleProtocol.setMoveType(moveType);
-        shuttleProtocol.setXStart(xStart);
-        shuttleProtocol.setXTarget(xTarget);
-        shuttleProtocol.setXCurrent(xStart);
-        shuttleProtocol.setYStart(yStart);
-        shuttleProtocol.setYTarget(yTarget);
-        shuttleProtocol.setYCurrent(yStart);
+        shuttleProtocol.setMoveType(param.getMoveType());
+        shuttleProtocol.setXStart(param.getStartX());
+        shuttleProtocol.setXTarget(param.getTargetX());
+        shuttleProtocol.setXCurrent(param.getStartX());
+        shuttleProtocol.setYStart(param.getStartY());
+        shuttleProtocol.setYTarget(param.getTargetY());
+        shuttleProtocol.setYCurrent(param.getStartY());
         return R.ok();
     }
 
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/domain/param/ShuttleMoveLocParam.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/domain/param/ShuttleMoveLocParam.java
new file mode 100644
index 0000000..0da8cf2
--- /dev/null
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/domain/param/ShuttleMoveLocParam.java
@@ -0,0 +1,20 @@
+package com.zy.asrs.wcs.core.domain.param;
+
+import lombok.Data;
+
+@Data
+public class ShuttleMoveLocParam {
+
+    private Integer shuttleNo;
+
+    private Integer moveType;
+
+    private Integer startX;
+
+    private Integer targetX;
+
+    private Integer startY;
+
+    private Integer targetY;
+
+}
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/timer/DeviceTimer.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/timer/DeviceTimer.java
index c127569..f464165 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/timer/DeviceTimer.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/timer/DeviceTimer.java
@@ -48,6 +48,9 @@
                 .eq(Device::getStatus, 1)
                 .eq(Device::getDeviceType, deviceType.getId()));
         for (Device device : list) {
+            //灏忚溅绌洪棽涓旀湁璺戝簱绋嬪簭
+            shuttleAction.moveLoc(device);
+
             Object object = redisUtil.get(DeviceRedisConstant.SHUTTLE_FLAG + device.getDeviceNo());
             if (object == null) {
                 continue;
@@ -58,9 +61,6 @@
                 //瀛樺湪浠诲姟闇�瑕佹墽琛�
                 boolean result = shuttleAction.executeWork(device, taskNo);
             }
-
-            //灏忚溅绌洪棽涓旀湁璺戝簱绋嬪簭
-            shuttleAction.moveLoc(device);
         }
     }
 

--
Gitblit v1.9.1