| | |
| | | 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; |
| | |
| | | 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; |
| | | |
| | | /** |
| | |
| | | |
| | | @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 |
| | |
| | | |
| | | @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; |
| | | } |