From 27f5533e3609ca5cc9e4d2894d2202410943f799 Mon Sep 17 00:00:00 2001
From: skyouc <creaycat@gmail.com>
Date: 星期三, 26 十一月 2025 13:12:47 +0800
Subject: [PATCH] 添加手动下发任务功能

---
 rsf-admin/src/page/task/TaskList.jsx                                                  |   48 ++++++++++++++++++++++++++++++++++++++----------
 rsf-server/src/main/java/com/vincent/rsf/server/system/constant/GlobalConfigCode.java |    2 +-
 2 files changed, 39 insertions(+), 11 deletions(-)

diff --git a/rsf-admin/src/page/task/TaskList.jsx b/rsf-admin/src/page/task/TaskList.jsx
index 55d5af7..4555b41 100644
--- a/rsf-admin/src/page/task/TaskList.jsx
+++ b/rsf-admin/src/page/task/TaskList.jsx
@@ -25,6 +25,8 @@
     SelectInput,
     NumberInput,
     Button,
+    useListContext,
+    useRedirect,
     EditButton,
 } from 'react-admin';
 import { Box, Typography, Card, Stack, Drawer } from '@mui/material';
@@ -35,13 +37,11 @@
 import CancelIcon from '@mui/icons-material/Cancel';
 import PageDrawer from "../components/PageDrawer";
 import TaskPanel from "./TaskPanel";
-import MyField from "../components/MyField";
+import PublicIcon from '@mui/icons-material/Public';
 import ConfirmButton from "../components/ConfirmButton";
 import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE, AUTO_RUN_CHECK_ORDERS } from '@/config/setting';
 import PlayArrowOutlinedIcon from '@mui/icons-material/PlayArrowOutlined';
 import PauseIcon from '@mui/icons-material/Pause';
-import PauseCircleOutlineIcon from '@mui/icons-material/PauseCircleOutline';
-import * as Common from '@/utils/common';
 import ColorizeOutlinedIcon from '@mui/icons-material/ColorizeOutlined';
 import GradingOutlinedIcon from '@mui/icons-material/GradingOutlined';
 
@@ -58,9 +58,9 @@
         width: 248
     },
     '& .MuiTableCell-root': {
-    whiteSpace: 'nowrap',
-    overflow: 'visible',
-    textOverflow: 'unset'
+        whiteSpace: 'nowrap',
+        overflow: 'visible',
+        textOverflow: 'unset'
     }
 
 }));
@@ -71,6 +71,7 @@
     const refresh = useRefresh();
     const [drawerVal, setDrawerVal] = useState(false);
     const [autoExce, setAutoExce] = useState(false);
+    const [menuPubExce, setMenuPubExce] = useState(false);
     const dict = JSON.parse(localStorage.getItem('sys_dicts'))?.filter(dict => (dict.dictTypeCode == 'sys_warehouse_type')) || [];
 
     useEffect(() => {
@@ -142,7 +143,7 @@
                 sort={{ field: "sort", order: "desc" }}
                 actions={(
                     <TopToolbar>
-                        <BulkAutoStartButton autoExce={autoExce} setAutoExce={setAutoExce}/>
+                        <BulkAutoStartButton autoExce={autoExce} setAutoExce={setAutoExce} />
                         <BulkAutoPauseButton autoExce={autoExce} setAutoExce={setAutoExce} />
                         <FilterButton />
                         <SelectColumnsButton preferenceKey='task' />
@@ -152,11 +153,11 @@
             >
                 <StyledDatagrid
                     preferenceKey='task'
-                    bulkActionButtons={false}
+                    bulkActionButtons={<PublicTaskButton menuPubExce={menuPubExce} setMenuPubExce={setMenuPubExce}  />}
                     rowClick={false}
                     expand={<TaskPanel />}
                     expandSingle={true}
-                    omit={['id', 'createTime', 'createBy$', 'memo', 'robotCode', 'exceStatus', 'expDesc', 'expCode', 'status','warehType$']}
+                    omit={['id', 'createTime', 'createBy$', 'memo', 'robotCode', 'exceStatus', 'expDesc', 'expCode', 'status', 'warehType$']}
                 >
                     <NumberField source="id" />
                     <TextField source="taskCode" label="table.field.task.taskCode" />
@@ -200,6 +201,32 @@
 
 export default TaskList;
 
+
+const PublicTaskButton = ({ menuPubExce, setMenuPubExce }) => {
+    const record = useRecordContext();
+    const { selectedIds, onUnselectItems } = useListContext();
+    const notify = useNotify();
+    const redirect = useRedirect();
+    const pubClick = async () => {
+        onUnselectItems();
+        const { data: { code, data, msg } } = await request.post(`task/menual/exce/` + selectedIds);
+        if (code === 200) {
+            notify(msg);
+            refresh();
+        } else {
+            notify(msg);
+        }
+    }       
+
+    return (
+        <Button
+            onClick={pubClick}
+            label={"toolbar.publicWorking"}
+            startIcon={<PublicIcon />}
+        />
+    );
+}
+
 /**
  * 鐩樼偣
  * @returns te
@@ -221,6 +248,7 @@
 
     return (record?.taskStatus == 199 && record?.taskType == 107 ? <ConfirmButton label={"toolbar.check"} startIcon={<GradingOutlinedIcon />} onConfirm={checkClick} /> : <></>)
 }
+
 
 /**鑷姩涓嬪彂浠诲姟**/
 const BulkAutoStartButton = ({ autoExce, setAutoExce }) => {
@@ -251,7 +279,7 @@
         }
     }
     return (
-        autoExce ? <Button label="toolbar.pause" onClick={pauseClick} startIcon={<PauseIcon />} /> : <></>
+        autoExce ? <Button label="toolbar.pausePub" onClick={pauseClick} startIcon={<PauseIcon />} /> : <></>
     )
 }
 
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/system/constant/GlobalConfigCode.java b/rsf-server/src/main/java/com/vincent/rsf/server/system/constant/GlobalConfigCode.java
index 3201de1..a373bea 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/system/constant/GlobalConfigCode.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/system/constant/GlobalConfigCode.java
@@ -18,7 +18,7 @@
     public final static String ORDER_INOF_REPORT_PLAT = "OrderInofReportPlat";
     /**娉㈡鑷姩涓嬪彂浠诲姟*/
     public final static String WAVE_AUTO_EXCE_TASK = "WaveAutoExce";
-
+    //鏄惁鑷姩涓嬪彂浠诲姟
     public final static String AUTO_RUN_CHECK_ORDERS = "AUTO_RUN_CHECK_ORDERS";
 
     public final static String AUTO_RUN_MOVE_THEAD_MAX = "AUTO_RUN_MOVE_THEAD_MAX";

--
Gitblit v1.9.1