1.调整冀北终端树展示

This commit is contained in:
wr
2024-12-03 11:55:15 +08:00
parent 3bf3c65575
commit c6475a862c
7 changed files with 106 additions and 12 deletions

View File

@@ -70,4 +70,9 @@ public class TerminalTree implements Serializable {
* 电网侧变电站 * 电网侧变电站
*/ */
private String powerSubstationName; private String powerSubstationName;
/**
* 电网侧变电站
*/
private String objName;
} }

View File

@@ -5,6 +5,8 @@ import com.njcn.common.pojo.enums.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum; import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.response.HttpResult; import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil; import com.njcn.common.utils.HttpResultUtil;
import com.njcn.device.biz.pojo.dto.SubGetBase;
import com.njcn.device.biz.pojo.param.SubstationParam;
import com.njcn.device.pq.pojo.po.YwZtSubstation; import com.njcn.device.pq.pojo.po.YwZtSubstation;
import com.njcn.device.pq.service.IYwZtSubstationService; import com.njcn.device.pq.service.IYwZtSubstationService;
import com.njcn.web.controller.BaseController; import com.njcn.web.controller.BaseController;
@@ -51,5 +53,12 @@ public class YwZtSubstationController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, ywZtSubstation, methodDescribe); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, ywZtSubstation, methodDescribe);
} }
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/tagOrIdGetYWZtSub")
@ApiOperation("获取变电站信息")
public HttpResult<List<SubGetBase>> tagOrIdGetSub(@RequestBody SubstationParam substationParam) {
String methodDescribe = getMethodDescribe("tagOrIdGetSub");
List<SubGetBase> subGetBases = ywZtSubstationService.getSubstation(substationParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, subGetBases, methodDescribe);
}
} }

View File

@@ -1,11 +1,16 @@
package com.njcn.device.pq.mapper; package com.njcn.device.pq.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.njcn.device.biz.pojo.dto.SubGetBase;
import com.njcn.device.biz.pojo.param.SubstationParam;
import com.njcn.device.pq.pojo.po.YwZtSubstation; import com.njcn.device.pq.pojo.po.YwZtSubstation;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/** /**
* <p> * <p>
* Mapper 接口 * Mapper 接口
* </p> * </p>
* *
* @author wr * @author wr
@@ -13,4 +18,5 @@ import com.njcn.device.pq.pojo.po.YwZtSubstation;
*/ */
public interface YwZtSubstationMapper extends BaseMapper<YwZtSubstation> { public interface YwZtSubstationMapper extends BaseMapper<YwZtSubstation> {
List<SubGetBase> selectSubstationList(@Param("param") SubstationParam substationParam);
} }

View File

