bug修改

This commit is contained in:
2023-03-06 09:37:11 +08:00
parent d522f2afe9
commit c20ef391d7
10 changed files with 87 additions and 265 deletions

View File

@@ -47,6 +47,9 @@ public class GeneratrixAndPowerStationDTO implements Serializable {
@ApiModelProperty(name = "powerName", value = "变电站名称")
private String powerName;
@ApiModelProperty(name = "orgName", value = "单位名称")
private String orgName;
/**
* 变电站电压等级
*/

View File

@@ -9,6 +9,7 @@
pm.Org_Name AS orgName,
pm.Powerr_Id AS powerId,
pm.Powerr_Name AS powerName,
pm.org_name as orgName,
pg.Generatrix_Id AS generatrixId,
pm.Generatrix_Name AS generatrixName,
pm.Id AS monitorId,
@@ -16,7 +17,7 @@
pg.Scale AS generatrixVoltageLevel
FROM
pms_generatrix_wire AS pg
LEFT JOIN pms_monitor AS pm ON pm.Generatrix_wire_Id = pg.id
LEFT JOIN pms_monitor AS pm ON pm.line_id = pg.id
WHERE
pm.`Status` = 1
AND pg.`Status` =1
@@ -32,7 +33,7 @@
</foreach>
</if>
<if test="pmsGeneratrixParam.generatrixName != null and pmsGeneratrixParam.generatrixName != ''">
AND pm.Generatrix_wire_Name LIKE CONCAT('%',#{pmsGeneratrixParam.generatrixName},'%')
AND pm.line_nmae LIKE CONCAT('%',#{pmsGeneratrixParam.generatrixName},'%')
</if>
</select>
@@ -76,6 +77,7 @@
pg.Scale AS generatrixVoltageLevel,
pss.Power_Id AS powerId,
pss.Power_Name AS powerName,
pss.org_name,
pss.Voltage_Level AS powerVoltageLevel
FROM
pms_generatrix_wire AS pg

View File

@@ -2,9 +2,13 @@ package com.njcn.device.pms.service.majornetwork.impl;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.njcn.common.pojo.dto.SimpleDTO;
import com.njcn.common.pojo.enums.common.DataStateEnum;
import com.njcn.device.pms.api.PmsGeneralDeviceInfoClient;
import com.njcn.device.pms.mapper.majornetwork.MonitorMapper;
import com.njcn.device.pms.pojo.dto.PmsGeneralDeviceDTO;
import com.njcn.device.pms.pojo.dto.PwPmsMonitorDTO;
import com.njcn.device.pms.pojo.param.PmsDeviceInfoParam;
import com.njcn.device.pms.pojo.param.PmsSummaryStatisticsParam;
import com.njcn.device.pms.pojo.param.PwPmsMonitorParam;
import com.njcn.device.pms.pojo.po.Monitor;
@@ -34,47 +38,38 @@ public class PmsSummaryStatisticsServiceImpl implements PmsSummaryStatisticsServ
private final DeptFeignClient deptFeignClient;
private final MonitorMapper monitorMapper;
private final IPwMonitorService iPwMonitorService;
private final PmsGeneralDeviceInfoClient pmsGeneralDeviceInfoClient;
@Override
public List<PmsSummaryStatisticsVO.SummaryVO> getSeparate(PmsSummaryStatisticsParam param) {
List<PmsSummaryStatisticsVO.SummaryVO> vos = new ArrayList<>();
//获取当前部门下的子部门
List<DeptDTO> data = deptFeignClient.getDeptDescendantIndexes(param.getOrgId(), WebUtil.filterDeptType()).getData();
List<String> deptIds = data.stream().map(DeptDTO::getCode).collect(Collectors.toList());
Map<String, String> deptMap = data.stream().collect(Collectors.toMap(DeptDTO::getCode, DeptDTO::getName));
//获得部门下面的数据集合
List<Monitor> monitors = monitorMapper.selectList(new LambdaQueryWrapper<Monitor>()
.in(CollectionUtil.isNotEmpty(deptIds), Monitor::getOrgId, deptIds)
.in(CollectionUtil.isNotEmpty(param.getMonitorTags()), Monitor::getMonitorTag, param.getMonitorTags())
.eq(Monitor::getStatus, DataStateEnum.ENABLE.getCode())
);
if (param.getType().equals(0)) {
//根据部门进行分组统计当前部门下有多少监测点
Map<String, List<Monitor>> monitorsMonitorCount = monitors.stream().collect(Collectors.groupingBy(Monitor::getOrgId));
//根据部门统计终端数量(数据去重)
ArrayList<Monitor> monitorsCount = monitors.stream().collect(Collectors.collectingAndThen
(Collectors.toCollection(() ->
new TreeSet<>(Comparator.comparing(o -> o.getOrgId() + ";" + o.getTerminalId()))), ArrayList::new));
Map<String, Long> monitorsTerminalCount = monitorsCount.stream().collect(Collectors.groupingBy(Monitor::getOrgId, Collectors.counting()));
deptMap.forEach((key, value) -> {
PmsDeviceInfoParam pmsDeviceInfoParam = new PmsDeviceInfoParam();
pmsDeviceInfoParam.setDeptIndex(param.getOrgId());
pmsDeviceInfoParam.setStatisticalType(new SimpleDTO());
List<PmsGeneralDeviceDTO> deptData = pmsGeneralDeviceInfoClient.getPmsDeviceInfoWithInOrg(pmsDeviceInfoParam).getData();
deptData.forEach(item -> {
PmsSummaryStatisticsVO.SummaryVO vo = new PmsSummaryStatisticsVO.SummaryVO();
if (monitorsMonitorCount.containsKey(key)) {
vo.setName(value);
vo.setMonitorCount(monitorsMonitorCount.get(key).size());
vo.setTerminalCount(Math.toIntExact(monitorsTerminalCount.get(key)));
} else {
vo.setName(value);
//监测点数量
vo.setMonitorCount(0);
//设备数量
vo.setTerminalCount(0);
}
vo.setName(item.getName());
vo.setMonitorCount(item.getMonitorIdList().size());
vo.setTerminalCount(item.getTerminalIdList().size());
vos.add(vo);
});
} else {
//获取当前部门下的子部门
List<DeptDTO> data = deptFeignClient.getDepSonDetailByDeptId(param.getOrgId()).getData();
List<String> deptIds = data.stream().map(DeptDTO::getCode).collect(Collectors.toList());
//获得部门下面的数据集合
List<Monitor> monitors = monitorMapper.selectList(new LambdaQueryWrapper<Monitor>()
.in(CollectionUtil.isNotEmpty(deptIds), Monitor::getOrgId, deptIds)
.in(CollectionUtil.isNotEmpty(param.getMonitorTags()), Monitor::getMonitorTag, param.getMonitorTags())
.eq(Monitor::getStatus, DataStateEnum.ENABLE.getCode())
);
//根据干扰源类型进行分组统计当前部门下有多少监测点
Map<String, List<Monitor>> monitorsMonitorCount = monitors.stream().collect(Collectors.groupingBy(Monitor::getMonitorTag));
//根据部门统计终端数量

View File

@@ -68,50 +68,61 @@ public class RStatBusbarHarmonicServiceImpl extends ServiceImpl<RStatBusbarHarmo
if (CollUtil.isEmpty(dto.getGeneratrixIdList())) {
continue;
}
PmsGeneratrixParam pmsGeneratrixParam = new PmsGeneratrixParam();
pmsGeneratrixParam.setGeneratrixIds(dto.getGeneratrixIdList());
pmsGeneratrixParam.setPowerStationVoltageLevel(param.getVoltageLevel());
List<GeneratrixAndPowerStationDTO> dtoS = generatrixWireService.getGeneratrixAndPowerStationInfo(pmsGeneratrixParam);
// 通过母线id查询变电站背景谐波年表
List<RStatBusbarHarmonicYPO> info = rStatBusbarHarmonicMapper.getRStatBusbarHarmonic(param.getStartTime(), param.getEndTime(), dto.getGeneratrixIdList());
for (RStatBusbarHarmonicYPO po : info) {
for (GeneratrixAndPowerStationDTO generatrixAndPowerStationDTO : dtoS) {
boolean flag = false;
RStatBusbarHarmonicYVO vo = new RStatBusbarHarmonicYVO();
vo.setDeptId(dto.getIndex());
vo.setDeptName(dto.getName());
vo.setBusbarId(po.getBusbarId());
vo.setDataDate(po.getDataDate());
vo.setVEffectiveMax(po.getVEffectiveMax());
vo.setVEffectiveMin(po.getVEffectiveMin());
vo.setVEffectiveAvg(po.getVEffectiveAvg());
vo.setVEffective95(po.getVEffective95());
vo.setVThdMax(po.getVThdMax());
vo.setVThdMin(po.getVThdMin());
vo.setVThdAvg(po.getVThdAvg());
vo.setVThd95(po.getVThd95());
vo.setUnbalanceMax(po.getUnbalanceMax());
vo.setUnbalanceMin(po.getUnbalanceMin());
vo.setUnbalanceAvg(po.getUnbalanceAvg());
vo.setUnbalance95(po.getUnbalance95());
vo.setFlickerMax(po.getFlickerMax());
vo.setFlickerMin(po.getFlickerMin());
vo.setFlickerAvg(po.getFlickerAvg());
vo.setFlicker95(po.getFlicker95());
vo.setBusbarName(generatrixAndPowerStationDTO.getGeneratrixName());
vo.setSubId(generatrixAndPowerStationDTO.getPowerId());
vo.setSubName(generatrixAndPowerStationDTO.getPowerName());
vo.setSubVoltageLevel(generatrixAndPowerStationDTO.getPowerVoltageLevel());
vo.setDeptName(generatrixAndPowerStationDTO.getOrgName());
for (RStatBusbarHarmonicYPO po : info) {
if (generatrixAndPowerStationDTO.getGeneratrixId().equals(po.getBusbarId())){
flag = true;
vo.setBusbarId(po.getBusbarId());
vo.setDataDate(po.getDataDate());
vo.setVEffectiveMax(po.getVEffectiveMax());
vo.setVEffectiveMin(po.getVEffectiveMin());
vo.setVEffectiveAvg(po.getVEffectiveAvg());
vo.setVEffective95(po.getVEffective95());
vo.setVThdMax(po.getVThdMax());
vo.setVThdMin(po.getVThdMin());
vo.setVThdAvg(po.getVThdAvg());
vo.setVThd95(po.getVThd95());
vo.setUnbalanceMax(po.getUnbalanceMax());
vo.setUnbalanceMin(po.getUnbalanceMin());
vo.setUnbalanceAvg(po.getUnbalanceAvg());
vo.setUnbalance95(po.getUnbalance95());
vo.setFlickerMax(po.getFlickerMax());
vo.setFlickerMin(po.getFlickerMin());
vo.setFlickerAvg(po.getFlickerAvg());
vo.setFlicker95(po.getFlicker95());
break;
}
}
if(!flag){
}
result.add(vo);
}
}
// 取出母线id
List<String> busbarIds = result.stream().map(RStatBusbarHarmonicYVO::getBusbarId).collect(Collectors.toList());
PmsGeneratrixParam pmsGeneratrixParam = new PmsGeneratrixParam();
pmsGeneratrixParam.setGeneratrixIds(busbarIds);
List<GeneratrixAndPowerStationDTO> dtoS = generatrixWireService.getGeneratrixAndPowerStationInfo(pmsGeneratrixParam);
//List<String> busbarIds = result.stream().map(RStatBusbarHarmonicYVO::getBusbarId).collect(Collectors.toList());
for (GeneratrixAndPowerStationDTO dto : dtoS) {
for (RStatBusbarHarmonicYVO vo : result) {
if (dto.getGeneratrixId().equals(vo.getBusbarId())){
vo.setBusbarName(dto.getGeneratrixName());
vo.setSubId(dto.getPowerId());
vo.setSubName(dto.getPowerName());
vo.setSubVoltageLevel(dto.getPowerVoltageLevel());
}
}
}
return result;
}