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