1.解决监测点超标问题
2.解决监测点终端md3加密显示 3.解决全景技术监督问题数量问题
This commit is contained in:
@@ -225,6 +225,9 @@ public class OracleTerminalExcel implements Serializable {
|
||||
@Excel(name = "监测点对象名称", width = 15)
|
||||
private String objName;
|
||||
|
||||
@Excel(name = "电网侧变电站", width = 15)
|
||||
private String powerSubstationName;
|
||||
|
||||
@Excel(name = "人为干预统计", replace = {"不参与统计_0", "参与统计_1"}, width = 15)
|
||||
@NotNull(message = "统计标志不为空")
|
||||
private Integer statFlag;
|
||||
|
||||
@@ -43,11 +43,13 @@ import com.njcn.device.pq.pojo.param.oracle.*;
|
||||
import com.njcn.device.pq.pojo.po.*;
|
||||
import com.njcn.device.pq.pojo.vo.*;
|
||||
import com.njcn.device.pq.service.*;
|
||||
import com.njcn.device.pq.utils.DeviceUtil;
|
||||
import com.njcn.device.pq.utils.ExcelStyleUtil;
|
||||
import com.njcn.oss.constant.OssPath;
|
||||
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.system.api.AreaFeignClient;
|
||||
import com.njcn.system.api.DicDataFeignClient;
|
||||
import com.njcn.system.enums.DicDataEnum;
|
||||
@@ -103,6 +105,7 @@ public class TerminalBaseServiceImpl extends ServiceImpl<LineMapper, Line> imple
|
||||
private final LineBakService lineBakService;
|
||||
private final DeviceBakService deviceBakService;
|
||||
private final FileStorageUtil fileStorageUtil;
|
||||
private final RedisUtil redisUtil;
|
||||
|
||||
|
||||
@Value("${oracle.isSync}")
|
||||
@@ -266,7 +269,7 @@ public class TerminalBaseServiceImpl extends ServiceImpl<LineMapper, Line> imple
|
||||
deviceDetail.setUpdateTime(LocalDateTime.now());
|
||||
|
||||
//处理装置识别码秘钥
|
||||
|
||||
coderM3d(deviceDetail);
|
||||
deviceMapper.insert(deviceDetail);
|
||||
//装置功能
|
||||
List<DictData> funList = dicDataFeignClient.getDicDataByTypeName(DicDataTypeEnum.DEV_FUN.getName()).getData();
|
||||
@@ -625,6 +628,7 @@ public class TerminalBaseServiceImpl extends ServiceImpl<LineMapper, Line> imple
|
||||
Device deviceDetail = new Device();
|
||||
BeanUtils.copyProperties(updateDeviceParam, deviceDetail);
|
||||
deviceDetail.setId(updateDeviceParam.getDevIndex());
|
||||
coderM3d(deviceDetail);
|
||||
this.updateById(device);
|
||||
deviceMapper.updateById(deviceDetail);
|
||||
}
|
||||
@@ -804,6 +808,23 @@ public class TerminalBaseServiceImpl extends ServiceImpl<LineMapper, Line> imple
|
||||
return true;
|
||||
}
|
||||
|
||||
private void coderM3d(Device deviceDetail){
|
||||
if(StrUtil.isNotBlank(deviceDetail.getDevKey())){
|
||||
deviceDetail.setDevKey(DeviceUtil.encodeString(1,deviceDetail.getDevKey()));
|
||||
}
|
||||
if(StrUtil.isNotBlank(deviceDetail.getSeries())){
|
||||
deviceDetail.setSeries(DeviceUtil.encodeString(1,deviceDetail.getSeries()));
|
||||
}
|
||||
}
|
||||
private void decoderM3d(Device deviceDetail){
|
||||
if(StrUtil.isNotBlank(deviceDetail.getDevKey())){
|
||||
deviceDetail.setDevKey(DeviceUtil.decoderString(1,deviceDetail.getDevKey()));
|
||||
}
|
||||
if(StrUtil.isNotBlank(deviceDetail.getSeries())){
|
||||
deviceDetail.setSeries(DeviceUtil.decoderString(1,deviceDetail.getSeries()));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询监测点信息修改处,并新增日志
|
||||
*
|
||||
@@ -924,6 +945,8 @@ public class TerminalBaseServiceImpl extends ServiceImpl<LineMapper, Line> imple
|
||||
|
||||
|
||||
Device deviceDetail = deviceMapper.selectById(device.getId());
|
||||
//解密
|
||||
decoderM3d(deviceDetail);
|
||||
BeanUtils.copyProperties(deviceDetail, deviceVO);
|
||||
deviceVO.setDevIndex(device.getId());
|
||||
//母线
|
||||
@@ -982,6 +1005,8 @@ public class TerminalBaseServiceImpl extends ServiceImpl<LineMapper, Line> imple
|
||||
deviceVO.setSort(obj.getSort());
|
||||
|
||||
Device deviceDetail = deviceMapper.selectById(obj.getId());
|
||||
//解密
|
||||
decoderM3d(deviceDetail);
|
||||
BeanUtils.copyProperties(deviceDetail, deviceVO);
|
||||
deviceVO.setDevIndex(obj.getId());
|
||||
|
||||
@@ -1076,6 +1101,8 @@ public class TerminalBaseServiceImpl extends ServiceImpl<LineMapper, Line> imple
|
||||
deviceVO.setName(device.getName());
|
||||
deviceVO.setSort(device.getSort());
|
||||
Device deviceDetail = deviceMapper.selectById(device.getId());
|
||||
//解密
|
||||
decoderM3d(deviceDetail);
|
||||
BeanUtils.copyProperties(deviceDetail, deviceVO);
|
||||
deviceVO.setDevIndex(device.getId());
|
||||
|
||||
@@ -1125,6 +1152,8 @@ public class TerminalBaseServiceImpl extends ServiceImpl<LineMapper, Line> imple
|
||||
BeanUtils.copyProperties(device, deviceVO);
|
||||
|
||||
Device deviceDetail = deviceMapper.selectById(device.getId());
|
||||
//解密
|
||||
decoderM3d(deviceDetail);
|
||||
BeanUtils.copyProperties(deviceDetail, deviceVO);
|
||||
deviceVO.setDevIndex(device.getId());
|
||||
|
||||
@@ -1861,6 +1890,23 @@ public class TerminalBaseServiceImpl extends ServiceImpl<LineMapper, Line> imple
|
||||
Integer oracleDevId = Integer.valueOf(body.get("oracleDevId").toString());
|
||||
syncTerminalParam.setOracleLineId(oracleLineId);
|
||||
syncTerminalParam.setOracleDevId(oracleDevId);
|
||||
|
||||
Map<String, String> DevIdMapping = new HashMap<>();
|
||||
Map<String, String> LineIdMapping = new HashMap<>();
|
||||
List<LineBak> resultList = lineBakService.list();
|
||||
for (LineBak row : resultList) {
|
||||
String id = row.getId();
|
||||
String lineId = row.getLineId()+"";
|
||||
LineIdMapping.put(lineId,id );
|
||||
}
|
||||
redisUtil.saveByKey("LineIdMapping",LineIdMapping);
|
||||
List<DeviceBak> list = deviceBakService.list();
|
||||
for (DeviceBak row : list) {
|
||||
String id = row.getId();
|
||||
String devId = row.getDevId()+"";
|
||||
DevIdMapping.put(devId,id );
|
||||
}
|
||||
redisUtil.saveByKey("DevIdMapping",DevIdMapping);
|
||||
}
|
||||
}
|
||||
String projectIndex = null;
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.njcn.device.pq.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
@@ -330,21 +331,23 @@ public class TerminalTreeServiceImpl implements TerminalTreeService {
|
||||
List<TerminalTree> subInfoList = new ArrayList<>();
|
||||
|
||||
lineObjNameMap.forEach((key, value)->{
|
||||
final List<TerminalTree> subVLine = collect1;
|
||||
List<TerminalTree> terminalTrees = Collections.unmodifiableList(collect1);
|
||||
//获取变电信息
|
||||
List<TerminalTree> collect = subList.stream().filter(x -> x.getName().equals(key)).collect(Collectors.toList());
|
||||
|
||||
//电网侧监测点
|
||||
List<TerminalTree> powerFlag = value.stream().filter(x -> x.getPowerFlag().equals(LineBaseEnum.POWER_FLAG.getCode())).collect(Collectors.toList());
|
||||
if(CollUtil.isEmpty(collect)){
|
||||
if(CollUtil.isEmpty(powerFlag)){
|
||||
//解决变电站下没有监测点显示问题(变电站-》终端-》母线)
|
||||
powerFlag.addAll(collect);
|
||||
}
|
||||
List<TerminalTree> subChildren = getRecursionChildren(powerFlag, subVLine);
|
||||
List<TerminalTree> subChildren = new ArrayList<>();
|
||||
getRecursionChildren(powerFlag,subChildren, terminalTrees);
|
||||
|
||||
//非电网侧监测点
|
||||
List<TerminalTree> powerFlagNot = value.stream().filter(x -> x.getPowerFlag().equals(LineBaseEnum.POWER_FLAG_NOT.getCode())).collect(Collectors.toList());
|
||||
List<TerminalTree> notSubChildren = getRecursionChildren(powerFlagNot,subVLine);
|
||||
List<TerminalTree> notSubChildren = new ArrayList<>();
|
||||
getRecursionChildren(powerFlagNot,notSubChildren,terminalTrees);
|
||||
|
||||
if(CollUtil.isNotEmpty(collect)){
|
||||
List<TerminalTree> valueList = new ArrayList<>();
|
||||
@@ -434,33 +437,39 @@ public class TerminalTreeServiceImpl implements TerminalTreeService {
|
||||
//todo 变电站层级处理不存在下面信息的监测点信息(默认信息就是给他当成电网侧)
|
||||
List<TerminalTree> dw = new ArrayList<>();
|
||||
dw.addAll(subInfoList.stream().collect(Collectors.toList()));
|
||||
//暂时解决跨部门不显示电站问题(风光储)
|
||||
dw.addAll(subInfoList.stream().flatMap(x -> x.getChildren().get(0).getChildren().stream()).collect(Collectors.toList()));
|
||||
dw.addAll(subInfoList.stream().flatMap(x -> x.getChildren().get(1).getChildren().stream()).collect(Collectors.toList()));
|
||||
List<TerminalTree> collect = subList.stream().filter(x -> !dw.stream().map(TerminalTree::getId).collect(Collectors.toList()).contains(x.getId()))
|
||||
List<TerminalTree> collect = subList.stream().filter(x -> !dw.stream().map(TerminalTree::getId).collect(Collectors.toList()).contains(x.getId()) ||
|
||||
x.getName().equals("220kV金阳变电站"))
|
||||
.distinct().collect(Collectors.toList());
|
||||
|
||||
for (TerminalTree notSub : collect) {
|
||||
|
||||
//只显示变电站下有装置的
|
||||
TerminalTree notSub1 = findParents(collect1, notSub);
|
||||
List<TerminalTree> valueList = new ArrayList<>();
|
||||
TerminalTree sub = new TerminalTree();
|
||||
sub.setId(notSub.getId());
|
||||
sub.setName(notSub.getName());
|
||||
sub.setPid(notSub.getPid());
|
||||
if(CollUtil.isNotEmpty(notSub1.getChildren())){
|
||||
List<TerminalTree> valueList = new ArrayList<>();
|
||||
|
||||
TerminalTree powerTree = new TerminalTree();
|
||||
powerTree.setId(notSub.getId());
|
||||
powerTree.setName("电网侧");
|
||||
powerTree.setChildren(Arrays.asList(notSub1));
|
||||
valueList.add(powerTree);
|
||||
TerminalTree sub = new TerminalTree();
|
||||
sub.setId(notSub.getId());
|
||||
sub.setName(notSub.getName());
|
||||
sub.setPid(notSub.getPid());
|
||||
|
||||
TerminalTree notPowerTree = new TerminalTree();
|
||||
notPowerTree.setName("非电网侧");
|
||||
notPowerTree.setChildren(new ArrayList<>());
|
||||
valueList.add(notPowerTree);
|
||||
TerminalTree powerTree = new TerminalTree();
|
||||
powerTree.setId(notSub.getId());
|
||||
powerTree.setName("电网侧");
|
||||
powerTree.setChildren(Arrays.asList(notSub1));
|
||||
valueList.add(powerTree);
|
||||
|
||||
sub.setChildren(valueList);
|
||||
subInfoList.add(sub);
|
||||
TerminalTree notPowerTree = new TerminalTree();
|
||||
notPowerTree.setName("非电网侧");
|
||||
notPowerTree.setChildren(new ArrayList<>());
|
||||
valueList.add(notPowerTree);
|
||||
|
||||
sub.setChildren(valueList);
|
||||
subInfoList.add(sub);
|
||||
dw.add(sub);
|
||||
}
|
||||
}
|
||||
|
||||
gdList.forEach(gd -> gd.setChildren(getChildren(gd, subInfoList)));
|
||||
@@ -497,26 +506,25 @@ public class TerminalTreeServiceImpl implements TerminalTreeService {
|
||||
* @param all 检测对象
|
||||
* @return
|
||||
*/
|
||||
public List<TerminalTree> getRecursionChildren(List<TerminalTree> line, List<TerminalTree> all) {
|
||||
List<TerminalTree> info=new ArrayList<>();
|
||||
|
||||
public void getRecursionChildren(List<TerminalTree> line, List<TerminalTree> info,List<TerminalTree> all) {
|
||||
List<TerminalTree> aa=new ArrayList<>();
|
||||
for (TerminalTree lineTree : line) {
|
||||
findParentsRecursive(lineTree, all,aa);
|
||||
aa.add(lineTree);
|
||||
}
|
||||
List<TerminalTree> distinctList =new ArrayList<>();
|
||||
distinctList.addAll(aa.stream().distinct().collect(Collectors.toList()));
|
||||
aa.addAll(all);
|
||||
List<TerminalTree> distinctList =new ArrayList<>(aa.stream().distinct().collect(Collectors.toList()));
|
||||
long count = line.stream().filter(x -> !x.getLevel().equals(LineBaseEnum.LINE_LEVEL.getCode())).count();
|
||||
if(count>0){
|
||||
aa.addAll(all);
|
||||
}
|
||||
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());
|
||||
if(CollUtil.isNotEmpty(collect)){
|
||||
for (TerminalTree tree : collect) {
|
||||
info.add(findParents(lines,tree));
|
||||
TerminalTree terminalTree = BeanUtil.copyProperties(tree, TerminalTree.class);
|
||||
info.add(findParents(lines,terminalTree));
|
||||
}
|
||||
|
||||
}
|
||||
return info;
|
||||
}
|
||||
|
||||
private static void findParentsRecursive(TerminalTree tree, List<TerminalTree> all,List<TerminalTree> newParents) {
|
||||
|
||||
Reference in New Issue
Block a user