瀏覽代碼

故障列表结束开关回显增加多个开关

liuaini 4 周之前
父節點
當前提交
a49835ba7f

+ 17 - 2
services/load-transfer-bf/src/main/java/com/hdkj/lt/bf/service/impl/FaultPowerCutServiceImpl.java

@@ -3,6 +3,7 @@ package com.hdkj.lt.bf.service.impl;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson.JSON;
+import com.aliyun.openservices.shade.com.alibaba.rocketmq.common.filter.impl.Op;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -22,6 +23,7 @@ import com.hdkj.lt.core.bizms.modle.po.fault.*;
 import com.hdkj.lt.feign.IFaultCreateClient;
 import com.hdkj.lt.modle.dto.fault.RegenerateFaultRequest;
 import com.hdkj.lt.modle.dto.jsty.AllSwitchInfoListDTO;
+import com.ruoyi.common.core.utils.StringUtils;
 import io.jsonwebtoken.lang.Assert;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.compress.utils.Lists;
@@ -101,12 +103,16 @@ public class FaultPowerCutServiceImpl extends ServiceImpl<FaultPowerCutMapper, F
             Map<Long, List<FhzgFaultDistMappingFileDTO>> fileListMap = fileList.stream().collect(Collectors.groupingBy(FhzgFaultDistMappingFileDTO::getFaultId));
             Map<String, List<FhzgFaultPowerCutSectionVO>> sectionMap = Maps.newHashMap();
             if (CollUtil.isNotEmpty(faultPowerCutSectionList)) {
-                List<String> allSwitchIdList = faultPowerCutSectionList.stream().flatMap(i -> Stream.of(i.getStartSwitch(), i.getEndSwitch())).filter(f -> f != null && !f.isEmpty()).collect(Collectors.toList());
+                List<String> allSwitchIdList = faultPowerCutSectionList.stream().flatMap(i -> {
+                    Stream<String> start = Optional.ofNullable(i.getStartSwitch()).filter(s->!s.isEmpty()).map(String::trim).map(Stream::of).orElse(Stream.empty());
+                    Stream<String> end = Optional.ofNullable(i.getEndSwitch()).filter(s->!s.isEmpty()).map(s->Arrays.stream(s.split(",")).map(String::trim).filter(f->!f.isEmpty())).orElse(Stream.empty());
+                    return Stream.concat(start, end);
+                }).distinct().collect(Collectors.toList());
                 //根据开关id获取名称
                 Map<String, String> switchNameMap = feederTopoMapper.selectList(new LambdaQueryWrapper<FeederTopo>().in(FeederTopo::getPsrId, allSwitchIdList)).stream().collect(Collectors.toMap(FeederTopo::getPsrId, FeederTopo::getName));
                 //根据FaultNo,并按SectionStatus,CreateTime倒序排序
                 sectionMap = faultPowerCutSectionList.stream()
-                        .peek(p->p.setStartSwitchName(switchNameMap.get(p.getStartSwitch())).setEndSwitchName(switchNameMap.get(p.getEndSwitch()))
+                        .peek(p->p.setStartSwitchName(switchNameMap.get(p.getStartSwitch())).setEndSwitchName(joinEndStartSwitch(switchNameMap,p.getEndSwitch()))
                         ).collect(Collectors.groupingBy(
                                 FhzgFaultPowerCutSectionVO::getFaultNo,
                                 Collectors.collectingAndThen(
@@ -148,6 +154,15 @@ public class FaultPowerCutServiceImpl extends ServiceImpl<FaultPowerCutMapper, F
         return page.setRecords(list);
     }
 
+    private String joinEndStartSwitch(Map<String, String> switchNameMap, String endSwitch){
+        if(StringUtils.isEmpty(endSwitch)){
+            return endSwitch;
+        }
+        return Arrays.stream(endSwitch.split(",")).map(String::trim).filter(s -> !s.isEmpty())
+                .map(id->switchNameMap.getOrDefault(id,""))
+                .filter(name->!name.isEmpty())
+                .collect(Collectors.joining(","));
+    }
     /**
      * 填充用户数量信息
      */