From a4befde9e479ff159d08202b7e231377a975406b Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期一, 18 三月 2024 19:12:16 +0800
Subject: [PATCH] 统计管理相关接口

---
 ruoyi-system/src/main/java/com/ruoyi/system/dto/BasicDataCategoryDTO.java                        |   24 +
 ruoyi-system/src/main/java/com/ruoyi/system/dto/FieldDTO.java                                    |    5 
 ruoyi-system/src/main/java/com/ruoyi/system/dto/update/DeptFocusDTO.java                         |    3 
 ruoyi-system/src/main/java/com/ruoyi/system/domain/TbField.java                                  |    3 
 ruoyi-common/src/main/java/com/ruoyi/common/enums/FieldTypeEnum.java                             |    5 
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbBasicDataConfigServiceImpl.java       |  131 +++++
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbFieldServiceImpl.java                 |   71 +-
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TbFieldController.java                    |    4 
 ruoyi-system/src/main/java/com/ruoyi/system/dto/update/BasicDataConfigUpdateDTO.java             |   51 ++
 ruoyi-system/src/main/java/com/ruoyi/system/domain/TbBasicDataConfigDetail.java                  |   47 ++
 ruoyi-system/src/main/resources/mapper/system/TbBasicDataConfigMapper.xml                        |    6 
 ruoyi-system/src/main/java/com/ruoyi/system/query/BasicDataConfigQuery.java                      |   30 +
 ruoyi-system/src/main/java/com/ruoyi/system/vo/BasicDataCategoryVO.java                          |   24 +
 ruoyi-system/src/main/java/com/ruoyi/system/vo/BasicDataConfigDetailVO.java                      |   54 ++
 ruoyi-system/src/main/java/com/ruoyi/system/domain/TbBasicDataConfig.java                        |   24 
 ruoyi-system/src/main/java/com/ruoyi/system/dto/DataScreeningDTO.java                            |    2 
 ruoyi-system/src/main/java/com/ruoyi/system/domain/TbBasicDataCategory.java                      |    5 
 ruoyi-system/src/main/java/com/ruoyi/system/domain/TbFieldCategory.java                          |    3 
 ruoyi-system/src/main/java/com/ruoyi/system/domain/TbDept.java                                   |    3 
 ruoyi-system/src/main/java/com/ruoyi/system/dto/update/FieldUpdateDTO.java                       |    2 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TbBasicDataCategoryController.java        |  103 ++++
 ruoyi-system/src/main/java/com/ruoyi/system/service/TbBasicDataConfigService.java                |   20 
 ruoyi-admin/src/main/resources/application.yml                                                   |    2 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TbFieldCategoryController.java            |   20 
 ruoyi-common/src/main/java/com/ruoyi/common/enums/CalculateTypeEnum.java                         |   27 +
 ruoyi-system/src/main/java/com/ruoyi/system/service/TbBasicDataConfigDetailService.java          |   16 
 ruoyi-system/src/main/java/com/ruoyi/system/vo/FieldVO.java                                      |    3 
 ruoyi-system/src/main/resources/mapper/system/TbBasicDataCategoryMapper.xml                      |    2 
 ruoyi-system/src/main/java/com/ruoyi/system/vo/BasicDataConfigVO.java                            |   31 +
 ruoyi-common/src/main/java/com/ruoyi/common/enums/DisabledEnum.java                              |    4 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TbDeptController.java                     |   20 
 ruoyi-system/src/main/java/com/ruoyi/system/dto/update/BasicDataCategoryUpdateDTO.java           |   29 +
 ruoyi-system/src/main/java/com/ruoyi/system/dto/CalculateDTO.java                                |   20 
 ruoyi-system/src/main/java/com/ruoyi/system/dto/ShowHideDTO.java                                 |   10 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TbBasicDataConfigDetailController.java    |   21 
 ruoyi-system/src/main/java/com/ruoyi/system/dto/BasicDataConfigDTO.java                          |   89 ++++
 ruoyi-system/src/main/java/com/ruoyi/system/query/FieldQuery.java                                |   10 
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbBasicDataCategoryServiceImpl.java     |   30 +
 ruoyi-system/src/main/java/com/ruoyi/system/vo/DeptVO.java                                       |    3 
 code-generator/src/test/java/CodeGeneratorTests.java                                             |    6 
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbBasicDataConfigDetailServiceImpl.java |   20 
 ruoyi-admin/src/main/resources/mybatis/mybatis-config.xml                                        |    2 
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbFieldCategoryServiceImpl.java         |    6 
 ruoyi-admin/src/main/java/com/ruoyi/RuoYiManageApplication.java                                  |    2 
 ruoyi-system/src/main/java/com/ruoyi/system/vo/CalculateVO.java                                  |   26 +
 ruoyi-common/src/main/java/com/ruoyi/common/enums/ShowStatusEnum.java                            |   26 +
 ruoyi-system/src/main/java/com/ruoyi/system/mapper/TbBasicDataConfigDetailMapper.java            |   16 
 ruoyi-system/src/main/java/com/ruoyi/system/dto/update/DeptUpdateDTO.java                        |    8 
 ruoyi-system/src/main/java/com/ruoyi/system/dto/update/FieldCategoryUpdateDTO.java               |    3 
 ruoyi-system/src/main/java/com/ruoyi/system/service/TbBasicDataCategoryService.java              |   10 
 ruoyi-common/pom.xml                                                                             |    7 
 ruoyi-system/src/main/java/com/ruoyi/system/query/BasicDataCategoryQuery.java                    |   26 +
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TbBasicDataConfigController.java          |  114 +++++
 /dev/null                                                                                        |   22 -
 ruoyi-system/src/main/resources/mapper/system/TbBasicDataConfigDetailMapper.xml                  |   18 
 ruoyi-system/src/main/java/com/ruoyi/system/vo/FieldCategoryVO.java                              |    3 
 ruoyi-system/src/main/java/com/ruoyi/system/mapper/TbBasicDataConfigMapper.java                  |    2 
 57 files changed, 1,142 insertions(+), 132 deletions(-)

diff --git a/code-generator/src/test/java/CodeGeneratorTests.java b/code-generator/src/test/java/CodeGeneratorTests.java
index f936b9f..b7d0e92 100644
--- a/code-generator/src/test/java/CodeGeneratorTests.java
+++ b/code-generator/src/test/java/CodeGeneratorTests.java
@@ -26,7 +26,7 @@
 
 
     // 防止误生成
-    private static final String BASE_PACKAGE = "com.financial";
+    private static final String BASE_PACKAGE = "com.ruoyi";
 
     @Test
     public void contextLoads() {
@@ -43,7 +43,7 @@
                 .setServiceName("%sService")
                 .setServiceImplName("%sServiceImpl")
                 .setControllerName("%sController")
-                .setOpen(false)//当代码生成完成之后是否打开代码所在的文件夹
+                .setOpen(true)//当代码生成完成之后是否打开代码所在的文件夹
                 .setSwagger2(true) //实体属性 Swagger2 注解
                 .setFileOverride(true)//是否覆盖
                 //.setActiveRecord(true)
@@ -144,7 +144,7 @@
 //         strategy.setTablePrefix(pc.getModuleName() + "");
 //        strategy.setLikeTable(new LikeTable("room"));
         //strategy.setLikeTable(new LikeTable("member"));
-        strategy.setLikeTable(new LikeTable("tb_"));// 生成表名
+        strategy.setLikeTable(new LikeTable("tb_basic_data_config"));// 生成表名
 //        strategy.setLikeTable(new LikeTable("t_hotel"));// 生成表名
 //        strategy.setLikeTable(new LikeTable("t_scan_message"));// 生成表名
 //        strategy.setNotLikeTable(new LikeTable("tb_dept"));// 不生成表名
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/RuoYiManageApplication.java b/ruoyi-admin/src/main/java/com/ruoyi/RuoYiManageApplication.java
index 68adb8d..22bcc57 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/RuoYiManageApplication.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/RuoYiManageApplication.java
@@ -9,6 +9,7 @@
 import org.springframework.context.annotation.Bean;
 import org.springframework.core.env.Environment;
 import org.springframework.http.client.SimpleClientHttpRequestFactory;
+import org.springframework.scheduling.annotation.EnableAsync;
 import org.springframework.scheduling.annotation.EnableScheduling;
 import org.springframework.web.client.RestTemplate;
 
@@ -20,6 +21,7 @@
  * @author ruoyi
  */
 @Slf4j
+@EnableAsync
 @EnableScheduling//开启定时任务
 @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })
 public class RuoYiManageApplication
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TbBasicDataCategoryController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TbBasicDataCategoryController.java
index b102be4..75d5212 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TbBasicDataCategoryController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TbBasicDataCategoryController.java
@@ -1,8 +1,24 @@
 package com.ruoyi.web.controller.api;
 
 
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.basic.PageDTO;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.utils.BeanUtils;
+import com.ruoyi.system.domain.TbBasicDataCategory;
+import com.ruoyi.system.dto.BasicDataCategoryDTO;
+import com.ruoyi.system.dto.ShowHideDTO;
+import com.ruoyi.system.dto.update.BasicDataCategoryUpdateDTO;
+import com.ruoyi.system.query.BasicDataCategoryQuery;
+import com.ruoyi.system.service.TbBasicDataCategoryService;
+import com.ruoyi.system.vo.BasicDataCategoryVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Objects;
 
 /**
  * <p>
@@ -12,9 +28,90 @@
  * @author mitao
  * @since 2024-03-13
  */
+@Slf4j
 @RestController
