From 16bb7baba5a6c3a777d21938a43e98b9108244b8 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期四, 19 六月 2025 09:38:42 +0800
Subject: [PATCH] 自动下发功能优化

---
 rsf-admin/src/page/orders/outStock/OutOrderItemList.jsx                                       |    2 
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockServiceImpl.java |    2 -
 rsf-server/src/main/java/com/vincent/rsf/server/system/service/impl/ConfigServiceImpl.java    |   16 ++++++++
 rsf-admin/src/page/orders/wave/WaveList.jsx                                                   |   38 ++++++++++++++++--
 rsf-server/src/main/java/com/vincent/rsf/server/system/service/ConfigService.java             |    2 +
 rsf-server/src/main/java/com/vincent/rsf/server/system/controller/ConfigController.java       |   20 ++++++++++
 rsf-admin/src/config/setting.js                                                               |    4 +
 7 files changed, 75 insertions(+), 9 deletions(-)

diff --git a/rsf-admin/src/config/setting.js b/rsf-admin/src/config/setting.js
index 522d719..5c0a609 100644
--- a/rsf-admin/src/config/setting.js
+++ b/rsf-admin/src/config/setting.js
@@ -41,4 +41,6 @@
 
 export const CUSTOM_PAGES_DATA_INTERVAL = 1000;
 
-export const DEFAULT_TYPE = 15; //榛樿鏁堢巼浼樺寲  15锛氭晥鐜囦紭鍖� 16锛氬厛杩涘厛鍑�
\ No newline at end of file
+export const DEFAULT_TYPE = 15; //榛樿鏁堢巼浼樺寲  15锛氭晥鐜囦紭鍖� 16锛氬厛杩涘厛鍑�
+
+export const DEFAULT_WAVE_AUTO_EXCE = 'WaveAutoExce'; //
\ No newline at end of file
diff --git a/rsf-admin/src/page/orders/outStock/OutOrderItemList.jsx b/rsf-admin/src/page/orders/outStock/OutOrderItemList.jsx
index 8095542..1f3564a 100644
--- a/rsf-admin/src/page/orders/outStock/OutOrderItemList.jsx
+++ b/rsf-admin/src/page/orders/outStock/OutOrderItemList.jsx
@@ -158,7 +158,7 @@
             </ReferenceField>,
             <DateField source="createTime" label="common.field.createTime" showTime />
             <TextField source="memo" label="common.field.memo" sortable={false} />
-          </StyledDatagrid>
+          </StyledDatagrid>脧
         </List>
         <OutOrderItemCreate
           open={createDialog}
diff --git a/rsf-admin/src/page/orders/wave/WaveList.jsx b/rsf-admin/src/page/orders/wave/WaveList.jsx
index 2bee24e..7630ae4 100644
--- a/rsf-admin/src/page/orders/wave/WaveList.jsx
+++ b/rsf-admin/src/page/orders/wave/WaveList.jsx
@@ -25,7 +25,7 @@
     useRedirect,
     Button,
 } from 'react-admin';
-import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE } from '@/config/setting';
+import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE, DEFAULT_WAVE_AUTO_EXCE } from '@/config/setting';
 import PlayArrowOutlinedIcon from '@mui/icons-material/PlayArrowOutlined';
 import PauseCircleOutlineIcon from '@mui/icons-material/PauseCircleOutline';
 import { Box, Typography, Card, Stack } from '@mui/material';
@@ -93,6 +93,21 @@
     const [detailDialog, setDetailDialog] = useState(false);
     const [select, setSelectIds] = useState({});
     const [drawerVal, setDrawerVal] = useState(false);
