skyouc
6 天以前 b7708454cd284e64159eea04eb32b818f5d1a930
完成任务,判断浅库位是否完成,降低任务优先级
3个文件已修改
89 ■■■■■ 已修改文件
rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/TaskController.java 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/TaskService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java 61 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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)