From ebd4f8785d327fef77bf6be6af75086b1c30b645 Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期一, 14 四月 2025 13:03:27 +0800 Subject: [PATCH] 任务优化 --- rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/TaskController.java | 76 ++++++++++++++++++++++++++++++++++++++ 1 files changed, 76 insertions(+), 0 deletions(-) diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/TaskController.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/TaskController.java index 0e9be0e..db1768b 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/TaskController.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/TaskController.java @@ -1,19 +1,26 @@ 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; import com.vincent.rsf.server.common.domain.KeyValVo; import com.vincent.rsf.server.common.domain.PageParam; import com.vincent.rsf.server.manager.entity.Task; +import com.vincent.rsf.server.manager.entity.TaskItem; +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; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; @@ -24,6 +31,9 @@ @Autowired private TaskService taskService; + + @Autowired + private TaskItemService taskItemService; @PreAuthorize("hasAuthority('manager:task:list')") @PostMapping("/task/page") @@ -80,9 +90,21 @@ @PreAuthorize("hasAuthority('manager:task:remove')") @OperationLog("Delete 浠诲姟宸ヤ綔妗�") @PostMapping("/task/remove/{ids}") + @Transactional(rollbackFor = Exception.class) public R remove(@PathVariable Long[] ids) { + 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("Details delete Failed"); } return R.ok("Delete Success").add(ids); } @@ -107,4 +129,58 @@ 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) { + 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 { + taskService.completeTask(tasks); + } catch (Exception ex) { + return R.error("浠诲姟寮傚父锛屾棤娉曞畬鎴愶紒锛�"); + } + 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(); + } + + } -- Gitblit v1.9.1