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