-@RequestMapping("/tb-basic-data-category")
+@RequiredArgsConstructor
+@Api(tags = {"基础数据分类相关接口"})
+@RequestMapping("/basic-data-category")
 public class TbBasicDataCategoryController {
 
+    private final TbBasicDataCategoryService tbBasicDataCategoryService;
+
+    /**
+     * 添加
+     * @param dto 基础数据分类传输对象
+     * @return R<Void>
+     */
+    @PostMapping("/add")
+    @ApiOperation("添加")
+    public R<Void> add(@RequestBody @Validated BasicDataCategoryDTO dto) {
+        tbBasicDataCategoryService.add(dto);
+        return R.ok();
+    }
+
+    /**
+     * 编辑
+     * @param dto 基础数据分类更新传输对象
+     * @return R<Void>
+     */
+    @PostMapping("/edit")
+    @ApiOperation("编辑")
+    public R<Void> add(@RequestBody @Validated BasicDataCategoryUpdateDTO dto) {
+        tbBasicDataCategoryService.update(dto);
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     * @param id id
+     * @return R<Void>
+     */
+    @DeleteMapping("/delete")
+    @ApiOperation("删除")
+    public R<Void> delete(@RequestParam(value = "id") Integer id){
+        tbBasicDataCategoryService.removeById(id);
+        return R.ok();
+    }
+
+    /**
+     * 根据id获取详情
+     * @param id id
+     * @return R<BasicDataCategoryVO>
+     */
+    @GetMapping("/get-details")
+    @ApiOperation("根据id获取详情")
+    public R<BasicDataCategoryVO> getDetails(@RequestParam(value = "id") Integer id){
+        TbBasicDataCategory basicDataCategory = tbBasicDataCategoryService.getById(id);
+        BasicDataCategoryVO vo = BeanUtils.copyBean(basicDataCategory, BasicDataCategoryVO.class);
+        return R.ok(vo);
+    }
+
+    /**
+     * 隐藏显示操作
+     * @param dto 显示隐藏操作数据传输对象
+     * @return R<Void>
+     */
+    @PostMapping("/show-hide")
+    @ApiOperation("隐藏显示操作")
+    public R<Void> showHide(@RequestBody ShowHideDTO dto) {
+        TbBasicDataCategory basicDataCategory = tbBasicDataCategoryService.getById(dto.getId());
+        if (Objects.isNull(basicDataCategory)) {
+            throw new RuntimeException("非法参数");
+        }
+        tbBasicDataCategoryService.lambdaUpdate().set( TbBasicDataCategory::getStatus, dto.getStatus()).eq(TbBasicDataCategory::getId, dto.getId()).update();
+        return R.ok();
+    }
+
+    /**
+     * 分页条件查询
+     * @param query 基础数据分类条件查询对象
+     * @return R<PageDTO<BasicDataCategoryVO>>
+     */
+    @PostMapping("/page")
+    @ApiOperation("分页条件查询")
+    public R<PageDTO<BasicDataCategoryVO>> page(@RequestBody BasicDataCategoryQuery query) {
+        return R.ok(tbBasicDataCategoryService.queryPage(query));
+    }
+
 }
 
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TbBasicDataConfigController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TbBasicDataConfigController.java
index 1fdb334..3e0d496 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TbBasicDataConfigController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TbBasicDataConfigController.java
@@ -1,8 +1,28 @@
 package com.ruoyi.web.controller.api;
 
 
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.basic.PageDTO;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.enums.ShowStatusEnum;
+import com.ruoyi.common.utils.BeanUtils;
+import com.ruoyi.system.domain.TbBasicDataCategory;
+import com.ruoyi.system.dto.BasicDataConfigDTO;
+import com.ruoyi.system.dto.ShowHideDTO;
+import com.ruoyi.system.dto.update.BasicDataConfigUpdateDTO;
+import com.ruoyi.system.query.BasicDataConfigQuery;
+import com.ruoyi.system.service.TbBasicDataCategoryService;
+import com.ruoyi.system.service.TbBasicDataConfigService;
+import com.ruoyi.system.vo.BasicDataCategoryVO;
+import com.ruoyi.system.vo.BasicDataConfigDetailVO;
+import com.ruoyi.system.vo.BasicDataConfigVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
 
 /**
  * <p>
@@ -10,11 +30,97 @@
  * </p>
  *
  * @author mitao
- * @since 2024-03-13
+ * @since 2024-03-18
  */
+@Slf4j
 @RestController
-@RequestMapping("/tb-basic-data-config")
+@RequiredArgsConstructor
+@Api(tags = {"基础数据分类相关接口"})
+@RequestMapping("/basic-data-config")
 public class TbBasicDataConfigController {
 
+    private final TbBasicDataConfigService tbBasicDataConfigService;
+    private final TbBasicDataCategoryService tbBasicDataCategoryService;
+
+    /**
+     * 获取分类列表
+     * @return R<List<BasicDataCategoryVO>>
+     */
+    @GetMapping("/categories")
+    @ApiOperation(value = "获取分类列表")
+    public R<List<BasicDataCategoryVO>> queryBasicDataCategories() {
+        List<TbBasicDataCategory> list = tbBasicDataCategoryService.lambdaQuery().eq(TbBasicDataCategory::getStatus, ShowStatusEnum.SHOW).list();
+        return R.ok(BeanUtils.copyList(list, BasicDataCategoryVO.class));
+    }
+
+    /**
+     * 添加
+     * @param dto 基础数据配置数据传输对象
+     * @return R<Void>
+     */
+    @PostMapping("/add")
+    @ApiOperation("添加")
+    public R<Void> add(@RequestBody @Validated BasicDataConfigDTO dto) {
+        tbBasicDataConfigService.add(dto);
+        return R.ok();
+    }
+
+    /**
+     * 编辑
+     * @param dto 基础数据配置数据传输对象
+     * @return R<Void>
+     */
+    @PostMapping("/edit")
+    @ApiOperation("编辑")
+    public R<Void> edit(@RequestBody @Validated BasicDataConfigUpdateDTO dto) {
+        tbBasicDataConfigService.edit(dto);
+        return R.ok();
+    }
+
+    /**
+     * 获取详情
+     * @param id id
+     * @return R<BasicDataConfigDetailVO>
+     */
+    @GetMapping("/get-details")
+    @ApiOperation("获取详情")
+    public R<BasicDataConfigDetailVO> getDetails(Integer id) {
+        return R.ok(tbBasicDataConfigService.getDetails(id));
+    }
+
+    /**
+     * 删除
+     * @param id id
+     * @return R<Void>
+     */
+    @DeleteMapping("/delete")
+    @ApiOperation("删除")
+    public R<Void> delete(Integer id) {
+        tbBasicDataConfigService.delete(id);
+        return R.ok();
+    }
+
+    /**
+     * 隐藏显示操作
+     * @param dto 显示隐藏操作数据传输对象
+     * @return R<Void>
+     */
+    @PostMapping("show-hide")
+    @ApiOperation("隐藏显示操作")
+    public R<Void> showHide(@RequestBody ShowHideDTO dto) {
+       tbBasicDataConfigService.showHide(dto);
+        return R.ok();
+    }
+
+    /**
+     * 分页条件查询
+     * @param query 基础数据条件查询对象
+     * @return R<PageDTO<BasicDataConfigVO>>
+     */
+    @PostMapping("/page")
+    @ApiOperation("分页条件查询")
+    public R<PageDTO<BasicDataConfigVO>> page(@RequestBody BasicDataConfigQuery query) {
+        return R.ok(tbBasicDataConfigService.queryPage(query));
+    }
 }
 
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TbBasicDataConfigDetailController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TbBasicDataConfigDetailController.java
new file mode 100644
index 0000000..82f140f
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TbBasicDataConfigDetailController.java
@@ -0,0 +1,21 @@
+package com.ruoyi.web.controller.api;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 基础数据配置详情表(存储文本和百分比的配置) 前端控制器
+ * </p>
+ *
+ * @author mitao
+ * @since 2024-03-18
+ */
+@RestController
+@RequestMapping("/tb-basic-data-config-detail")
+public class TbBasicDataConfigDetailController {
+
+}
+
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TbDeptController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TbDeptController.java
index af3f223..ef97d4f 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TbDeptController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TbDeptController.java
@@ -4,8 +4,8 @@
 import com.ruoyi.common.basic.PageDTO;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.exception.GlobalException;
+import com.ruoyi.common.utils.BeanUtils;
 import com.ruoyi.common.utils.ExcelUtil;
-import com.ruoyi.common.utils.bean.BeanUtils;
 import com.ruoyi.system.domain.TbDept;
 import com.ruoyi.system.dto.update.DeptFocusDTO;
 import com.ruoyi.system.dto.update.DeptUpdateDTO;
@@ -21,6 +21,7 @@
 
 import javax.servlet.http.HttpServletResponse;
 import java.util.ArrayList;
+import java.util.Objects;
 
 /**
  * <p>
@@ -88,13 +89,11 @@
      * @param id 部门id
      * @return DeptVO
      */
-    @GetMapping("/getById")
+    @GetMapping("/get-details")
     @ApiOperation("根据id查询部门详情")
-    public R<DeptVO> getById(@RequestParam Integer id) {
+    public R<DeptVO> getDetails(@RequestParam Integer id) {
         TbDept dept = tbDeptService.getById(id);
-        DeptVO deptVO = new DeptVO();
-        BeanUtils.copyBeanProp(deptVO, dept);
-        return R.ok(deptVO);
+        return R.ok(BeanUtils.copyBean(dept,DeptVO.class));
     }
 
     /**
@@ -105,8 +104,7 @@
     @PostMapping("/edit")
     @ApiOperation("编辑")
     public R<Object> edit(@RequestBody DeptUpdateDTO dto){
-        TbDept tbDept = new TbDept();
-        BeanUtils.copyBeanProp(tbDept,dto);
+        TbDept tbDept = BeanUtils.copyBean(dto, TbDept.class);
         tbDeptService.updateById(tbDept);
         return R.ok();
     }
@@ -119,8 +117,10 @@
     @PostMapping("/focus")
     @ApiOperation("重点关注")
     public R<Object> focus(@RequestBody DeptFocusDTO dto){
-        TbDept tbDept = new TbDept();
-        BeanUtils.copyBeanProp(tbDept,dto);
+        TbDept dept = tbDeptService.getById(dto.getId());
+        if (Objects.isNull(dept)) {
+            throw new RuntimeException("非法参数");
+        }
         tbDeptService.lambdaUpdate()
                 .eq(TbDept::getId, dto.getId())
                 .set(TbDept::getFocussed, dto.getFocussed())
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TbFieldCategoryController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TbFieldCategoryController.java
index 6a4ea9d..d4c16ad 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TbFieldCategoryController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TbFieldCategoryController.java
@@ -47,12 +47,7 @@
     @PostMapping("/add")
     @ApiOperation("添加")
     public R<Object> add(@RequestBody @Validated FieldCategoryDTO dto) {
-        try {
-            tbFieldCategoryService.add(dto);
-        } catch (Exception e) {
-            log.error("添加分类异常", e);
-            throw new RuntimeException("操作失败");
-        }
+        tbFieldCategoryService.add(dto);
         return R.ok();
     }
 
@@ -61,7 +56,7 @@
      * @param id 字段分类id
      * @return R
      */
-    @GetMapping("/getById")
+    @GetMapping("/get-details")
     @ApiOperation("根据id获取字段分类详情")
     public R<FieldCategoryDetailVO> getById(@RequestParam(value = "id") Integer id) {
         TbFieldCategory oneCategory = tbFieldCategoryService.getById(id);
@@ -100,9 +95,9 @@
      * @param dto 显示隐藏操作数据传输对象
      * @return R
      */
-    @PutMapping("/show-hide")
+    @PostMapping("/show-hide")
     @ApiOperation("隐藏显示操作")
-    public R<Object> showHide(@RequestBody ShowHideDTO dto) {
+    public R<Void> showHide(@RequestBody ShowHideDTO dto) {
         tbFieldCategoryService.showHide(dto);
         return R.ok();
     }
@@ -115,12 +110,7 @@
     @DeleteMapping("/delete-children")
     @ApiOperation("编辑页面删除子字段分类")
     public R<Object> deleteChildren(@RequestParam(value = "id") Integer id){
-        try {
-            tbFieldCategoryService.deleteChildren(id);
-        } catch (Exception e) {
-            log.error("编辑页面删除子字段分类失败",e);
-            throw new RuntimeException("操作失败");
-        }
+        tbFieldCategoryService.deleteChildren(id);
         return R.ok();
     }
 
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TbFieldController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TbFieldController.java
index 0db336e..405cbc6 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TbFieldController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TbFieldController.java
@@ -114,9 +114,9 @@
      * @param id id
      * @return FieldVO
      */
-    @GetMapping("/getById")
+    @GetMapping("/get-details")
     @ApiOperation("获取详情")
-    public R<FieldVO> getById(@RequestParam Integer id){
+    public R<FieldVO> getDetails(@RequestParam Integer id){
         TbField field = tbFieldService.getById(id);
         return R.ok(BeanUtils.copyBean(field, FieldVO.class));
     }
diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml
index 157740c..1fc858d 100644
--- a/ruoyi-admin/src/main/resources/application.yml
+++ b/ruoyi-admin/src/main/resources/application.yml
@@ -93,6 +93,8 @@
         max-wait: -1ms
   jackson:
     default-property-inclusion: non_null
+    deserialization:
+      read-unknown-enum-values-as-null: true
 
 # token配置
 token:
diff --git a/ruoyi-admin/src/main/resources/mybatis/mybatis-config.xml b/ruoyi-admin/src/main/resources/mybatis/mybatis-config.xml
index 10cf6b0..9a8c670 100644
--- a/ruoyi-admin/src/main/resources/mybatis/mybatis-config.xml
+++ b/ruoyi-admin/src/main/resources/mybatis/mybatis-config.xml
@@ -15,6 +15,8 @@
         <setting name="logImpl"                  value="SLF4J"  />
         <!-- 使用驼峰命名法转换字段 -->
 		 <setting name="mapUnderscoreToCamelCase" value="true"/>
+        <!--开启枚举类自动转换-->
+        <setting name="defaultEnumTypeHandler" value="org.apache.ibatis.type.EnumOrdinalTypeHandler"/>
 	</settings>
 	
 </configuration>
diff --git a/ruoyi-common/pom.xml b/ruoyi-common/pom.xml
index c52a894..573c853 100644
--- a/ruoyi-common/pom.xml
+++ b/ruoyi-common/pom.xml
@@ -179,6 +179,13 @@
             <groupId>cn.hutool</groupId>
             <artifactId>hutool-all</artifactId>
         </dependency>
+
+        <!--jexl3-->
+        <dependency>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>commons-jexl3</artifactId>
+            <version>3.3</version>
+        </dependency>
     </dependencies>
 
 </project>
\ No newline at end of file
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/enums/CalculateTypeEnum.java b/ruoyi-common/src/main/java/com/ruoyi/common/enums/CalculateTypeEnum.java
new file mode 100644
index 0000000..dabc89d
--- /dev/null
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/enums/CalculateTypeEnum.java
@@ -0,0 +1,27 @@
+package com.ruoyi.common.enums;
+
+import com.baomidou.mybatisplus.annotation.EnumValue;
+import com.fasterxml.jackson.annotation.JsonValue;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+@Getter
+@AllArgsConstructor
+public enum CalculateTypeEnum {
+	NUMBER(1, "数字计算"),
+	TEXT(2, "文本统计"),
+	PERCENTAGE(3, "百分比统计");
+	@EnumValue
+	private final Integer code;
+	@JsonValue
+	private final String desc;
+
+	public static CalculateTypeEnum getEnumByCode(Integer code) {
+		for (CalculateTypeEnum e : CalculateTypeEnum.values()) {
+			if (e.code.equals(code)) {
+				return e;
+			}
+		}
+		return null;
+	}
+} 
\ No newline at end of file
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/enums/DisabledEnum.java b/ruoyi-common/src/main/java/com/ruoyi/common/enums/DisabledEnum.java
index 46e7bca..b904c30 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/enums/DisabledEnum.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/enums/DisabledEnum.java
@@ -1,5 +1,7 @@
 package com.ruoyi.common.enums;
 
+import com.baomidou.mybatisplus.annotation.EnumValue;
+import com.fasterxml.jackson.annotation.JsonValue;
 import lombok.Getter;
 
 /**
@@ -13,10 +15,12 @@
     YES(1, "是");
 
     @Getter
+    @JsonValue
     private String desc;
 
 
     @Getter
+    @EnumValue
     private int code;
 
 
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/enums/FieldTypeEnum.java b/ruoyi-common/src/main/java/com/ruoyi/common/enums/FieldTypeEnum.java
index 7d5ace4..2ecbdc2 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/enums/FieldTypeEnum.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/enums/FieldTypeEnum.java
@@ -1,5 +1,7 @@
 package com.ruoyi.common.enums;
 
+import com.baomidou.mybatisplus.annotation.EnumValue;
+import com.fasterxml.jackson.annotation.JsonValue;
 import lombok.Getter;
 import lombok.AllArgsConstructor;
 @Getter
@@ -8,8 +10,9 @@
 	NUMBER(1, "数字"),
 	TEXT(2, "文本"),
 	PERCENTAGE(3, "百分比");
-
+	@EnumValue
 	private final Integer code;
+	@JsonValue
 	private final String desc;
 
 	public static FieldTypeEnum getEnumByCode(Integer code) {
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/enums/ShowStatus.java b/ruoyi-common/src/main/java/com/ruoyi/common/enums/ShowStatus.java
deleted file mode 100644
index 28a650c..0000000
--- a/ruoyi-common/src/main/java/com/ruoyi/common/enums/ShowStatus.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package com.ruoyi.common.enums;
-
-import lombok.Getter;
-import lombok.AllArgsConstructor;
-@Getter
-@AllArgsConstructor
-public enum ShowStatus {
-	SHOW(0, "展示"),
-	HIDE(1, "隐藏");
-
-	private final Integer code;
-	private final String desc;
-
-	public static ShowStatus getEnumByCode(Integer code) {
-		for (ShowStatus e : ShowStatus.values()) {
-			if (e.code.equals(code)) {
-				return e;
-			}
-		}
-		return null;
-	}
-} 
\ No newline at end of file
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/enums/ShowStatusEnum.java b/ruoyi-common/src/main/java/com/ruoyi/common/enums/ShowStatusEnum.java
new file mode 100644
index 0000000..324b701
--- /dev/null
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/enums/ShowStatusEnum.java
@@ -0,0 +1,26 @@
+package com.ruoyi.common.enums;
+
+import com.baomidou.mybatisplus.annotation.EnumValue;
+import com.fasterxml.jackson.annotation.JsonValue;
+import lombok.Getter;
+import lombok.AllArgsConstructor;
+@Getter
+@AllArgsConstructor
+public enum ShowStatusEnum {
+	SHOW(0, "展示中"),
+	HIDE(1, "已隐藏");
+
+	@EnumValue
+	private final Integer code;
+	@JsonValue
+	private final String desc;
+
+	public static ShowStatusEnum getEnumByCode(Integer code) {
+		for (ShowStatusEnum e : ShowStatusEnum.values()) {
+			if (e.code.equals(code)) {
+				return e;
+			}
+		}
+		return null;
+	}
+} 
\ No newline at end of file
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/TbBasicDataCategory.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/TbBasicDataCategory.java
index 088bfe5..83d941d 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/TbBasicDataCategory.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/TbBasicDataCategory.java
@@ -1,6 +1,7 @@
 package com.ruoyi.system.domain;
 
 import com.baomidou.mybatisplus.annotation.*;
+import com.ruoyi.common.enums.ShowStatusEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -34,8 +35,8 @@
     private String basicDataCategoryName;
 
     @ApiModelProperty(value = "隐藏状态(0=展示中 1=已隐藏)")
-    @TableField("hidden")
-    private Integer hidden;
+    @TableField("status")
+    private ShowStatusEnum status;
 
     @ApiModelProperty(value = "删除标志(0代表存在 1代表删除)")
     @TableField("del_flag")
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/TbBasicDataConfig.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/TbBasicDataConfig.java
index 9a7e1d3..953d132 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/TbBasicDataConfig.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/TbBasicDataConfig.java
@@ -1,6 +1,8 @@
 package com.ruoyi.system.domain;
 
 import com.baomidou.mybatisplus.annotation.*;
+import com.ruoyi.common.enums.CalculateTypeEnum;
+import com.ruoyi.common.enums.ShowStatusEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -15,7 +17,7 @@
  * </p>
  *
  * @author mitao
- * @since 2024-03-13
+ * @since 2024-03-18
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
@@ -26,7 +28,7 @@
     private static final long serialVersionUID = 1L;
 
     @ApiModelProperty(value = "基础数据配置id")
-    @TableId("id")
+    @TableId(value = "id", type = IdType.AUTO)
     private Integer id;
 
     @ApiModelProperty(value = "基础数据分类id")
@@ -43,19 +45,19 @@
 
     @ApiModelProperty(value = "计算类型(1=数字计算 2=文本统计 3=百分比统计)")
     @TableField("calculate_type")
-    private Integer calculateType;
+    private CalculateTypeEnum calculateType;
 
-    @ApiModelProperty(value = "字段id")
-    @TableField("field_id")
-    private Integer fieldId;
+    @ApiModelProperty(value = "数字计算公式")
+    @TableField("number_calculate_formula")
+    private String numberCalculateFormula;
 
-    @ApiModelProperty(value = "计算公式")
-    @TableField("calculate_formula")
-    private String calculateFormula;
+    @ApiModelProperty(value = "字段id (多个id使用 ',' 拼接)")
+    @TableField("field_id_str")
+    private String fieldIdStr;
 
-    @ApiModelProperty(value = "隐藏状态(0=展示中 1=已隐藏)")
+    @ApiModelProperty(value = "状态(0=展示 1=隐藏)")
     @TableField("status")
-    private Integer status;
+    private ShowStatusEnum status;
 
     @ApiModelProperty(value = "删除标志(0代表存在 1代表删除)")
     @TableField("del_flag")
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/TbBasicDataConfigDetail.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/TbBasicDataConfigDetail.java
new file mode 100644
index 0000000..b67b763
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/TbBasicDataConfigDetail.java
@@ -0,0 +1,47 @@
+package com.ruoyi.system.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 基础数据配置详情表(存储文本和百分比的配置)
+ * </p>
+ *
+ * @author mitao
+ * @since 2024-03-18
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("tb_basic_data_config_detail")
+@ApiModel(value="TbBasicDataConfigDetail对象", description="基础数据配置详情表(存储文本和百分比的配置)")
+public class TbBasicDataConfigDetail implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "id")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "基础数据配置id")
+    @TableField("basic_data_config_id")
+    private Integer basicDataConfigId;
+
+    @ApiModelProperty(value = "键")
+    @TableField("key")
+    private String key;
+
+    @ApiModelProperty(value = "值")
+    @TableField("value")
+    private String value;
+
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/TbDept.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/TbDept.java
index f1cb912..07aa6a0 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/TbDept.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/TbDept.java
@@ -2,6 +2,7 @@
 
 import cn.afterturn.easypoi.excel.annotation.Excel;
 import com.baomidou.mybatisplus.annotation.*;
+import com.ruoyi.common.enums.ShowStatusEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -53,7 +54,7 @@
     @ApiModelProperty(value = "县级标志(不包含直辖市的区 0:否 1:是)")
     @TableField("county_flag")
     @Excel(name = "县级标志 是/否",replace = {"是_1","否_2"})
-    private Integer countyFlag;
+    private ShowStatusEnum countyFlag;
 
     @ApiModelProperty(value = "负责人")
     @TableField("person_in_charge")
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/TbField.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/TbField.java
index ae27823..9e6d061 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/TbField.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/TbField.java
@@ -1,6 +1,7 @@
 package com.ruoyi.system.domain;
 
 import com.baomidou.mybatisplus.annotation.*;
+import com.ruoyi.common.enums.ShowStatusEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -63,7 +64,7 @@
 
     @ApiModelProperty(value = "隐藏状态(0=展示中 1=已隐藏)")
     @TableField("status")
-    private Integer status;
+    private ShowStatusEnum status;
 
     @ApiModelProperty(value = "数字最小值")
     @TableField("num_min")
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/TbFieldCategory.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/TbFieldCategory.java
index 24593d3..b924e7a 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/TbFieldCategory.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/TbFieldCategory.java
@@ -1,6 +1,7 @@
 package com.ruoyi.system.domain;
 
 import com.baomidou.mybatisplus.annotation.*;
+import com.ruoyi.common.enums.ShowStatusEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -43,7 +44,7 @@
 
     @ApiModelProperty(value = "状态(0=展示 1=隐藏)")
     @TableField("status")
-    private Integer status;
+    private ShowStatusEnum status;
 
     @ApiModelProperty(value = "删除标志(0代表存在 1代表删除)")
     @TableField("del_flag")
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/dto/BasicDataCategoryDTO.java b/ruoyi-system/src/main/java/com/ruoyi/system/dto/BasicDataCategoryDTO.java
new file mode 100644
index 0000000..b9cedc7
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/dto/BasicDataCategoryDTO.java
@@ -0,0 +1,24 @@
+package com.ruoyi.system.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+
+/**
+ * @author mitao
+ * @date 2024/3/18
+ */
+@Data
+@ApiModel(value = "基础数据分类数据传输对象")
+public class BasicDataCategoryDTO implements Serializable {
+
+    private static final long serialVersionUID = -5360339554664959680L;
+
+    @ApiModelProperty(value = "分类名称")
+    @NotBlank(message = "分类名称不能为空")
+    private String basicDataCategoryName;
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/dto/BasicDataConfigDTO.java b/ruoyi-system/src/main/java/com/ruoyi/system/dto/BasicDataConfigDTO.java
new file mode 100644
index 0000000..2a4b5e4
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/dto/BasicDataConfigDTO.java
@@ -0,0 +1,89 @@
+package com.ruoyi.system.dto;
+
+import com.ruoyi.common.enums.CalculateTypeEnum;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+/**
+ * @author mitao
+ * @date 2024/3/18
+ */
+@Data
+@ApiModel(value = "基础数据配置数据传输对象")
+public class BasicDataConfigDTO {
+
+    @ApiModelProperty(value = "类型名称")
+    @NotBlank(message = "类型名称不能为空")
+    private String typeName;
+
+    @ApiModelProperty(value = "基础数据分类id")
+    @NotNull(message = "基础数据分类id不能为空")
+    private Integer basicDataCategoryId;
+
+    @ApiModelProperty(value = "字段说明")
+    @NotBlank(message = "字段说明不能为空")
+    private String fieldDescription;
+
+    @ApiModelProperty(value = "计算类型(数字计算 文本统计 百分比统计)")
+    @NotNull(message = "计算类型不能为空")
+    private CalculateTypeEnum calculateType;
+
+    @ApiModelProperty(value = "字段id (多个id使用 ',' 拼接)")
+    @NotBlank(message = "字段id不能为空")
+    private String fieldIdStr;
+
+    @ApiModelProperty(value = "计算公式",notes = "计算类型为数字计算,配置内容使用该字段接收;公式中字段的格式为:field_字段id,e.g:field_1,field_2等。")
+    private String numberCalculateFormula;
+
+    @ApiModelProperty(value = "文本和百分比配置信息",notes = "当计算方式为 文本统计/百分比统计 " +
+            "配置内容使用这个字段接收;key为键,value为得分;百分比统计 将百分比区间使用'_'拼接作为key,e.g: 10_20,20_30")
+    private List<CalculateDTO> dtoList;
+
+    public static void main(String[] args) {
+        String rule = "(field1_13+field2_50) × 5 ÷field3_63×10";
+
+        // 正则表达式模式,匹配形如 "fieldName:value" 的字符串
+        Pattern pattern = Pattern.compile("\\b(\\w+)_(\\d+)\\b");
+        Matcher matcher = pattern.matcher(rule);
+
+        // 循环匹配并输出字段名和值
+        while (matcher.find()) {
+            String fieldName = matcher.group(1);
+            int value = Integer.parseInt(matcher.group(2));
+            System.out.println("Field: " + fieldName + ", Value: " + value);
+        }
+
+       /* // 假设用户上传的字段值
+        int field1 = 500;
+        int field2 = 30;
+        int field3 = 1000;
+
+        // 计算表达式
+        String expression = "(field1_13 + field2_50) * 5 / field3_63 * 10";
+
+        // 创建 JEXL 引擎
+        JexlEngine jexl = new JexlBuilder().create();
+
+        // 创建表达式对象
+        JexlExpression exp = jexl.createExpression(expression);
+
+        // 创建上下文
+        JexlContext context = new MapContext();
+        context.set("field1_13", field1);
+        context.set("field2_50", field2);
+        context.set("field3_63", field3);
+
+        // 执行计算
+        Object result = exp.evaluate(context);
+
+        // 输出结果
+        System.out.println("Result: " + result);*/
+    }
+ }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/dto/CalculateDTO.java b/ruoyi-system/src/main/java/com/ruoyi/system/dto/CalculateDTO.java
new file mode 100644
index 0000000..c5d0807
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/dto/CalculateDTO.java
@@ -0,0 +1,20 @@
+package com.ruoyi.system.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+@ApiModel(value = "基础数据配置配置数据传输对象")
+public class CalculateDTO implements Serializable {
+
+    private static final long serialVersionUID = 4241732957573127850L;
+
+    @ApiModelProperty(value = "键")
+    private String key;
+    
+    @ApiModelProperty(value = "值")
+    private String value;
+}
\ No newline at end of file
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/dto/DataScreeningDTO.java b/ruoyi-system/src/main/java/com/ruoyi/system/dto/DataScreeningDTO.java
index 981f055..8ef0401 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/dto/DataScreeningDTO.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/dto/DataScreeningDTO.java
@@ -10,6 +10,8 @@
 @ApiModel(value = "首页统计DTO")
 public class DataScreeningDTO implements Serializable {
 
+    private static final long serialVersionUID = 2753409356329000955L;
+
     @ApiModelProperty(value = "区县id")
     private Integer districtId;
 
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/dto/FieldDTO.java b/ruoyi-system/src/main/java/com/ruoyi/system/dto/FieldDTO.java
index 964493f..caa97ee 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/dto/FieldDTO.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/dto/FieldDTO.java
@@ -6,6 +6,7 @@
 
 import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotNull;
+import java.io.Serializable;
 
 /**
  * @author mitao
@@ -13,7 +14,9 @@
  */
 @Data
 @ApiModel(value = "字段数据传输对象")
-public class FieldDTO {
+public class FieldDTO implements Serializable {
+
+    private static final long serialVersionUID = 3437479376027913296L;
 
     @ApiModelProperty(value = "字段名")
     @NotBlank(message="字段名不能为空")
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/dto/ShowHideDTO.java b/ruoyi-system/src/main/java/com/ruoyi/system/dto/ShowHideDTO.java
index 096cb23..6a93277 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/dto/ShowHideDTO.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/dto/ShowHideDTO.java
@@ -1,10 +1,12 @@
 package com.ruoyi.system.dto;
 
+import com.ruoyi.common.enums.ShowStatusEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import javax.validation.constraints.NotNull;
+import java.io.Serializable;
 
 /**
  * @author mitao
@@ -12,13 +14,15 @@
  */
 @Data
 @ApiModel(value = "显示隐藏操作数据传输对象")
-public class ShowHideDTO {
+public class ShowHideDTO implements Serializable {
+
+    private static final long serialVersionUID = -309339051829606307L;
 
     @ApiModelProperty(value = "分类id")
     @NotNull(message = "id不能为空")
     private Integer id;
 
-    @ApiModelProperty(value = "状态(0=展示 1=隐藏)")
+    @ApiModelProperty(value = "状态 (直接传 展示中 或 已隐藏)")
     @NotNull(message = "status不能为空")
-    private Integer status;
+    private ShowStatusEnum status;
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/dto/update/BasicDataCategoryUpdateDTO.java b/ruoyi-system/src/main/java/com/ruoyi/system/dto/update/BasicDataCategoryUpdateDTO.java
new file mode 100644
index 0000000..2494bdf
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/dto/update/BasicDataCategoryUpdateDTO.java
@@ -0,0 +1,29 @@
+package com.ruoyi.system.dto.update;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+
+/**
+ * @author mitao
+ * @date 2024/3/18
+ */
+@Data
+@ApiModel(value = "基础数据分类更新传输对象")
+public class BasicDataCategoryUpdateDTO implements Serializable {
+
+    private static final long serialVersionUID = -5360339554664959680L;
+
+    @ApiModelProperty(value = "id")
+    @NotNull(message = "id不能为空")
+    private Integer id;
+
+    @ApiModelProperty(value = "分类名称")
+    @NotBlank(message = "分类名称不能为空")
+    private String basicDataCategoryName;
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/dto/update/BasicDataConfigUpdateDTO.java b/ruoyi-system/src/main/java/com/ruoyi/system/dto/update/BasicDataConfigUpdateDTO.java
new file mode 100644
index 0000000..0cb7d84
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/dto/update/BasicDataConfigUpdateDTO.java
@@ -0,0 +1,51 @@
+package com.ruoyi.system.dto.update;
+
+import com.ruoyi.common.enums.CalculateTypeEnum;
+import com.ruoyi.system.dto.CalculateDTO;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import java.util.List;
+
+@Data
+@ApiModel(value = "基础数据配置数据传输对象")
+public class BasicDataConfigUpdateDTO implements Serializable {
+
+    private static final long serialVersionUID = 5918207914709497977L;
+
+    @ApiModelProperty(value = "id")
+    @NotNull(message = "id不能为空")
+    private Integer id;
+
+    @ApiModelProperty(value = "类型名称")
+    @NotBlank(message = "类型名称不能为空")
+    private String typeName;
+
+    @ApiModelProperty(value = "基础数据分类id")
+    @NotNull(message = "基础数据分类id不能为空")
+    private Integer basicDataCategoryId;
+
+    @ApiModelProperty(value = "字段说明")
+    @NotBlank(message = "字段说明不能为空")
+    private String fieldDescription;
+
+    @ApiModelProperty(value = "计算类型(数字计算 文本统计 百分比统计)")
+    @NotNull(message = "计算类型不能为空")
+    private CalculateTypeEnum calculateType;
+
+    @ApiModelProperty(value = "字段id (多个id使用 ',' 拼接)")
+    @NotBlank(message = "字段id不能为空")
+    private String fieldIdStr;
+
+    @ApiModelProperty(value = "计算公式",notes = "计算类型为数字计算,配置内容使用该字段接收;公式中字段的格式为:field_字段id,e.g:field_1,field_2等。")
+    private String numberCalculateFormula;
+
+    @ApiModelProperty(value = "文本和百分比配置信息",notes = "当计算方式为 文本统计/百分比统计 " +
+            "配置内容使用这个字段接收;key为键,value为得分;百分比统计 将百分比区间使用'_'拼接作为key,e.g: 10_20,20_30")
+    private List<CalculateDTO> dtoList;
+
+ }
\ No newline at end of file
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/dto/update/DeptFocusDTO.java b/ruoyi-system/src/main/java/com/ruoyi/system/dto/update/DeptFocusDTO.java
index f6f6846..8e74c4f 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/dto/update/DeptFocusDTO.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/dto/update/DeptFocusDTO.java
@@ -4,6 +4,7 @@
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import javax.validation.constraints.NotNull;
 import java.io.Serializable;
 
 /**
@@ -17,8 +18,10 @@
     private static final long serialVersionUID = -7322348219193526224L;
 
     @ApiModelProperty(value = "部门id")
+    @NotNull(message = "id不能为空")
     private Integer id;
 
     @ApiModelProperty(value = "是否重点关注(0:否 1:是)")
+    @NotNull(message = "是否重点关注不能为空")
     private Integer focussed;
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/dto/update/DeptUpdateDTO.java b/ruoyi-system/src/main/java/com/ruoyi/system/dto/update/DeptUpdateDTO.java
index 7049664..faa33c9 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/dto/update/DeptUpdateDTO.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/dto/update/DeptUpdateDTO.java
@@ -4,6 +4,8 @@
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
 import java.io.Serializable;
 
 /**
@@ -17,20 +19,26 @@
     private static final long serialVersionUID = -4377907033147587467L;
 
     @ApiModelProperty(value = "部门id")
+    @NotNull(message = "id不能为空")
     private Integer id;
 
     @ApiModelProperty(value = "别名")
+    @NotBlank(message = "别名不能为空")
     private String areaAlias;
 
     @ApiModelProperty(value = "负责人")
+    @NotBlank(message = "负责人不能为空")
     private String personInCharge;
 
     @ApiModelProperty(value = "联系电话")
+    @NotBlank(message = "联系电话不能为空")
     private String phone;
 
     @ApiModelProperty(value = "登录账号")
+    @NotBlank(message = "登录账号不能为空")
     private String account;
 
     @ApiModelProperty(value = "登录密码")
+    @NotBlank(message = "登录密码不能为空")
     private String password;
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/dto/update/FieldCategoryUpdateDTO.java b/ruoyi-system/src/main/java/com/ruoyi/system/dto/update/FieldCategoryUpdateDTO.java
index 2b4aee7..e465235 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/dto/update/FieldCategoryUpdateDTO.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/dto/update/FieldCategoryUpdateDTO.java
@@ -5,6 +5,7 @@
 import lombok.Data;
 
 import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
 import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.List;
@@ -16,7 +17,7 @@
     private static final long serialVersionUID = -1625725857401976832L;
 
     @ApiModelProperty(value = "id")
-    @NotBlank(message = "id不能为空")
+    @NotNull(message = "id不能为空")
     private Integer id;
 
     @ApiModelProperty(value = "一级分类名称")
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/dto/update/FieldUpdateDTO.java b/ruoyi-system/src/main/java/com/ruoyi/system/dto/update/FieldUpdateDTO.java
index b10d0b6..1562c03 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/dto/update/FieldUpdateDTO.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/dto/update/FieldUpdateDTO.java
@@ -16,7 +16,7 @@
 public class FieldUpdateDTO {
 
     @ApiModelProperty(value = "id")
-    @NotBlank(message = "id不能为空")
+    @NotNull(message = "id不能为空")
     private Integer id;
 
     @ApiModelProperty(value = "字段名")
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TbBasicDataConfigDetailMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TbBasicDataConfigDetailMapper.java
new file mode 100644
index 0000000..13fbd5a
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TbBasicDataConfigDetailMapper.java
@@ -0,0 +1,16 @@
+package com.ruoyi.system.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.system.domain.TbBasicDataConfigDetail;
+
+/**
+ * <p>
+ * 基础数据配置详情表(存储文本和百分比的配置) Mapper 接口
+ * </p>
+ *
+ * @author mitao
+ * @since 2024-03-18
+ */
+public interface TbBasicDataConfigDetailMapper extends BaseMapper<TbBasicDataConfigDetail> {
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TbBasicDataConfigMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TbBasicDataConfigMapper.java
index 3dca6b0..ce20c7a 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TbBasicDataConfigMapper.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TbBasicDataConfigMapper.java
@@ -9,7 +9,7 @@
  * </p>
  *
  * @author mitao
- * @since 2024-03-13
+ * @since 2024-03-18
  */
 public interface TbBasicDataConfigMapper extends BaseMapper<TbBasicDataConfig> {
 
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/query/BasicDataCategoryQuery.java b/ruoyi-system/src/main/java/com/ruoyi/system/query/BasicDataCategoryQuery.java
new file mode 100644
index 0000000..5726018
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/query/BasicDataCategoryQuery.java
@@ -0,0 +1,26 @@
+package com.ruoyi.system.query;
+
+import com.ruoyi.common.core.domain.BasePage;
+import com.ruoyi.common.enums.ShowStatusEnum;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * @author mitao
+ * @date 2024/3/18
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel("基础数据分类条件查询对象")
+public class BasicDataCategoryQuery extends BasePage {
+
+    private static final long serialVersionUID = -836451250541139775L;
+
+    @ApiModelProperty(value = "分类名称")
+    private String basicDataCategoryName;
+
+    @ApiModelProperty(value = "状态")
+    private ShowStatusEnum status;
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/query/BasicDataConfigQuery.java b/ruoyi-system/src/main/java/com/ruoyi/system/query/BasicDataConfigQuery.java
new file mode 100644
index 0000000..1984258
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/query/BasicDataConfigQuery.java
@@ -0,0 +1,30 @@
+package com.ruoyi.system.query;
+
+import com.ruoyi.common.core.domain.BasePage;
+import com.ruoyi.common.enums.FieldTypeEnum;
+import com.ruoyi.common.enums.ShowStatusEnum;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * @author mitao
+ * @date 2024/3/18
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel("基础数据条件查询对象")
+public class BasicDataConfigQuery extends BasePage {
+
+    private static final long serialVersionUID = -6505569126273148383L;
+
+    @ApiModelProperty(value = "类型名称")
+    private String basicDataConfigName;
+
+    @ApiModelProperty(value = "状态")
+    private ShowStatusEnum status;
+
+    @ApiModelProperty(value = "计算类型(数字计算 文本统计 百分比统计)")
+    private FieldTypeEnum calculateType;
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/query/FieldQuery.java b/ruoyi-system/src/main/java/com/ruoyi/system/query/FieldQuery.java
index 898eb75..a400482 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/query/FieldQuery.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/query/FieldQuery.java
@@ -1,6 +1,8 @@
 package com.ruoyi.system.query;
 
 import com.ruoyi.common.core.domain.BasePage;
+import com.ruoyi.common.enums.FieldTypeEnum;
+import com.ruoyi.common.enums.ShowStatusEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -20,8 +22,8 @@
     @ApiModelProperty(value = "字段名")
     private String fieldName;
 
-    @ApiModelProperty(value = "字段类型(1=数字 2=文本 3=百分比)")
-    private Integer fieldType;
+    @ApiModelProperty(value = "字段类型(数字 文本 百分比)")
+    private FieldTypeEnum fieldType;
 
     @ApiModelProperty(value = "所属分类")
     private String levelOneCategory;
@@ -32,6 +34,6 @@
     @ApiModelProperty(value = "三级分类")
     private String levelThreeCategory;
 
-    @ApiModelProperty(value = "状态 0=展示 1=隐藏")
-    private Integer status;
+    @ApiModelProperty(value = "状态 展示 隐藏")
+    private ShowStatusEnum status;
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/TbBasicDataCategoryService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/TbBasicDataCategoryService.java
index 8c11ae4..2c9e86a 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/TbBasicDataCategoryService.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/TbBasicDataCategoryService.java
@@ -2,7 +2,12 @@
 
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.common.basic.PageDTO;
 import com.ruoyi.system.domain.TbBasicDataCategory;
+import com.ruoyi.system.dto.BasicDataCategoryDTO;
+import com.ruoyi.system.dto.update.BasicDataCategoryUpdateDTO;
+import com.ruoyi.system.query.BasicDataCategoryQuery;
+import com.ruoyi.system.vo.BasicDataCategoryVO;
 
 /**
  * <p>
@@ -14,4 +19,9 @@
  */
 public interface TbBasicDataCategoryService extends IService<TbBasicDataCategory> {
 
+    void add(BasicDataCategoryDTO dto);
+
+    void update(BasicDataCategoryUpdateDTO dto);
+
+    PageDTO<BasicDataCategoryVO> queryPage(BasicDataCategoryQuery query);
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/TbBasicDataConfigDetailService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/TbBasicDataConfigDetailService.java
new file mode 100644
index 0000000..09e1d1b
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/TbBasicDataConfigDetailService.java
@@ -0,0 +1,16 @@
+package com.ruoyi.system.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.system.domain.TbBasicDataConfigDetail;
+
+/**
+ * <p>
+ * 基础数据配置详情表(存储文本和百分比的配置) 服务类
+ * </p>
+ *
+ * @author mitao
+ * @since 2024-03-18
+ */
+public interface TbBasicDataConfigDetailService extends IService<TbBasicDataConfigDetail> {
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/TbBasicDataConfigService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/TbBasicDataConfigService.java
index b445eab..6078ba6 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/TbBasicDataConfigService.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/TbBasicDataConfigService.java
@@ -1,7 +1,14 @@
 package com.ruoyi.system.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.common.basic.PageDTO;
 import com.ruoyi.system.domain.TbBasicDataConfig;
+import com.ruoyi.system.dto.BasicDataConfigDTO;
+import com.ruoyi.system.dto.ShowHideDTO;
+import com.ruoyi.system.dto.update.BasicDataConfigUpdateDTO;
+import com.ruoyi.system.query.BasicDataConfigQuery;
+import com.ruoyi.system.vo.BasicDataConfigDetailVO;
+import com.ruoyi.system.vo.BasicDataConfigVO;
 
 /**
  * <p>
@@ -9,8 +16,19 @@
  * </p>
  *
  * @author mitao
- * @since 2024-03-13
+ * @since 2024-03-18
  */
 public interface TbBasicDataConfigService extends IService<TbBasicDataConfig> {
 
+    void add(BasicDataConfigDTO dto);
+
+    void edit(BasicDataConfigUpdateDTO dto);
+
+    BasicDataConfigDetailVO getDetails(Integer id);
+
+    void delete(Integer id);
+
+    PageDTO<BasicDataConfigVO> queryPage(BasicDataConfigQuery query);
+
+    void showHide(ShowHideDTO dto);
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbBasicDataCategoryServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbBasicDataCategoryServiceImpl.java
index 57a9276..651c0c7 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbBasicDataCategoryServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbBasicDataCategoryServiceImpl.java
@@ -1,10 +1,20 @@
 package com.ruoyi.system.service.impl;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.basic.PageDTO;
+import com.ruoyi.common.utils.BeanUtils;
+import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.system.domain.TbBasicDataCategory;
+import com.ruoyi.system.dto.BasicDataCategoryDTO;
+import com.ruoyi.system.dto.update.BasicDataCategoryUpdateDTO;
 import com.ruoyi.system.mapper.TbBasicDataCategoryMapper;
+import com.ruoyi.system.query.BasicDataCategoryQuery;
 import com.ruoyi.system.service.TbBasicDataCategoryService;
+import com.ruoyi.system.vo.BasicDataCategoryVO;
 import org.springframework.stereotype.Service;
+
+import java.util.Objects;
 
 /**
  * <p>
@@ -17,4 +27,24 @@
 @Service
 public class TbBasicDataCategoryServiceImpl extends ServiceImpl<TbBasicDataCategoryMapper, TbBasicDataCategory> implements TbBasicDataCategoryService {
 
+    @Override
+    public void add(BasicDataCategoryDTO dto) {
+        TbBasicDataCategory tbBasicDataCategory = BeanUtils.copyBean(dto, TbBasicDataCategory.class);
+        this.save(tbBasicDataCategory);
+    }
+
+    @Override
+    public void update(BasicDataCategoryUpdateDTO dto) {
+        TbBasicDataCategory tbBasicDataCategory = BeanUtils.copyBean(dto, TbBasicDataCategory.class);
+        this.updateById(tbBasicDataCategory);
+    }
+
+    @Override
+    public PageDTO<BasicDataCategoryVO> queryPage(BasicDataCategoryQuery query) {
+        Page<TbBasicDataCategory> page = this.lambdaQuery()
+                .like(StringUtils.isNotEmpty(query.getBasicDataCategoryName()), TbBasicDataCategory::getBasicDataCategoryName, query.getBasicDataCategoryName())
+                .eq(Objects.nonNull(query.getStatus()), TbBasicDataCategory::getStatus, query.getStatus())
+                .page(new Page<>(query.getPageNum(), query.getPageSize()));
+        return PageDTO.of(page,BasicDataCategoryVO.class);
+    }
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbBasicDataConfigDetailServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbBasicDataConfigDetailServiceImpl.java
new file mode 100644
index 0000000..84cbccf
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbBasicDataConfigDetailServiceImpl.java
@@ -0,0 +1,20 @@
+package com.ruoyi.system.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.system.domain.TbBasicDataConfigDetail;
+import com.ruoyi.system.mapper.TbBasicDataConfigDetailMapper;
+import com.ruoyi.system.service.TbBasicDataConfigDetailService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 基础数据配置详情表(存储文本和百分比的配置) 服务实现类
+ * </p>
+ *
+ * @author mitao
+ * @since 2024-03-18
+ */
+@Service
+public class TbBasicDataConfigDetailServiceImpl extends ServiceImpl<TbBasicDataConfigDetailMapper, TbBasicDataConfigDetail> implements TbBasicDataConfigDetailService {
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbBasicDataConfigServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbBasicDataConfigServiceImpl.java
index 273a224..6049eeb 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbBasicDataConfigServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbBasicDataConfigServiceImpl.java
@@ -1,10 +1,37 @@
 package com.ruoyi.system.service.impl;
 
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.basic.PageDTO;
+import com.ruoyi.common.enums.CalculateTypeEnum;
+import com.ruoyi.common.enums.ShowStatusEnum;
+import com.ruoyi.common.utils.BeanUtils;
+import com.ruoyi.common.utils.CollUtils;
+import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.system.domain.TbBasicDataConfig;
+import com.ruoyi.system.domain.TbBasicDataConfigDetail;
+import com.ruoyi.system.domain.TbField;
+import com.ruoyi.system.dto.BasicDataConfigDTO;
+import com.ruoyi.system.dto.CalculateDTO;
+import com.ruoyi.system.dto.ShowHideDTO;
+import com.ruoyi.system.dto.update.BasicDataConfigUpdateDTO;
 import com.ruoyi.system.mapper.TbBasicDataConfigMapper;
+import com.ruoyi.system.mapper.TbFieldMapper;
+import com.ruoyi.system.query.BasicDataConfigQuery;
+import com.ruoyi.system.service.TbBasicDataConfigDetailService;
 import com.ruoyi.system.service.TbBasicDataConfigService;
+import com.ruoyi.system.vo.BasicDataConfigDetailVO;
+import com.ruoyi.system.vo.BasicDataConfigVO;
+import com.ruoyi.system.vo.CalculateVO;
+import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -12,9 +39,111 @@
  * </p>
  *
  * @author mitao
- * @since 2024-03-13
+ * @since 2024-03-18
  */
 @Service
+@RequiredArgsConstructor
 public class TbBasicDataConfigServiceImpl extends ServiceImpl<TbBasicDataConfigMapper, TbBasicDataConfig> implements TbBasicDataConfigService {
 
+    private final TbBasicDataConfigDetailService tbBasicDataConfigDetailService;
+    private final TbFieldMapper fieldMapper;
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void add(BasicDataConfigDTO dto) {
+        TbBasicDataConfig tbBasicDataConfig = BeanUtils.copyBean(dto, TbBasicDataConfig.class);
+        //参数校验
+        Integer calculateType = tbBasicDataConfig.getCalculateType().getCode();
+        List<CalculateDTO> dtoList = dto.getDtoList();
+        if (CalculateTypeEnum.NUMBER.getCode().equals(calculateType) && StringUtils.isBlank(dto.getNumberCalculateFormula())) {
+            throw new RuntimeException("计算公式不能为空");
+        }
+        if ((CalculateTypeEnum.TEXT.getCode().equals(calculateType) || CalculateTypeEnum.PERCENTAGE.getCode().equals(calculateType))
+                && CollUtils.isEmpty(dtoList)) {
+            throw new RuntimeException("计算公式不能为空");
+        }
+        this.save(tbBasicDataConfig);
+        if ((CalculateTypeEnum.TEXT.getCode().equals(calculateType) || CalculateTypeEnum.PERCENTAGE.getCode().equals(calculateType))) {
+            List<TbBasicDataConfigDetail> details = BeanUtils.copyList(dtoList, TbBasicDataConfigDetail.class);
+            List<TbBasicDataConfigDetail> collect = details.stream().peek(item -> item.setBasicDataConfigId(tbBasicDataConfig.getId())).collect(Collectors.toList());
+            tbBasicDataConfigDetailService.saveBatch(collect);
+        }
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void edit(BasicDataConfigUpdateDTO dto) {
+        TbBasicDataConfig tbBasicDataConfig = BeanUtils.copyBean(dto, TbBasicDataConfig.class);
+        //参数校验
+        Integer calculateType = tbBasicDataConfig.getCalculateType().getCode();
+        List<CalculateDTO> dtoList = dto.getDtoList();
+        if (CalculateTypeEnum.NUMBER.getCode().equals(calculateType) && StringUtils.isBlank(dto.getNumberCalculateFormula())) {
+            throw new RuntimeException("计算公式不能为空");
+        }
+        if ((CalculateTypeEnum.TEXT.getCode().equals(calculateType) || CalculateTypeEnum.PERCENTAGE.getCode().equals(calculateType))
+                && CollUtils.isEmpty(dtoList)) {
+            throw new RuntimeException("计算公式不能为空");
+        }
+        this.updateById(tbBasicDataConfig);
+        if ((CalculateTypeEnum.TEXT.getCode().equals(calculateType) || CalculateTypeEnum.PERCENTAGE.getCode().equals(calculateType))) {
+            //删除原来的配置信息,重新添加新的
+            tbBasicDataConfigDetailService.lambdaUpdate().eq(TbBasicDataConfigDetail::getBasicDataConfigId, tbBasicDataConfig.getId()).remove();
+            List<TbBasicDataConfigDetail> details = BeanUtils.copyList(dtoList, TbBasicDataConfigDetail.class);
+            List<TbBasicDataConfigDetail> collect = details.stream().peek(item -> item.setBasicDataConfigId(tbBasicDataConfig.getId())).collect(Collectors.toList());
+            tbBasicDataConfigDetailService.saveBatch(collect);
+        }
+    }
+
+    @Override
+    public BasicDataConfigDetailVO getDetails(Integer id) {
+        TbBasicDataConfig config = this.getById(id);
+        if (Objects.isNull(config)) {
+            throw new RuntimeException("非法参数");
+        }
+        BasicDataConfigDetailVO vo = BeanUtils.copyBean(config, BasicDataConfigDetailVO.class);
+        Integer code = vo.getCalculateType().getCode();
+        if ((CalculateTypeEnum.TEXT.getCode().equals(code) || CalculateTypeEnum.PERCENTAGE.getCode().equals(code))) {
+            List<TbBasicDataConfigDetail> list = tbBasicDataConfigDetailService.lambdaQuery().eq(TbBasicDataConfigDetail::getBasicDataConfigId, config.getId()).list();
+            List<CalculateVO> calculateVOS = BeanUtils.copyList(list, CalculateVO.class);
+            vo.setDtoList(calculateVOS);
+        }
+        return vo;
+    }
+
+    @Override
+    public void delete(Integer id) {
+        TbBasicDataConfig config = this.getById(id);
+        if (Objects.isNull(config)) {
+            throw new RuntimeException("非法参数");
+        }
+        this.removeById(id);
+    }
+
+    @Override
+    public PageDTO<BasicDataConfigVO> queryPage(BasicDataConfigQuery query) {
+        Page<TbBasicDataConfig> page = this.lambdaQuery()
+                .like(StringUtils.isNotBlank(query.getBasicDataConfigName()), TbBasicDataConfig::getTypeName, query.getBasicDataConfigName())
+                .eq(Objects.nonNull(query.getCalculateType()), TbBasicDataConfig::getCalculateType, query.getCalculateType())
+                .eq(Objects.nonNull(query.getStatus()), TbBasicDataConfig::getStatus, query.getStatus()).page(new Page<>(query.getPageNum(), query.getPageSize()));
+        return PageDTO.of(page, BasicDataConfigVO.class);
+    }
+
+    @Override
+    public void showHide(ShowHideDTO dto) {
+        TbBasicDataConfig config = this.getById(dto.getId());
+        if (Objects.isNull(config)) {
+            throw new RuntimeException("非法参数");
+        }
+        if (ShowStatusEnum.SHOW.equals(dto.getStatus())) {
+            //查询改配置所使用字段状态
+            String fieldIdStr = config.getFieldIdStr();
+            String[] split = fieldIdStr.split(",");
+            List<TbField> list = fieldMapper.selectList(Wrappers.<TbField>lambdaQuery().in(TbField::getId, Arrays.asList(split)).eq(TbField::getStatus, ShowStatusEnum.HIDE));
+            if (CollUtils.isNotEmpty(list)) {
+                String fieldNames = list.stream().map(TbField::getFieldName).collect(Collectors.joining(","));
+                throw new RuntimeException(String.format("字段“%s”已被隐藏,请重新配置后再次操作!", fieldNames));
+            }
+        }
+        this.lambdaUpdate().set( TbBasicDataConfig::getStatus, dto.getStatus()).eq(TbBasicDataConfig::getId, dto.getId()).update();
+    }
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbFieldCategoryServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbFieldCategoryServiceImpl.java
index bb46ead..022e3b5 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbFieldCategoryServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbFieldCategoryServiceImpl.java
@@ -5,7 +5,7 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.common.basic.PageDTO;
-import com.ruoyi.common.enums.ShowStatus;
+import com.ruoyi.common.enums.ShowStatusEnum;
 import com.ruoyi.common.utils.BeanUtils;
 import com.ruoyi.common.utils.CollUtils;
 import com.ruoyi.common.utils.StringUtils;
@@ -84,7 +84,7 @@
         updateCategoryAndChildren(dto.getId(), dto.getStatus());
     }
 
-    private void updateCategoryAndChildren(Integer id, Integer status) {
+    private void updateCategoryAndChildren(Integer id, ShowStatusEnum status) {
         TbFieldCategory category = this.getById(id);
         if (Objects.isNull(category)) {
             throw new RuntimeException("非法id");
@@ -176,7 +176,7 @@
         List<TbFieldCategory> list = this.lambdaQuery()
                 .select(TbFieldCategory::getId,TbFieldCategory::getFieldCategoryName)
                 .eq(TbFieldCategory::getParentId, id)
-                .eq(TbFieldCategory::getStatus, ShowStatus.SHOW)
+                .eq(TbFieldCategory::getStatus, ShowStatusEnum.SHOW)
                 .list();
         return BeanUtils.copyList(list, FieldCategoryVO.class);
     }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbFieldServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbFieldServiceImpl.java
index 521952d..8555a6f 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbFieldServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbFieldServiceImpl.java
@@ -1,11 +1,11 @@
 package com.ruoyi.system.service.impl;
 
-import cn.hutool.json.JSONArray;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.common.basic.PageDTO;
 import com.ruoyi.common.enums.FieldInputTypeEnum;
 import com.ruoyi.common.enums.FieldTypeEnum;
+import com.ruoyi.common.enums.ShowStatusEnum;
 import com.ruoyi.common.utils.BeanUtils;
 import com.ruoyi.common.utils.CollUtils;
 import com.ruoyi.common.utils.StringUtils;
@@ -20,13 +20,14 @@
 import com.ruoyi.system.service.TbFieldCategoryService;
 import com.ruoyi.system.service.TbFieldService;
 import com.ruoyi.system.vo.FieldVO;
-import lombok.Data;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
+import java.util.concurrent.CompletableFuture;
 import java.util.stream.Collectors;
 
 /**
@@ -72,14 +73,32 @@
 
     @Override
     public void showHide(ShowHideDTO dto) {
+        log.info("======主线程执行showHide{}",Thread.currentThread().getName() );
         TbField field = this.getById(dto.getId());
         if (StringUtils.isNull(field)) {
             throw new RuntimeException("非法参数");
         }
         //隐藏字段
         this.lambdaUpdate().set(TbField::getStatus, dto.getStatus()).eq(TbField::getId, dto.getId()).update();
-        //隐藏基础数据 TODO
-        tbBasicDataConfigService.lambdaUpdate().eq(TbBasicDataConfig::getFieldId, dto.getId()).set(TbBasicDataConfig::getStatus, dto.getStatus()).update();
+        //异步隐藏基础数据配置
+        CompletableFuture.runAsync(() -> handleDataConfig(dto, field));
+    }
+    private void handleDataConfig(ShowHideDTO dto, TbField field) {
+        log.info("======子线程执行handleDataConfig{}",Thread.currentThread().getName() );
+        List<TbBasicDataConfig> list = tbBasicDataConfigService.lambdaQuery().eq(TbBasicDataConfig::getStatus, ShowStatusEnum.SHOW.getCode()).list();
+        if (CollUtils.isNotEmpty(list)) {
+            List<Integer> ids = list.stream().map(config -> {
+                String fieldIdStr = config.getFieldIdStr();
+                String[] split = fieldIdStr.split(",");
+                //字符串数组转为List
+                List<String> idList = new ArrayList<>(Arrays.asList(split));
+                if (idList.contains(field.getId().toString())) {
+                    return config.getId();
+                }
+                return null;
+            }).collect(Collectors.toList());
+            tbBasicDataConfigService.lambdaUpdate().set(TbBasicDataConfig::getStatus, dto.getStatus()).in(TbBasicDataConfig::getId, ids).update();
+        }
     }
 
     @Override
@@ -101,38 +120,24 @@
 
     @Override
     public List<String> influencedData(Integer id) {
-        List<TbBasicDataConfig> list = tbBasicDataConfigService.lambdaQuery().eq(TbBasicDataConfig::getFieldId, id).list();
+        //List<TbBasicDataConfig> list = tbBasicDataConfigService.lambdaQuery().like(TbBasicDataConfig::getFieldIdStr, id).list();
+        List<TbBasicDataConfig> list = tbBasicDataConfigService.lambdaQuery().eq(TbBasicDataConfig::getStatus, ShowStatusEnum.SHOW.getCode()).list();
         if (CollUtils.isEmpty(list)) {
             return CollUtils.emptyList();
         }
-        return list.stream().map(TbBasicDataConfig::getTypeName).collect(Collectors.toList());
-    }
-
-    public static void main(String[] args) {
-        String string = "蓝色_10,红色_20,绿色_30";
-        String[] split = string.split(",");
-        for (String s : split) {
-            String[] split1 = s.split("_");
-            System.out.println(split1[1]);
+        List<String> collect = list.stream().map(config -> {
+            String fieldIdStr = config.getFieldIdStr();
+            String[] split = fieldIdStr.split(",");
+            //字符串数组转为List
+            List<String> idList = new ArrayList<>(Arrays.asList(split));
+            if (idList.contains(id.toString())) {
+                return config.getTypeName();
+            }
+            return null;
+        }).collect(Collectors.toList());
+        if (CollUtils.isEmpty(collect)) {
+            return CollUtils.emptyList();
         }
-        //百分比1_百分比2:得分
-        String string1 = "10_20:50,20_30:50,30_40:60";
-        CalculateDTO calculateDTO = new CalculateDTO();
-        calculateDTO.setKey("10_20");
-        calculateDTO.setValue("20");
-        CalculateDTO calculateDTO1 = new CalculateDTO();
-        calculateDTO1.setKey("20_30");
-        calculateDTO1.setValue("30");
-        List<CalculateDTO> list = new ArrayList<>();
-        list.add(calculateDTO);
-        list.add(calculateDTO1);
-        JSONArray objects = new JSONArray(list);
-        String jsonString = objects.toJSONString(2);
-        System.err.println(jsonString);
+        return collect;
     }
-}
-@Data
-class CalculateDTO{
-    private String key;
-    private String value;
 }
\ No newline at end of file
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/BasicDataCategoryVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/BasicDataCategoryVO.java
new file mode 100644
index 0000000..eeb2db4
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/BasicDataCategoryVO.java
@@ -0,0 +1,24 @@
+package com.ruoyi.system.vo;
+
+import com.ruoyi.common.enums.ShowStatusEnum;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author mitao
+ * @date 2024/3/18
+ */
+@Data
+@ApiModel(value="基础数据分类视图对象")
+public class BasicDataCategoryVO {
+
+    @ApiModelProperty(value = "基础数据分类id")
+    private Integer id;
+
+    @ApiModelProperty(value = "基础数据分类名称")
+    private String basicDataCategoryName;
+
+    @ApiModelProperty(value = "隐藏状态")
+    private ShowStatusEnum status;
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/BasicDataConfigDetailVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/BasicDataConfigDetailVO.java
new file mode 100644
index 0000000..6b4f245
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/BasicDataConfigDetailVO.java
@@ -0,0 +1,54 @@
+package com.ruoyi.system.vo;
+
+import com.ruoyi.common.enums.CalculateTypeEnum;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @author mitao
+ * @date 2024/3/18
+ */
+@Data
+@ApiModel(value="基础数据配置详情视图对象")
+public class BasicDataConfigDetailVO implements Serializable {
+
+    private static final long serialVersionUID = 8789005070048058207L;
+
+    @ApiModelProperty(value = "id")
+    @NotNull(message = "id不能为空")
+    private Integer id;
+
+    @ApiModelProperty(value = "类型名称")
+    @NotBlank(message = "类型名称不能为空")
+    private String typeName;
+
+    @ApiModelProperty(value = "基础数据分类id")
+    @NotNull(message = "基础数据分类id不能为空")
+    private Integer basicDataCategoryId;
+
+    @ApiModelProperty(value = "字段说明")
+    @NotBlank(message = "字段说明不能为空")
+    private String fieldDescription;
+
+    @ApiModelProperty(value = "计算类型(数字计算 文本统计 百分比统计)")
+    @NotNull(message = "计算类型不能为空")
+    private CalculateTypeEnum calculateType;
+
+    @ApiModelProperty(value = "字段id (多个id使用 ',' 拼接)")
+    @NotBlank(message = "字段id不能为空")
+    private String fieldIdStr;
+
+    @ApiModelProperty(value = "计算公式",notes = "计算类型为数字计算,配置内容使用该字段接收;公式中字段的格式为:field_字段id,e.g:field_1,field_2等。")
+    private String numberCalculateFormula;
+
+    @ApiModelProperty(value = "文本和百分比配置信息", notes = "当计算方式为 文本统计/百分比统计 " +
+            "配置内容使用这个字段接收;key为键,value为得分;百分比统计 将百分比区间使用'_'拼接作为key,e.g: 10_20,20_30")
+    private List<CalculateVO> dtoList;
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/BasicDataConfigVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/BasicDataConfigVO.java
new file mode 100644
index 0000000..d2b32f4
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/BasicDataConfigVO.java
@@ -0,0 +1,31 @@
+package com.ruoyi.system.vo;
+
+import com.ruoyi.common.enums.CalculateTypeEnum;
+import com.ruoyi.common.enums.ShowStatusEnum;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author mitao
+ * @date 2024/3/18
+ */
+@Data
+@ApiModel(value="基础数据视图对象")
+public class BasicDataConfigVO {
+
+    @ApiModelProperty(value = "基础数据配置id")
+    private Integer id;
+
+    @ApiModelProperty(value = "类型名称")
+    private String typeName;
+
+    @ApiModelProperty(value = "基础数据所属分类")
+    private String basicDataCategory;
+
+    @ApiModelProperty(value = "计算类型(数字计算 文本统计 百分比统计)")
+    private CalculateTypeEnum calculateType;
+
+    @ApiModelProperty(value = "隐藏状态")
+    private ShowStatusEnum status;
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/CalculateVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/CalculateVO.java
new file mode 100644
index 0000000..ca2e23d
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/CalculateVO.java
@@ -0,0 +1,26 @@
+package com.ruoyi.system.vo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+@ApiModel(value = "基础数据配置配置视图对象")
+public class CalculateVO implements Serializable {
+
+    private static final long serialVersionUID = 4439552435460575151L;
+
+    @ApiModelProperty(value = "id")
+    @TableId(value = "id", type = IdType.AUTO)
+
+    private Integer id;
+    @ApiModelProperty(value = "键")
+    private String key;
+    
+    @ApiModelProperty(value = "值")
+    private String value;
+}
\ No newline at end of file
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/DeptVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/DeptVO.java
index 2ef006f..36ceee7 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/vo/DeptVO.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/DeptVO.java
@@ -1,5 +1,6 @@
 package com.ruoyi.system.vo;
 
+import com.ruoyi.common.enums.DisabledEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -29,7 +30,7 @@
     private String areaLevel;
 
     @ApiModelProperty(value = "县级标志(不包含直辖市的区 0:否 1:是)")
-    private Boolean countyFlag;
+    private DisabledEnum countyFlag;
 
     @ApiModelProperty(value = "负责人")
     private String personInCharge;
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/FieldCategoryVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/FieldCategoryVO.java
index de1b381..15a4abd 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/vo/FieldCategoryVO.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/FieldCategoryVO.java
@@ -1,5 +1,6 @@
 package com.ruoyi.system.vo;
 
+import com.ruoyi.common.enums.ShowStatusEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -15,7 +16,7 @@
     private Integer id;
 
     @ApiModelProperty(value = "状态(0=展示 1=隐藏)")
-    private Integer status;
+    private ShowStatusEnum status;
 
     @ApiModelProperty(value = "分类名称")
     private String fieldCategoryName;
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/FieldVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/FieldVO.java
index 3a59c0c..04a1247 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/vo/FieldVO.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/FieldVO.java
@@ -1,5 +1,6 @@
 package com.ruoyi.system.vo;
 
+import com.ruoyi.common.enums.ShowStatusEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -40,7 +41,7 @@
     private String levelThreeCategory;
 
     @ApiModelProperty(value = "隐藏状态(0=展示中 1=已隐藏)")
-    private Integer status;
+    private ShowStatusEnum status;
 
     @ApiModelProperty(value = "数字最小值")
     private Integer numMin;
diff --git a/ruoyi-system/src/main/resources/mapper/system/TbBasicDataCategoryMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TbBasicDataCategoryMapper.xml
index 7a69ac3..a09153c 100644
--- a/ruoyi-system/src/main/resources/mapper/system/TbBasicDataCategoryMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/TbBasicDataCategoryMapper.xml
@@ -6,7 +6,7 @@
     <resultMap id="BaseResultMap" type="com.ruoyi.system.domain.TbBasicDataCategory">
         <id column="id" property="id" />
         <result column="basic_data_category_name" property="basicDataCategoryName" />
-        <result column="hidden" property="hidden" />
+        <result column="status" property="status" />
         <result column="del_flag" property="delFlag" />
         <result column="create_by" property="createBy" />
         <result column="create_time" property="createTime" />
diff --git a/ruoyi-system/src/main/resources/mapper/system/TbBasicDataConfigDetailMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TbBasicDataConfigDetailMapper.xml
new file mode 100644
index 0000000..029a4ec
--- /dev/null
+++ b/ruoyi-system/src/main/resources/mapper/system/TbBasicDataConfigDetailMapper.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.system.mapper.TbBasicDataConfigDetailMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.ruoyi.system.domain.TbBasicDataConfigDetail">
+        <id column="id" property="id" />
+        <result column="basic_data_config_id" property="basicDataConfigId" />
+        <result column="key" property="key" />
+        <result column="value" property="value" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, basic_data_config_id, key, value
+    </sql>
+
+</mapper>
diff --git a/ruoyi-system/src/main/resources/mapper/system/TbBasicDataConfigMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TbBasicDataConfigMapper.xml
index d314d95..a18d386 100644
--- a/ruoyi-system/src/main/resources/mapper/system/TbBasicDataConfigMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/TbBasicDataConfigMapper.xml
@@ -9,9 +9,9 @@
         <result column="type_name" property="typeName" />
         <result column="field_description" property="fieldDescription" />
         <result column="calculate_type" property="calculateType" />
-        <result column="calculate_formula" property="calculateFormula" />
+        <result column="number_calculate_formula" property="numberCalculateFormula" />
+        <result column="field_id_str" property="fieldIdStr" />
         <result column="status" property="status" />
-        <result column="field_id" property="fieldId" />
         <result column="del_flag" property="delFlag" />
         <result column="create_by" property="createBy" />
         <result column="create_time" property="createTime" />
@@ -21,7 +21,7 @@
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        id, basic_data_category_id, type_name, field_description, caculate_type, caculate_formula, del_flag, create_by, create_time, update_by, update_time
+        id, basic_data_category_id, type_name, field_description, calculate_type, number_calculate_formula, field_id_str, status, del_flag, create_by, create_time, update_by, update_time
     </sql>
 
 </mapper>

--
Gitblit v1.7.1