1.冀北台账树编写
2.技术监督删除流程业务调整,支持多数据删除
This commit is contained in:
@@ -32,9 +32,13 @@ public enum LineBaseEnum {
|
||||
*/
|
||||
PV_UNIT_LEVEL(0,"单位"),
|
||||
PV_SUB_LEVEL(1,"变电站"),
|
||||
PV_SUB_AREA_LEVEL(2,"台区")
|
||||
|
||||
PV_SUB_AREA_LEVEL(2,"台区"),
|
||||
|
||||
/**
|
||||
* 电网标志
|
||||
*/
|
||||
POWER_FLAG(0,"电网侧"),
|
||||
POWER_FLAG_NOT(1,"非电网侧")
|
||||
|
||||
;
|
||||
|
||||
|
||||
@@ -115,4 +115,7 @@ public class AreaLineInfoVO implements Serializable {
|
||||
|
||||
@ApiModelProperty(name = "type",value = "冀北电网一张图类型信息")
|
||||
private Integer type;
|
||||
|
||||
@ApiModelProperty(name = "新能源场站信息ID")
|
||||
private String newStationId;
|
||||
}
|
||||
|
||||
@@ -124,4 +124,27 @@ public class LineVO implements Serializable {
|
||||
@ApiModelProperty(name = "newStationId",value = "新能源场站信息ID")
|
||||
private String newStationId;
|
||||
|
||||
/**
|
||||
* 电网侧变电站
|
||||
*/
|
||||
@ApiModelProperty(name = "powerSubstationName",value = "电网侧变电站")
|
||||
private String powerSubstationName;
|
||||
|
||||
/**
|
||||
* 监测点拥有者
|
||||
*/
|
||||
@ApiModelProperty(name = "owner",value = "监测点拥有者")
|
||||
private String owner;
|
||||
|
||||
/**
|
||||
* 拥有者职务
|
||||
*/
|
||||
@ApiModelProperty(name = "ownerDuty",value = "拥有者职务")
|
||||
private String ownerDuty;
|
||||
|
||||
/**
|
||||
* 上级电站
|
||||
*/
|
||||
@ApiModelProperty(name = "superiorsSubstation",value = "上级电站")
|
||||
private String superiorsSubstation;
|
||||
}
|
||||
|
||||
@@ -35,6 +35,7 @@ public class TerminalTree implements Serializable {
|
||||
private Integer sort;
|
||||
@ApiModelProperty(name = "comFlag",value = "设备状态")
|
||||
private Integer comFlag;
|
||||
|
||||
@ApiModelProperty(name = "children",value = "子节点")
|
||||
private List<TerminalTree> children = new ArrayList<>();
|
||||
|
||||
@@ -59,4 +60,14 @@ public class TerminalTree implements Serializable {
|
||||
* 接线方式
|
||||
*/
|
||||
private Integer ptType;
|
||||
|
||||
/**
|
||||
* 电网标志(0-电网侧;1-非电网侧)
|
||||
*/
|
||||
private Integer powerFlag;
|
||||
|
||||
/**
|
||||
* 电网侧变电站
|
||||
*/
|
||||
private String powerSubstationName;
|
||||
}
|
||||
|
||||
@@ -16,8 +16,9 @@ import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiImplicitParam;
|
||||
import io.swagger.annotations.ApiImplicitParams;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
@@ -32,13 +33,14 @@ import java.util.List;
|
||||
@Slf4j
|
||||
@Api(tags = "终端树管理")
|
||||
@RestController
|
||||
@AllArgsConstructor
|
||||
@RequiredArgsConstructor
|
||||
@RequestMapping("/terminalTree")
|
||||
public class TerminalTreeController extends BaseController {
|
||||
|
||||
private final TerminalTreeService terminalTreeService;
|
||||
|
||||
|
||||
@Value("${isJb}")
|
||||
private Boolean isJb;
|
||||
|
||||
/**
|
||||
* 获取终端台账设备树
|
||||
@@ -50,7 +52,13 @@ public class TerminalTreeController extends BaseController {
|
||||
@GetMapping("getTerminalTree")
|
||||
public HttpResult<List<TerminalTree>> getTerminalTree(){
|
||||
String methodDescribe = getMethodDescribe("getTerminalTree");
|
||||
List<TerminalTree> tree = terminalTreeService.getTerminalTree();
|
||||
List<TerminalTree> tree;
|
||||
if(isJb){
|
||||
tree= terminalTreeService.getJbTerminalTree();
|
||||
}else{
|
||||
tree= terminalTreeService.getTerminalTree();
|
||||
}
|
||||
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, tree, methodDescribe);
|
||||
}
|
||||
|
||||
|
||||
@@ -574,7 +574,8 @@
|
||||
detail.Calssification_Grade,
|
||||
detail.Superiors_Substation,
|
||||
detail.Hang_Line,
|
||||
loadtype.name loadType
|
||||
loadtype.name loadType,
|
||||
pq_line_detail.New_Station_Id as newStationId
|
||||
FROM
|
||||
pq_line line,
|
||||
pq_line_detail detail,
|
||||
|
||||
@@ -43,4 +43,10 @@ public interface TerminalTreeService {
|
||||
List<DeptLineTreeVO> getDeptBindDeptLineTree(String deptId, Integer deptType, String id, Integer type);
|
||||
|
||||
List<TerminalSelectTreeVO> getTerminalSelectTree(Integer level);
|
||||
|
||||
/**
|
||||
* 冀北设备台账树
|
||||
* @return
|
||||
*/
|
||||
List<TerminalTree> getJbTerminalTree();
|
||||
}
|
||||
|
||||
@@ -1,17 +1,21 @@
|
||||
package com.njcn.device.pq.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.njcn.common.pojo.enums.common.ServerEnum;
|
||||
import com.njcn.common.pojo.response.HttpResult;
|
||||
import com.njcn.device.biz.pojo.vo.TerminalSelectTreeVO;
|
||||
import com.njcn.device.pq.enums.LineBaseEnum;
|
||||
import com.njcn.device.pq.mapper.DeptLineMapper;
|
||||
import com.njcn.device.pq.mapper.LineDetailMapper;
|
||||
import com.njcn.device.pq.mapper.LineMapper;
|
||||
import com.njcn.device.pq.mapper.TreeMapper;
|
||||
import com.njcn.device.pq.pojo.dto.GeneralDeviceDTO;
|
||||
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.TerminalTree;
|
||||
import com.njcn.device.pq.service.TerminalTreeService;
|
||||
@@ -24,10 +28,7 @@ import lombok.AllArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.*;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
@@ -45,6 +46,8 @@ public class TerminalTreeServiceImpl implements TerminalTreeService {
|
||||
|
||||
private final LineMapper lineMapper;
|
||||
|
||||
private final LineDetailMapper lineDetailMapper;
|
||||
|
||||
private final AreaFeignClient areaFeignClient;
|
||||
|
||||
private final DicDataFeignClient dicDataFeignClient;
|
||||
@@ -279,6 +282,127 @@ public class TerminalTreeServiceImpl implements TerminalTreeService {
|
||||
return resultList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<TerminalTree> getJbTerminalTree() {
|
||||
List<TerminalTree> taiZhang = new ArrayList<>();
|
||||
List<TerminalTree> allList = lineMapper.getAllList();
|
||||
List<TerminalTree> projectList = allList.stream().filter(item -> item.getLevel().equals(LineBaseEnum.PROJECT_LEVEL.getCode())).sorted(Comparator.comparing(TerminalTree::getSort)).collect(Collectors.toList());
|
||||
List<TerminalTree> provinceList = lineMapper.getProvinceList(null, 0);
|
||||
|
||||
List<TerminalTree> collect1 = allList.stream().filter(item -> item.getLevel().equals(LineBaseEnum.SUB_LEVEL.getCode()) ||
|
||||
item.getLevel().equals(LineBaseEnum.DEVICE_LEVEL.getCode()) ||
|
||||
item.getLevel().equals(LineBaseEnum.SUB_V_LEVEL.getCode())
|
||||
).sorted(Comparator.comparing(TerminalTree::getSort)).collect(Collectors.toList());
|
||||
|
||||
|
||||
List<TerminalTree> gdList = allList.stream().filter(item -> item.getLevel().equals(LineBaseEnum.GD_LEVEL.getCode())
|
||||
// && item.getName().equals("承德供电公司")
|
||||
).sorted(Comparator.comparing(TerminalTree::getSort)).collect(Collectors.toList());
|
||||
List<TerminalTree> subList = allList.stream().filter(item -> item.getLevel().equals(LineBaseEnum.SUB_LEVEL.getCode())
|
||||
// && item.getName().equals("110kV兴泉变电站")
|
||||
|
||||
).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<String> lineIds = lineList.stream().map(TerminalTree::getId).collect(Collectors.toList());
|
||||
List<LineDetail> list = lineDetailMapper.selectList(new LambdaQueryWrapper<LineDetail>().in(CollUtil.isNotEmpty(lineIds), LineDetail::getId, lineIds));
|
||||
Map<String, LineDetail> powerFlagMap = list.stream().collect(Collectors.toMap(LineDetail::getId, Function.identity()));
|
||||
for (TerminalTree x : lineList) {
|
||||
if(powerFlagMap.containsKey(x.getId())){
|
||||
x.setPowerFlag(powerFlagMap.get(x.getId()).getPowerFlag());
|
||||
x.setPowerSubstationName(powerFlagMap.get(x.getId()).getPowerSubstationName());
|
||||
}else{
|
||||
x.setPowerFlag(LineBaseEnum.POWER_FLAG.getCode());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
Map<String, List<TerminalTree>> lineObjNameMap = lineList.stream().filter(x -> StrUtil.isNotBlank(x.getPowerSubstationName())).collect(Collectors.groupingBy(TerminalTree::getPowerSubstationName));
|
||||
//组织变电站信息
|
||||
List<TerminalTree> subInfoList = new ArrayList<>();
|
||||
|
||||
lineObjNameMap.forEach((key, value)->{
|
||||
List<TerminalTree> valueList = new ArrayList<>();
|
||||
//电网侧监测点
|
||||
TerminalTree powerTree=new TerminalTree();
|
||||
powerTree.setName("电网侧");
|
||||
List<TerminalTree> powerFlag = value.stream().filter(x -> x.getPowerFlag().equals(LineBaseEnum.POWER_FLAG.getCode())).collect(Collectors.toList());
|
||||
List<TerminalTree> subChildren = getRecursionChildren(powerFlag, collect1);
|
||||
powerTree.setChildren(new ArrayList<>());
|
||||
|
||||
//非电网侧监测点
|
||||
TerminalTree notPowerTree=new TerminalTree();
|
||||
notPowerTree.setName("非电网侧");
|
||||
List<TerminalTree> powerFlagNot = value.stream().filter(x -> x.getPowerFlag().equals(LineBaseEnum.POWER_FLAG_NOT.getCode())).collect(Collectors.toList());
|
||||
List<TerminalTree> notSubChildren = getRecursionChildren(powerFlagNot, collect1);
|
||||
notPowerTree.setChildren(new ArrayList<>());
|
||||
valueList.add(powerTree);
|
||||
valueList.add(notPowerTree);
|
||||
//获取变电信息
|
||||
List<TerminalTree> collect = subList.stream().filter(x -> x.getName().equals(key)).collect(Collectors.toList());
|
||||
if(CollUtil.isNotEmpty(collect)){
|
||||
TerminalTree sub=new TerminalTree();
|
||||
sub.setId(collect.get(0).getId());
|
||||
sub.setName(collect.get(0).getName());
|
||||
sub.setPid(collect.get(0).getPid());
|
||||
sub.setChildren(valueList);
|
||||
powerTree.setChildren(subChildren);
|
||||
notPowerTree.setChildren(notSubChildren);
|
||||
subInfoList.add(sub);
|
||||
}else{
|
||||
//电网侧变电站能否找到
|
||||
for (TerminalTree child : subChildren) {
|
||||
List<TerminalTree> exist = subInfoList.stream().filter(x -> x.getId().equals(child.getId())).collect(Collectors.toList());
|
||||
if(CollUtil.isNotEmpty(exist)){
|
||||
//电网侧
|
||||
exist.get(0).getChildren().get(0).getChildren().addAll(child.getChildren());
|
||||
}else{
|
||||
TerminalTree sub=new TerminalTree();
|
||||
sub.setId(child.getId());
|
||||
sub.setName(child.getName());
|
||||
sub.setPid(child.getPid());
|
||||
valueList.get(0).setChildren(Arrays.asList(child));
|
||||
sub.setChildren(valueList);
|
||||
subInfoList.add(sub);
|
||||
}
|
||||
}
|
||||
for (TerminalTree child : notSubChildren) {
|
||||
List<TerminalTree> exist = subInfoList.stream().filter(x -> x.getId().equals(child.getId())).collect(Collectors.toList());
|
||||
if(CollUtil.isNotEmpty(exist)){
|
||||
//非电网侧
|
||||
exist.get(1).getChildren().get(0).getChildren().addAll(child.getChildren());
|
||||
}else{
|
||||
TerminalTree sub=new TerminalTree();
|
||||
sub.setId(child.getId());
|
||||
sub.setName(child.getName());
|
||||
sub.setPid(child.getPid());
|
||||
valueList.get(1).setChildren(Arrays.asList(child));
|
||||
sub.setChildren(valueList);
|
||||
subInfoList.add(sub);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
gdList.forEach(gd -> gd.setChildren(getChildren(gd, subInfoList)));
|
||||
provinceList.forEach(province -> province.setChildren(getChildren(province, gdList)));
|
||||
projectList.forEach(project -> project.setChildren(getChildren(project, provinceList)));
|
||||
|
||||
if (CollectionUtil.isNotEmpty(allList)) {
|
||||
TerminalTree terminalTree = new TerminalTree();
|
||||
terminalTree.setId("9999999");
|
||||
terminalTree.setLevel(0);
|
||||
terminalTree.setName("台账管理");
|
||||
if (CollectionUtil.isNotEmpty(projectList)) {
|
||||
terminalTree.setChildren(projectList);
|
||||
}
|
||||
taiZhang.add(terminalTree);
|
||||
}
|
||||
return taiZhang;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取全部子节点
|
||||
@@ -290,6 +414,53 @@ public class TerminalTreeServiceImpl implements TerminalTreeService {
|
||||
return all.stream().filter(allItem -> allItem.getPid().equals(item.getId())).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
/**
|
||||
* 变电站层级增加电网侧和非电网侧电站
|
||||
* @param line 变电站对象
|
||||
* @param all 检测对象
|
||||
* @return
|
||||
*/
|
||||
public List<TerminalTree> getRecursionChildren(List<TerminalTree> line, List<TerminalTree> all) {
|
||||
List<TerminalTree> info=new ArrayList<>();
|
||||
|
||||
List<TerminalTree> aa=new ArrayList<>();
|
||||
for (TerminalTree lineTree : line) {
|
||||
findParentsRecursive(lineTree, all,aa);
|
||||
aa.add(lineTree);
|
||||
}
|
||||
List<TerminalTree> distinctList = aa.stream().distinct().collect(Collectors.toList());
|
||||
List<TerminalTree> collect = distinctList.stream().filter(x -> x.getLevel() == LineBaseEnum.SUB_LEVEL.getCode()).collect(Collectors.toList());
|
||||
if(CollUtil.isNotEmpty(collect)){
|
||||
for (TerminalTree tree : collect) {
|
||||
info.add(findParents(distinctList,tree));
|
||||
}
|
||||
|
||||
}
|
||||
return info;
|
||||
}
|
||||
private TerminalTree findParents(List<TerminalTree> all,TerminalTree subTree) {
|
||||
List<TerminalTree> collect = all.stream().filter(allItem -> allItem.getPid().equals(subTree.getId())).collect(Collectors.toList());
|
||||
if (CollUtil.isNotEmpty(collect)) {
|
||||
collect.forEach(treeMap -> {
|
||||
subTree.setChildren(collect);
|
||||
findParents( all,treeMap);
|
||||
});
|
||||
}
|
||||
return subTree;
|
||||
}
|
||||
|
||||
private static void findParentsRecursive(TerminalTree tree, List<TerminalTree> all,List<TerminalTree> newParents) {
|
||||
if (tree.getLevel() == LineBaseEnum.SUB_LEVEL.getCode()) {
|
||||
return;
|
||||
}
|
||||
List<TerminalTree> collect = all.stream().filter(allItem -> allItem.getId().equals(tree.getPid())).collect(Collectors.toList());
|
||||
if (CollUtil.isNotEmpty(collect)) {
|
||||
newParents.addAll(collect);
|
||||
collect.forEach(treeMap -> {
|
||||
findParentsRecursive(treeMap, all, newParents);
|
||||
});
|
||||
}
|
||||
}
|
||||
/**
|
||||
* 未绑定监测点树
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user