From 38738b94b499ba1ccd37ab8824b5569db6662d5f Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期六, 07 六月 2025 13:04:13 +0800
Subject: [PATCH] 波次策略功能完善

---
 rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WaveRuleController.java |    7 +++
 rsf-admin/src/page/waveRule/WaveRuleEdit.jsx                                               |   10 ++++-
 rsf-server/src/main/java/com/vincent/rsf/server/system/constant/DictTypeCode.java          |    5 ++
 rsf-admin/src/page/waveRule/WaveRuleCreate.jsx                                             |   18 +++-----
 rsf-admin/src/page/waveRule/WaveRuleList.jsx                                               |    5 +-
 rsf-server/src/main/java/com/vincent/rsf/server/system/constant/SerialRuleCode.java        |    4 ++
 rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/WaveRule.java               |   18 +++++++++
 rsf-admin/src/i18n/zh.js                                                                   |    2 
 8 files changed, 52 insertions(+), 17 deletions(-)

diff --git a/rsf-admin/src/i18n/zh.js b/rsf-admin/src/i18n/zh.js
index 6690321..bb18c4d 100644
--- a/rsf-admin/src/i18n/zh.js
+++ b/rsf-admin/src/i18n/zh.js
@@ -1046,7 +1046,7 @@
             },
             waveRule: {
                 code: "缂栫爜",
-                type: "绫诲瀷",
+                type: "娉㈡绫诲瀷",
                 name: "鍚嶇О",
             },
         }
