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/service/impl/TbFieldServiceImpl.java |   71 +++++++++++++++++++----------------
 1 files changed, 38 insertions(+), 33 deletions(-)

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

--
Gitblit v1.7.1