单位暂态算法调整

This commit is contained in:
wr
2024-02-23 15:21:48 +08:00
parent dcdc23feea
commit ea6b951b11
9 changed files with 62 additions and 30 deletions

View File

@@ -26,6 +26,7 @@ public interface PwRStatOrgClassifiedMapper {
* @return 配网区域暂态事件分类统计(年)
*/
List<RStatEventOrgPO> getYearInfo(@Param("deptIdList") List<String> deptIdList,
@Param("ids") List<String> ids,
@Param("startTime") String startTime,
@Param("endTime") String endTime,
@Param("distributionPoint")String distributionPoint);
@@ -40,6 +41,7 @@ public interface PwRStatOrgClassifiedMapper {
* @return 配网区域暂态事件分类统计(月)
*/
List<RStatEventOrgPO> getQuarterInfo(@Param("deptIdList") List<String> deptIdList,
@Param("ids") List<String> ids,
@Param("startTime") String startTime,
@Param("endTime") String endTime,
@Param("distributionPoint") String distributionPoint);
@@ -54,6 +56,7 @@ public interface PwRStatOrgClassifiedMapper {
* @return 配网区域暂态事件分类统计(月)
*/
List<RStatEventOrgPO> getMonthInfo(@Param("deptIdList") List<String> deptIdList,
@Param("ids") List<String> ids,
@Param("startTime") String startTime,
@Param("endTime") String endTime,
@Param("distributionPoint") String distributionPoint);

View File

@@ -24,6 +24,12 @@
<sql id="query_where">
rso.data_type = #{distributionPoint}
AND rseo.data_type = #{distributionPoint}
<if test="ids != null and ids.size > 0">
AND rso.measurement_type_class IN
<foreach collection='ids' item='item' index="index" open='(' separator=',' close=')'>
#{item}
</foreach>
</if>
AND rso.org_no IN
<foreach collection="deptIdList" item="item" open="(" close=")" separator=",">
#{item}

View File

@@ -148,7 +148,12 @@ public class PwRStatOrgServiceImpl implements PwRStatOrgService {
@Override
public List<PwRStatEventOrgVO> getPwRStatOrgClassified(PwUniversalFrontEndParam param) {
List<DeptDTO> deptDTOList = deptFeignClient.getDepSonDetailByDeptId(param.getId()).getData();
if(CollUtil.isEmpty(param.getMonitorSort())){
//监测点对象标签
List<DictData> dataList = dicDataFeignClient.getDicDataByTypeCode(
DicDataTypeEnum.MONITORING_LABELS.getCode()).getData();
param.setMonitorSort(dataList.stream().map(DictData::getId).collect(Collectors.toList()));
}
// 创建集合封装返回数据
List<PwRStatEventOrgVO> result = new ArrayList<>();
// 取出单位id
@@ -163,6 +168,7 @@ public class PwRStatOrgServiceImpl implements PwRStatOrgService {
case BizParamConstant.STAT_BIZ_YEAR:
rStatEventOrgVOList = pwRStatOrgClassifiedMapper.getYearInfo(
deptIdList,
param.getMonitorSort(),
param.getStartTime(),
param.getEndTime(),
distributionPoint);
@@ -171,6 +177,7 @@ public class PwRStatOrgServiceImpl implements PwRStatOrgService {
case BizParamConstant.STAT_BIZ_QUARTER:
rStatEventOrgVOList = pwRStatOrgClassifiedMapper.getQuarterInfo(
deptIdList,
param.getMonitorSort(),
param.getStartTime(),
param.getEndTime(),
distributionPoint);
@@ -179,6 +186,7 @@ public class PwRStatOrgServiceImpl implements PwRStatOrgService {
case BizParamConstant.STAT_BIZ_MONTH:
rStatEventOrgVOList = pwRStatOrgClassifiedMapper.getMonthInfo(
deptIdList,
param.getMonitorSort(),
param.getStartTime(),
param.getEndTime(),
distributionPoint);

View File

@@ -140,6 +140,12 @@ public class StatisticsOfTransientIndicatorssServiceImpl implements StatisticsOf
if (CollectionUtil.isEmpty(deptDTOList)) {
return Collections.emptyList();
}
if(CollUtil.isEmpty(param.getMonitorSort())){
//监测点对象标签
List<DictData> dataList = dicDataFeignClient.getDicDataByTypeCode(
DicDataTypeEnum.MONITORING_LABELS.getCode()).getData();
param.setMonitorSort(dataList.stream().map(DictData::getId).collect(Collectors.toList()));
}
// 取出单位code
List<String> deptCode = deptDTOList.stream().map(DeptDTO::getCode).collect(Collectors.toList());
if (CollectionUtil.isEmpty(deptCode)) {

View File

@@ -45,7 +45,7 @@
TRUNCATE( c.average_over_day, 2)as averageOverDay
FROM
r_stat_harmonic_q c
RIGHT JOIN r_stat_org_q AS rso ON rso.org_no = c.org_no
RIGHT JOIN r_stat_org_q AS rso ON rso.org_no = c.org_no and c.measurement_type_class = rso.measurement_type_class
<where>
c.data_Type=#{dataType} and rso.data_Type=#{dataType}
<if test="param != null and param.ids != null and param.ids.size > 0">

View File

@@ -45,7 +45,7 @@
c.average_over_day
FROM
r_stat_harmonic_y c
RIGHT JOIN r_stat_org_y AS rso ON rso.org_no = c.org_no
RIGHT JOIN r_stat_org_y AS rso ON rso.org_no = c.org_no and c.measurement_type_class = rso.measurement_type_class
<where>
c.data_Type=#{dataType} and rso.data_Type=#{dataType}
<if test="param != null and param.ids != null and param.ids.size > 0">

View File

@@ -253,7 +253,12 @@ public class PwRStatOrgServiceImpl extends ServiceImpl<PwRStatOrgMapper, RStatOr
//获取当前部门下所有部门信息
List<DeptDTO> deptList = deptFeignClient.getDeptDescendantIndexes(param.getId(), WebUtil.filterDeptType()).getData();
List<DeptDTO> deptDTOList = DeptUtil.getDeptSubsetVOList(deptList, param.getId());
if(CollUtil.isEmpty(param.getIds())){
//监测点对象标签
List<DictData> dataList = dicDataFeignClient.getDicDataByTypeCode(
DicDataTypeEnum.MONITORING_LABELS.getCode()).getData();
param.setIds(dataList.stream().map(DictData::getId).collect(Collectors.toList()));
}
Map<String, DeptDTO> deptMap = deptDTOList.stream().collect(Collectors.toMap(DeptDTO::getCode, Function.identity()));
List<String> deptIds = deptDTOList.stream().map(DeptDTO::getCode).collect(Collectors.toList());
//初始化

View File

@@ -130,7 +130,12 @@ public class RStatOrgYServiceImpl extends ServiceImpl<RStatOrgYMapper, RStatOrgY
// 获取当前用户的部门的子部门信息
List<DeptDTO> deptList = deptFeignClient.getDeptDescendantIndexes(param.getId(), WebUtil.filterDeptType()).getData();
List<DeptDTO> data = DeptUtil.getDeptSubsetVOList(deptList, param.getId());
if(CollUtil.isEmpty(param.getIds())){
//监测点对象标签
List<DictData> dataList = dicDataFeignClient.getDicDataByTypeCode(
DicDataTypeEnum.MONITORING_LABELS.getCode()).getData();
param.setIds(dataList.stream().map(DictData::getId).collect(Collectors.toList()));
}
List<RStatSubstationOrg2VO.MonitorType> info = new ArrayList<>();
if (CollectionUtil.isNotEmpty(data)) {
// 根据暂态指标枚举查询暂态指标

View File

@@ -140,10 +140,10 @@ public class RStatEventServiceImpl implements RStatEventService {
rStatEventDPO.setEventCount(transientStatisData.get(1));
rStatEventDPO.setDataType(dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId());
if (Objects.isNull(rStatOrgDPO)) {
rStatEventDPO.setEventMeasurementRatio(1.00f);
rStatEventDPO.setEventMeasurementRatio(0.00f);
} else {
if (rStatOrgDPO.getEffectiveMeasurement() == 0) {
rStatEventDPO.setEventMeasurementRatio(1.00f);
rStatEventDPO.setEventMeasurementRatio(0.00f);
} else {
String value = df.format(rStatEventDPO.getEventMeasurement() / rStatOrgDPO.getEffectiveMeasurement().floatValue());
rStatEventDPO.setEventMeasurementRatio(Float.parseFloat(value));
@@ -194,10 +194,10 @@ public class RStatEventServiceImpl implements RStatEventService {
rStatEventDPO.setEventCount(transientStatisData.get(1));
rStatEventDPO.setDataType(dataTypeMap.get(DicDataEnum.DISTRIBUTION_POINT.getCode()).getId());
if (Objects.isNull(rStatOrgDPO)) {
rStatEventDPO.setEventMeasurementRatio(1.00f);
rStatEventDPO.setEventMeasurementRatio(0.00f);
} else {
if (rStatOrgDPO.getEffectiveMeasurement() == 0) {
rStatEventDPO.setEventMeasurementRatio(1.00f);
rStatEventDPO.setEventMeasurementRatio(0.00f);
} else {
String value = df.format(rStatEventDPO.getEventMeasurement() / rStatOrgDPO.getEffectiveMeasurement().floatValue());
rStatEventDPO.setEventMeasurementRatio(Float.parseFloat(value));
@@ -274,10 +274,9 @@ public class RStatEventServiceImpl implements RStatEventService {
eq("data_type", dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId());
List<RStatEventDPO> rStatEventDPO = rStatEventDPOMapper.selectList(rStatEventDPOQueryWrapper);
//求各个类型的平均值
Map<String, Double> avgEM = rStatEventDPO.stream()
.collect(Collectors.groupingBy(RStatEventDPO::getEventType, Collectors.averagingInt(RStatEventDPO::getEventMeasurement)));
.collect(Collectors.groupingBy(RStatEventDPO::getEventType, Collectors.averagingDouble(RStatEventDPO::getEventMeasurement)));
//event_measurement的和
Map<String, Integer> sumEM = rStatEventDPO.stream()
@@ -314,16 +313,16 @@ public class RStatEventServiceImpl implements RStatEventService {
rStatEventMPO.setDataType(dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId());
if (sumEM.get(dictData.getId()) == 0) {
rStatEventMPO.setEventFreq(1.00f);
rStatEventMPO.setEventFreq(0.00f);
} else {
String value = df.format(sumEC.get(dictData.getId()) / sumEM.get(dictData.getId()).floatValue());
rStatEventMPO.setEventFreq(Float.parseFloat(value));
}
if (Objects.isNull(rStatOrgMPO)) {
rStatEventMPO.setEventMeasurementRatioAccrued(1.00f);
rStatEventMPO.setEventMeasurementRatioAccrued(0.00f);
} else {
if (rStatOrgMPO.getEffectiveMeasurementAccrued() == 0) {
rStatEventMPO.setEventMeasurementRatioAccrued(1.00f);
rStatEventMPO.setEventMeasurementRatioAccrued(0.00f);
} else {
String value = df.format(statisData / rStatOrgMPO.getEffectiveMeasurementAccrued().floatValue());
rStatEventMPO.setEventMeasurementRatioAccrued(Float.parseFloat(value));
@@ -367,7 +366,7 @@ public class RStatEventServiceImpl implements RStatEventService {
//求各个类型的平均值
Map<String, Double> avgEM = rStatEventDPO.stream()
.collect(Collectors.groupingBy(RStatEventDPO::getEventType, Collectors.averagingInt(RStatEventDPO::getEventMeasurement)));
.collect(Collectors.groupingBy(RStatEventDPO::getEventType, Collectors.averagingDouble(RStatEventDPO::getEventMeasurement)));
//event_measurement的和
Map<String, Integer> sumEM = rStatEventDPO.stream()
@@ -404,16 +403,16 @@ public class RStatEventServiceImpl implements RStatEventService {
rStatEventMPO.setDataType(dataTypeMap.get(DicDataEnum.DISTRIBUTION_POINT.getCode()).getId());
if (sumEM.get(dictData.getId()) == 0) {
rStatEventMPO.setEventFreq(1.00f);
rStatEventMPO.setEventFreq(0.00f);
} else {
String value = df.format(sumEC.get(dictData.getId()) / sumEM.get(dictData.getId()).floatValue());
rStatEventMPO.setEventFreq(Float.parseFloat(value));
}
if (Objects.isNull(rStatOrgMPO)) {
rStatEventMPO.setEventMeasurementRatioAccrued(1.00f);
rStatEventMPO.setEventMeasurementRatioAccrued(0.00f);
} else {
if (rStatOrgMPO.getEffectiveMeasurementAccrued() == 0) {
rStatEventMPO.setEventMeasurementRatioAccrued(1.00f);
rStatEventMPO.setEventMeasurementRatioAccrued(0.00f);
} else {
String value = df.format(statisData / rStatOrgMPO.getEffectiveMeasurementAccrued().floatValue());
rStatEventMPO.setEventMeasurementRatioAccrued(Float.parseFloat(value));
@@ -547,16 +546,16 @@ public class RStatEventServiceImpl implements RStatEventService {
rStatEventQPO.setDataType(dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId());
if (sumEM.get(dictData.getId()) == 0) {
rStatEventQPO.setEventFreq(1.00f);
rStatEventQPO.setEventFreq(0.00f);
} else {
String value = df.format(sumEC.get(dictData.getId()) / sumEM.get(dictData.getId()).floatValue());
rStatEventQPO.setEventFreq(Float.parseFloat(value));
}
if (Objects.isNull(rStatOrgQPO)) {
rStatEventQPO.setEventMeasurementRatioAccrued(1.00f);
rStatEventQPO.setEventMeasurementRatioAccrued(0.00f);
} else {
if (rStatOrgQPO.getEffectiveMeasurementAccrued() == 0) {
rStatEventQPO.setEventMeasurementRatioAccrued(1.00f);
rStatEventQPO.setEventMeasurementRatioAccrued(0.00f);
} else {
String value = df.format(statisData / rStatOrgQPO.getEffectiveMeasurementAccrued().floatValue());
rStatEventQPO.setEventMeasurementRatioAccrued(Float.parseFloat(value));
@@ -651,16 +650,16 @@ public class RStatEventServiceImpl implements RStatEventService {
rStatEventQPO.setDataType(dataTypeMap.get(DicDataEnum.DISTRIBUTION_POINT.getCode()).getId());
if (sumEM.get(dictData.getId()) == 0) {
rStatEventQPO.setEventFreq(1.00f);
rStatEventQPO.setEventFreq(0.00f);
} else {
String value = df.format(sumEC.get(dictData.getId()) / sumEM.get(dictData.getId()).floatValue());
rStatEventQPO.setEventFreq(Float.parseFloat(value));
}
if (Objects.isNull(rStatOrgQPO)) {
rStatEventQPO.setEventMeasurementRatioAccrued(1.00f);
rStatEventQPO.setEventMeasurementRatioAccrued(0.00f);
} else {
if (rStatOrgQPO.getEffectiveMeasurementAccrued() == 0) {
rStatEventQPO.setEventMeasurementRatioAccrued(1.00f);
rStatEventQPO.setEventMeasurementRatioAccrued(0.00f);
} else {
String value = df.format(statisData / rStatOrgQPO.getEffectiveMeasurementAccrued().floatValue());
rStatEventQPO.setEventMeasurementRatioAccrued(Float.parseFloat(value));
@@ -794,16 +793,16 @@ public class RStatEventServiceImpl implements RStatEventService {
rStatEventYPO.setDataType(dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId());
if (sumEM.get(dictData.getId()) == 0) {
rStatEventYPO.setEventFreq(1.00f);
rStatEventYPO.setEventFreq(0.00f);
} else {
String value = df.format(sumEC.get(dictData.getId()) / sumEM.get(dictData.getId()).floatValue());
rStatEventYPO.setEventFreq(Float.parseFloat(value));
}
if (Objects.isNull(rStatOrgYPO)) {
rStatEventYPO.setEventMeasurementRatioAccrued(1.00f);
rStatEventYPO.setEventMeasurementRatioAccrued(0.00f);
} else {
if (rStatOrgYPO.getEffectiveMeasurementAccrued() == 0) {
rStatEventYPO.setEventMeasurementRatioAccrued(1.00f);
rStatEventYPO.setEventMeasurementRatioAccrued(0.00f);
} else {
String value = df.format(statisData / rStatOrgYPO.getEffectiveMeasurementAccrued().floatValue());
rStatEventYPO.setEventMeasurementRatioAccrued(Float.parseFloat(value));
@@ -899,16 +898,16 @@ public class RStatEventServiceImpl implements RStatEventService {
rStatEventYPO.setDataType(dataTypeMap.get(DicDataEnum.DISTRIBUTION_POINT.getCode()).getId());
if (sumEM.get(dictData.getId()) == 0) {
rStatEventYPO.setEventFreq(1.00f);
rStatEventYPO.setEventFreq(0.00f);
} else {
String value = df.format(sumEC.get(dictData.getId()) / sumEM.get(dictData.getId()).floatValue());
rStatEventYPO.setEventFreq(Float.parseFloat(value));
}
if (Objects.isNull(rStatOrgYPO)) {
rStatEventYPO.setEventMeasurementRatioAccrued(1.00f);
rStatEventYPO.setEventMeasurementRatioAccrued(0.00f);
} else {
if (rStatOrgYPO.getEffectiveMeasurementAccrued() == 0) {
rStatEventYPO.setEventMeasurementRatioAccrued(1.00f);
rStatEventYPO.setEventMeasurementRatioAccrued(0.00f);
} else {
String value = df.format(statisData / rStatOrgYPO.getEffectiveMeasurementAccrued().floatValue());
rStatEventYPO.setEventMeasurementRatioAccrued(Float.parseFloat(value));