辽宁功能提交
This commit is contained in:
@@ -23,6 +23,7 @@ public enum LineBaseEnum {
|
||||
DEVICE_LEVEL(4, "设备"),
|
||||
SUB_V_LEVEL(5, "母线"),
|
||||
LINE_LEVEL(6, "监测点"),
|
||||
USER_LEVEL(7,"用户"),
|
||||
INVALID_LEVEL(-1, "非法拓扑等级"),
|
||||
|
||||
|
||||
|
||||
@@ -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:开口三角型接法)
|
||||
*/
|
||||
|
||||
@@ -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;
|
||||
|
||||
/**
|
||||
|
||||
@@ -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:开口三角型接法)
|
||||
*/
|
||||
|
||||
@@ -75,4 +75,6 @@ public class TerminalTree implements Serializable {
|
||||
* 电网侧变电站
|
||||
*/
|
||||
private String objName;
|
||||
|
||||
private String objId;
|
||||
}
|
||||
|
||||
@@ -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>
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -47,7 +47,7 @@ public interface TerminalBaseService {
|
||||
* @author cdf
|
||||
* @date 2021/7/19
|
||||
*/
|
||||
TerminalVO queryTerminal(String id);
|
||||
TerminalVO queryTerminal(String id,Integer level);
|
||||
|
||||
/**
|
||||
* 终端查询操作
|
||||
|
||||
@@ -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())) {
|
||||
//点击装置节点
|
||||
|
||||
|
||||
@@ -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()));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user