From e69dec94fe9763d04425756370760698850f926f Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期五, 22 三月 2024 19:38:39 +0800 Subject: [PATCH] 部门端基础数据保存、基础数据导入模板下载、基础数据导入接口 --- ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbFieldServiceImpl.java | 89 ++++++++++++++++++++++++++------------------ 1 files changed, 53 insertions(+), 36 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..9c64edf 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,12 @@ 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.exception.ServiceException; import com.ruoyi.common.utils.BeanUtils; import com.ruoyi.common.utils.CollUtils; import com.ruoyi.common.utils.StringUtils; @@ -14,19 +15,22 @@ import com.ruoyi.system.domain.TbFieldCategory; import com.ruoyi.system.dto.FieldDTO; import com.ruoyi.system.dto.ShowHideDTO; +import com.ruoyi.system.dto.update.FieldUpdateDTO; import com.ruoyi.system.mapper.TbFieldMapper; import com.ruoyi.system.query.FieldQuery; import com.ruoyi.system.service.TbBasicDataConfigService; 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.Objects; +import java.util.concurrent.CompletableFuture; import java.util.stream.Collectors; /** @@ -51,9 +55,9 @@ //1:数字 2:文本 3:百分比 if (FieldTypeEnum.TEXT.getCode().equals(fieldType)) { if (StringUtils.isNull(dto.getTextInputType())) { - throw new RuntimeException("输入类型不能为空"); + throw new ServiceException("输入类型不能为空"); } else if (FieldInputTypeEnum.FIXED_CONTENT.getCode().equals(dto.getTextInputType()) && StringUtils.isBlank(dto.getTextContent())) { - throw new RuntimeException("内容设置不能为空"); + throw new ServiceException("内容设置不能为空"); } } TbField tbField = BeanUtils.copyBean(dto, TbField.class); @@ -72,14 +76,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("非法参数"); + throw new ServiceException("非法参数"); } //隐藏字段 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 @@ -100,39 +122,34 @@ } @Override - public List<String> influencedData(Integer id) { - List<TbBasicDataConfig> list = tbBasicDataConfigService.lambdaQuery().eq(TbBasicDataConfig::getFieldId, id).list(); + public String influencedData(Integer id) { + List<TbBasicDataConfig> list = tbBasicDataConfigService.lambdaQuery().eq(TbBasicDataConfig::getStatus, ShowStatusEnum.SHOW).list(); if (CollUtils.isEmpty(list)) { - return CollUtils.emptyList(); + return ""; } - return list.stream().map(TbBasicDataConfig::getTypeName).collect(Collectors.toList()); + String collect = list.stream().map(config -> { + String fieldIdStr = config.getFieldIdStr(); + String[] split = fieldIdStr.split(","); + //字符串数组转为List + List<String> idList = Arrays.asList(split); + if (idList.contains(id.toString())) { + return config.getTypeName(); + } + return null; + }).filter(Objects::nonNull).collect(Collectors.joining(",")); + if (StringUtils.isBlank(collect)) { + return ""; + } + return collect; } - 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]); + @Override + public void update(FieldUpdateDTO dto) { + TbField field = this.getById(dto.getId()); + if (Objects.isNull(field)) { + throw new ServiceException("参数异常"); } - //百分比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); + TbField tbField = BeanUtils.copyBean(dto, TbField.class); + this.updateById(tbField); } -} -@Data -class CalculateDTO{ - private String key; - private String value; } \ No newline at end of file -- Gitblit v1.7.1