diff --git a/rsf-admin/src/page/waveRule/WaveRuleCreate.jsx b/rsf-admin/src/page/waveRule/WaveRuleCreate.jsx
index 2cb1f91..25a01d6 100644
--- a/rsf-admin/src/page/waveRule/WaveRuleCreate.jsx
+++ b/rsf-admin/src/page/waveRule/WaveRuleCreate.jsx
@@ -33,7 +33,7 @@
 
 const WaveRuleCreate = (props) => {
     const { open, setOpen } = props;
-
+    const dicts = JSON.parse(localStorage.getItem('sys_dicts'))?.filter(dict => (dict.dictTypeCode == 'sys_wave_rule_code')) || [];
     const translate = useTranslate();
     const notify = useNotify();
 
@@ -85,18 +85,14 @@
                         <DialogContent sx={{ mt: 2 }}>
                             <Grid container rowSpacing={2} columnSpacing={2}>
                                 <Grid item xs={6} display="flex" gap={1}>
-                                    <TextInput
-                                        label="table.field.waveRule.code"
-                                        source="code"
-                                        parse={v => v}
-                                        autoFocus
-                                    />
-                                </Grid>
-                                <Grid item xs={6} display="flex" gap={1}>
-                                    <NumberInput
+                                    <AutocompleteInput
+                                        choices={dicts}
+                                        optionText="label"
                                         label="table.field.waveRule.type"
                                         source="type"
-                                    />
+                                        optionValue="value"
+                                        parse={v => v}
+                                        validate={[required()]} />
                                 </Grid>
                                 <Grid item xs={6} display="flex" gap={1}>
                                     <TextInput
diff --git a/rsf-admin/src/page/waveRule/WaveRuleEdit.jsx b/rsf-admin/src/page/waveRule/WaveRuleEdit.jsx
index 8c3bbb7..0291814 100644
--- a/rsf-admin/src/page/waveRule/WaveRuleEdit.jsx
+++ b/rsf-admin/src/page/waveRule/WaveRuleEdit.jsx
@@ -42,6 +42,7 @@
 
 const WaveRuleEdit = () => {
     const translate = useTranslate();
+    const dicts = JSON.parse(localStorage.getItem('sys_dicts'))?.filter(dict => (dict.dictTypeCode == 'sys_wave_rule_code')) || [];
 
     return (
         <Edit
@@ -68,14 +69,19 @@
                                 label="table.field.waveRule.code"
                                 source="code"
                                 parse={v => v}
+                                readOnly
                                 autoFocus
                             />
                         </Stack>
                         <Stack direction='row' gap={2}>
-                            <NumberInput
+                            <AutocompleteInput
+                                choices={dicts}
+                                optionText="label"
                                 label="table.field.waveRule.type"
                                 source="type"
-                            />
+                                optionValue="value"
+                                parse={v => v}
+                                validate={[required()]} />
                         </Stack>
                         <Stack direction='row' gap={2}>
                             <TextInput
diff --git a/rsf-admin/src/page/waveRule/WaveRuleList.jsx b/rsf-admin/src/page/waveRule/WaveRuleList.jsx
index f370efe..fc7861c 100644
--- a/rsf-admin/src/page/waveRule/WaveRuleList.jsx
+++ b/rsf-admin/src/page/waveRule/WaveRuleList.jsx
@@ -97,7 +97,7 @@
                     marginRight: !!drawerVal ? `${PAGE_DRAWER_WIDTH}px` : 0,
                 }}
                 title={"menu.waveRule"}
-                empty={<EmptyData onClick={() => { setCreateDialog(true) }} />}
+                empty={false}
                 filters={filters}
                 sort={{ field: "create_time", order: "desc" }}
                 actions={(
@@ -120,9 +120,8 @@
                 >
                     <NumberField source="id" />
                     <TextField source="code" label="table.field.waveRule.code" />
-                    <NumberField source="type" label="table.field.waveRule.type" />
+                    <TextField source="type$" label="table.field.waveRule.type" />
                     <TextField source="name" label="table.field.waveRule.name" />
-
                     <ReferenceField source="updateBy" label="common.field.updateBy" reference="user" link={false} sortable={false}>
                         <TextField source="nickname" />
                     </ReferenceField>
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WaveRuleController.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WaveRuleController.java
index 91072c0..abd2969 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WaveRuleController.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WaveRuleController.java
@@ -11,7 +11,10 @@
 import com.vincent.rsf.server.common.domain.PageParam;
 import com.vincent.rsf.server.manager.entity.WaveRule;
 import com.vincent.rsf.server.manager.service.WaveRuleService;
+import com.vincent.rsf.server.system.constant.SerialRuleCode;
 import com.vincent.rsf.server.system.controller.BaseController;
+import com.vincent.rsf.server.system.utils.SerialRuleUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
@@ -59,6 +62,10 @@
         waveRule.setCreateTime(new Date());
         waveRule.setUpdateBy(getLoginUserId());
         waveRule.setUpdateTime(new Date());
+        String ruleCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_WAVE_RULE_CODE, null);
+        if (!StringUtils.isBlank(ruleCode)) {
+               waveRule.setCode(ruleCode);
+        }
         if (!waveRuleService.save(waveRule)) {
             return R.error("Save Fail");
         }
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/WaveRule.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/WaveRule.java
index bff5741..9e0bc44 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/WaveRule.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/WaveRule.java
@@ -3,6 +3,11 @@
 import com.baomidou.mybatisplus.annotation.TableLogic;
 import java.text.SimpleDateFormat;
 import java.util.Date;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.vincent.rsf.server.system.constant.DictTypeCode;
+import com.vincent.rsf.server.system.entity.DictData;
+import com.vincent.rsf.server.system.service.DictDataService;
 import org.springframework.format.annotation.DateTimeFormat;
 import java.text.SimpleDateFormat;
 import java.util.Date;
@@ -20,6 +25,7 @@
 import com.vincent.rsf.server.system.entity.User;
 import java.io.Serializable;
 import java.util.Date;
+import java.util.Objects;
 
 @Data
 @TableName("man_wave_rule")
@@ -133,6 +139,18 @@
 //            null    // 澶囨敞
 //    );
 
+    public String getType$() {
+        if (null == this.type){ return null; }
+        DictDataService dictDataService = SpringUtils.getBean(DictDataService.class);
+        DictData dictData = dictDataService.getOne(new LambdaQueryWrapper<DictData>()
+                .eq(DictData::getDictTypeCode, DictTypeCode.SYS_WAVE_RULE_CODE)
+                .eq(DictData::getValue, this.type));
+        if (Objects.isNull(dictData)) {
+            return null;
+        }
+        return dictData.getLabel();
+    }
+
     public String getStatus$(){
         if (null == this.status){ return null; }
         switch (this.status){
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/system/constant/DictTypeCode.java b/rsf-server/src/main/java/com/vincent/rsf/server/system/constant/DictTypeCode.java
index a0e6052..3fd143e 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/system/constant/DictTypeCode.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/system/constant/DictTypeCode.java
@@ -65,4 +65,9 @@
     /**PO鍗曟墽琛岀姸鎬�*/
     public final static String SYS_PO_EXCE_STATUS =  "sys_po_exce_status";
 
+    /**
+     *娉㈡绛栫暐绫诲瀷
+     */
+    public final static String SYS_WAVE_RULE_CODE =  "sys_wave_rule_code";
+
 }
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/system/constant/SerialRuleCode.java b/rsf-server/src/main/java/com/vincent/rsf/server/system/constant/SerialRuleCode.java
index 07f2ea3..3d1d48c 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/system/constant/SerialRuleCode.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/system/constant/SerialRuleCode.java
@@ -80,6 +80,10 @@
     /**浼佷笟缂栫爜*/
     public final static String SYS_COMPANYS_CODE = "sys_companys_code";
 
+    /**
+     * 娉㈡绛栫暐
+     */
+    public final static String SYS_WAVE_RULE_CODE = "sys_wave_type";
 
 
 }

--
Gitblit v1.9.1