+
+    useEffect(() => {
+        console.log('-------->');
+        getConfig()
+    }, [])
+
+    const getConfig = async () => {
+        const { data: { code, data, msg } } = await request.get('/config/flag/' + DEFAULT_WAVE_AUTO_EXCE);
+        if (code === 200) {
+            setAutoExce(data?.flag)
+            notify(msg);
+        } else {
+            notify(msg);
+        }
+    }
 
     return (
         <Box display="flex">
@@ -185,10 +200,16 @@
 
 const BulkStartButton = ({ autoExce, setAutoExce }) => {
     const { data, selectedIds, onUnselectItems } = useListContext();
-
-    const startClick = () => {
+    const notify = useNotify();
+    const startClick = async () => {
         onUnselectItems()
         setAutoExce(true)
+        const { data: { code, data, msg } } = await request.post('/config/byFlag', { val: true, flag: 'WaveAutoExce' });
+        if (code === 200) {
+            notify(msg);
+        } else {
+            notify(msg);
+        }
     }
     return (
         !autoExce ? <Button label="toolbar.start" onClick={startClick} startIcon={<PlayArrowOutlinedIcon />} /> : <></>
@@ -196,11 +217,18 @@
 }
 
 const BulkPauseButton = ({ autoExce, setAutoExce }) => {
+    const notify = useNotify();
     const { data, selectedIds, onUnselectItems } = useListContext();
 
-    const pauseClick = () => {
+    const pauseClick = async () => {
         onUnselectItems()
-        setAutoExce(false)
+        const { data: { code, data, msg } } = await request.post('/config/byFlag', { val: false, flag: 'WaveAutoExce' });
+        if (code === 200) {
+            notify(msg);
+            setAutoExce(false)
+        } else {
+            notify(msg);
+        }
     }
     return (
         autoExce ? <Button label="toolbar.pause" onClick={pauseClick} startIcon={<PauseCircleOutlineIcon />} /> : <></>
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockServiceImpl.java
index 2ee4ce6..7068b65 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockServiceImpl.java
@@ -296,8 +296,6 @@
             throw new CoolException("娉㈡淇濆瓨澶辫触锛侊紒");
         }
 
-
-
         List<Long> list = orders.stream().map(AsnOrder::getId).collect(Collectors.toList());
         List<AsnOrderItem> orderItems = asnOrderItemService
                 .list(new LambdaQueryWrapper<AsnOrderItem>()
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/system/controller/ConfigController.java b/rsf-server/src/main/java/com/vincent/rsf/server/system/controller/ConfigController.java
index a332270..cdeacb5 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/system/controller/ConfigController.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/system/controller/ConfigController.java
@@ -1,10 +1,12 @@
 package com.vincent.rsf.server.system.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.common.SnowflakeIdWorker;
+import com.vincent.rsf.framework.exception.CoolException;
 import com.vincent.rsf.server.common.annotation.OperationLog;
 import com.vincent.rsf.server.common.domain.BaseParam;
 import com.vincent.rsf.server.common.domain.KeyValVo;
@@ -54,6 +56,14 @@
         return R.ok().add(configService.getById(id));
     }
 
+
+    @PreAuthorize("hasAuthority('system:config:list')")
+    @GetMapping("/config/flag/{flag}")
+    public R getByFlag(@PathVariable("flag") String flag) {
+        return R.ok().add(configService.getOne(new LambdaQueryWrapper<Config>().eq(Config::getFlag, flag)));
+    }
+
+
     @PreAuthorize("hasAuthority('system:config:save')")
     @OperationLog("Create Config")
     @PostMapping("/config/save")
@@ -94,6 +104,16 @@
         return R.ok("Update Success").add(config);
     }
 
+    @PreAuthorize("hasAuthority('system:config:update')")
+    @OperationLog("Update Config")
+    @PostMapping("/config/byFlag")
+    public R updateByFlag(@RequestBody Config config) {
+        if (Objects.isNull(config)) {
+            return R.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
+        }
+        return configService.modiftyStatus(config);
+    }
+
     @PreAuthorize("hasAuthority('system:config:remove')")
     @OperationLog("Delete Config")
     @PostMapping("/config/remove/{ids}")
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/system/service/ConfigService.java b/rsf-server/src/main/java/com/vincent/rsf/server/system/service/ConfigService.java
index 97137c6..eec98e8 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/system/service/ConfigService.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/system/service/ConfigService.java
@@ -1,6 +1,7 @@
 package com.vincent.rsf.server.system.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.vincent.rsf.framework.common.R;
 import com.vincent.rsf.server.system.entity.Config;
 
 public interface ConfigService extends IService<Config> {
@@ -9,4 +10,5 @@
 
     <T> boolean setVal(String key, T val);
 
+    R modiftyStatus(Config config);
 }
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/system/service/impl/ConfigServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/system/service/impl/ConfigServiceImpl.java
index a72dd94..5f78705 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/system/service/impl/ConfigServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/system/service/impl/ConfigServiceImpl.java
@@ -1,9 +1,12 @@
 package com.vincent.rsf.server.system.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.vincent.rsf.common.utils.GsonUtils;
 import com.vincent.rsf.framework.common.DateUtils;
+import com.vincent.rsf.framework.common.R;
+import com.vincent.rsf.framework.exception.CoolException;
 import com.vincent.rsf.server.system.entity.Config;
 import com.vincent.rsf.server.system.enums.ConfigType;
 import com.vincent.rsf.server.system.enums.StatusType;
@@ -121,4 +124,17 @@
         return this.updateById(config);
     }
 
+    /**
+     * 淇敼閰嶇疆
+     * @param config
+     * @return
+     */
+    @Override
+    public R modiftyStatus(Config config) {
+        if (!this.update(new LambdaUpdateWrapper<Config>().set(Config::getVal, config.getVal()).eq(Config::getFlag, config.getFlag()))) {
+            throw new CoolException("淇敼澶辫触锛侊紒");
+        }
+        return R.ok();
+    }
+
 }

--
Gitblit v1.9.1