辽宁功能提交

This commit is contained in:
2025-03-25 14:08:29 +08:00
parent 72b2283165
commit de2a2e2fea
27 changed files with 598 additions and 120 deletions

View File

@@ -23,6 +23,7 @@ public enum LineBaseEnum {
DEVICE_LEVEL(4, "设备"),
SUB_V_LEVEL(5, "母线"),
LINE_LEVEL(6, "监测点"),
USER_LEVEL(7,"用户"),
INVALID_LEVEL(-1, "非法拓扑等级"),

View File

@@ -120,6 +120,15 @@ public class LineParam {
@ApiModelProperty(name = "objName",value = "监测点对象名称")
private String objName;
@ApiModelProperty(name = "objId",value = "对象id")
private String objId;
@ApiModelProperty(name = "bigObjType",value = "对象大类")
private String bigObjType;
@ApiModelProperty(name = "smallObjType",value = "对象小类")
private String smallObjType;
/**
* 接线类型(0:星型接法;1:三角型接法;2:开口三角型接法)
*/

View File

@@ -107,8 +107,24 @@ public class LineDetail{
/**
* 监测点对象名称
*/
@Deprecated
private String objName;
/**
* 监测点对象id
*/
private String objId;
/**
* 监测对象大类
*/
private String bigObjType;
/**
* 监测对象小类
*/
private String smallObjType;
/**
* 人为干预 0 不参与统计 1 参与统计
*/
@@ -139,26 +155,31 @@ public class LineDetail{
/**
* 上级电站
*/
@Deprecated
private String superiorsSubstation;
/**
* 挂接线路
*/
@Deprecated
private String hangLine;
/**
* 监测点拥有者
*/
@Deprecated
private String owner;
/**
* 拥有者职务
*/
@Deprecated
private String ownerDuty;
/**
* 拥有者联系方式
*/
@Deprecated
private String ownerTel;
/**
@@ -183,6 +204,7 @@ public class LineDetail{
/**
* 新能源场站信息ID
*/
@Deprecated
private String newStationId;
/**

View File

@@ -100,6 +100,21 @@ public class LineVO implements Serializable {
@ApiModelProperty(name = "objName",value = "监测点对象名称")
private String objName;
/**
* 监测点对象id
*/
private String objId;
/**
* 监测对象大类
*/
private String bigObjType;
/**
* 监测对象小类
*/
private String smallObjType;
/**
* 接线类型(0:星型接法;1:三角型接法;2:开口三角型接法)
*/

View File

@@ -75,4 +75,6 @@ public class TerminalTree implements Serializable {
* 电网侧变电站
*/
private String objName;
private String objId;
}

View File

@@ -45,6 +45,7 @@
<version>1.0.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.njcn.platform</groupId>
<artifactId>message-api</artifactId>
@@ -52,7 +53,12 @@
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.njcn</groupId>
<artifactId>supervision-api</artifactId>
<version>1.0.0</version>
<scope>compile</scope>
</dependency>
</dependencies>

View File

@@ -121,13 +121,13 @@ public class TerminalBaseController extends BaseController {
}
terminalBaseService.addTerminal(addTerminalParam);
//新增终端后发送消息给前置重启设备
if (Objects.nonNull(addTerminalParam.getDeviceParam())) {
/* if (Objects.nonNull(addTerminalParam.getDeviceParam())) {
addTerminalParam.getDeviceParam().forEach(temp->{
Line line = terminalBaseService.queryTerminalByName(temp.getName());
terminalBaseService.askRestartDevice(line.getId(), DeviceRebootType.ADD_TERMINAL);
});
}
}*/
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
@@ -192,9 +192,9 @@ public class TerminalBaseController extends BaseController {
@ApiOperation("查询终端详情")
@OperateInfo(info = LogEnum.BUSINESS_MEDIUM)
@GetMapping("queryTerminal")
public HttpResult<TerminalVO> queryTerminal(@RequestParam("id") String id) {
public HttpResult<TerminalVO> queryTerminal(@RequestParam("id") String id,@RequestParam(required = false)Integer level) {
String methodDescribe = getMethodDescribe("queryTerminal");
TerminalVO t = terminalBaseService.queryTerminal(id);
TerminalVO t = terminalBaseService.queryTerminal(id,level);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, t, methodDescribe);
}

View File

@@ -569,4 +569,6 @@ public interface LineMapper extends BaseMapper<Line> {
List<LineDetail> selectByName(@Param("param") LineBaseQueryParam param);
List<MonitorInfo> getLineByDeviceId(@Param("id") String id);
List<TerminalTree> getLineAndLineDetail();
}

View File

@@ -1812,4 +1812,12 @@
LEFT JOIN sys_dict_data s1 ON pq_voltage.Scale = s1.id
WHERE voltage.Pid = #{id}
</select>
<select id="getLineAndLineDetail" resultType="TerminalTree">
select
t1.id,t1.name,t1.pid,t2.obj_id,t1.sort,t1.pids,t1.level
from
pq_line t1 inner join pq_line_detail t2 on t1.id = t2.id
where t1.state = 1
</select>
</mapper>

View File

@@ -383,7 +383,8 @@
line.pids,
CONCAT(voltage.name, '_', line.name) name,
comFlag.Com_Flag,
detail.pt_type
detail.pt_type,
detail.obj_id
FROM
pq_line line,
pq_line_detail detail,

View File

@@ -47,7 +47,7 @@ public interface TerminalBaseService {
* @author cdf
* @date 2021/7/19
*/
TerminalVO queryTerminal(String id);
TerminalVO queryTerminal(String id,Integer level);
/**
* 终端查询操作

View File

@@ -55,6 +55,9 @@ import com.njcn.oss.utils.FileStorageUtil;
import com.njcn.poi.excel.ExcelUtil;
import com.njcn.poi.util.PoiUtil;
import com.njcn.redis.utils.RedisUtil;
import com.njcn.supervision.api.UserLedgerFeignClient;
import com.njcn.supervision.pojo.vo.user.UserLedgerVO;
import com.njcn.supervision.pojo.vo.user.UserReportVO;
import com.njcn.system.api.AreaFeignClient;
import com.njcn.system.api.DicDataFeignClient;
import com.njcn.system.enums.DicDataEnum;
@@ -114,6 +117,8 @@ public class TerminalBaseServiceImpl extends ServiceImpl<LineMapper, Line> imple
private final NodeDeviceService nodeDeviceService;
private final DeviceProcessService deviceProcessService;
private final ProduceFeignClient produceFeignClient;
private final UserLedgerFeignClient userLedgerFeignClient;
@Value("${oracle.isSync}")
private Boolean isSync;
@@ -475,7 +480,9 @@ public class TerminalBaseServiceImpl extends ServiceImpl<LineMapper, Line> imple
}
lineDetailMapper.insert(lineDetail);
if(StrUtil.isNotBlank(lineDetail.getObjId())){
userLedgerFeignClient.bindUserStation(lineDetail.getObjId(),subIndex);
}
//通过监测点id获取母线电压等级
Voltage voltage = lineMapper.getVoltageByLineId(line.getId());
//监测点限值
@@ -797,6 +804,11 @@ public class TerminalBaseServiceImpl extends ServiceImpl<LineMapper, Line> imple
}
lineDetailMapper.updateById(lineDetail);
if(StrUtil.isNotBlank(lineDetail.getObjId())){
Line tem = this.getById(lineDetail.getId());
userLedgerFeignClient.bindUserStation(lineDetail.getObjId(),tem.getPids().split(StrUtil.COMMA)[LineBaseEnum.SUB_LEVEL.getCode()]);
}
Overlimit overlimitTem = overlimitMapper.selectById(lineId);
if ((!lineDetailRes.getDevCapacity().equals(lineDetail.getDevCapacity()))
|| ((!lineDetailRes.getShortCapacity().equals(lineDetail.getShortCapacity())))
@@ -952,8 +964,20 @@ public class TerminalBaseServiceImpl extends ServiceImpl<LineMapper, Line> imple
* @date 2021/7/19
*/
@Override
public TerminalVO queryTerminal(String id) {
Line obj = this.getById(id);
public TerminalVO queryTerminal(String id,Integer level) {
Line obj;
if(level == 700){
obj = new Line();
UserLedgerVO userLedgerVO = userLedgerFeignClient.selectUserInfo(id).getData();
if(Objects.nonNull(userLedgerVO)){
obj.setId(userLedgerVO.getId());
obj.setLevel(LineBaseEnum.USER_LEVEL.getCode());
obj.setPid(userLedgerVO.getStationId());
}
}else {
obj = this.getById(id);
}
if (Objects.isNull(obj)) {
throw new BusinessException(CommonResponseEnum.FAIL);
}
@@ -1052,6 +1076,89 @@ public class TerminalBaseServiceImpl extends ServiceImpl<LineMapper, Line> imple
}
terminalVO.setDeviceVO(deviceDTOList);
} else if(obj.getLevel().equals(LineBaseEnum.USER_LEVEL.getCode())){
//点击用户节点
//查询所有子级装置
LambdaQueryWrapper<LineDetail> detailLambdaQueryWrapper = new LambdaQueryWrapper<>();
detailLambdaQueryWrapper.eq(LineDetail::getObjId,id);
List<LineDetail> lineDetailList = lineDetailMapper.selectList(detailLambdaQueryWrapper);
List<String> ids = lineDetailList.stream().map(LineDetail::getId).distinct().collect(Collectors.toList());
lineLambdaQueryWrapper.clear();
lineLambdaQueryWrapper.in(Line::getId, ids)
.eq(Line::getState, DataStateEnum.ENABLE.getCode())
.orderByAsc(Line::getSort);
List<Line> temLineList = this.list(lineLambdaQueryWrapper);
List<String> devIds = temLineList.stream().map(it->it.getPids().split(StrUtil.COMMA)[4]).collect(Collectors.toList());
lineLambdaQueryWrapper.clear();
lineLambdaQueryWrapper.in(Line::getId, devIds)
.eq(Line::getState, DataStateEnum.ENABLE.getCode())
.orderByAsc(Line::getSort);
List<Line> devList = this.list(lineLambdaQueryWrapper);
List<DeviceVO> deviceDTOList = new ArrayList<>();
if (CollectionUtil.isNotEmpty(devList)) {
for (Line device : devList) {
DeviceVO deviceVO = new DeviceVO();
BeanUtils.copyProperties(device, deviceVO);
Device deviceDetail = deviceMapper.selectById(device.getId());
//解密
//decoderM3d(deviceDetail);
BeanUtils.copyProperties(deviceDetail, deviceVO);
deviceVO.setDevIndex(device.getId());
//母线
lineLambdaQueryWrapper.clear();
lineLambdaQueryWrapper.eq(Line::getPid, device.getId())
.orderByAsc(Line::getSort)
.eq(Line::getState, DataStateEnum.ENABLE.getCode());
List<Line> subVoltageList = this.list(lineLambdaQueryWrapper);
if (CollectionUtil.isNotEmpty(subVoltageList)) {
List<SubVoltageVO> subVoltageVOS = new ArrayList<>();
for (Line subVoltage : subVoltageList) {
SubVoltageVO subVoltageVO = new SubVoltageVO();
BeanUtils.copyProperties(subVoltage, subVoltageVO);
Voltage voltage = voltageMapper.selectById(subVoltage.getId());
BeanUtils.copyProperties(voltage, subVoltageVO);
subVoltageVO.setSubvIndex(subVoltage.getId());
//监测点
lineLambdaQueryWrapper.clear();
lineLambdaQueryWrapper.eq(Line::getPid, subVoltage.getId())
.eq(Line::getState, DataStateEnum.ENABLE.getCode());
List<Line> lineList = this.list(lineLambdaQueryWrapper);
if (CollectionUtil.isNotEmpty(lineList)) {
List<LineVO> lineVOS = new ArrayList<>();
for (Line line : lineList) {
LineVO lineVO = new LineVO();
BeanUtils.copyProperties(line, lineVO);
LineDetail lineDetail = lineDetailMapper.selectById(line.getId());
BeanUtils.copyProperties(lineDetail, lineVO);
Overlimit overLimit = overlimitMapper.selectById(line.getId());
lineVO.setVoltageDev(overLimit.getVoltageDev());
lineVO.setUvoltageDev(overLimit.getUvoltageDev());
lineVO.setLineIndex(line.getId());
lineVOS.add(lineVO);
}
subVoltageVO.setLineVO(lineVOS);
}
subVoltageVOS.add(subVoltageVO);
}
deviceVO.setSubVoltageVOList(subVoltageVOS);
}
deviceDTOList.add(deviceVO);
}
}
terminalVO.setDeviceVO(deviceDTOList);
commTerminalValue(terminalVO, obj.getPid());
} else if (obj.getLevel().equals(LineBaseEnum.DEVICE_LEVEL.getCode())) {
//点击装置节点

View File

@@ -19,11 +19,14 @@ import com.njcn.device.pq.pojo.param.DeviceInfoParam;
import com.njcn.device.pq.pojo.po.Line;
import com.njcn.device.pq.pojo.po.LineDetail;
import com.njcn.device.pq.pojo.vo.DeptLineTreeVO;
import com.njcn.device.pq.pojo.vo.DevAndLine;
import com.njcn.device.pq.pojo.vo.TerminalTree;
import com.njcn.device.pq.service.TerminalTreeService;
import com.njcn.supervision.api.UserLedgerFeignClient;
import com.njcn.supervision.pojo.param.user.UserReportParam;
import com.njcn.supervision.pojo.po.user.UserReportPO;
import com.njcn.supervision.pojo.vo.user.UserLedgerVO;
import com.njcn.supervision.pojo.vo.user.UserReportVO;
import com.njcn.system.api.AreaFeignClient;
import com.njcn.system.api.DicDataFeignClient;
import com.njcn.system.pojo.enums.StatisticsEnum;
@@ -81,27 +84,42 @@ public class TerminalTreeServiceImpl implements TerminalTreeService {
List<TerminalTree> subList = allList.stream().filter(item -> item.getLevel().equals(LineBaseEnum.SUB_LEVEL.getCode())).sorted(Comparator.comparing(TerminalTree::getSort)).collect(Collectors.toList());
List<TerminalTree> devList = allList.stream().filter(item -> item.getLevel().equals(LineBaseEnum.DEVICE_LEVEL.getCode())).sorted(Comparator.comparing(TerminalTree::getSort)).collect(Collectors.toList());
List<TerminalTree> subvList = allList.stream().filter(item -> item.getLevel().equals(LineBaseEnum.SUB_V_LEVEL.getCode())).sorted(Comparator.comparing(TerminalTree::getSort)).collect(Collectors.toList());
List<TerminalTree> lineList = allList.stream().filter(item -> item.getLevel().equals(LineBaseEnum.LINE_LEVEL.getCode())).sorted(Comparator.comparing(TerminalTree::getSort)).collect(Collectors.toList());
//处理存在用户的台账
List<TerminalTree> newLineList = lineMapper.getLineAndLineDetail();
List<TerminalTree> userLineList = newLineList.stream().filter(it->StrUtil.isNotBlank(it.getObjId())).collect(Collectors.toList());
List<TerminalTree> otherLineList = newLineList.stream().filter(it->StrUtil.isBlank(it.getObjId())).collect(Collectors.toList());
List<String> devIds = userLineList.stream().map(it->it.getPids().split(StrUtil.COMMA)[LineBaseEnum.DEVICE_LEVEL.getCode()]).distinct().collect(Collectors.toList());
List<TerminalTree> subvUserList = subvList.stream().filter(it->devIds.contains(it.getPid())).collect(Collectors.toList());
List<String> busBarIds = subvUserList.stream().map(TerminalTree::getId).distinct().collect(Collectors.toList());
List<TerminalTree> devUserList = devList.stream().filter(it->devIds.contains(it.getId())).collect(Collectors.toList());
//其他的台账默认时电网侧台账
List<TerminalTree> subvOtherList = subvList.stream().filter(it->!busBarIds.contains(it.getId())).collect(Collectors.toList());
List<TerminalTree> devOtherList = devList.stream().filter(it->!devIds.contains(it.getId())).collect(Collectors.toList());
UserReportParam userReportParam = new UserReportParam();
List<UserReportPO> userReportPOList = userLedgerFeignClient.selectUserList(userReportParam);
List<UserLedgerVO> userReportPOList = userLedgerFeignClient.selectUserList(userReportParam).getData();
userReportPOList = userReportPOList.stream().filter(it->StrUtil.isNotBlank(it.getStationId())).collect(Collectors.toList());
Map<String,List<UserReportPO>> userMap = userReportPOList.stream().collect(Collectors.groupingBy(UserReportPO::getStationId));
Map<String,List<UserLedgerVO>> userMap = userReportPOList.stream().collect(Collectors.groupingBy(UserLedgerVO::getStationId));
subvOtherList.forEach(subv -> subv.setChildren(getChildren(subv, otherLineList)));
devOtherList.forEach(dev -> dev.setChildren(getChildren(dev, subvOtherList)));
subvList.forEach(subv -> subv.setChildren(getChildren(subv, lineList)));
devList.forEach(dev -> dev.setChildren(getChildren(dev, subvList)));
subList.forEach(sub -> sub.setChildren(specialDealSubChildren(sub, devList,userMap.get(sub.getId()))));
subList.forEach(sub -> sub.setChildren(specialDealSubChildren(sub, userLineList,devOtherList,subvUserList,devUserList,userMap.get(sub.getId()))));
//subList.forEach(sub -> sub.setChildren(getChildren(sub, devList)));
gdList.forEach(gd -> gd.setChildren(getChildren(gd, subList)));
provinceList.forEach(province -> province.setChildren(getChildren(province, gdList)));
projectList.forEach(project -> project.setChildren(getChildren(project, provinceList)));
if (CollectionUtil.isNotEmpty(allList)) {
/* if (CollectionUtil.isNotEmpty(allList)) {
TerminalTree terminalTree = new TerminalTree();
terminalTree.setId("9999999");
terminalTree.setLevel(0);
@@ -110,27 +128,76 @@ public class TerminalTreeServiceImpl implements TerminalTreeService {
terminalTree.setChildren(projectList);
}
taiZhang.add(terminalTree);
}
return taiZhang;
}*/
return projectList;
}
private List<TerminalTree> specialDealSubChildren(TerminalTree sub,List<TerminalTree> devList,List<UserReportPO> userReportPOList){
private List<TerminalTree> specialDealSubChildren(TerminalTree sub,List<TerminalTree> lineUserList,List<TerminalTree> devOtherList,List<TerminalTree> busBarList,List<TerminalTree> devAllList,List<UserLedgerVO> userReportPOList){
List<TerminalTree> list = new ArrayList<>();
List<TerminalTree> devTree = devList.stream().filter(it->it.getPid().equals(sub.getId())).collect(Collectors.toList());
if(CollUtil.isNotEmpty(userReportPOList)) {
Map<String, UserLedgerVO> userLedgerVOMap = userReportPOList.stream().collect(Collectors.toMap(UserLedgerVO::getId, Function.identity()));
List<TerminalTree> userLineList = lineUserList.stream().filter(it -> it.getPids().split(StrUtil.COMMA)[LineBaseEnum.SUB_LEVEL.getCode()].equals(sub.getId())).collect(Collectors.toList());
Map<String, List<TerminalTree>> map = userLineList.stream().collect(Collectors.groupingBy(TerminalTree::getObjId));
map.forEach((objId, lineList) -> {
List<String> devIds = lineList.stream()
.map(it -> it.getPids().split(StrUtil.COMMA)[LineBaseEnum.DEVICE_LEVEL.getCode()])
.distinct()
.collect(Collectors.toList());
List<TerminalTree> busList = busBarList.stream()
.filter(it -> devIds.contains(it.getPid()))
.collect(Collectors.toList());
List<TerminalTree> temBus = new ArrayList<>();
busList.forEach(it -> {
TerminalTree busCopy = new TerminalTree();
busCopy.setName(it.getName());
busCopy.setId(it.getId());
busCopy.setPid(it.getPid());
busCopy.setChildren(getChildren(it, lineList));
busCopy.setPowerFlag(1);
busCopy.setLevel(LineBaseEnum.SUB_V_LEVEL.getCode());
temBus.add(busCopy);
});
List<TerminalTree> devUsrList = devAllList.stream()
.filter(it -> devIds.contains(it.getId()))
.collect(Collectors.toList());
List<TerminalTree> temDevList = new ArrayList<>();
devUsrList.forEach(it -> {
TerminalTree devCopy = new TerminalTree();
devCopy.setName(it.getName());
devCopy.setId(it.getId());
devCopy.setPid(it.getPid());
devCopy.setChildren(getChildren(it, temBus));
devCopy.setPowerFlag(1);
devCopy.setLevel(LineBaseEnum.DEVICE_LEVEL.getCode());
temDevList.add(devCopy);
});
UserLedgerVO userReportPO = userLedgerVOMap.get(objId);
TerminalTree terminalTree = new TerminalTree();
terminalTree.setName(userReportPO.getProjectName());
terminalTree.setId(userReportPO.getId());
terminalTree.setPid(userReportPO.getStationId());
terminalTree.setPowerFlag(1);
terminalTree.setLevel(LineBaseEnum.USER_LEVEL.getCode());
terminalTree.setChildren(temDevList);
list.add(terminalTree);
});
}
List<TerminalTree> devTree = devOtherList.stream().filter(it->it.getPid().equals(sub.getId())).collect(Collectors.toList());
if(CollectionUtil.isNotEmpty(devTree)){
list.addAll(devTree);
}
for(UserReportPO userReportPO:userReportPOList){
List<TerminalTree> dev = devList.stream().filter(it->it.getPid().equals(userReportPO.getId())).collect(Collectors.toList());
TerminalTree terminalTree = new TerminalTree();
terminalTree.setId(userReportPO.getId());
terminalTree.setPid(userReportPO.getStationId());
terminalTree.setPowerFlag(1);
terminalTree.setLevel(7);
terminalTree.setChildren(dev);
list.add(terminalTree);
}
return list;
}
@@ -169,20 +236,52 @@ public class TerminalTreeServiceImpl implements TerminalTreeService {
// 通过监测点索引查询监测点信息
List<TerminalTree> lineList = treeMapper.getLineList(generalDeviceDTO.getLineIndexes());
List<TerminalTree> userLineList = lineList.stream().filter(it->StrUtil.isNotBlank(it.getObjId())).collect(Collectors.toList());
List<TerminalTree> otherLineList = lineList.stream().filter(it->StrUtil.isBlank(it.getObjId())).collect(Collectors.toList());
Map<String,List<TerminalTree>> temMap = new HashMap<>();
if(CollUtil.isNotEmpty(userLineList)) {
Map<String, List<TerminalTree>> objMap = userLineList.stream().collect(Collectors.groupingBy(TerminalTree::getObjId));
UserReportParam userReportParam = new UserReportParam();
List<UserLedgerVO> userReportPOList = userLedgerFeignClient.selectUserList(userReportParam).getData();
userReportPOList = userReportPOList.stream().filter(it -> StrUtil.isNotBlank(it.getStationId())).collect(Collectors.toList());
Map<String, UserLedgerVO> userMap = userReportPOList.stream().collect(Collectors.toMap(UserLedgerVO::getId, Function.identity()));
List<TerminalTree> temList = new ArrayList<>();
objMap.forEach((objId, monitorList) -> {
UserLedgerVO userLedgerVO = userMap.get(objId);
TerminalTree tree = new TerminalTree();
tree.setLevel(LineBaseEnum.USER_LEVEL.getCode());
tree.setPid(userLedgerVO.getStationId());
tree.setId(userLedgerVO.getId());
tree.setChildren(monitorList);
int devSize = monitorList.stream().map(x -> {
// 获取父id字符串通过 逗号 分割 成一个数组
String[] pid = x.getPids().split(StrUtil.COMMA);
return pid[LineBaseEnum.DEVICE_LEVEL.getCode()];
}).distinct().collect(Collectors.toList()).size();
tree.setName(userLedgerVO.getProjectName() + "" + devSize + "台装置)");
temList.add(tree);
});
temMap = temList.stream().collect(Collectors.groupingBy(TerminalTree::getPid));
}
//处理变电站
dealChildrenData(subList, lineList, true);
dealChildrenData(subList, otherLineList, temMap,true);
//监测点前面加序号,后面不需要删除下面两行就行
//Integer[] arr = {1};
//subList.forEach(item->item.getChildren().forEach(it->it.setName((arr[0]++ +"_"+it.getName()))));
//处理供电公司
dealChildrenData(gdList, subList, false);
dealChildrenData(gdList, subList, null,false);
if (deviceInfoParam.getStatisticalType().getCode().equalsIgnoreCase(StatisticsEnum.POWER_NETWORK.getCode())) {
terminalTree.setChildren(gdList);
} else {
//还需要额外处理省会
dealChildrenData(proList, gdList, false);
dealChildrenData(proList, gdList, null,false);
terminalTree.setChildren(proList);
}
terminalTree.setId(generalDeviceDTO.getIndex());
@@ -203,7 +302,7 @@ public class TerminalTreeServiceImpl implements TerminalTreeService {
* @param childrenData
* @param isLine
*/
private void dealChildrenData(List<TerminalTree> targetData, List<TerminalTree> childrenData, boolean isLine) {
private void dealChildrenData(List<TerminalTree> targetData, List<TerminalTree> childrenData,Map<String,List<TerminalTree>> userLineMap, boolean isLine) {
// 创建一个map集合用于封装对象
Map<String, List<TerminalTree>> groupLine;
if (isLine) {
@@ -218,20 +317,27 @@ public class TerminalTreeServiceImpl implements TerminalTreeService {
}
//变电站
targetData = targetData.stream().peek(terminalTree -> {
System.out.println(groupLine.get(terminalTree.getId()));
System.out.println(terminalTree.getId());
List<TerminalTree> terminalTrees = groupLine.get(terminalTree.getId()).stream().sorted(Comparator.comparing(TerminalTree::getSort)).collect(Collectors.toList());
List<TerminalTree> terminalTrees = new ArrayList<>();
if(groupLine.containsKey(terminalTree.getId())) {
terminalTrees.addAll(groupLine.get(terminalTree.getId()).stream().sorted(Comparator.comparing(TerminalTree::getSort)).collect(Collectors.toList()));
}
if (isLine) {
//变电站集合
int size = terminalTrees.stream().map(x -> {
// 获取父id字符串通过 逗号 分割 成一个数组
String[] pid = x.getPids().split(",");
String[] pid = x.getPids().split(StrUtil.COMMA);
return pid[LineBaseEnum.DEVICE_LEVEL.getCode()];
}).distinct().collect(Collectors.toList()).size();
terminalTree.setName(terminalTree.getName() + "" + size + "台装置)");
if(userLineMap.containsKey(terminalTree.getId())){
List<TerminalTree> devList = userLineMap.get(terminalTree.getId());
terminalTrees.addAll(devList);
}
terminalTree.setChildren(terminalTrees);
} else {
terminalTree.setChildren(groupLine.get(terminalTree.getId()));
}