@@ -2,4 +2,32 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.njcn.device.pq.mapper.YwZtSubstationMapper"> <mapper namespace="com.njcn.device.pq.mapper.YwZtSubstationMapper">
<select id="selectSubstationList" resultType="com.njcn.device.biz.pojo.dto.SubGetBase">
SELECT
sub.id id,
sub.NAME NAME,
sub.org_Id orgId,
sub.Scale voltageLevel,
sub.lng lng,
sub.lat lat
FROM
pq_ywzt_substation sub
<where>
<if test="param.orgIds!=null and param.orgIds.size!=0">
and sub.org_Id in
<foreach collection="param.orgIds" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<if test="param.powerName !=null and param.powerName!='' ">
and sub.name like CONCAT(CONCAT('%', #{param.powerName}), '%')
</if>
<if test="param.powerVoltageLevel!=null and param.powerVoltageLevel.size!=0">
and sub.Scale in
<foreach collection="param.powerVoltageLevel" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
</where>
</select>
</mapper> </mapper>

View File

@@ -1,6 +1,8 @@
package com.njcn.device.pq.service; package com.njcn.device.pq.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.device.biz.pojo.dto.SubGetBase;
import com.njcn.device.biz.pojo.param.SubstationParam;
import com.njcn.device.pq.pojo.po.YwZtSubstation; import com.njcn.device.pq.pojo.po.YwZtSubstation;
import java.util.List; import java.util.List;
@@ -19,4 +21,11 @@ public interface IYwZtSubstationService extends IService<YwZtSubstation> {
Boolean syncYwZtSubstation(); Boolean syncYwZtSubstation();
List<YwZtSubstation> getYwZtSubstation(String orgId); List<YwZtSubstation> getYwZtSubstation(String orgId);
/**
* 线上管控获取所有中台变电站信息
* @param substationParam
* @return
*/
List<SubGetBase> getSubstation(SubstationParam substationParam);
} }

View File

@@ -3,6 +3,7 @@ package com.njcn.device.pq.service.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.njcn.common.pojo.enums.common.ServerEnum; import com.njcn.common.pojo.enums.common.ServerEnum;
@@ -319,6 +320,7 @@ public class TerminalTreeServiceImpl implements TerminalTreeService {
if(powerFlagMap.containsKey(x.getId())){ if(powerFlagMap.containsKey(x.getId())){
x.setPowerFlag(powerFlagMap.get(x.getId()).getPowerFlag()); x.setPowerFlag(powerFlagMap.get(x.getId()).getPowerFlag());
x.setPowerSubstationName(powerFlagMap.get(x.getId()).getPowerSubstationName()); x.setPowerSubstationName(powerFlagMap.get(x.getId()).getPowerSubstationName());
x.setObjName(powerFlagMap.get(x.getId()).getObjName());
}else{ }else{
x.setPowerFlag(LineBaseEnum.POWER_FLAG.getCode()); x.setPowerFlag(LineBaseEnum.POWER_FLAG.getCode());
} }
@@ -333,8 +335,7 @@ public class TerminalTreeServiceImpl implements TerminalTreeService {
lineObjNameMap.forEach((key, value)->{ lineObjNameMap.forEach((key, value)->{
List<TerminalTree> terminalTrees = Collections.unmodifiableList(collect1); List<TerminalTree> terminalTrees = Collections.unmodifiableList(collect1);
//获取变电信息 //获取变电信息
List<TerminalTree> collect = subList.stream().filter(x -> x.getName().equals(key)).collect(Collectors.toList()); List<TerminalTree> collect = subList.stream().filter(x -> x.getName().equals(key.replace("±",""))).collect(Collectors.toList());
//电网侧监测点 //电网侧监测点
List<TerminalTree> powerFlag = value.stream().filter(x -> x.getPowerFlag().equals(LineBaseEnum.POWER_FLAG.getCode())).collect(Collectors.toList()); List<TerminalTree> powerFlag = value.stream().filter(x -> x.getPowerFlag().equals(LineBaseEnum.POWER_FLAG.getCode())).collect(Collectors.toList());
if(CollUtil.isEmpty(powerFlag)){ if(CollUtil.isEmpty(powerFlag)){
@@ -342,13 +343,24 @@ public class TerminalTreeServiceImpl implements TerminalTreeService {
powerFlag.addAll(collect); powerFlag.addAll(collect);
} }
List<TerminalTree> subChildren = new ArrayList<>(); List<TerminalTree> subChildren = new ArrayList<>();
getRecursionChildren(powerFlag,subChildren, terminalTrees); TerminalTree recursion = getRecursionChildren(powerFlag, terminalTrees);
if(ObjectUtil.isNotNull(recursion)){
subChildren.add(recursion);
}
//非电网侧监测点 //非电网侧监测点
List<TerminalTree> powerFlagNot = value.stream().filter(x -> x.getPowerFlag().equals(LineBaseEnum.POWER_FLAG_NOT.getCode())).collect(Collectors.toList()); List<TerminalTree> powerFlagNot = value.stream().filter(x -> x.getPowerFlag().equals(LineBaseEnum.POWER_FLAG_NOT.getCode())).collect(Collectors.toList());
List<TerminalTree> notSubChildren = new ArrayList<>(); List<TerminalTree> notSubChildren = new ArrayList<>();
getRecursionChildren(powerFlagNot,notSubChildren,terminalTrees); if(CollUtil.isNotEmpty(powerFlagNot)){
Map<String, List<TerminalTree>> objNameMap = powerFlagNot.stream().collect(Collectors.groupingBy(TerminalTree::getObjName));
objNameMap.forEach((objNameKey,objNameValue)->{
TerminalTree recursionChildren = getRecursionChildren(objNameValue, terminalTrees);
if(ObjectUtil.isNotNull(recursionChildren)){
recursionChildren.setName(objNameKey);
notSubChildren.add(recursionChildren);
}
});
}
if(CollUtil.isNotEmpty(collect)){ if(CollUtil.isNotEmpty(collect)){
List<TerminalTree> valueList = new ArrayList<>(); List<TerminalTree> valueList = new ArrayList<>();
TerminalTree sub=new TerminalTree(); TerminalTree sub=new TerminalTree();
@@ -506,7 +518,7 @@ public class TerminalTreeServiceImpl implements TerminalTreeService {
* @param all 检测对象 * @param all 检测对象
* @return * @return
*/ */
public void getRecursionChildren(List<TerminalTree> line, List<TerminalTree> info,List<TerminalTree> all) { public TerminalTree getRecursionChildren(List<TerminalTree> line, List<TerminalTree> all) {
List<TerminalTree> aa=new ArrayList<>(); List<TerminalTree> aa=new ArrayList<>();
for (TerminalTree lineTree : line) { for (TerminalTree lineTree : line) {
findParentsRecursive(lineTree, all,aa); findParentsRecursive(lineTree, all,aa);
@@ -520,11 +532,10 @@ public class TerminalTreeServiceImpl implements TerminalTreeService {
List<TerminalTree> lines = aa.stream().distinct().sorted(Comparator.comparing(TerminalTree::getSort)).collect(Collectors.toList()); List<TerminalTree> lines = aa.stream().distinct().sorted(Comparator.comparing(TerminalTree::getSort)).collect(Collectors.toList());
List<TerminalTree> collect = distinctList.stream().filter(x -> x.getLevel() == LineBaseEnum.SUB_LEVEL.getCode()).collect(Collectors.toList()); List<TerminalTree> collect = distinctList.stream().filter(x -> x.getLevel() == LineBaseEnum.SUB_LEVEL.getCode()).collect(Collectors.toList());
if(CollUtil.isNotEmpty(collect)){ if(CollUtil.isNotEmpty(collect)){
for (TerminalTree tree : collect) { TerminalTree terminalTree = BeanUtil.copyProperties(collect.get(0), TerminalTree.class);
TerminalTree terminalTree = BeanUtil.copyProperties(tree, TerminalTree.class); return findParents(lines,terminalTree);
info.add(findParents(lines,terminalTree));
}
} }
return null;
} }
private static void findParentsRecursive(TerminalTree tree, List<TerminalTree> all,List<TerminalTree> newParents) { private static void findParentsRecursive(TerminalTree tree, List<TerminalTree> all,List<TerminalTree> newParents) {

View File

@@ -3,6 +3,8 @@ package com.njcn.device.pq.service.impl;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.njcn.device.biz.pojo.dto.SubGetBase;
import com.njcn.device.biz.pojo.param.SubstationParam;
import com.njcn.device.pq.mapper.SubstationMapper; import com.njcn.device.pq.mapper.SubstationMapper;
import com.njcn.device.pq.mapper.YwZtSubstationMapper; import com.njcn.device.pq.mapper.YwZtSubstationMapper;
import com.njcn.device.pq.pojo.po.Substation; import com.njcn.device.pq.pojo.po.Substation;
@@ -12,11 +14,13 @@ import com.njcn.device.pq.service.IYwZtSubstationService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.user.api.DeptFeignClient; import com.njcn.user.api.DeptFeignClient;
import com.njcn.user.pojo.dto.DeptDTO; import com.njcn.user.pojo.dto.DeptDTO;
import com.njcn.user.pojo.po.Dept;
import com.njcn.web.utils.WebUtil; import com.njcn.web.utils.WebUtil;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.function.Function; import java.util.function.Function;
@@ -98,6 +102,28 @@ public class YwZtSubstationServiceImpl extends ServiceImpl<YwZtSubstationMapper,
return this.list(new LambdaQueryWrapper<YwZtSubstation>().in(CollUtil.isNotEmpty(orgIds),YwZtSubstation::getOrgId,orgIds)); return this.list(new LambdaQueryWrapper<YwZtSubstation>().in(CollUtil.isNotEmpty(orgIds),YwZtSubstation::getOrgId,orgIds));
} }
@Override
public List<SubGetBase> getSubstation(SubstationParam substationParam) {
List<String> orgIds = substationParam.getOrgIds();
List<Dept> deptList = deptFeignClient.getDeptInfoListByIds(orgIds).getData();
List<String> deptCode = deptList.stream().map(Dept::getCode).collect(Collectors.toList());
substationParam.setOrgIds(deptCode);
List<SubGetBase> subGetBases = this.baseMapper.selectSubstationList(substationParam);
if(CollUtil.isNotEmpty(subGetBases)){
Map<String, Dept> deptMap = deptList.stream().collect(Collectors.toMap(Dept::getCode, Function.identity()));
subGetBases.stream().forEach(x->{
if(deptMap.containsKey(x.getOrgId())){
Dept deptDTO = deptMap.get(x.getOrgId());
x.setOrgName(deptDTO.getName());
x.setOrgId(deptDTO.getId());
}
});
return subGetBases;
}
return Collections.emptyList();
}
public String getDzmc(String dzmc) { public String getDzmc(String dzmc) {
if(StrUtil.isNotBlank(dzmc)) { if(StrUtil.isNotBlank(dzmc)) {
dzmc = dzmc.replace("变电站", "") dzmc = dzmc.replace("变电站", "")