From 2a7b97eddbe3d24a47389a58dde46fe6175b6971 Mon Sep 17 00:00:00 2001 From: Junjie <fallin.jie@qq.com> Date: 星期日, 16 六月 2024 10:22:12 +0800 Subject: [PATCH] # --- zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/controller/OpenController.java | 77 ++++++++++++++++++++++++++++++++++---- 1 files changed, 68 insertions(+), 9 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 3e9339b..706f0a6 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 @@ -11,6 +11,7 @@ import com.zy.asrs.wcs.core.entity.Task; import com.zy.asrs.wcs.core.entity.TaskCtg; import com.zy.asrs.wcs.core.model.enums.DeviceCtgType; +import com.zy.asrs.wcs.core.model.enums.TaskCtgType; import com.zy.asrs.wcs.core.model.enums.TaskStsType; import com.zy.asrs.wcs.core.service.LocService; import com.zy.asrs.wcs.core.service.TaskCtgService; @@ -23,6 +24,8 @@ import com.zy.asrs.wcs.rcs.service.DeviceService; import com.zy.asrs.wcs.rcs.thread.ShuttleThread; import com.zy.asrs.wcs.system.controller.BaseController; +import com.zy.asrs.wcs.system.entity.Dict; +import com.zy.asrs.wcs.system.service.DictService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -49,13 +52,15 @@ private DeviceService deviceService; @Autowired private LocService locService; + @Autowired + private DictService dictService; //鐢熸垚鍏ュ簱浠诲姟 @PostMapping("/createInTask") public R createInTask(@RequestBody CreateInTaskParam param) { //鑾峰彇鍏ュ簱浠诲姟绫诲瀷 TaskCtg taskCtg = taskCtgService.getOne(new LambdaQueryWrapper<TaskCtg>() - .eq(TaskCtg::getFlag, "IN") + .eq(TaskCtg::getFlag, String.valueOf(TaskCtgType.IN)) .eq(TaskCtg::getStatus, 1)); if (taskCtg == null) { return R.error("浠诲姟绫诲瀷寮傚父"); @@ -66,8 +71,24 @@ return R.error("搴撲綅鍙蜂笉瀛樺湪"); } - if (!loc.getLocStsFlag().equals("O")) { + //鑾峰彇涓ユ牸妯″紡鍙傛暟 + boolean mapStrict = true;//榛樿涓ユ牸妯″紡 + Dict dict = dictService.getOne(new LambdaQueryWrapper<Dict>().eq(Dict::getFlag, "shuttleMapStrict")); + if (dict != null) { + mapStrict = Boolean.parseBoolean(dict.getValue()); + } + + if (mapStrict && !loc.getLocStsFlag().equals("O")) { return R.error("搴撲綅鐘舵�佷笉婊¤冻鍏ュ簱鏉′欢"); + } + + Task one = taskService.getOne(new LambdaQueryWrapper<Task>() + .eq(Task::getTaskCtg, taskCtg.getId()) + .eq(Task::getOriginSite, param.getOriginSite()) + .eq(Task::getDestSite, param.getDestSite()) + .eq(Task::getDestLoc, param.getDestLoc())); + if (one != null) { + return R.error("浠诲姟宸插瓨鍦�"); } //浼樺厛绾� @@ -79,6 +100,7 @@ Task task = new Task(); task.setUuid(String.valueOf(snowflakeIdWorker.nextId())); task.setTaskNo(String.valueOf(Utils.getTaskNo("IN"))); + task.setWmsTaskNo(param.getTaskNo()); task.setTaskSts(TaskStsType.NEW_INBOUND.sts); task.setTaskCtg(taskCtg.getId()); task.setPriority(priority); @@ -106,7 +128,7 @@ public R createOutTask(@RequestBody CreateOutTaskParam param) { //鑾峰彇鍑哄簱浠诲姟绫诲瀷 TaskCtg taskCtg = taskCtgService.getOne(new LambdaQueryWrapper<TaskCtg>() - .eq(TaskCtg::getFlag, "OUT") + .eq(TaskCtg::getFlag, String.valueOf(TaskCtgType.OUT)) .eq(TaskCtg::getStatus, 1)); if (taskCtg == null) { return R.error("浠诲姟绫诲瀷寮傚父"); @@ -117,8 +139,24 @@ return R.error("搴撲綅鍙蜂笉瀛樺湪"); } - if (!loc.getLocStsFlag().equals("F")) { + //鑾峰彇涓ユ牸妯″紡鍙傛暟 + boolean mapStrict = true;//榛樿涓ユ牸妯″紡 + Dict dict = dictService.getOne(new LambdaQueryWrapper<Dict>().eq(Dict::getFlag, "shuttleMapStrict")); + if (dict != null) { + mapStrict = Boolean.parseBoolean(dict.getValue()); + } + + if (mapStrict && !loc.getLocStsFlag().equals("F")) { return R.error("搴撲綅鐘舵�佷笉婊¤冻鍑哄簱鏉′欢"); + } + + Task one = taskService.getOne(new LambdaQueryWrapper<Task>() + .eq(Task::getTaskCtg, taskCtg.getId()) + .eq(Task::getOriginSite, param.getOriginSite()) + .eq(Task::getOriginLoc, param.getOriginLoc()) + .eq(Task::getDestSite, param.getDestSite())); + if (one != null) { + return R.error("浠诲姟宸插瓨鍦�"); } //浼樺厛绾� @@ -130,6 +168,7 @@ Task task = new Task(); task.setUuid(String.valueOf(snowflakeIdWorker.nextId())); task.setTaskNo(String.valueOf(Utils.getTaskNo("OUT"))); + task.setWmsTaskNo(param.getTaskNo()); task.setTaskSts(TaskStsType.NEW_OUTBOUND.sts); task.setTaskCtg(taskCtg.getId()); task.setPriority(priority); @@ -157,10 +196,18 @@ public R createManualTakeTask(@RequestBody CreateManualTakeTaskParam param) { //鑾峰彇鎵嬪姩浠诲姟绫诲瀷 TaskCtg taskCtg = taskCtgService.getOne(new LambdaQueryWrapper<TaskCtg>() - .eq(TaskCtg::getFlag, "MANUAL") + .eq(TaskCtg::getFlag, String.valueOf(TaskCtgType.MANUAL)) .eq(TaskCtg::getStatus, 1)); if (taskCtg == null) { return R.error("浠诲姟绫诲瀷寮傚父"); + } + + Task one = taskService.getOne(new LambdaQueryWrapper<Task>() + .eq(Task::getTaskCtg, taskCtg.getId()) + .eq(Task::getOriginLoc, param.getOriginLoc()) + .eq(Task::getDestLoc, param.getDestLoc())); + if (one != null) { + return R.error("浠诲姟宸插瓨鍦�"); } //浼樺厛绾� @@ -172,6 +219,7 @@ Task task = new Task(); task.setUuid(String.valueOf(snowflakeIdWorker.nextId())); task.setTaskNo(String.valueOf(Utils.getTaskNo("OUT"))); + task.setWmsTaskNo(param.getTaskNo()); task.setTaskSts(TaskStsType.NEW_MANUAL.sts); task.setTaskCtg(taskCtg.getId()); task.setPriority(priority); @@ -199,7 +247,7 @@ public R createMoveTask(@RequestBody CreateMoveTaskParam param) { //鑾峰彇鍑哄簱浠诲姟绫诲瀷 TaskCtg taskCtg = taskCtgService.getOne(new LambdaQueryWrapper<TaskCtg>() - .eq(TaskCtg::getFlag, "MOVE") + .eq(TaskCtg::getFlag, String.valueOf(TaskCtgType.MOVE)) .eq(TaskCtg::getStatus, 1)); if (taskCtg == null) { return R.error("浠诲姟绫诲瀷寮傚父"); @@ -218,8 +266,18 @@ return R.error("绌挎杞︿笉鍦ㄧ嚎"); } ShuttleProtocol shuttleProtocol = shuttleThread.getStatus(); - if (Utils.getLev(shuttleProtocol.getCurrentLocNo()) != Utils.getLev(param.getDestSite())) { + if (shuttleProtocol == null) { + 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()) + .eq(Task::getDestLoc, param.getDestLoc())); + if (one != null) { + return R.error("浠诲姟宸插瓨鍦�"); } //浼樺厛绾� @@ -231,13 +289,14 @@ Task task = new Task(); task.setUuid(String.valueOf(snowflakeIdWorker.nextId())); task.setTaskNo(String.valueOf(Utils.getTaskNo("OUT"))); + task.setWmsTaskNo(param.getTaskNo()); task.setTaskSts(TaskStsType.NEW_MOVE.sts); task.setTaskCtg(taskCtg.getId()); task.setPriority(priority); task.setOriginSite(null); task.setOriginLoc(null); - task.setDestSite(param.getDestSite()); - task.setDestLoc(null); + task.setDestSite(null); + task.setDestLoc(param.getDestLoc()); task.setIoTime(new Date()); task.setStartTime(new Date()); task.setStatus(1); -- Gitblit v1.9.1