From d835d1b51f832889929cdf69010034a30ef44d02 Mon Sep 17 00:00:00 2001
From: Junjie <xjj@123>
Date: 星期四, 17 十月 2024 13:57:29 +0800
Subject: [PATCH] #

---
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/controller/OpenController.java |  106 +++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 99 insertions(+), 7 deletions(-)

diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/controller/OpenController.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/controller/OpenController.java
index 1fc8368..b39dad9 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/controller/OpenController.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/controller/OpenController.java
@@ -6,10 +6,7 @@
 import com.zy.asrs.framework.common.R;
 import com.zy.asrs.framework.common.SnowflakeIdWorker;
 import com.zy.asrs.wcs.core.domain.dto.BasLiftStaDto;
-import com.zy.asrs.wcs.core.domain.param.CreateInTaskParam;
-import com.zy.asrs.wcs.core.domain.param.CreateManualTakeTaskParam;
-import com.zy.asrs.wcs.core.domain.param.CreateMoveTaskParam;
-import com.zy.asrs.wcs.core.domain.param.CreateOutTaskParam;
+import com.zy.asrs.wcs.core.domain.param.*;
 import com.zy.asrs.wcs.core.entity.*;
 import com.zy.asrs.wcs.core.model.enums.DeviceCtgType;
 import com.zy.asrs.wcs.core.model.enums.TaskCtgType;
@@ -19,8 +16,10 @@
 import com.zy.asrs.wcs.rcs.cache.SlaveConnection;
 import com.zy.asrs.wcs.rcs.entity.Device;
 import com.zy.asrs.wcs.rcs.model.enums.SlaveType;
+import com.zy.asrs.wcs.rcs.model.enums.WorkModeType;
 import com.zy.asrs.wcs.rcs.model.protocol.ShuttleProtocol;
 import com.zy.asrs.wcs.rcs.service.DeviceService;
+import com.zy.asrs.wcs.rcs.thread.DevpThread;
 import com.zy.asrs.wcs.rcs.thread.ShuttleThread;
 import com.zy.asrs.wcs.system.controller.BaseController;
 import com.zy.asrs.wcs.system.entity.Dict;
@@ -58,6 +57,10 @@
     private BasConveyorPathService basConveyorPathService;
     @Autowired
     private BasLiftService basLiftService;
+    @Autowired
+    private BasConveyorService basConveyorService;
+    @Autowired
+    private BasConveyorStaService basConveyorStaService;
 
     //鐢熸垚鍏ュ簱浠诲姟
     @PostMapping("/createInTask")
@@ -110,6 +113,40 @@
             destSite = String.valueOf(path.getDeviceStn());
         }
 
+//        //鍒ゆ柇鍑哄叆搴撴ā寮�
+//        BasConveyorSta basConveyorSta = basConveyorStaService.getOne(new LambdaQueryWrapper<BasConveyorSta>()
+//                .eq(BasConveyorSta::getSiteNo, destSite));
+//        if (!basConveyorSta.getWorkMode().equals((int) WorkModeType.PAKIN_MODE.id)) {
+//            //涓嶆槸鍏ュ簱妯″紡锛屾娴嬫槸鍚﹀彲鍒囨崲鍏ュ簱
+//            //鑾峰彇鍑哄簱浠诲姟绫诲瀷
+//            TaskCtg taskInCtg = taskCtgService.getOne(new LambdaQueryWrapper<TaskCtg>()
+//                    .eq(TaskCtg::getFlag, String.valueOf(TaskCtgType.OUT))
+//                    .eq(TaskCtg::getStatus, 1));
+//            if (taskInCtg == null) {
+//                return R.error("浠诲姟绫诲瀷寮傚父");
+//            }
+//            List<Task> tasks = taskService.list(new LambdaQueryWrapper<Task>()
+//                    .eq(Task::getTaskCtg, taskInCtg.getId()));
+//            if (!tasks.isEmpty()) {
+//                return R.error("褰撳墠瀛樺湪鍑哄簱浠诲姟锛屾棤娉曞垏鎹㈠叆搴撴ā寮�");
+//            }
+//
+//            BasConveyor basConveyor = basConveyorService.getOne(new LambdaQueryWrapper<BasConveyor>().eq(BasConveyor::getConveyorNo, basConveyorSta.getConveyorNo()));
+//            if(basConveyor == null) {
+//                return R.error("杈撻�佺嚎涓嶅瓨鍦�");
+//            }
+//
+//            DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Conveyor, basConveyor.getDeviceId().intValue());
+//            if(devpThread == null) {
+//                return R.error("杈撻�佺嚎绾跨▼涓嶅瓨鍦�");
+//            }
+//
+//            boolean result = devpThread.switchWorkMode(Integer.parseInt(destSite), WorkModeType.PAKIN_MODE.id);
+//            if (!result) {
+//                return R.error("妯″紡鍒囨崲澶辫触");
+//            }
+//        }
+
         //浼樺厛绾�
         Integer priority = 10;
         if (param.getPriority() != null) {
@@ -127,6 +164,7 @@
         task.setOriginLoc(null);
         task.setDestSite(destSite);
         task.setDestLoc(param.getDestLoc());
+        task.setZpallet(param.getBarcode());
         task.setIoTime(new Date());
         task.setStartTime(new Date());
         task.setStatus(1);
@@ -210,6 +248,40 @@
 
             originSite = String.valueOf(originStaDto.getStaNo());
         }
