曲靖3层树特殊处理

This commit is contained in:
2026-01-07 08:50:51 +08:00
parent be8c14625f
commit 82efce189a
2 changed files with 198 additions and 147 deletions

View File

@@ -25,6 +25,12 @@ public class SimpleDTO implements Serializable {
@ApiModelProperty(name = "value", value = "数值")
private String value;
/**
* 针对云南曲靖特殊处理的五层树标识符
* 特殊在不显示供电公司,显示(变电站、线路)这两个是部门的名称+母线_监测点的名称
*/
private String deptName;
private Integer sort;
private Integer algoDescribe;

View File

@@ -29,6 +29,8 @@ import com.njcn.supervision.pojo.vo.user.UserLedgerVO;
import com.njcn.system.api.AreaFeignClient;
import com.njcn.system.pojo.enums.StatisticsEnum;
import com.njcn.system.pojo.po.Area;
import com.njcn.user.api.DeptFeignClient;
import com.njcn.user.pojo.po.Dept;
import com.njcn.web.utils.RequestUtil;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
@@ -52,6 +54,8 @@ public class TerminalTreeServiceImpl implements TerminalTreeService {
private final LineMapper lineMapper;
private final DeptFeignClient deptFeignClient;
private final LineDetailMapper lineDetailMapper;
private final AreaFeignClient areaFeignClient;
@@ -209,8 +213,6 @@ public class TerminalTreeServiceImpl implements TerminalTreeService {
}
/**
* 5层树排除设备 母线监测点合并
*
@@ -226,6 +228,48 @@ public class TerminalTreeServiceImpl implements TerminalTreeService {
if (CollectionUtil.isNotEmpty(generalDeviceDTOList)) {
// 创建集合
List<TerminalTree> taiZhang = new ArrayList<>();
if (StrUtil.isNotBlank(deviceInfoParam.getStatisticalType().getDeptName())) {
// 遍历集合
for (GeneralDeviceDTO generalDeviceDTO : generalDeviceDTOList) {
// 创建实体类
TerminalTree terminalTree = new TerminalTree();
terminalTree.setName(generalDeviceDTO.getName());
terminalTree.setId(generalDeviceDTO.getIndex());
terminalTree.setLevel(0);
// 处理子部门
deviceInfoParam.setDeptIndex(generalDeviceDTO.getIndex());
List<GeneralDeviceDTO> generalDeviceDTOsubList = generalDeviceService.getDeviceInfo(deviceInfoParam, Stream.of(0).collect(Collectors.toList()), Stream.of(1).collect(Collectors.toList()));
if (CollectionUtil.isNotEmpty(generalDeviceDTOsubList)) {
List<TerminalTree> terminalTreeList = new ArrayList<>();
for (int i = 0; i < generalDeviceDTOsubList.size(); i++) {
GeneralDeviceDTO deviceDTO = generalDeviceDTOsubList.get(i);
TerminalTree terminalSubTree = new TerminalTree();
terminalSubTree.setName(deviceDTO.getName());
terminalSubTree.setId(deviceDTO.getIndex());
terminalSubTree.setPid(generalDeviceDTO.getIndex());
terminalSubTree.setLevel(2);
terminalSubTree.setSort(i);
if(CollectionUtil.isNotEmpty(deviceDTO.getLineIndexes())){
// 处理该部门下的检测点显示
// 通过监测点索引查询监测点信息
List<TerminalTree> lineList = treeMapper.getLineList(deviceDTO.getLineIndexes());
terminalSubTree.setChildren(lineList);
terminalTreeList.add(terminalSubTree);
}
}
terminalTree.setChildren(terminalTreeList);
} else {
if(CollectionUtil.isNotEmpty(generalDeviceDTO.getLineIndexes())){
// 处理该部门下的检测点显示
// 通过监测点索引查询监测点信息
List<TerminalTree> lineList = treeMapper.getLineList(generalDeviceDTO.getLineIndexes());
terminalTree.setChildren(lineList);
}
}
taiZhang.add(terminalTree);
}
} else {
// 获取用户
UserReportParam userReportParam = new UserReportParam();
List<UserLedgerVO> userReportPOList = userLedgerFeignClient.selectUserList(userReportParam).getData();
@@ -236,10 +280,12 @@ public class TerminalTreeServiceImpl implements TerminalTreeService {
for (GeneralDeviceDTO generalDeviceDTO : generalDeviceDTOList) {
// 创建实体类
TerminalTree terminalTree = new TerminalTree();
// 判断监测点索引集合状态
if (CollectionUtils.isEmpty(generalDeviceDTO.getLineIndexes())) {
continue;
}
// 通过供电公司索引查询省会
List<TerminalTree> proList = treeMapper.getProvinceList(generalDeviceDTO.getGdIndexes());
// 通过供电公司索引查询供电公司信息
@@ -277,7 +323,6 @@ public class TerminalTreeServiceImpl implements TerminalTreeService {
}
//处理变电站
dealChildrenData(subList, otherLineList, temMap, true);
@@ -299,6 +344,7 @@ public class TerminalTreeServiceImpl implements TerminalTreeService {
terminalTree.setLevel(0);
taiZhang.add(terminalTree);
}
}
return taiZhang;
} else {
return new ArrayList<>();
@@ -672,7 +718,6 @@ public class TerminalTreeServiceImpl implements TerminalTreeService {
List<TerminalTree> lineNotPowerList = allList.stream().filter(item -> item.getLevel().equals(LineBaseEnum.LINE_LEVEL.getCode()) && item.getPowerFlag() == 1).sorted(Comparator.comparing(TerminalTree::getSort)).collect(Collectors.toList());
subvList.forEach(subv -> {
if (CollUtil.isEmpty(subv.getChildren())) {
subv.setChildren(getRecursionChildren(subv, linepowerList));
@@ -691,7 +736,6 @@ public class TerminalTreeServiceImpl implements TerminalTreeService {
devList.stream().filter(x -> ObjUtil.isNull(x.getPowerFlag())).forEach(x -> x.setPowerFlag(0));
subList.forEach(sub -> sub.setChildren(getRecursionChildrenCs(sub, devList)));
gdList.forEach(gd -> gd.setChildren(getChildren(gd, subList)));
provinceList.forEach(province -> province.setChildren(getChildren(province, gdList)));
@@ -728,7 +772,6 @@ public class TerminalTreeServiceImpl implements TerminalTreeService {
list.add(power);
TerminalTree notPower = new TerminalTree();
notPower.setName("非电网侧");
notPower.setSort(1);
@@ -736,6 +779,7 @@ public class TerminalTreeServiceImpl implements TerminalTreeService {
list.add(notPower);
return list;
}
public List<TerminalTree> getRecursionChildren(TerminalTree item, List<TerminalTree> all) {
List<TerminalTree> list = all.stream().filter(allItem -> allItem.getPid().equals(item.getId())).sorted(Comparator.comparing(TerminalTree::getSort)).collect(Collectors.toList());
if (CollUtil.isNotEmpty(list)) {
@@ -746,6 +790,7 @@ public class TerminalTreeServiceImpl implements TerminalTreeService {
/**
* 变电站层级增加电网侧和非电网侧电站
*
* @param line 变电站对象
* @param all 检测对象
* @return