rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/TaskController.java
@@ -53,7 +53,6 @@ BaseParam baseParam = buildParam(map, BaseParam.class); PageParam<Task, BaseParam> pageParam = new PageParam<>(baseParam, Task.class); QueryWrapper<Task> queryWrapper = pageParam.buildWrapper(true); queryWrapper.orderByDesc("sort"); return R.ok().add(taskService.page(pageParam, queryWrapper)); } @@ -136,31 +135,14 @@ @PreAuthorize("hasAuthority('manager:task:update')") @ApiOperation("完成任务") @PostMapping("/task/complete/{id}") public R completeTask(@PathVariable String id) throws Exception { if (Objects.isNull(id)) { public R completeTask(@PathVariable Long id) throws Exception { if (Cools.isEmpty(id)) { throw new CoolException("参数不能为空!!"); } List<Integer> longs = Arrays.asList(TaskStsType.GENERATE_IN.id, TaskStsType.GENERATE_OUT.id); List<Task> tasks = taskService.list(new LambdaQueryWrapper<Task>() .eq(Task::getId, id) .in(Task::getTaskStatus, longs)); for (Task task : tasks) { // if (StringUtils.isNotBlank(task.getParentId() + "")) { // Task task1 = taskService.getById(task.getParentId()); // if (!Objects.isNull(task1) && task1.getTaskType().equals(TaskStsType.UPDATED_IN.id)) { // throw new CoolException("父任务:" + task1.getTaskCode() + "未执行完成!"); // } // } task.setTaskStatus(task.getTaskType() < 100 ? TaskStsType.COMPLETE_IN.id : TaskStsType.COMPLETE_OUT.id); } if (!taskService.updateBatchById(tasks)) { return R.error("完成任务失败"); } return R.ok("完成任务成功"); return R.ok("完成任务成功").add(taskService.operateComplete(id)); } /** * 拣料出库(用于测试拣料出库) * @return rsf-server/src/main/java/com/vincent/rsf/server/manager/service/TaskService.java
@@ -26,4 +26,6 @@ void complateInTask(List<Task> tasks) throws Exception; Task taskToTop(Long id) throws Exception; Task operateComplete(Long id); } rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java
@@ -424,9 +424,57 @@ if (Objects.isNull(tasks)) { throw new CoolException("任务已处执行状态不可一键置顶!!"); } //判断子任务,修改任务优先级 modiftyTaskSort(tasks); if (!LocUtils.isShallowLoc(tasks.getOrgLoc())) { String shallowLoc = LocUtils.getShallowLoc(tasks.getOrgLoc()); if (!taskService.updateById(tasks)) { throw new CoolException("置顶失败!!"); } return null; } /** * 手动完成任务 * @param id * @return */ @Override @Transactional(rollbackFor = Exception.class) public Task operateComplete(Long id) { List<Integer> longs = Arrays.asList(TaskStsType.GENERATE_IN.id, TaskStsType.GENERATE_OUT.id); Task task = taskService.getOne(new LambdaQueryWrapper<Task>() .eq(Task::getId, id) .in(Task::getTaskStatus, longs)); if (Objects.isNull(task)) { throw new CoolException("当前任务正在执行中,不可取消!!"); } modiftyTaskSort(task); task.setTaskStatus(task.getTaskType() < 100 ? TaskStsType.COMPLETE_IN.id : TaskStsType.COMPLETE_OUT.id); if (!this.updateById(task)) { throw new CoolException("完成任务失败"); } return task; } /** * 修改任务优先级 * @param task */ private Task modiftyTaskSort(Task task) { String curLoc; if (task.getTaskType().equals(TaskType.TASK_TYPE_IN.type)) { curLoc = task.getTargLoc(); } else { curLoc = task.getOrgLoc(); } if (!LocUtils.isShallowLoc(curLoc)) { String shallowLoc = LocUtils.getShallowLoc(curLoc); if (StringUtils.isNotBlank(shallowLoc)) { throw new CoolException("数据异常,请联系管理员!"); } Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getCode, shallowLoc)); if (Objects.isNull(loc)) { throw new CoolException("数据错误,库位不存在!!"); @@ -437,18 +485,15 @@ .or() .eq(Task::getTargLoc, loc.getCode())); if (Objects.isNull(serviceOne)) { tasks.setSort(999); task.setSort(999); } else { int i = serviceOne.getSort() - 1; tasks.setSort(i); task.setSort(i); } } } if (!taskService.updateById(tasks)) { throw new CoolException("置顶失败!!"); } return null; return task; } @Transactional(rollbackFor = Exception.class)