From 4592353d65d7b5e8477d9cad0bd2836bf7792186 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期三, 02 七月 2025 14:23:20 +0800
Subject: [PATCH] 代码优化 波次功能优化

---
 rsf-admin/src/page/orders/wave/WaveList.jsx                                           |   73 ++++++++++--------
 rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/PakinSchedules.java |   94 +++++++++++++++++++++++
 rsf-admin/src/i18n/zh.js                                                              |    2 
 rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/ScheduleJobs.java   |   68 -----------------
 4 files changed, 135 insertions(+), 102 deletions(-)

diff --git a/rsf-admin/src/i18n/zh.js b/rsf-admin/src/i18n/zh.js
index 44b9d02..18807a3 100644
--- a/rsf-admin/src/i18n/zh.js
+++ b/rsf-admin/src/i18n/zh.js
@@ -866,7 +866,7 @@
             wave: {
                 code: "娉㈡鍙�",
                 type: "鍗曟嵁绫诲瀷",
-                exceStatus: "鐘舵��",
+                exceStatus: "鎵ц鐘舵��",
                 anfme: "鏁伴噺",
                 groupQty: '鍝佺被鏁�',
                 qty: "瀹屾垚鏁伴噺",
diff --git a/rsf-admin/src/page/orders/wave/WaveList.jsx b/rsf-admin/src/page/orders/wave/WaveList.jsx
index 7066c06..e6f3f43 100644
--- a/rsf-admin/src/page/orders/wave/WaveList.jsx
+++ b/rsf-admin/src/page/orders/wave/WaveList.jsx
@@ -23,6 +23,7 @@
     NumberInput,
     useRefresh,
     useRedirect,
+    AutocompleteInput,
     Button,
 } from 'react-admin';
 import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE, DEFAULT_WAVE_AUTO_EXCE } from '@/config/setting';
@@ -54,39 +55,7 @@
     },
 }));
 
