From e29a9f245ff4e57a40bbab1c0acc3cbc31d3ac2b Mon Sep 17 00:00:00 2001 From: zjj <3272660260@qq.com> Date: 星期一, 21 四月 2025 11:13:13 +0800 Subject: [PATCH] #出库找待机位优化 --- zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/controller/TaskController.java | 103 +++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 98 insertions(+), 5 deletions(-) diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/controller/TaskController.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/controller/TaskController.java index dec5eff..e216586 100644 --- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/controller/TaskController.java +++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/controller/TaskController.java @@ -1,4 +1,4 @@ -package com.zy.asrs.wcs.system.controller; +package com.zy.asrs.wcs.core.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -8,18 +8,24 @@ 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.entity.Motion; +import com.zy.asrs.wcs.core.entity.MotionLog; import com.zy.asrs.wcs.core.entity.Task; +import com.zy.asrs.wcs.core.entity.TaskLog; +import com.zy.asrs.wcs.core.model.enums.TaskStsType; +import com.zy.asrs.wcs.core.service.MotionLogService; +import com.zy.asrs.wcs.core.service.MotionService; +import com.zy.asrs.wcs.core.service.TaskLogService; import com.zy.asrs.wcs.core.service.TaskService; +import com.zy.asrs.wcs.system.controller.BaseController; import com.zy.asrs.wcs.utils.ExcelUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Map; +import java.util.*; @RestController @RequestMapping("/api") @@ -27,6 +33,12 @@ @Autowired private TaskService taskService; + @Autowired + private TaskLogService taskLogService; + @Autowired + private MotionService motionService; + @Autowired + private MotionLogService motionLogService; @PreAuthorize("hasAuthority('core:task:list')") @PostMapping("/task/page") @@ -98,4 +110,85 @@ ExcelUtil.build(ExcelUtil.create(taskService.list(), Task.class), response); } + @PreAuthorize("hasAuthority('core:task:complete')") + @OperationLog("鎵嬪姩瀹屾垚浠诲姟") + @PostMapping("/task/complete/{id}") + @Transactional + public synchronized R complete(@PathVariable Long id) { + Task task = taskService.getById(id); + if (task == null) { + return R.error("浠诲姟涓嶅瓨鍦�"); + } + switch (TaskStsType.query(task.getTaskSts())) { + case NEW_INBOUND: + case ANALYZE_INBOUND: + case EXECUTE_INBOUND: + task.setTaskSts(TaskStsType.COMPLETE_INBOUND.sts); + break; + case NEW_OUTBOUND: + case ANALYZE_OUTBOUND: + case EXECUTE_OUTBOUND: + task.setTaskSts(TaskStsType.COMPLETE_OUTBOUND.sts); + break; + case NEW_CHARGE: + case ANALYZE_CHARGE: + case EXECUTE_CHARGE: + task.setTaskSts(TaskStsType.CHARGE_WORKING.sts); + break; + case NEW_MOVE: + case ANALYZE_MOVE: + case EXECUTE_MOVE: + task.setTaskSts(TaskStsType.COMPLETE_MOVE.sts); + break; + case NEW_MANUAL: + case ANALYZE_MANUAL: + case EXECUTE_MANUAL: + task.setTaskSts(TaskStsType.COMPLETE_MANUAL.sts); + break; + default: + return R.error("褰撳墠鐘舵�佷笉鍙瀹屾垚"); + } + task.setUpdateTime(new Date()); + task.setUpdateBy(getLoginUserId()); + if (!taskService.updateById(task)) { + return R.error("瀹屾垚澶辫触"); + } + return R.ok("浠诲姟瀹屾垚"); + } + + @PreAuthorize("hasAuthority('core:task:cancel')") + @OperationLog("鎵嬪姩鍙栨秷浠诲姟") + @PostMapping("/task/cancel/{id}") + @Transactional + public synchronized R cancel(@PathVariable Long id) { + Task task = taskService.getById(id); + if (task == null) { + return R.error("浠诲姟涓嶅瓨鍦�"); + } + + //鍒涘缓鍘嗗彶妗� + TaskLog taskLog = new TaskLog(); + taskLog.sync(task); + taskLog.setUpdateTime(new Date()); + taskLog.setUpdateBy(getLoginUserId()); + taskLog.setHostId(null); + taskLogService.save(taskLog); + + List<Motion> motions = motionService.list(new LambdaQueryWrapper<Motion>().eq(Motion::getTaskNo, task.getTaskNo()).eq(Motion::getHostId, task.getHostId())); + for (Motion motion : motions) { + //鍒涘缓鍔ㄤ綔鍘嗗彶妗� + MotionLog motionLog = new MotionLog(); + motionLog.sync(motion); + motionLog.setUpdateTime(new Date()); + motionLog.setHostId(null); + motionLogService.save(motionLog); + } + + //鍒犻櫎婧愪换鍔� + taskService.removeById(task.getId()); + //鍒犻櫎鍔ㄤ綔 + motionService.remove(new LambdaQueryWrapper<Motion>().eq(Motion::getTaskNo, task.getTaskNo()).eq(Motion::getHostId, task.getHostId())); + + return R.ok("鍙栨秷鎴愬姛"); + } } -- Gitblit v1.9.1