skyouc
7 天以前 06d7fb698ce6d0efc7ff4224c6b68d2f50feb716
rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/TaskController.java
@@ -1,9 +1,12 @@
package com.vincent.rsf.server.manager.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.vincent.rsf.framework.common.Cools;
import com.vincent.rsf.framework.common.R;
import com.vincent.rsf.framework.exception.CoolException;
import com.vincent.rsf.server.api.entity.enums.TaskStsType;
import com.vincent.rsf.server.common.utils.ExcelUtil;
import com.vincent.rsf.server.common.annotation.OperationLog;
import com.vincent.rsf.server.common.domain.BaseParam;
@@ -14,6 +17,7 @@
import com.vincent.rsf.server.manager.service.TaskItemService;
import com.vincent.rsf.server.manager.service.TaskService;
import com.vincent.rsf.server.system.controller.BaseController;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.transaction.annotation.Transactional;
@@ -91,11 +95,16 @@
        if (Objects.isNull(ids) || ids.length < 1) {
            return R.error("参数不能为空!!");
        }
        List<Long> longs = Arrays.asList(TaskStsType.GENERATE_IN.id, TaskStsType.GENERATE_OUT.id);
        List<Task> tasks = taskService.list(new LambdaQueryWrapper<Task>().in(Task::getId, ids).in(Task::getTaskStatus, longs));
        if (tasks.isEmpty()) {
            throw new CoolException("任务已处执行状态不可取消!!");
        }
        if (!taskService.removeByIds(Arrays.asList(ids))) {
            return R.error("Delete Fail");
        }
        if (!taskItemService.remove(new LambdaQueryWrapper<TaskItem>().in(TaskItem::getTaskId, ids))) {
            return R.error("删除失败!!");
            return R.error("Details delete Failed");
        }
        return R.ok("Delete Success").add(ids);
    }
@@ -120,4 +129,54 @@
        ExcelUtil.build(ExcelUtil.create(taskService.list(), Task.class), response);
    }
    @PreAuthorize("hasAuthority('manager:task:update')")
    @ApiOperation("完成任务")
    @PostMapping("/task/complete/{id}")
    public R completeTask(@PathVariable String id) throws Exception {
        if (Objects.isNull(id)) {
            throw new CoolException("参数不能为空!!");
        }
        List<Long> 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));
//        if (tasks.isEmpty()) {
//            throw new CoolException("任务已处执行状态不可一键完成!!");
//        }
        taskService.completeTask(tasks);
        return R.ok();
    }
    @PreAuthorize("hasAuthority('manager:task:update')")
    @ApiOperation("取消任务")
    @PostMapping("/task/cancel/{id}")
    public R cancelTask(@PathVariable String id) {
        if (Objects.isNull(id)) {
            throw new CoolException("参数不能为空!!");
        }
        return R.ok();
    }
    @PreAuthorize("hasAuthority('manager:task:update')")
    @ApiOperation("任务出库置顶")
    @PostMapping("/task/top/{id}")
    public R setTop(@PathVariable String id) {
        if (Objects.isNull(id)) {
            throw new CoolException("参数不能为空!!");
        }
        List<Long> 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));
        if (tasks.isEmpty()) {
            throw new CoolException("任务已处执行状态不可一键置顶!!");
        }
        try {
            if (!taskService.update(new LambdaUpdateWrapper<Task>().set(Task::getSort, 100).eq(Task::getId, id))) {
                throw new CoolException("置顶失败!!");
            }
        } catch (Exception ex) {
            return R.error("任务异常,无法完成!!");
        }
        return R.ok();
    }
}