From 002f6582beb9100638387eeb14a42bc97c422763 Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期四, 03 四月 2025 09:42:45 +0800 Subject: [PATCH] 添加任务置顶, 取消, 完成功能 --- rsf-admin/src/page/asnOrder/AsnOrderList.jsx | 1 rsf-admin/src/page/task/TaskList.jsx | 39 +++++++++++++++---- rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/TaskController.java | 39 +++++++++++++++++-- 3 files changed, 66 insertions(+), 13 deletions(-) diff --git a/rsf-admin/src/page/asnOrder/AsnOrderList.jsx b/rsf-admin/src/page/asnOrder/AsnOrderList.jsx index f0a45e4..70af9af 100644 --- a/rsf-admin/src/page/asnOrder/AsnOrderList.jsx +++ b/rsf-admin/src/page/asnOrder/AsnOrderList.jsx @@ -67,7 +67,6 @@ const filters = [ <SearchInput source="condition" alwaysOn />, - <TextInput source="code" label="table.field.asnOrder.code" />, <TextInput source="poCode" label="table.field.asnOrder.poCode" />, <NumberInput source="poId" label="table.field.asnOrder.poId" />, diff --git a/rsf-admin/src/page/task/TaskList.jsx b/rsf-admin/src/page/task/TaskList.jsx index 64b1462..72cfe20 100644 --- a/rsf-admin/src/page/task/TaskList.jsx +++ b/rsf-admin/src/page/task/TaskList.jsx @@ -1,5 +1,7 @@ import React, { useState, useRef, useEffect, useMemo, useCallback } from "react"; import { useNavigate } from 'react-router-dom'; +import request from '@/utils/request'; + import { List, DatagridConfigurable, @@ -15,6 +17,7 @@ useRecordContext, useTranslate, useNotify, + useRefresh, useListContext, FunctionField, TextField, @@ -111,9 +114,9 @@ marginRight: !!drawerVal ? `${PAGE_DRAWER_WIDTH}px` : 0, }} title={"menu.task"} - // empty={<EmptyData onClick={() => { setCreateDialog(true) }} />} + empty={<EmptyData onClick={() => { }} />} filters={filters} - sort={{ field: "create_time", order: "desc" }} + sort={{ field: "sort", order: "desc" }} actions={( <TopToolbar> <FilterButton /> @@ -212,11 +215,22 @@ */ const CancelButton = () => { const record = useRecordContext(); + const notify = useNotify(); + const refresh = useRefresh(); const clickCancel = () => { - cancleTask([record]) + cancleTask(record) }; //鍙栨秷浠诲姟 - const cancleTask = async (row) => {} + const cancleTask = async (row) => { + console.log(row); + const { data: { code, data, msg } } = await request.post(`/task/remove/` + row.id); + if (code === 200) { + notify(msg); + refresh(); + } else { + notify(msg); + } + } return ( <Button onClick={clickCancel} @@ -231,11 +245,21 @@ */ const SetTopButton = () => { const record = useRecordContext(); + const notify = useNotify(); + const refresh = useRefresh(); const clickTop = () => { - topTask([record]) + topTask(record) }; //缃《浠诲姟 - const topTask = async (row) => { } + const topTask = async (row) => { + const { data: { code, data, msg } } = await request.post(`/task/top/` + row.id); + if (code === 200) { + notify(msg); + refresh(); + } else { + notify(msg); + } + } return ( <Button onClick={clickTop} @@ -255,7 +279,7 @@ cancleTask([record]) }; //鍙栨秷浠诲姟 - const cancleTask = async (row) => {} + const cancleTask = async (row) => { } return ( <Button onClick={clickCancel} @@ -283,5 +307,4 @@ <SwapVertIcon /> </Button> ) - } \ No newline at end of file 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 b3710c4..11a8dc0 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,6 +1,7 @@ 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; @@ -128,16 +129,46 @@ ExcelUtil.build(ExcelUtil.create(taskService.list(), Task.class), response); } - @PreAuthorize("hasAuthority('manager:task:update')") @ApiOperation("瀹屾垚浠诲姟") - @GetMapping("/task/complete/{id}") + @PostMapping("/task/complete/{id}") public R completeTask(@PathVariable String id) { if (Objects.isNull(id)) { throw new CoolException("鍙傛暟涓嶈兘涓虹┖锛侊紒"); } -// return taskService.completeTask(id); - return null; + 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/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