+
+//        //鍒ゆ柇鍑哄叆搴撴ā寮�
+//        BasConveyorSta basConveyorSta = basConveyorStaService.getOne(new LambdaQueryWrapper<BasConveyorSta>()
+//                .eq(BasConveyorSta::getSiteNo, originSite));
+//        if (!basConveyorSta.getWorkMode().equals((int) WorkModeType.PAKOUT_MODE.id)) {
+//            //涓嶆槸鍑哄簱妯″紡锛屾娴嬫槸鍚﹀彲鍒囨崲鍑哄簱
+//            //鑾峰彇鍏ュ簱浠诲姟绫诲瀷
+//            TaskCtg taskInCtg = taskCtgService.getOne(new LambdaQueryWrapper<TaskCtg>()
+//                    .eq(TaskCtg::getFlag, String.valueOf(TaskCtgType.IN))
+//                    .eq(TaskCtg::getStatus, 1));
+//            if (taskInCtg == null) {
+//                return R.error("浠诲姟绫诲瀷寮傚父");
+//            }
+//            List<Task> tasks = taskService.list(new LambdaQueryWrapper<Task>()
+//                    .eq(Task::getTaskCtg, taskInCtg.getId()));
+//            if (!tasks.isEmpty()) {
+//                return R.error("褰撳墠瀛樺湪鍏ュ簱浠诲姟锛屾棤娉曞垏鎹㈠嚭搴撴ā寮�");
+//            }
+//
+//            BasConveyor basConveyor = basConveyorService.getOne(new LambdaQueryWrapper<BasConveyor>().eq(BasConveyor::getConveyorNo, basConveyorSta.getConveyorNo()));
+//            if(basConveyor == null) {
+//                return R.error("杈撻�佺嚎涓嶅瓨鍦�");
+//            }
+//
+//            DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Conveyor, basConveyor.getDeviceId().intValue());
+//            if(devpThread == null) {
+//                return R.error("杈撻�佺嚎绾跨▼涓嶅瓨鍦�");
+//            }
+//
+//            boolean result = devpThread.switchWorkMode(Integer.parseInt(originSite), WorkModeType.PAKOUT_MODE.id);
+//            if (!result) {
+//                return R.error("妯″紡鍒囨崲澶辫触");
+//            }
+//        }
 
         //浼樺厛绾�
         Integer priority = 10;
@@ -321,9 +393,9 @@
         if (shuttleProtocol == null) {
             return R.error("绌挎杞︿笉鍦ㄧ嚎");
         }
-        if (Utils.getLev(shuttleProtocol.getCurrentLocNo()) != Utils.getLev(param.getDestLoc())) {
-            return R.error("绌挎杞﹀拰鐩爣浣嶇疆涓嶅湪鍚屼竴妤煎眰");
-        }
+//        if (Utils.getLev(shuttleProtocol.getCurrentLocNo()) != Utils.getLev(param.getDestLoc())) {
+//            return R.error("绌挎杞﹀拰鐩爣浣嶇疆涓嶅湪鍚屼竴妤煎眰");
+//        }
 
         Task one = taskService.getOne(new LambdaQueryWrapper<Task>()
                 .eq(Task::getTaskCtg, taskCtg.getId())
@@ -364,4 +436,24 @@
         return R.ok();
     }
 
+    //鍒囨崲宸ヤ綔妯″紡
+    @PostMapping("/switchWorkMode")
+    public R switchWorkMode(@RequestBody SwitchWorkModeParam param) {
+        BasConveyor basConveyor = basConveyorService.getOne(new LambdaQueryWrapper<BasConveyor>().eq(BasConveyor::getConveyorNo, param.getConveyorNo()));
+        if(basConveyor == null) {
+            return R.error("杈撻�佺嚎涓嶅瓨鍦�");
+        }
+
+        DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Conveyor, basConveyor.getDeviceId().intValue());
+        if(devpThread == null) {
+            return R.error("杈撻�佺嚎绾跨▼涓嶅瓨鍦�");
+        }
+
+        boolean result = devpThread.switchWorkMode(param.getSiteId(), param.getWorkMode());
+        if (!result) {
+            return R.error("妯″紡鍒囨崲澶辫触");
+        }
+        return R.ok();
+    }
+
 }

--
Gitblit v1.9.1