-const filters = [
-    <SearchInput source="condition" alwaysOn />,
-    <DateInput label='common.time.after' source="timeStart" alwaysOn />,
-    <DateInput label='common.time.before' source="timeEnd" alwaysOn />,
-    <TextInput source="code" label="table.field.wave.code" />,
-    <SelectInput source="type" label="table.field.wave.type"
-        choices={[
-            { id: 0, name: '鎵嬪姩' },
-            { id: 1, name: '鑷姩' },
-        ]}
-    />,
-    <SelectInput source="exceStatus" label="table.field.wave.exceStatus"
-        choices={[
-            { id: 0, name: '鍒濆鍖�' },
-            { id: 1, name: '鐢熸垚浠诲姟' },
-            { id: 2, name: '浠诲姟鎾' },
-            { id: 3, name: '瀹屾垚' },
-        ]}
-    />,
-    <NumberInput source="anfme" label="table.field.wave.anfme" />,
-    <NumberInput source="qty" label="table.field.wave.qty" />,
-    <NumberInput source="orderNum" label="table.field.wave.orderNum" />,
-    <TextInput label="common.field.memo" source="memo" />,
-    <SelectInput
-        label="common.field.status"
-        source="status"
-        choices={[
-            { id: '1', name: 'common.enums.statusTrue' },
-            { id: '0', name: 'common.enums.statusFalse' },
-        ]}
-        resettable
-    />,
-]
+
 
 const WaveList = () => {
     const translate = useTranslate();
@@ -95,6 +64,44 @@
     const [detailDialog, setDetailDialog] = useState(false);
     const [select, setSelectIds] = useState({});
     const [drawerVal, setDrawerVal] = useState(false);
+    const dicts = JSON.parse(localStorage.getItem('sys_dicts'))?.filter(dict => (dict.dictTypeCode == 'sys_wave_exce_status')) || [];
+
+    const filters = [
+        <SearchInput source="condition" alwaysOn />,
+        <DateInput label='common.time.after' source="timeStart" alwaysOn />,
+        <DateInput label='common.time.before' source="timeEnd" alwaysOn />,
+        <TextInput source="code" label="table.field.wave.code" />,
+        <AutocompleteInput
+            choices={dicts}
+            optionText="label"
+            label="table.field.wave.exceStatus"
+            source="exceStatus"
+            format={value => value || '0'}
+            optionValue="value"
+            parse={v => v}
+            alwaysOn
+        />,
+        <SelectInput source="type" label="table.field.wave.type"
+            choices={[
+                { id: 0, name: '鎵嬪姩' },
+                { id: 1, name: '鑷姩' },
+            ]}
+        />,
+        <NumberInput source="anfme" label="table.field.wave.anfme" />,
+        <NumberInput source="qty" label="table.field.wave.qty" />,
+        <NumberInput source="orderNum" label="table.field.wave.orderNum" />,
+        <TextInput label="common.field.memo" source="memo" />,
+        <SelectInput
+            label="common.field.status"
+            source="status"
+            choices={[
+                { id: '1', name: 'common.enums.statusTrue' },
+                { id: '0', name: 'common.enums.statusFalse' },
+            ]}
+            resettable
+        />,
+    ]
+
 
     useEffect(() => {
         getConfig()
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/PakinSchedules.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/PakinSchedules.java
new file mode 100644
index 0000000..9a2fb69
--- /dev/null
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/PakinSchedules.java
@@ -0,0 +1,94 @@
+package com.vincent.rsf.server.manager.schedules;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.vincent.rsf.framework.exception.CoolException;
+import com.vincent.rsf.server.manager.entity.WaitPakin;
+import com.vincent.rsf.server.manager.entity.WaitPakinItem;
+import com.vincent.rsf.server.manager.entity.WaitPakinItemLog;
+import com.vincent.rsf.server.manager.entity.WaitPakinLog;
+import com.vincent.rsf.server.manager.enums.PakinIOStatus;
+import com.vincent.rsf.server.manager.service.WaitPakinItemLogService;
+import com.vincent.rsf.server.manager.service.WaitPakinItemService;
+import com.vincent.rsf.server.manager.service.WaitPakinLogService;
+import com.vincent.rsf.server.manager.service.WaitPakinService;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Component
+public class PakinSchedules {
+
+    @Autowired
+    private WaitPakinService waitPakinService;
+    @Autowired
+    private WaitPakinItemService waitPakinItemService;
+    @Autowired
+    private WaitPakinLogService waitPakinLogService;
+    @Autowired
+    private WaitPakinItemLogService waitPakinItemLogService;
+
+    /**
+     * @param
+     * @return
+     * @author Ryan
+     * @description 缁勬嫋鍘嗗彶妗�
+     * @time 2025/3/29 12:36
+     */
+    @Scheduled(cron = "0/25 * * * * ?")
+    @Transactional(rollbackFor = Exception.class)
+    public void pakinLog() {
+        List<WaitPakin> pakinIds = waitPakinService.list(new LambdaQueryWrapper<WaitPakin>()
+                .eq(WaitPakin::getIoStatus, PakinIOStatus.PAKIN_IO_STATUS_TASK_DONE.val)
+                .select(WaitPakin::getId));
+        if (pakinIds.isEmpty()) {
+            return;
+        }
+        List<Long> list = pakinIds.stream().map(WaitPakin::getId).collect(Collectors.toList());
+        List<WaitPakin> pakins = waitPakinService.list(new LambdaQueryWrapper<WaitPakin>().in(WaitPakin::getId, list));
+        if (pakins.isEmpty()) {
+            throw new CoolException("缁勬嫋鍗曚负绌猴紒锛�");
+        }
+        pakins.forEach(pakin -> {
+            WaitPakinLog log = new WaitPakinLog();
+            BeanUtils.copyProperties(pakin, log);
+            log.setPakinId(pakin.getId()).setIoStatus(PakinIOStatus.PAKIN_IO_STATUS_TASK_DONE.val);
+
+            if (!waitPakinLogService.save(log)) {
+                throw new CoolException("缁勬墭鏃ュ織淇濆瓨澶辫触锛侊紒");
+            }
+            List<WaitPakinItem> pakinItems = waitPakinItemService.list(new LambdaQueryWrapper<WaitPakinItem>().in(WaitPakinItem::getPakinId, pakin.getId()));
+            if (pakinItems.isEmpty()) {
+                throw new CoolException("缁勬嫋鏄庣粏涓虹┖锛侊紒");
+            }
+            List<WaitPakinItemLog> itemLogs = new ArrayList<>();
+
+            pakinItems.forEach(item -> {
+                WaitPakinItemLog itemLog = new WaitPakinItemLog();
+                BeanUtils.copyProperties(item, itemLog);
+                itemLog.setPakinItemId(item.getId())
+                        .setLogId(log.getId())
+                        .setQty(item.getWorkQty())
+                        .setWorkQty(0.0)
+                        .setPakinId(item.getPakinId());
+                itemLogs.add(itemLog);
+            });
+
+            if (!waitPakinItemLogService.saveBatch(itemLogs)) {
+                throw new CoolException("鍘嗗彶鏄庣粏妗d繚瀛樺け璐ワ紒锛�");
+            }
+        });
+
+        if (!waitPakinService.removeByIds(list)) {
+            throw new CoolException("鍘熷崟鎹垹闄ゅけ璐ワ紒锛�");
+        }
+        if (!waitPakinItemService.remove(new LambdaQueryWrapper<WaitPakinItem>().in(WaitPakinItem::getPakinId, list))) {
+            throw new CoolException("鍘熷崟鎹槑缁嗗垹闄ゅけ璐ワ紒锛�");
+        }
+    }
+}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/ScheduleJobs.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/ScheduleJobs.java
index 08c9f56..81b7147 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/ScheduleJobs.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/ScheduleJobs.java
@@ -58,14 +58,6 @@
     @Resource
     private SysStockProperties flowProperties;
     @Autowired
-    private WaitPakinService waitPakinService;
-    @Autowired
-    private WaitPakinItemService waitPakinItemService;
-    @Autowired
-    private WaitPakinLogService waitPakinLogService;
-    @Autowired
-    private WaitPakinItemLogService waitPakinItemLogService;
-    @Autowired
     private ConfigService configService;
     @Autowired
     private WarehouseAreasService warehouseAreasService;
@@ -318,64 +310,4 @@
             throw new CoolException("鐢熸垚缂栫爜澶辫触锛侊紒");
         }
     }
-
-    /**
-     * @param
-     * @return
-     * @author Ryan
-     * @description 缁勬嫋鍘嗗彶妗�
-     * @time 2025/3/29 12:36
-     */
-    @Scheduled(cron = "0/25 * * * * ?")
-    @Transactional(rollbackFor = Exception.class)
-    public void pakinLog() {
-        List<WaitPakin> pakinIds = waitPakinService.list(new LambdaQueryWrapper<WaitPakin>()
-                .eq(WaitPakin::getIoStatus, PakinIOStatus.PAKIN_IO_STATUS_TASK_DONE.val)
-                .select(WaitPakin::getId));
-        if (pakinIds.isEmpty()) {
-            return;
-        }
-        List<Long> list = pakinIds.stream().map(WaitPakin::getId).collect(Collectors.toList());
-        List<WaitPakin> pakins = waitPakinService.list(new LambdaQueryWrapper<WaitPakin>().in(WaitPakin::getId, list));
-        if (pakins.isEmpty()) {
-            throw new CoolException("缁勬嫋鍗曚负绌猴紒锛�");
-        }
-        pakins.forEach(pakin -> {
-            WaitPakinLog log = new WaitPakinLog();
-            BeanUtils.copyProperties(pakin, log);
-            log.setPakinId(pakin.getId()).setIoStatus(PakinIOStatus.PAKIN_IO_STATUS_TASK_DONE.val);
-
-            if (!waitPakinLogService.save(log)) {
-                throw new CoolException("缁勬墭鏃ュ織淇濆瓨澶辫触锛侊紒");
-            }
-            List<WaitPakinItem> pakinItems = waitPakinItemService.list(new LambdaQueryWrapper<WaitPakinItem>().in(WaitPakinItem::getPakinId, pakin.getId()));
-            if (pakinItems.isEmpty()) {
-                throw new CoolException("缁勬嫋鏄庣粏涓虹┖锛侊紒");
-            }
-            List<WaitPakinItemLog> itemLogs = new ArrayList<>();
-
-            pakinItems.forEach(item -> {
-                WaitPakinItemLog itemLog = new WaitPakinItemLog();
-                BeanUtils.copyProperties(item, itemLog);
-                itemLog.setPakinItemId(item.getId())
-                        .setLogId(log.getId())
-                        .setQty(item.getWorkQty())
-                        .setWorkQty(0.0)
-                        .setPakinId(item.getPakinId());
-                itemLogs.add(itemLog);
-            });
-
-            if (!waitPakinItemLogService.saveBatch(itemLogs)) {
-                throw new CoolException("鍘嗗彶鏄庣粏妗d繚瀛樺け璐ワ紒锛�");
-            }
-        });
-
-        if (!waitPakinService.removeByIds(list)) {
-            throw new CoolException("鍘熷崟鎹垹闄ゅけ璐ワ紒锛�");
-        }
-        if (!waitPakinItemService.remove(new LambdaQueryWrapper<WaitPakinItem>().in(WaitPakinItem::getPakinId, list))) {
-            throw new CoolException("鍘熷崟鎹槑缁嗗垹闄ゅけ璐ワ紒锛�");
-        }
-    }
-
 }

--
Gitblit v1.9.1