1.解决监测点超标问题
2.解决监测点终端md3加密显示 3.解决全景技术监督问题数量问题
This commit is contained in:
@@ -225,6 +225,9 @@ public class OracleTerminalExcel implements Serializable {
|
|||||||
@Excel(name = "监测点对象名称", width = 15)
|
@Excel(name = "监测点对象名称", width = 15)
|
||||||
private String objName;
|
private String objName;
|
||||||
|
|
||||||
|
@Excel(name = "电网侧变电站", width = 15)
|
||||||
|
private String powerSubstationName;
|
||||||
|
|
||||||
@Excel(name = "人为干预统计", replace = {"不参与统计_0", "参与统计_1"}, width = 15)
|
@Excel(name = "人为干预统计", replace = {"不参与统计_0", "参与统计_1"}, width = 15)
|
||||||
@NotNull(message = "统计标志不为空")
|
@NotNull(message = "统计标志不为空")
|
||||||
private Integer statFlag;
|
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.po.*;
|
||||||
import com.njcn.device.pq.pojo.vo.*;
|
import com.njcn.device.pq.pojo.vo.*;
|
||||||
import com.njcn.device.pq.service.*;
|
import com.njcn.device.pq.service.*;
|
||||||
|
import com.njcn.device.pq.utils.DeviceUtil;
|
||||||
import com.njcn.device.pq.utils.ExcelStyleUtil;
|
import com.njcn.device.pq.utils.ExcelStyleUtil;
|
||||||
import com.njcn.oss.constant.OssPath;
|
import com.njcn.oss.constant.OssPath;
|
||||||
import com.njcn.oss.utils.FileStorageUtil;
|
import com.njcn.oss.utils.FileStorageUtil;
|
||||||
import com.njcn.poi.excel.ExcelUtil;
|
import com.njcn.poi.excel.ExcelUtil;
|
||||||
import com.njcn.poi.util.PoiUtil;
|
import com.njcn.poi.util.PoiUtil;
|
||||||
|
import com.njcn.redis.utils.RedisUtil;
|
||||||
import com.njcn.system.api.AreaFeignClient;
|
import com.njcn.system.api.AreaFeignClient;
|
||||||
import com.njcn.system.api.DicDataFeignClient;
|
import com.njcn.system.api.DicDataFeignClient;
|
||||||
import com.njcn.system.enums.DicDataEnum;
|
import com.njcn.system.enums.DicDataEnum;
|
||||||
@@ -103,6 +105,7 @@ public class TerminalBaseServiceImpl extends ServiceImpl<LineMapper, Line> imple
|
|||||||
private final LineBakService lineBakService;
|
private final LineBakService lineBakService;
|
||||||
private final DeviceBakService deviceBakService;
|
private final DeviceBakService deviceBakService;
|
||||||
private final FileStorageUtil fileStorageUtil;
|
private final FileStorageUtil fileStorageUtil;
|
||||||
|
private final RedisUtil redisUtil;
|
||||||
|
|
||||||
|
|
||||||
@Value("${oracle.isSync}")
|
@Value("${oracle.isSync}")
|
||||||
@@ -266,7 +269,7 @@ public class TerminalBaseServiceImpl extends ServiceImpl<LineMapper, Line> imple
|
|||||||
deviceDetail.setUpdateTime(LocalDateTime.now());
|
deviceDetail.setUpdateTime(LocalDateTime.now());
|
||||||
|
|
||||||
//处理装置识别码秘钥
|
//处理装置识别码秘钥
|
||||||
|
coderM3d(deviceDetail);
|
||||||
deviceMapper.insert(deviceDetail);
|
deviceMapper.insert(deviceDetail);
|
||||||
//装置功能
|
//装置功能
|
||||||
List<DictData> funList = dicDataFeignClient.getDicDataByTypeName(DicDataTypeEnum.DEV_FUN.getName()).getData();
|
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();
|
Device deviceDetail = new Device();
|
||||||
BeanUtils.copyProperties(updateDeviceParam, deviceDetail);
|
BeanUtils.copyProperties(updateDeviceParam, deviceDetail);
|
||||||
deviceDetail.setId(updateDeviceParam.getDevIndex());
|
deviceDetail.setId(updateDeviceParam.getDevIndex());
|
||||||
|
coderM3d(deviceDetail);
|
||||||
this.updateById(device);
|
this.updateById(device);
|
||||||
deviceMapper.updateById(deviceDetail);
|
deviceMapper.updateById(deviceDetail);
|
||||||
}
|
}
|
||||||
@@ -804,6 +808,23 @@ public class TerminalBaseServiceImpl extends ServiceImpl<LineMapper, Line> imple
|
|||||||
return true;
|
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());
|
Device deviceDetail = deviceMapper.selectById(device.getId());
|
||||||
|
//解密
|
||||||
|
decoderM3d(deviceDetail);
|
||||||
BeanUtils.copyProperties(deviceDetail, deviceVO);
|
BeanUtils.copyProperties(deviceDetail, deviceVO);
|
||||||
deviceVO.setDevIndex(device.getId());
|
deviceVO.setDevIndex(device.getId());
|
||||||
//母线
|
//母线
|
||||||
@@ -982,6 +1005,8 @@ public class TerminalBaseServiceImpl extends ServiceImpl<LineMapper, Line> imple
|
|||||||
deviceVO.setSort(obj.getSort());
|
deviceVO.setSort(obj.getSort());
|
||||||
|
|
||||||
Device deviceDetail = deviceMapper.selectById(obj.getId());
|
Device deviceDetail = deviceMapper.selectById(obj.getId());
|
||||||
|
//解密
|
||||||
|
decoderM3d(deviceDetail);
|
||||||
BeanUtils.copyProperties(deviceDetail, deviceVO);
|
BeanUtils.copyProperties(deviceDetail, deviceVO);
|
||||||
deviceVO.setDevIndex(obj.getId());
|
deviceVO.setDevIndex(obj.getId());
|
||||||
|
|
||||||
@@ -1076,6 +1101,8 @@ public class TerminalBaseServiceImpl extends ServiceImpl<LineMapper, Line> imple
|
|||||||
deviceVO.setName(device.getName());
|
deviceVO.setName(device.getName());
|
||||||
deviceVO.setSort(device.getSort());
|
deviceVO.setSort(device.getSort());
|
||||||
Device deviceDetail = deviceMapper.selectById(device.getId());
|
Device deviceDetail = deviceMapper.selectById(device.getId());
|
||||||
|
//解密
|
||||||
|
decoderM3d(deviceDetail);
|
||||||
BeanUtils.copyProperties(deviceDetail, deviceVO);
|
BeanUtils.copyProperties(deviceDetail, deviceVO);
|
||||||
deviceVO.setDevIndex(device.getId());
|
deviceVO.setDevIndex(device.getId());
|
||||||
|
|
||||||
@@ -1125,6 +1152,8 @@ public class TerminalBaseServiceImpl extends ServiceImpl<LineMapper, Line> imple
|
|||||||
BeanUtils.copyProperties(device, deviceVO);
|
BeanUtils.copyProperties(device, deviceVO);
|
||||||
|
|
||||||
Device deviceDetail = deviceMapper.selectById(device.getId());
|
Device deviceDetail = deviceMapper.selectById(device.getId());
|
||||||
|
//解密
|
||||||
|
decoderM3d(deviceDetail);
|
||||||
BeanUtils.copyProperties(deviceDetail, deviceVO);
|
BeanUtils.copyProperties(deviceDetail, deviceVO);
|
||||||
deviceVO.setDevIndex(device.getId());
|
deviceVO.setDevIndex(device.getId());
|
||||||
|
|
||||||
@@ -1861,6 +1890,23 @@ public class TerminalBaseServiceImpl extends ServiceImpl<LineMapper, Line> imple
|
|||||||
Integer oracleDevId = Integer.valueOf(body.get("oracleDevId").toString());
|
Integer oracleDevId = Integer.valueOf(body.get("oracleDevId").toString());
|
||||||
syncTerminalParam.setOracleLineId(oracleLineId);
|
syncTerminalParam.setOracleLineId(oracleLineId);
|
||||||
syncTerminalParam.setOracleDevId(oracleDevId);
|
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;
|
String projectIndex = null;
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.njcn.device.pq.service.impl;
|
package com.njcn.device.pq.service.impl;
|
||||||
|
|
||||||
|
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.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
@@ -330,21 +331,23 @@ public class TerminalTreeServiceImpl implements TerminalTreeService {
|
|||||||
List<TerminalTree> subInfoList = new ArrayList<>();
|
List<TerminalTree> subInfoList = new ArrayList<>();
|
||||||
|
|
||||||
lineObjNameMap.forEach((key, value)->{
|
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> 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());
|
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);
|
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> 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)){
|
if(CollUtil.isNotEmpty(collect)){
|
||||||
List<TerminalTree> valueList = new ArrayList<>();
|
List<TerminalTree> valueList = new ArrayList<>();
|
||||||
@@ -434,15 +437,19 @@ public class TerminalTreeServiceImpl implements TerminalTreeService {
|
|||||||
//todo 变电站层级处理不存在下面信息的监测点信息(默认信息就是给他当成电网侧)
|
//todo 变电站层级处理不存在下面信息的监测点信息(默认信息就是给他当成电网侧)
|
||||||
List<TerminalTree> dw = new ArrayList<>();
|
List<TerminalTree> dw = new ArrayList<>();
|
||||||
dw.addAll(subInfoList.stream().collect(Collectors.toList()));
|
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(0).getChildren().stream()).collect(Collectors.toList()));
|
||||||
dw.addAll(subInfoList.stream().flatMap(x -> x.getChildren().get(1).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());
|
.distinct().collect(Collectors.toList());
|
||||||
|
|
||||||
for (TerminalTree notSub : collect) {
|
for (TerminalTree notSub : collect) {
|
||||||
|
//只显示变电站下有装置的
|
||||||
TerminalTree notSub1 = findParents(collect1, notSub);
|
TerminalTree notSub1 = findParents(collect1, notSub);
|
||||||
|
if(CollUtil.isNotEmpty(notSub1.getChildren())){
|
||||||
List<TerminalTree> valueList = new ArrayList<>();
|
List<TerminalTree> valueList = new ArrayList<>();
|
||||||
|
|
||||||
TerminalTree sub = new TerminalTree();
|
TerminalTree sub = new TerminalTree();
|
||||||
sub.setId(notSub.getId());
|
sub.setId(notSub.getId());
|
||||||
sub.setName(notSub.getName());
|
sub.setName(notSub.getName());
|
||||||
@@ -461,6 +468,8 @@ public class TerminalTreeServiceImpl implements TerminalTreeService {
|
|||||||
|
|
||||||
sub.setChildren(valueList);
|
sub.setChildren(valueList);
|
||||||
subInfoList.add(sub);
|
subInfoList.add(sub);
|
||||||
|
dw.add(sub);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
gdList.forEach(gd -> gd.setChildren(getChildren(gd, subInfoList)));
|
gdList.forEach(gd -> gd.setChildren(getChildren(gd, subInfoList)));
|
||||||
@@ -497,26 +506,25 @@ public class TerminalTreeServiceImpl implements TerminalTreeService {
|
|||||||
* @param all 检测对象
|
* @param all 检测对象
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public List<TerminalTree> getRecursionChildren(List<TerminalTree> line, List<TerminalTree> all) {
|
public void getRecursionChildren(List<TerminalTree> line, List<TerminalTree> info,List<TerminalTree> all) {
|
||||||
List<TerminalTree> info=new ArrayList<>();
|
|
||||||
|
|
||||||
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);
|
||||||
aa.add(lineTree);
|
aa.add(lineTree);
|
||||||
}
|
}
|
||||||
List<TerminalTree> distinctList =new ArrayList<>();
|
List<TerminalTree> distinctList =new ArrayList<>(aa.stream().distinct().collect(Collectors.toList()));
|
||||||
distinctList.addAll(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);
|
aa.addAll(all);
|
||||||
|
}
|
||||||
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) {
|
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) {
|
private static void findParentsRecursive(TerminalTree tree, List<TerminalTree> all,List<TerminalTree> newParents) {
|
||||||
|
|||||||
@@ -494,7 +494,9 @@ public class GridServiceImpl implements IGridService {
|
|||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
if (CollUtil.isNotEmpty(lineList)) {
|
if (CollUtil.isNotEmpty(lineList)) {
|
||||||
//获取监测点越限集合
|
//获取监测点越限集合
|
||||||
List<RStatLimitTargetVO> overLimitList = rStatLimitTargetDMapper.getSumTargetDetails(lineList,param.getStartTime(),param.getEndTime());
|
List<RStatLimitTargetVO> overLimitList = rStatLimitTargetDMapper.getSumTargetDetails(lineList,
|
||||||
|
param.getStartTime(),
|
||||||
|
param.getEndTime());
|
||||||
//获取部门
|
//获取部门
|
||||||
List<DeptDTO> deptList = deptFeignClient.getDepSonDetailByDeptId(param.getDeptIndex()).getData();
|
List<DeptDTO> deptList = deptFeignClient.getDepSonDetailByDeptId(param.getDeptIndex()).getData();
|
||||||
deptList.forEach(item->{
|
deptList.forEach(item->{
|
||||||
|
|||||||
@@ -100,14 +100,12 @@ public class RStatLimitServiceImpl implements RStatLimitService {
|
|||||||
//监测点总数量
|
//监测点总数量
|
||||||
List<String> lineIds = list.stream().flatMap(x -> x.getLineIndexes().stream()).distinct().collect(Collectors.toList());
|
List<String> lineIds = list.stream().flatMap(x -> x.getLineIndexes().stream()).distinct().collect(Collectors.toList());
|
||||||
//超标监测点信息
|
//超标监测点信息
|
||||||
List<RStatLimitTargetDPO> limitTargetList =new ArrayList<>();
|
List<RStatLimitTargetVO> limitTargetList =new ArrayList<>();
|
||||||
List<RStatIntegrityD> integrityList =new ArrayList<>();
|
List<RStatIntegrityD> integrityList =new ArrayList<>();
|
||||||
if(CollUtil.isNotEmpty(lineIds)){
|
if(CollUtil.isNotEmpty(lineIds)){
|
||||||
limitTargetList = rStatLimitTargetDMapper.selectList(new LambdaQueryWrapper<RStatLimitTargetDPO>()
|
limitTargetList = rStatLimitTargetDMapper.getSumTargetDetails(lineIds,
|
||||||
.select(RStatLimitTargetDPO::getLineId, RStatLimitTargetDPO::getAllTime, RStatLimitTargetDPO::getFlickerAllTime)
|
DateUtil.beginOfDay(DateUtil.parse(deviceInfoParam.getSearchBeginTime())).toString(),
|
||||||
.in(RStatLimitTargetDPO::getLineId, lineIds)
|
DateUtil.endOfDay(DateUtil.parse(deviceInfoParam.getSearchEndTime())).toString());
|
||||||
.ge(StrUtil.isNotBlank(deviceInfoParam.getSearchBeginTime()), RStatLimitTargetDPO::getTime, DateUtil.beginOfDay(DateUtil.parse(deviceInfoParam.getSearchBeginTime())))
|
|
||||||
.le(StrUtil.isNotBlank(deviceInfoParam.getSearchEndTime()), RStatLimitTargetDPO::getTime, DateUtil.endOfDay(DateUtil.parse(deviceInfoParam.getSearchEndTime()))));
|
|
||||||
integrityList = lineIntegrityClient.getIntegrityByLineIds(lineIds, deviceInfoParam.getSearchBeginTime(), deviceInfoParam.getSearchEndTime()).getData();
|
integrityList = lineIntegrityClient.getIntegrityByLineIds(lineIds, deviceInfoParam.getSearchBeginTime(), deviceInfoParam.getSearchEndTime()).getData();
|
||||||
}
|
}
|
||||||
//终端在线率
|
//终端在线率
|
||||||
@@ -675,7 +673,7 @@ public class RStatLimitServiceImpl implements RStatLimitService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void onLineAndIntegrity(List<String> lineIds, List<RStatIntegrityD> onIntegrityByIds, List<String> devIds, List<RStatOnlinerateVO> onlineRateByDevIds,List<RStatLimitTargetDPO> limitTargetList, GridDiagramVO.LineData lineData) {
|
private void onLineAndIntegrity(List<String> lineIds, List<RStatIntegrityD> onIntegrityByIds, List<String> devIds, List<RStatOnlinerateVO> onlineRateByDevIds,List<RStatLimitTargetVO> limitTargetList, GridDiagramVO.LineData lineData) {
|
||||||
//监测完整率
|
//监测完整率
|
||||||
List<RStatIntegrityD> integrityDS = onIntegrityByIds.stream().filter(x -> lineIds.contains(x.getLineIndex())).collect(Collectors.toList());
|
List<RStatIntegrityD> integrityDS = onIntegrityByIds.stream().filter(x -> lineIds.contains(x.getLineIndex())).collect(Collectors.toList());
|
||||||
if (CollUtil.isNotEmpty(integrityDS)) {
|
if (CollUtil.isNotEmpty(integrityDS)) {
|
||||||
@@ -695,11 +693,9 @@ public class RStatLimitServiceImpl implements RStatLimitService {
|
|||||||
lineData.setOnLineRate(0.0f);
|
lineData.setOnLineRate(0.0f);
|
||||||
}
|
}
|
||||||
//监测点超标占比
|
//监测点超标占比
|
||||||
List<RStatLimitTargetDPO> limitTarget = limitTargetList.stream().filter(x -> lineIds.contains(x.getLineId())).collect(Collectors.toList());
|
List<RStatLimitTargetVO> limitTarget = limitTargetList.stream().filter(x -> lineIds.contains(x.getLineId())).collect(Collectors.toList());
|
||||||
if (CollUtil.isNotEmpty(limitTarget)) {
|
if (CollUtil.isNotEmpty(limitTarget)) {
|
||||||
long count = limitTarget.stream()
|
long count = limitTarget.stream().filter(o->o.getAllOvertime() > 0 || o.getFlickerAllTime()>0).count();
|
||||||
.filter(x -> x.getAllTime() > 0 || x.getFlickerAllTime() > 0)
|
|
||||||
.map(RStatLimitTargetDPO::getLineId).distinct().count();
|
|
||||||
lineData.setOutOfStandardRate(NumberUtil.round(count * 100.0 / lineIds.size(), 2).floatValue());
|
lineData.setOutOfStandardRate(NumberUtil.round(count * 100.0 / lineIds.size(), 2).floatValue());
|
||||||
} else {
|
} else {
|
||||||
lineData.setOutOfStandardRate(0.0f);
|
lineData.setOutOfStandardRate(0.0f);
|
||||||
|
|||||||
@@ -13,13 +13,21 @@
|
|||||||
INNER JOIN supervision_temp_line_run_test b ON a.id = b.id
|
INNER JOIN supervision_temp_line_run_test b ON a.id = b.id
|
||||||
INNER JOIN supervision_temp_line_run_test_warning c ON c.line_run_id = b.id
|
INNER JOIN supervision_temp_line_run_test_warning c ON c.line_run_id = b.id
|
||||||
<where>
|
<where>
|
||||||
c.create_time BETWEEN #{param.startTime} AND #{param.endTime}
|
(c.create_time BETWEEN #{param.startTime} AND #{param.endTime}
|
||||||
|
<if test="orgIds != null and orgIds.size() > 0">
|
||||||
|
AND a.org_id IN
|
||||||
|
<foreach collection="orgIds" item="orgId" separator="," open="(" close=")">
|
||||||
|
#{orgId}
|
||||||
|
</foreach>
|
||||||
|
</if>)
|
||||||
|
or (c.deal_State = 0
|
||||||
<if test="orgIds != null and orgIds.size() > 0">
|
<if test="orgIds != null and orgIds.size() > 0">
|
||||||
AND a.org_id IN
|
AND a.org_id IN
|
||||||
<foreach collection="orgIds" item="orgId" separator="," open="(" close=")">
|
<foreach collection="orgIds" item="orgId" separator="," open="(" close=")">
|
||||||
#{orgId}
|
#{orgId}
|
||||||
</foreach>
|
</foreach>
|
||||||
</if>
|
</if>
|
||||||
|
)
|
||||||
</where>
|
</where>
|
||||||
</select>
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
@@ -7,7 +7,9 @@ import cn.hutool.core.util.NumberUtil;
|
|||||||
import cn.hutool.core.util.ObjectUtil;
|
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.DataStateEnum;
|
||||||
import com.njcn.common.pojo.param.StatisticsBizBaseParam;
|
import com.njcn.common.pojo.param.StatisticsBizBaseParam;
|
||||||
|
import com.njcn.supervision.enums.FlowStatusEnum;
|
||||||
import com.njcn.supervision.mapper.device.TempLineRunTestWarningMapper;
|
import com.njcn.supervision.mapper.device.TempLineRunTestWarningMapper;
|
||||||
import com.njcn.supervision.pojo.po.device.LineWarning;
|
import com.njcn.supervision.pojo.po.device.LineWarning;
|
||||||
import com.njcn.supervision.pojo.po.leaflet.WarningLeaflet;
|
import com.njcn.supervision.pojo.po.leaflet.WarningLeaflet;
|
||||||
@@ -47,7 +49,7 @@ public class GridDiagramServiceImpl implements GridDiagramService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public GridDiagramVO.Info getSupervisionData(StatisticsBizBaseParam param) {
|
public GridDiagramVO.Info getSupervisionData(StatisticsBizBaseParam param) {
|
||||||
List<String> deptIds = deptFeignClient.getDepSonIdByDeptId(param.getId()).getData();
|
List<String> deptIds = deptFeignClient.getDepSonIdtByDeptId(param.getId()).getData();
|
||||||
return supervisionDetailsAdd(null, deptIds, param);
|
return supervisionDetailsAdd(null, deptIds, param);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -96,18 +98,30 @@ public class GridDiagramServiceImpl implements GridDiagramService {
|
|||||||
);
|
);
|
||||||
//用户投诉问题(添加出来就是有问题的)
|
//用户投诉问题(添加出来就是有问题的)
|
||||||
List<SupervisionUserComplaintPO> userComplaintList = userComplaintPOService.list(new LambdaQueryWrapper<SupervisionUserComplaintPO>()
|
List<SupervisionUserComplaintPO> userComplaintList = userComplaintPOService.list(new LambdaQueryWrapper<SupervisionUserComplaintPO>()
|
||||||
.in(SupervisionUserComplaintPO::getDutyOrgId, deptIds)
|
.and(x->x .in(SupervisionUserComplaintPO::getDutyOrgId, deptIds)
|
||||||
.eq(SupervisionUserComplaintPO::getState, 1)
|
.eq(SupervisionUserComplaintPO::getState, DataStateEnum.ENABLE.getCode())
|
||||||
.ge(StrUtil.isNotBlank(param.getStartTime()), SupervisionUserComplaintPO::getCreateTime, DateUtil.beginOfDay(DateUtil.parse(param.getStartTime())))
|
.ge(StrUtil.isNotBlank(param.getStartTime()), SupervisionUserComplaintPO::getCreateTime, DateUtil.beginOfDay(DateUtil.parse(param.getStartTime())))
|
||||||
.le(StrUtil.isNotBlank(param.getEndTime()), SupervisionUserComplaintPO::getCreateTime, DateUtil.endOfDay(DateUtil.parse(param.getEndTime())))
|
.le(StrUtil.isNotBlank(param.getEndTime()), SupervisionUserComplaintPO::getCreateTime, DateUtil.endOfDay(DateUtil.parse(param.getEndTime()))))
|
||||||
|
.or(x->x.eq(SupervisionUserComplaintPO::getDealState,0)
|
||||||
|
.eq(SupervisionUserComplaintPO::getState, DataStateEnum.ENABLE.getCode())
|
||||||
|
)
|
||||||
|
|
||||||
);
|
);
|
||||||
//计划问题(有问题的单子)
|
//计划问题(有问题的单子)
|
||||||
List<SurveyTest> surveyTestList = surveyTestService.list(new LambdaQueryWrapper<SurveyTest>()
|
List<SurveyTest> surveyTestList = surveyTestService.list(new LambdaQueryWrapper<SurveyTest>()
|
||||||
.in(SurveyTest::getDeptId, deptIds)
|
.and(x->x.in(SurveyTest::getDeptId, deptIds)
|
||||||
.eq(SurveyTest::getState, 1)
|
.eq(SurveyTest::getState, DataStateEnum.ENABLE.getCode())
|
||||||
|
.eq(SurveyTest::getStatus, FlowStatusEnum.APPROVE.getCode())
|
||||||
.eq(SurveyTest::getProblemFlag, 1)
|
.eq(SurveyTest::getProblemFlag, 1)
|
||||||
.ge(StrUtil.isNotBlank(param.getStartTime()), SurveyTest::getCreateTime, DateUtil.beginOfDay(DateUtil.parse(param.getStartTime())))
|
.ge(StrUtil.isNotBlank(param.getStartTime()), SurveyTest::getCreateTime, DateUtil.beginOfDay(DateUtil.parse(param.getStartTime())))
|
||||||
.le(StrUtil.isNotBlank(param.getEndTime()), SurveyTest::getCreateTime, DateUtil.endOfDay(DateUtil.parse(param.getEndTime())))
|
.le(StrUtil.isNotBlank(param.getEndTime()), SurveyTest::getCreateTime, DateUtil.endOfDay(DateUtil.parse(param.getEndTime()))))
|
||||||
|
.or(x->x.eq(SurveyTest::getDealState,0)
|
||||||
|
.in(SurveyTest::getDeptId, deptIds)
|
||||||
|
.eq(SurveyTest::getState, DataStateEnum.ENABLE.getCode())
|
||||||
|
.eq(SurveyTest::getStatus, FlowStatusEnum.APPROVE.getCode())
|
||||||
|
.eq(SurveyTest::getProblemFlag, 1)
|
||||||
|
|
||||||
|
)
|
||||||
);
|
);
|
||||||
//试运行问题单子
|
//试运行问题单子
|
||||||
List<String> runWarningsIds = warningsMapper.selectWarningsIds(deptIds, param);
|
List<String> runWarningsIds = warningsMapper.selectWarningsIds(deptIds, param);
|
||||||
@@ -201,19 +215,31 @@ public class GridDiagramServiceImpl implements GridDiagramService {
|
|||||||
gridDiagramVO.setOnLineNum(lineWarningList.size());
|
gridDiagramVO.setOnLineNum(lineWarningList.size());
|
||||||
//用户投诉问题(添加出来就是有问题的)
|
//用户投诉问题(添加出来就是有问题的)
|
||||||
List<SupervisionUserComplaintPO> userComplaintList = userComplaintPOService.list(new LambdaQueryWrapper<SupervisionUserComplaintPO>()
|
List<SupervisionUserComplaintPO> userComplaintList = userComplaintPOService.list(new LambdaQueryWrapper<SupervisionUserComplaintPO>()
|
||||||
.in(SupervisionUserComplaintPO::getDutyOrgId, ids)
|
.and(x->x.in(SupervisionUserComplaintPO::getDutyOrgId, ids)
|
||||||
.eq(SupervisionUserComplaintPO::getState, 1)
|
.eq(SupervisionUserComplaintPO::getState, 1)
|
||||||
.ge(StrUtil.isNotBlank(baseParam.getStartTime()), SupervisionUserComplaintPO::getCreateTime, DateUtil.beginOfDay(DateUtil.parse(baseParam.getStartTime())))
|
.ge(StrUtil.isNotBlank(baseParam.getStartTime()), SupervisionUserComplaintPO::getCreateTime, DateUtil.beginOfDay(DateUtil.parse(baseParam.getStartTime())))
|
||||||
.le(StrUtil.isNotBlank(baseParam.getEndTime()), SupervisionUserComplaintPO::getCreateTime, DateUtil.endOfDay(DateUtil.parse(baseParam.getEndTime())))
|
.le(StrUtil.isNotBlank(baseParam.getEndTime()), SupervisionUserComplaintPO::getCreateTime, DateUtil.endOfDay(DateUtil.parse(baseParam.getEndTime()))))
|
||||||
|
.or(x->x.eq(SupervisionUserComplaintPO::getDealState,0)
|
||||||
|
.in(SupervisionUserComplaintPO::getDutyOrgId, ids)
|
||||||
|
.eq(SupervisionUserComplaintPO::getState, 1)
|
||||||
|
)
|
||||||
);
|
);
|
||||||
gridDiagramVO.setUserNum(userComplaintList.size());
|
gridDiagramVO.setUserNum(userComplaintList.size());
|
||||||
//计划问题(有问题的单子)
|
//计划问题(有问题的单子)
|
||||||
List<SurveyTest> surveyTestList = surveyTestService.list(new LambdaQueryWrapper<SurveyTest>()
|
List<SurveyTest> surveyTestList = surveyTestService.list(new LambdaQueryWrapper<SurveyTest>()
|
||||||
.in(SurveyTest::getDeptId, ids)
|
.and(x->x.in(SurveyTest::getDeptId, ids)
|
||||||
.eq(SurveyTest::getState, 1)
|
.eq(SurveyTest::getState, DataStateEnum.ENABLE.getCode())
|
||||||
|
.eq(SurveyTest::getStatus, FlowStatusEnum.APPROVE.getCode())
|
||||||
.eq(SurveyTest::getProblemFlag, 1)
|
.eq(SurveyTest::getProblemFlag, 1)
|
||||||
.ge(StrUtil.isNotBlank(baseParam.getStartTime()), SurveyTest::getCreateTime, DateUtil.beginOfDay(DateUtil.parse(baseParam.getStartTime())))
|
.ge(StrUtil.isNotBlank(baseParam.getStartTime()), SurveyTest::getCreateTime, DateUtil.beginOfDay(DateUtil.parse(baseParam.getStartTime())))
|
||||||
.le(StrUtil.isNotBlank(baseParam.getEndTime()), SurveyTest::getCreateTime, DateUtil.endOfDay(DateUtil.parse(baseParam.getEndTime())))
|
.le(StrUtil.isNotBlank(baseParam.getEndTime()), SurveyTest::getCreateTime, DateUtil.endOfDay(DateUtil.parse(baseParam.getEndTime()))))
|
||||||
|
.or(x->x.eq(SurveyTest::getDealState,0)
|
||||||
|
.in(SurveyTest::getDeptId, ids)
|
||||||
|
.eq(SurveyTest::getState, DataStateEnum.ENABLE.getCode())
|
||||||
|
.eq(SurveyTest::getStatus, FlowStatusEnum.APPROVE.getCode())
|
||||||
|
.eq(SurveyTest::getProblemFlag, 1)
|
||||||
|
)
|
||||||
|
|
||||||
);
|
);
|
||||||
gridDiagramVO.setSurveyNum(surveyTestList.size());
|
gridDiagramVO.setSurveyNum(surveyTestList.size());
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user