1.国网上送统计四个算法修改

This commit is contained in:
wr
2024-05-11 16:44:05 +08:00
parent b0553d9c32
commit 1e9644c8a3
12 changed files with 612 additions and 260 deletions

View File

@@ -268,7 +268,8 @@ public class IRDimBusGlobalDController extends BaseController {
baseParam.setFullChain(false); baseParam.setFullChain(false);
baseParam.setRepair(false); baseParam.setRepair(false);
baseParam.setDataDate(endDate); baseParam.setDataDate(endDate);
set.add("r_upload_substation_statistical_data_m"); // set.add("r_upload_substation_statistical_data_m");
set.add("r_upload_substation_statistical_data_y");
baseParam.setTagNames(set); baseParam.setTagNames(set);
liteFlowFeignClient.substationExecutor(baseParam); liteFlowFeignClient.substationExecutor(baseParam);
}else if("3".equals(type)){ }else if("3".equals(type)){

View File

@@ -1,18 +0,0 @@
package com.njcn.prepare.harmonic.mapper.mysql.line;
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
import com.njcn.harmonic.pojo.po.upload.PmsRunStatisticD;
/**
* <p>
* Mapper 接口
* </p>
*
* @author cdf
* @since 2024-04-17
*/
public interface PmsRunStatisticMapper extends MppBaseMapper<PmsRunStatisticD> {
}

View File

@@ -1,5 +1,6 @@
package com.njcn.prepare.harmonic.service.mysql.Impl.area; package com.njcn.prepare.harmonic.service.mysql.Impl.area;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateTime;
@@ -13,11 +14,9 @@ import com.njcn.prepare.harmonic.mapper.mysql.area.RStatOrgDMapper;
import com.njcn.prepare.harmonic.mapper.mysql.area.RStatOrgMMapper; import com.njcn.prepare.harmonic.mapper.mysql.area.RStatOrgMMapper;
import com.njcn.prepare.harmonic.mapper.mysql.area.RStatOrgQMapper; import com.njcn.prepare.harmonic.mapper.mysql.area.RStatOrgQMapper;
import com.njcn.prepare.harmonic.mapper.mysql.area.RStatOrgYMapper; import com.njcn.prepare.harmonic.mapper.mysql.area.RStatOrgYMapper;
import com.njcn.prepare.harmonic.mapper.mysql.line.RMpPartHarmonicDetailDMapper; import com.njcn.prepare.harmonic.mapper.mysql.line.*;
import com.njcn.prepare.harmonic.mapper.mysql.line.RMpPartHarmonicDetailMMapper;
import com.njcn.prepare.harmonic.mapper.mysql.line.RMpSurplusHarmonicDetailDMapper;
import com.njcn.prepare.harmonic.mapper.mysql.line.RMpSurplusHarmonicDetailMMapper;
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam; import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
import com.njcn.prepare.harmonic.pojo.mysql.ROperatingMonitorDPO;
import com.njcn.prepare.harmonic.pojo.mysql.po.*; import com.njcn.prepare.harmonic.pojo.mysql.po.*;
import com.njcn.prepare.harmonic.service.mysql.area.*; import com.njcn.prepare.harmonic.service.mysql.area.*;
import com.njcn.prepare.harmonic.utils.PublicUtil; import com.njcn.prepare.harmonic.utils.PublicUtil;
@@ -65,20 +64,21 @@ public class RStatHarmonicServiceImpl implements RStatHarmonicService {
private final RStatOrgMMapper rStatOrgMMapper; private final RStatOrgMMapper rStatOrgMMapper;
private final RStatOrgQMapper rStatOrgQMapper; private final RStatOrgQMapper rStatOrgQMapper;
private final RStatOrgYMapper rStatOrgYMapper; private final RStatOrgYMapper rStatOrgYMapper;
private final ROperatingMonitorDMapper rOperatingMonitorDMapper;
private final DicDataFeignClient dicDataFeignClient;
private final
DicDataFeignClient dicDataFeignClient;
@Override @Override
public void handleDay(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam) { public void handleDay(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam) {
List<RStatHarmonicDPO> rStatHarmonicDPOList = new ArrayList<>(); List<RStatHarmonicDPO> rStatHarmonicDPOList = new ArrayList<>();
LocalDate localDate = LocalDateTimeUtil.parseDate(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN); LocalDate localDate = LocalDateTimeUtil.parseDate(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN);
/*获取监测点类型类型*/ /*获取监测点类型类型*/
QueryWrapper<ROperatingMonitorDPO> rOperatingMonitorDPOQueryWrapper = new QueryWrapper<>();
QueryWrapper<RMpPartHarmonicDetailD> queryWrapper = new QueryWrapper<>(); QueryWrapper<RMpPartHarmonicDetailD> queryWrapper = new QueryWrapper<>();
QueryWrapper<RMpSurplusHarmonicDetailD> rMpSurplusHarmonicDetailDQueryWrapper = new QueryWrapper<>(); QueryWrapper<RMpSurplusHarmonicDetailD> rMpSurplusHarmonicDetailDQueryWrapper = new QueryWrapper<>();
QueryWrapper<RStatOrgDPO> rStatOrgDPOQueryWrapper = new QueryWrapper<>(); QueryWrapper<RStatOrgDPO> rStatOrgDPOQueryWrapper = new QueryWrapper<>();
@@ -104,16 +104,24 @@ public class RStatHarmonicServiceImpl implements RStatHarmonicService {
Map<String, List<LineDevGetDTO>> collect = lineBaseList.stream().collect(Collectors.groupingBy(LineDevGetDTO::getLineTag)); Map<String, List<LineDevGetDTO>> collect = lineBaseList.stream().collect(Collectors.groupingBy(LineDevGetDTO::getLineTag));
collect.forEach((k, v)->{ collect.forEach((k, v)->{
List<String> collect1 = v.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList()); List<String> collect1 = v.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList());
/*todo 取有效监测点进行匹配*/
rOperatingMonitorDPOQueryWrapper.clear();
rOperatingMonitorDPOQueryWrapper.select("measurement_point_id").
in("measurement_point_id",collect1).
gt("effective_minute_count",0).
eq("data_date",localDate);
List<ROperatingMonitorDPO> rOperatingMonitorDPOS = rOperatingMonitorDMapper.selectList(rOperatingMonitorDPOQueryWrapper);
List<String> effLineIds = rOperatingMonitorDPOS.stream().map(ROperatingMonitorDPO::getMeasurementPointId).distinct().collect(Collectors.toList());
queryWrapper.clear(); queryWrapper.clear();
queryWrapper.select("is_freq","is_v_dev","is_v","is_i","is_unbalance","is_i_neg"). queryWrapper.select("is_freq","is_v_dev","is_v","is_i","is_unbalance","is_i_neg").
in("measurement_point_id",collect1). in("measurement_point_id",effLineIds).
eq("data_date",localDate); eq("data_date",localDate);
List<RMpPartHarmonicDetailD> rMpPartHarmonicDetailDS = rMpPartHarmonicDetailDMapper.selectList(queryWrapper); List<RMpPartHarmonicDetailD> rMpPartHarmonicDetailDS = rMpPartHarmonicDetailDMapper.selectList(queryWrapper);
rMpSurplusHarmonicDetailDQueryWrapper.clear(); rMpSurplusHarmonicDetailDQueryWrapper.clear();
rMpSurplusHarmonicDetailDQueryWrapper.select("is_flicker","is_inuharm"). rMpSurplusHarmonicDetailDQueryWrapper.select("is_flicker","is_inuharm").
in("measurement_point_id",collect1). in("measurement_point_id",effLineIds).
eq("data_date",localDate); eq("data_date",localDate);
List<RMpSurplusHarmonicDetailD> rMpSurplusHarmonicDetailDS = rMpSurplusHarmonicDetailDMapper.selectList(rMpSurplusHarmonicDetailDQueryWrapper); List<RMpSurplusHarmonicDetailD> rMpSurplusHarmonicDetailDS = rMpSurplusHarmonicDetailDMapper.selectList(rMpSurplusHarmonicDetailDQueryWrapper);
@@ -213,7 +221,7 @@ public class RStatHarmonicServiceImpl implements RStatHarmonicService {
DateTime end = DateUtil.endOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)); DateTime end = DateUtil.endOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN));
LocalDate localDate = LocalDateTimeUtil.parseDate( DateUtil.format(begin, DatePattern.NORM_DATE_PATTERN), DatePattern.NORM_DATE_PATTERN); LocalDate localDate = LocalDateTimeUtil.parseDate( DateUtil.format(begin, DatePattern.NORM_DATE_PATTERN), DatePattern.NORM_DATE_PATTERN);
QueryWrapper<ROperatingMonitorDPO> rOperatingMonitorDPOQueryWrapper = new QueryWrapper<>();
QueryWrapper<RMpPartHarmonicDetailM> queryWrapper = new QueryWrapper<>(); QueryWrapper<RMpPartHarmonicDetailM> queryWrapper = new QueryWrapper<>();
QueryWrapper<RMpSurplusHarmonicDetailM> rMpSurplusHarmonicDetailMQueryWrapper = new QueryWrapper<>(); QueryWrapper<RMpSurplusHarmonicDetailM> rMpSurplusHarmonicDetailMQueryWrapper = new QueryWrapper<>();
QueryWrapper<RStatOrgMPO> rStatOrgMPOQueryWrapper = new QueryWrapper<>(); QueryWrapper<RStatOrgMPO> rStatOrgMPOQueryWrapper = new QueryWrapper<>();
@@ -241,16 +249,24 @@ public class RStatHarmonicServiceImpl implements RStatHarmonicService {
Map<String, List<LineDevGetDTO>> collect = lineBaseList.stream().collect(Collectors.groupingBy(LineDevGetDTO::getLineTag)); Map<String, List<LineDevGetDTO>> collect = lineBaseList.stream().collect(Collectors.groupingBy(LineDevGetDTO::getLineTag));
collect.forEach((k, v) -> { collect.forEach((k, v) -> {
List<String> collect1 = v.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList()); List<String> collect1 = v.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList());
/*todo 取有效监测点进行匹配*/
rOperatingMonitorDPOQueryWrapper.clear();
rOperatingMonitorDPOQueryWrapper.select("measurement_point_id").
in("measurement_point_id",collect1).
gt("effective_minute_count",0).
between("data_date",begin,end);
List<ROperatingMonitorDPO> rOperatingMonitorDPOS = rOperatingMonitorDMapper.selectList(rOperatingMonitorDPOQueryWrapper);
List<String> effLineIds = rOperatingMonitorDPOS.stream().map(ROperatingMonitorDPO::getMeasurementPointId).distinct().collect(Collectors.toList());
queryWrapper.clear(); queryWrapper.clear();
queryWrapper.select("measurement_point_id","freq_over_day", "v_dev_over_day", "v_over_day", "i_over_day", "unbalance_over_day", "i_neg_over_day"). queryWrapper.select("measurement_point_id","freq_over_day", "v_dev_over_day", "v_over_day", "i_over_day", "unbalance_over_day", "i_neg_over_day").
in("measurement_point_id", collect1). in("measurement_point_id", effLineIds).
between("data_date",begin,end); between("data_date",begin,end);
List<RMpPartHarmonicDetailM> rMpPartHarmonicDetailMS = rMpPartHarmonicDetailMMapper.selectList(queryWrapper); List<RMpPartHarmonicDetailM> rMpPartHarmonicDetailMS = rMpPartHarmonicDetailMMapper.selectList(queryWrapper);
rMpSurplusHarmonicDetailMQueryWrapper.clear(); rMpSurplusHarmonicDetailMQueryWrapper.clear();
rMpSurplusHarmonicDetailMQueryWrapper.select("measurement_point_id","flicker_over_day", "inuharm_over_day"). rMpSurplusHarmonicDetailMQueryWrapper.select("measurement_point_id","flicker_over_day", "inuharm_over_day").
in("measurement_point_id", collect1). in("measurement_point_id", effLineIds).
between("data_date",begin,end); between("data_date",begin,end);
List<RMpSurplusHarmonicDetailM> rMpSurplusHarmonicDetailMS = rMpSurplusHarmonicDetailMMapper.selectList(rMpSurplusHarmonicDetailMQueryWrapper); List<RMpSurplusHarmonicDetailM> rMpSurplusHarmonicDetailMS = rMpSurplusHarmonicDetailMMapper.selectList(rMpSurplusHarmonicDetailMQueryWrapper);
@@ -401,7 +417,7 @@ public class RStatHarmonicServiceImpl implements RStatHarmonicService {
DateTime end = DateUtil.endOfQuarter(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)); DateTime end = DateUtil.endOfQuarter(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN));
LocalDate localDate = LocalDateTimeUtil.parseDate( DateUtil.format(begin, DatePattern.NORM_DATE_PATTERN), DatePattern.NORM_DATE_PATTERN); LocalDate localDate = LocalDateTimeUtil.parseDate( DateUtil.format(begin, DatePattern.NORM_DATE_PATTERN), DatePattern.NORM_DATE_PATTERN);
QueryWrapper<ROperatingMonitorDPO> rOperatingMonitorDPOQueryWrapper = new QueryWrapper<>();
QueryWrapper<RMpPartHarmonicDetailM> queryWrapper = new QueryWrapper<>(); QueryWrapper<RMpPartHarmonicDetailM> queryWrapper = new QueryWrapper<>();
QueryWrapper<RMpSurplusHarmonicDetailM> rMpSurplusHarmonicDetailMQueryWrapper = new QueryWrapper<>(); QueryWrapper<RMpSurplusHarmonicDetailM> rMpSurplusHarmonicDetailMQueryWrapper = new QueryWrapper<>();
QueryWrapper<RStatOrgQPO> rStatOrgQPOQueryWrapper = new QueryWrapper<>(); QueryWrapper<RStatOrgQPO> rStatOrgQPOQueryWrapper = new QueryWrapper<>();
@@ -429,20 +445,28 @@ public class RStatHarmonicServiceImpl implements RStatHarmonicService {
Map<String, List<LineDevGetDTO>> collect = lineBaseList.stream().collect(Collectors.groupingBy(LineDevGetDTO::getLineTag)); Map<String, List<LineDevGetDTO>> collect = lineBaseList.stream().collect(Collectors.groupingBy(LineDevGetDTO::getLineTag));
collect.forEach((k, v) -> { collect.forEach((k, v) -> {
List<String> collect1 = v.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList()); List<String> collect1 = v.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList());
/*todo 取有效监测点进行匹配*/
rOperatingMonitorDPOQueryWrapper.clear();
rOperatingMonitorDPOQueryWrapper.select("measurement_point_id").
in("measurement_point_id",collect1).
gt("effective_minute_count",0).
between("data_date",begin,end);
List<ROperatingMonitorDPO> rOperatingMonitorDPOS = rOperatingMonitorDMapper.selectList(rOperatingMonitorDPOQueryWrapper);
List<String> effLineIds = rOperatingMonitorDPOS.stream().map(ROperatingMonitorDPO::getMeasurementPointId).distinct().collect(Collectors.toList());
List<RMpPartHarmonicDetailM> rMpPartHarmonicDetailMS =new ArrayList<>();
List<RMpSurplusHarmonicDetailM> rMpSurplusHarmonicDetailMS=new ArrayList<>();
if(CollUtil.isNotEmpty(effLineIds)){
queryWrapper.clear(); queryWrapper.clear();
queryWrapper.select("measurement_point_id","freq_over_day", "v_dev_over_day", "v_over_day", "i_over_day", "unbalance_over_day", "i_neg_over_day"). queryWrapper.select("measurement_point_id","freq_over_day", "v_dev_over_day", "v_over_day", "i_over_day", "unbalance_over_day", "i_neg_over_day").
in("measurement_point_id", collect1). in("measurement_point_id", effLineIds).
between("data_date",begin,end); between("data_date",begin,end);
rMpPartHarmonicDetailMS.addAll(rMpPartHarmonicDetailMMapper.selectList(queryWrapper));
List<RMpPartHarmonicDetailM> rMpPartHarmonicDetailMS = rMpPartHarmonicDetailMMapper.selectList(queryWrapper);
rMpSurplusHarmonicDetailMQueryWrapper.clear(); rMpSurplusHarmonicDetailMQueryWrapper.clear();
rMpSurplusHarmonicDetailMQueryWrapper.select("measurement_point_id","flicker_over_day", "inuharm_over_day"). rMpSurplusHarmonicDetailMQueryWrapper.select("measurement_point_id","flicker_over_day", "inuharm_over_day").
in("measurement_point_id", collect1). in("measurement_point_id", effLineIds).
between("data_date",begin,end); between("data_date",begin,end);
List<RMpSurplusHarmonicDetailM> rMpSurplusHarmonicDetailMS = rMpSurplusHarmonicDetailMMapper.selectList(rMpSurplusHarmonicDetailMQueryWrapper); rMpSurplusHarmonicDetailMS.addAll(rMpSurplusHarmonicDetailMMapper.selectList(rMpSurplusHarmonicDetailMQueryWrapper));
}
rStatOrgQPOQueryWrapper.clear(); rStatOrgQPOQueryWrapper.clear();
rStatOrgQPOQueryWrapper.select("effective_measurement_accrued"). rStatOrgQPOQueryWrapper.select("effective_measurement_accrued").
eq("org_no", deptGetChildrenMoreDTO.getUnitId()). eq("org_no", deptGetChildrenMoreDTO.getUnitId()).
@@ -609,6 +633,7 @@ public class RStatHarmonicServiceImpl implements RStatHarmonicService {
/*获取监测点类型类型*/ /*获取监测点类型类型*/
QueryWrapper<ROperatingMonitorDPO> rOperatingMonitorDPOQueryWrapper = new QueryWrapper<>();
QueryWrapper<RMpPartHarmonicDetailM> queryWrapper = new QueryWrapper<>(); QueryWrapper<RMpPartHarmonicDetailM> queryWrapper = new QueryWrapper<>();
QueryWrapper<RMpSurplusHarmonicDetailM> rMpSurplusHarmonicDetailMQueryWrapper = new QueryWrapper<>(); QueryWrapper<RMpSurplusHarmonicDetailM> rMpSurplusHarmonicDetailMQueryWrapper = new QueryWrapper<>();
QueryWrapper<RStatOrgYPO> rStatOrgYPOQueryWrapper = new QueryWrapper<>(); QueryWrapper<RStatOrgYPO> rStatOrgYPOQueryWrapper = new QueryWrapper<>();
@@ -637,17 +662,25 @@ public class RStatHarmonicServiceImpl implements RStatHarmonicService {
Map<String, List<LineDevGetDTO>> collect = lineBaseList.stream().collect(Collectors.groupingBy(LineDevGetDTO::getLineTag)); Map<String, List<LineDevGetDTO>> collect = lineBaseList.stream().collect(Collectors.groupingBy(LineDevGetDTO::getLineTag));
collect.forEach((k, v) -> { collect.forEach((k, v) -> {
List<String> collect1 = v.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList()); List<String> collect1 = v.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList());
/*todo 取有效监测点进行匹配*/
rOperatingMonitorDPOQueryWrapper.clear();
rOperatingMonitorDPOQueryWrapper.select("measurement_point_id").
in("measurement_point_id",collect1).
gt("effective_minute_count",0).
between("data_date",begin,end);
List<ROperatingMonitorDPO> rOperatingMonitorDPOS = rOperatingMonitorDMapper.selectList(rOperatingMonitorDPOQueryWrapper);
List<String> effLineIds = rOperatingMonitorDPOS.stream().map(ROperatingMonitorDPO::getMeasurementPointId).distinct().collect(Collectors.toList());
queryWrapper.clear(); queryWrapper.clear();
queryWrapper.select("measurement_point_id","freq_over_day", "v_dev_over_day", "v_over_day", "i_over_day", "unbalance_over_day", "i_neg_over_day"). queryWrapper.select("measurement_point_id","freq_over_day", "v_dev_over_day", "v_over_day", "i_over_day", "unbalance_over_day", "i_neg_over_day").
in("measurement_point_id", collect1). in("measurement_point_id", effLineIds).
between("data_date",begin,end); between("data_date",begin,end);
List<RMpPartHarmonicDetailM> rMpPartHarmonicDetailMS = rMpPartHarmonicDetailMMapper.selectList(queryWrapper); List<RMpPartHarmonicDetailM> rMpPartHarmonicDetailMS = rMpPartHarmonicDetailMMapper.selectList(queryWrapper);
rMpSurplusHarmonicDetailMQueryWrapper.clear(); rMpSurplusHarmonicDetailMQueryWrapper.clear();
rMpSurplusHarmonicDetailMQueryWrapper.select("measurement_point_id","flicker_over_day", "inuharm_over_day"). rMpSurplusHarmonicDetailMQueryWrapper.select("measurement_point_id","flicker_over_day", "inuharm_over_day").
in("measurement_point_id", collect1). in("measurement_point_id", effLineIds).
between("data_date",begin,end); between("data_date",begin,end);
List<RMpSurplusHarmonicDetailM> rMpSurplusHarmonicDetailMS = rMpSurplusHarmonicDetailMMapper.selectList(rMpSurplusHarmonicDetailMQueryWrapper); List<RMpSurplusHarmonicDetailM> rMpSurplusHarmonicDetailMS = rMpSurplusHarmonicDetailMMapper.selectList(rMpSurplusHarmonicDetailMQueryWrapper);

View File

@@ -1,5 +1,6 @@
package com.njcn.prepare.harmonic.service.mysql.Impl.area; package com.njcn.prepare.harmonic.service.mysql.Impl.area;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
@@ -75,7 +76,6 @@ public class RStatOrgServiceImpl implements RStatOrgService {
DecimalFormat df = new DecimalFormat("0.00"); DecimalFormat df = new DecimalFormat("0.00");
@Override @Override
public void handler(List<DeptGetChildrenMoreDTO> data, String dataDate, Integer type) { public void handler(List<DeptGetChildrenMoreDTO> data, String dataDate, Integer type) {
switch (type) { switch (type) {
case 1: case 1:
@@ -549,16 +549,19 @@ public class RStatOrgServiceImpl implements RStatOrgService {
rStatOrgQPO.setEffectiveMeasurementAverage(Double.parseDouble(value)); rStatOrgQPO.setEffectiveMeasurementAverage(Double.parseDouble(value));
/*3、3、累计有效接入监测点数*/ /*3、3、累计有效接入监测点数*/
long count = rOperatingMonitorDPOS.stream().map(ROperatingMonitorDPO::getMeasurementPointId).distinct().count(); List<String> monitorIds = rOperatingMonitorDPOS.stream().map(ROperatingMonitorDPO::getMeasurementPointId).distinct().collect(Collectors.toList());
rStatOrgQPO.setEffectiveMeasurementAccrued(Integer.valueOf(count+"")); rStatOrgQPO.setEffectiveMeasurementAccrued(monitorIds.size());
/*4、日均稳态超标监测点数*/ /*4、日均稳态超标监测点数 TODO 用有效监测点*/
List<RMpTargetWarnDPO> rMpTargetWarnDPOS=new ArrayList<>();
if(CollUtil.isNotEmpty(monitorIds)){
rmpTargetWarnDPOQueryWrapper.clear(); rmpTargetWarnDPOQueryWrapper.clear();
rmpTargetWarnDPOQueryWrapper.select("measurement_point_id"). rmpTargetWarnDPOQueryWrapper.select("measurement_point_id").
in("measurement_point_id",collect1). in("measurement_point_id",monitorIds).
eq("is_harmonic",1). eq("is_harmonic",1).
between("data_date",begin,end); between("data_date",begin,end);
List<RMpTargetWarnDPO> rMpTargetWarnDPOS = rMpTargetWarnDMapper.selectList(rmpTargetWarnDPOQueryWrapper); rMpTargetWarnDPOS.addAll(rMpTargetWarnDMapper.selectList(rmpTargetWarnDPOQueryWrapper));
}
String value1 = df.format((float)rMpTargetWarnDPOS.size()/ days); String value1 = df.format((float)rMpTargetWarnDPOS.size()/ days);
rStatOrgQPO.setHarmonicMeasurementAverage(Double.parseDouble(value1)); rStatOrgQPO.setHarmonicMeasurementAverage(Double.parseDouble(value1));

View File

@@ -1,11 +1,13 @@
package com.njcn.prepare.harmonic.service.mysql.send.impl; package com.njcn.prepare.harmonic.service.mysql.send.impl;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.date.LocalDateTimeUtil; import cn.hutool.core.date.LocalDateTimeUtil;
import cn.hutool.core.util.NumberUtil; 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.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO; import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
@@ -15,13 +17,19 @@ import com.njcn.device.pms.pojo.po.Monitor;
import com.njcn.harmonic.pojo.po.RMpPartHarmonicDetailD; import com.njcn.harmonic.pojo.po.RMpPartHarmonicDetailD;
import com.njcn.harmonic.pojo.po.RMpSurplusHarmonicDetailD; import com.njcn.harmonic.pojo.po.RMpSurplusHarmonicDetailD;
import com.njcn.harmonic.pojo.po.send.PqTypicalSourceCreatePO; import com.njcn.harmonic.pojo.po.send.PqTypicalSourceCreatePO;
import com.njcn.harmonic.pojo.po.upload.PmsRunStatisticD;
import com.njcn.harmonic.pojo.po.upload.PmsRunStatisticM;
import com.njcn.harmonic.pojo.po.upload.PmsRunStatisticY;
import com.njcn.prepare.harmonic.mapper.mysql.line.RMpPartHarmonicDetailDMapper; import com.njcn.prepare.harmonic.mapper.mysql.line.RMpPartHarmonicDetailDMapper;
import com.njcn.prepare.harmonic.mapper.mysql.line.RMpSurplusHarmonicDetailDMapper; import com.njcn.prepare.harmonic.mapper.mysql.line.RMpSurplusHarmonicDetailDMapper;
import com.njcn.prepare.harmonic.mapper.mysql.send.PqTypicalSourceCreatePOMapper; import com.njcn.prepare.harmonic.mapper.mysql.send.PqTypicalSourceCreatePOMapper;
import com.njcn.prepare.harmonic.mapper.mysql.upload.PmsRunStatisticDMapper;
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam; import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
import com.njcn.prepare.harmonic.pojo.mysql.ROperatingMonitorDPO; import com.njcn.prepare.harmonic.pojo.mysql.ROperatingMonitorDPO;
import com.njcn.prepare.harmonic.service.mysql.line.ROperatingMonitorService; import com.njcn.prepare.harmonic.service.mysql.line.ROperatingMonitorService;
import com.njcn.prepare.harmonic.service.mysql.send.PqTypicalSourceCreatePOService; import com.njcn.prepare.harmonic.service.mysql.send.PqTypicalSourceCreatePOService;
import com.njcn.prepare.harmonic.service.mysql.upload.IPmsRunStatisticMService;
import com.njcn.prepare.harmonic.service.mysql.upload.IPmsRunStatisticYService;
import com.njcn.system.api.DicDataFeignClient; import com.njcn.system.api.DicDataFeignClient;
import com.njcn.system.api.DictTreeFeignClient; import com.njcn.system.api.DictTreeFeignClient;
import com.njcn.system.enums.DicDataEnum; import com.njcn.system.enums.DicDataEnum;
@@ -67,6 +75,10 @@ public class PqTypicalSourceCreatePOServiceImpl extends ServiceImpl<PqTypicalSou
private final RMpPartHarmonicDetailDMapper rMpPartHarmonicDetailDMapper; private final RMpPartHarmonicDetailDMapper rMpPartHarmonicDetailDMapper;
private final RMpSurplusHarmonicDetailDMapper rMpSurplusHarmonicDetailDMapper; private final RMpSurplusHarmonicDetailDMapper rMpSurplusHarmonicDetailDMapper;
private final ROperatingMonitorService rOperatingMonitorService; private final ROperatingMonitorService rOperatingMonitorService;
private final PmsRunStatisticDMapper runStatisticDMapper;
private final IPmsRunStatisticMService runStatisticMService;
private final IPmsRunStatisticYService runStatisticYService;
/* /*
*01 电压 *01 电压
@@ -79,6 +91,10 @@ public class PqTypicalSourceCreatePOServiceImpl extends ServiceImpl<PqTypicalSou
* */ * */
@Override @Override
public void handlerDay(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam) { public void handlerDay(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam) {
List<PmsRunStatisticD> pmsRunStatisticsListD = runStatisticDMapper.selectList(new LambdaQueryWrapper<PmsRunStatisticD>().eq(PmsRunStatisticD::getStatisticDate,calculatedParam.getDataDate()));
Map<String, PmsRunStatisticD> pmsRunStatisticMap = pmsRunStatisticsListD.stream().collect(Collectors.toMap(PmsRunStatisticD::getDeptId,Function.identity()));
List<PqTypicalSourceCreatePO> pqTypicalSourceCreatePOList = new ArrayList<>(); List<PqTypicalSourceCreatePO> pqTypicalSourceCreatePOList = new ArrayList<>();
LocalDate localDate = LocalDateTimeUtil.parseDate(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN); LocalDate localDate = LocalDateTimeUtil.parseDate(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN);
@@ -141,7 +157,17 @@ public class PqTypicalSourceCreatePOServiceImpl extends ServiceImpl<PqTypicalSou
List<DictData> supvVoltageDicList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DEV_VOLTAGE.getCode()).getData(); List<DictData> supvVoltageDicList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DEV_VOLTAGE.getCode()).getData();
Map<String, DictData> mapVoltage = supvVoltageDicList.stream().collect(Collectors.toMap(DictData::getId, Function.identity())); Map<String, DictData> mapVoltage = supvVoltageDicList.stream().collect(Collectors.toMap(DictData::getId, Function.identity()));
for (DeptGetChildrenMoreDTO deptGetChildrenMoreDTO : calculatedParam.getIdList()) { for (DeptGetChildrenMoreDTO deptGetChildrenMoreDTO : calculatedParam.getIdList()) {
List<String> collect1 = deptGetChildrenMoreDTO.getLineBaseList().stream().filter(temp->Objects.equals(temp.getIsUpToGrid(),1)).map(LineDevGetDTO::getPointId).collect(Collectors.toList()); List<String> collect1;
if(pmsRunStatisticMap.containsKey(deptGetChildrenMoreDTO.getUnitId())){
String typicalOnlineIds = pmsRunStatisticMap.get(deptGetChildrenMoreDTO.getUnitId()).getTypicalOnlineIds();
if(StrUtil.isNotBlank(typicalOnlineIds)){
collect1 = CollectionUtil.toList(typicalOnlineIds.split(StrUtil.COMMA));
}else {
collect1 = deptGetChildrenMoreDTO.getLineBaseList().stream().filter(temp->Objects.equals(temp.getIsUpToGrid(),1)).map(LineDevGetDTO::getPointId).collect(Collectors.toList());
}
} else {
collect1 = deptGetChildrenMoreDTO.getLineBaseList().stream().filter(temp->Objects.equals(temp.getIsUpToGrid(),1)).map(LineDevGetDTO::getPointId).collect(Collectors.toList());
}
List<Monitor> monitorList; List<Monitor> monitorList;
if (!CollectionUtils.isEmpty(collect1)) { if (!CollectionUtils.isEmpty(collect1)) {
monitorList = monitorClient.getMonitorList(collect1).getData(); monitorList = monitorClient.getMonitorList(collect1).getData();
@@ -290,6 +316,11 @@ public class PqTypicalSourceCreatePOServiceImpl extends ServiceImpl<PqTypicalSou
String end = DateUtil.endOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)).toString(); String end = DateUtil.endOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)).toString();
String date = begin.substring(0, 7); String date = begin.substring(0, 7);
List<PmsRunStatisticM> pmsRunStatistic = runStatisticMService.selectListByDate(begin, end,calculatedParam.getDataDate());
Map<String, PmsRunStatisticM> pmsRunStatisticMap = pmsRunStatistic.stream().collect(Collectors.toMap(PmsRunStatisticM::getDeptId,Function.identity()));
List<SysDicTreePO> sysdictreepo = dictTreeFeignClient.queryAll().getData(); List<SysDicTreePO> sysdictreepo = dictTreeFeignClient.queryAll().getData();
List<String> windfarm_user = Stream.of( List<String> windfarm_user = Stream.of(
@@ -328,7 +359,17 @@ public class PqTypicalSourceCreatePOServiceImpl extends ServiceImpl<PqTypicalSou
Map<String, PvTerminalTreeVO> mapList = deptList.stream().collect(Collectors.toMap(PvTerminalTreeVO::getId, Function.identity())); Map<String, PvTerminalTreeVO> mapList = deptList.stream().collect(Collectors.toMap(PvTerminalTreeVO::getId, Function.identity()));
for (DeptGetChildrenMoreDTO deptGetChildrenMoreDTO : calculatedParam.getIdList()) { for (DeptGetChildrenMoreDTO deptGetChildrenMoreDTO : calculatedParam.getIdList()) {
List<String> collect1 = deptGetChildrenMoreDTO.getLineBaseList().stream().filter(temp->Objects.equals(temp.getIsUpToGrid(),1)).map(LineDevGetDTO::getPointId).collect(Collectors.toList()); List<String> collect1;
if(pmsRunStatisticMap.containsKey(deptGetChildrenMoreDTO.getUnitId())){
String typicalOnlineIds = pmsRunStatisticMap.get(deptGetChildrenMoreDTO.getUnitId()).getTypicalOnlineIds();
if(StrUtil.isNotBlank(typicalOnlineIds)){
collect1 = CollectionUtil.toList(typicalOnlineIds.split(StrUtil.COMMA));
}else {
collect1 = deptGetChildrenMoreDTO.getLineBaseList().stream().filter(temp->Objects.equals(temp.getIsUpToGrid(),1)).map(LineDevGetDTO::getPointId).collect(Collectors.toList());
}
} else {
collect1 = deptGetChildrenMoreDTO.getLineBaseList().stream().filter(temp->Objects.equals(temp.getIsUpToGrid(),1)).map(LineDevGetDTO::getPointId).collect(Collectors.toList());
}
List<Monitor> monitorList; List<Monitor> monitorList;
if (!CollectionUtils.isEmpty(collect1)) { if (!CollectionUtils.isEmpty(collect1)) {
monitorList = monitorClient.getMonitorList(collect1).getData(); monitorList = monitorClient.getMonitorList(collect1).getData();
@@ -450,6 +491,8 @@ public class PqTypicalSourceCreatePOServiceImpl extends ServiceImpl<PqTypicalSou
String begin = DateUtil.beginOfYear(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)).toString(); String begin = DateUtil.beginOfYear(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)).toString();
String end = DateUtil.endOfYear(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)).toString(); String end = DateUtil.endOfYear(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)).toString();
String date = begin.substring(0, 4); String date = begin.substring(0, 4);
List<PmsRunStatisticY> pmsRunStatistic = runStatisticYService.selectListByDate(begin, end,calculatedParam.getDataDate());
Map<String, PmsRunStatisticY> pmsRunStatisticMap = pmsRunStatistic.stream().collect(Collectors.toMap(PmsRunStatisticY::getDeptId,Function.identity()));
List<SysDicTreePO> sysdictreepo = dictTreeFeignClient.queryAll().getData(); List<SysDicTreePO> sysdictreepo = dictTreeFeignClient.queryAll().getData();
@@ -489,7 +532,17 @@ public class PqTypicalSourceCreatePOServiceImpl extends ServiceImpl<PqTypicalSou
Map<String, PvTerminalTreeVO> mapList = deptList.stream().collect(Collectors.toMap(PvTerminalTreeVO::getId, Function.identity())); Map<String, PvTerminalTreeVO> mapList = deptList.stream().collect(Collectors.toMap(PvTerminalTreeVO::getId, Function.identity()));
for (DeptGetChildrenMoreDTO deptGetChildrenMoreDTO : calculatedParam.getIdList()) { for (DeptGetChildrenMoreDTO deptGetChildrenMoreDTO : calculatedParam.getIdList()) {
List<String> collect1 = deptGetChildrenMoreDTO.getLineBaseList().stream().filter(temp->Objects.equals(temp.getIsUpToGrid(),1)).map(LineDevGetDTO::getPointId).collect(Collectors.toList()); List<String> collect1;
if(pmsRunStatisticMap.containsKey(deptGetChildrenMoreDTO.getUnitId())){
String typicalOnlineIds = pmsRunStatisticMap.get(deptGetChildrenMoreDTO.getUnitId()).getTypicalOnlineIds();
if(StrUtil.isNotBlank(typicalOnlineIds)){
collect1 = CollectionUtil.toList(typicalOnlineIds.split(StrUtil.COMMA));
}else {
collect1 = deptGetChildrenMoreDTO.getLineBaseList().stream().filter(temp->Objects.equals(temp.getIsUpToGrid(),1)).map(LineDevGetDTO::getPointId).collect(Collectors.toList());
}
} else {
collect1 = deptGetChildrenMoreDTO.getLineBaseList().stream().filter(temp->Objects.equals(temp.getIsUpToGrid(),1)).map(LineDevGetDTO::getPointId).collect(Collectors.toList());
}
List<Monitor> monitorList; List<Monitor> monitorList;
if (!CollectionUtils.isEmpty(collect1)) { if (!CollectionUtils.isEmpty(collect1)) {
monitorList = monitorClient.getMonitorList(collect1).getData(); monitorList = monitorClient.getMonitorList(collect1).getData();

View File

@@ -4,6 +4,8 @@ package com.njcn.prepare.harmonic.service.mysql.upload;
import com.github.jeffreyning.mybatisplus.service.IMppService; import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.harmonic.pojo.po.upload.PmsRunStatisticM; import com.njcn.harmonic.pojo.po.upload.PmsRunStatisticM;
import java.util.List;
/** /**
* <p> * <p>
* 服务类 * 服务类
@@ -15,15 +17,21 @@ import com.njcn.harmonic.pojo.po.upload.PmsRunStatisticM;
public interface IPmsRunStatisticMService extends IMppService<PmsRunStatisticM> { public interface IPmsRunStatisticMService extends IMppService<PmsRunStatisticM> {
/** /**
* 每日统计每月 * 每日统计每月
*
* @author cdf * @author cdf
* @date 2024/4/17 * @date 2024/4/17
*/ */
void statisticLedgerRunMonth(String date); void statisticLedgerRunMonth(String date);
/**
* @param startTime
* @param endTime
* @Description: 获取每个月中的最新一天数据
* @Author: wr
* @Date: 2024/5/9 14:21
*/
List<PmsRunStatisticM> selectListByDate(String startTime, String endTime, String dataDate);
} }

View File

@@ -4,6 +4,8 @@ package com.njcn.prepare.harmonic.service.mysql.upload;
import com.github.jeffreyning.mybatisplus.service.IMppService; import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.harmonic.pojo.po.upload.PmsRunStatisticY; import com.njcn.harmonic.pojo.po.upload.PmsRunStatisticY;
import java.util.List;
/** /**
* <p> * <p>
* 服务类 * 服务类
@@ -15,13 +17,20 @@ import com.njcn.harmonic.pojo.po.upload.PmsRunStatisticY;
public interface IPmsRunStatisticYService extends IMppService<PmsRunStatisticY> { public interface IPmsRunStatisticYService extends IMppService<PmsRunStatisticY> {
/** /**
* 每日统计每年 * 每日统计每年
*
* @author cdf * @author cdf
* @date 2024/4/17 * @date 2024/4/17
*/ */
void statisticLedgerRunYear(String date); void statisticLedgerRunYear(String date);
/**
* @param startTime
* @param endTime
* @Description: 获取每个年中的最新一天数据
* @Author: wr
* @Date: 2024/5/9 14:21
*/
List<PmsRunStatisticY> selectListByDate(String startTime, String endTime, String dataDate);
} }

View File

@@ -7,7 +7,6 @@ import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.device.pms.pojo.po.PmsMidLedger;
import com.njcn.prepare.harmonic.mapper.mysql.upload.PmsRunStatisticDMapper; import com.njcn.prepare.harmonic.mapper.mysql.upload.PmsRunStatisticDMapper;
import com.njcn.prepare.harmonic.mapper.mysql.upload.PmsRunStatisticMMapper; import com.njcn.prepare.harmonic.mapper.mysql.upload.PmsRunStatisticMMapper;
import com.njcn.harmonic.pojo.po.upload.PmsRunStatisticD; import com.njcn.harmonic.pojo.po.upload.PmsRunStatisticD;
@@ -120,5 +119,13 @@ public class PmsRunStatisticMServiceImpl extends MppServiceImpl<PmsRunStatisticM
this.saveOrUpdateBatchByMultiId(poList); this.saveOrUpdateBatchByMultiId(poList);
} }
@Override
public List<PmsRunStatisticM> selectListByDate(String startTime, String endTime, String dataDate) {
return this.list(new LambdaQueryWrapper<PmsRunStatisticM>()
.ge(StrUtil.isNotBlank(startTime), PmsRunStatisticM::getStatisticDate, DateUtil.beginOfDay(DateUtil.parse(startTime)))
.le(StrUtil.isNotBlank(endTime), PmsRunStatisticM::getStatisticDate, DateUtil.endOfDay(DateUtil.parse(endTime)))
.eq(PmsRunStatisticM::getStatDate, dataDate));
}
} }

View File

@@ -122,4 +122,12 @@ public class PmsRunStatisticYServiceImpl extends MppServiceImpl<PmsRunStatisticY
} }
@Override
public List<PmsRunStatisticY> selectListByDate(String startTime, String endTime, String dataDate) {
return this.list(new LambdaQueryWrapper<PmsRunStatisticY>()
.ge(StrUtil.isNotBlank(startTime), PmsRunStatisticY::getStatisticDate, DateUtil.beginOfDay(DateUtil.parse(startTime)))
.le(StrUtil.isNotBlank(endTime), PmsRunStatisticY::getStatisticDate, DateUtil.endOfDay(DateUtil.parse(endTime)))
.eq(PmsRunStatisticY::getStatDate, dataDate));
}
} }

View File

@@ -1,32 +1,37 @@
package com.njcn.prepare.harmonic.service.mysql.upload.impl; package com.njcn.prepare.harmonic.service.mysql.upload.impl;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.common.pojo.enums.common.DataStateEnum; import com.njcn.common.pojo.enums.common.DataStateEnum;
import com.njcn.device.biz.commApi.CommTerminalGeneralClient; import com.njcn.device.biz.commApi.CommTerminalGeneralClient;
import com.njcn.device.biz.pojo.dto.DeptGetBase; import com.njcn.device.biz.pojo.dto.*;
import com.njcn.device.biz.pojo.dto.DeptGetBusBarDTO;
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
import com.njcn.device.biz.pojo.dto.LineDevGetDTO;
import com.njcn.device.biz.pojo.param.DeptGetLineParam; import com.njcn.device.biz.pojo.param.DeptGetLineParam;
import com.njcn.device.pms.pojo.po.GeneratrixWire; import com.njcn.device.pms.pojo.po.GeneratrixWire;
import com.njcn.device.pms.pojo.po.Monitor; import com.njcn.device.pms.pojo.po.Monitor;
import com.njcn.device.pms.pojo.po.PmsMidLedger; import com.njcn.device.pms.pojo.po.PmsMidLedger;
import com.njcn.harmonic.pojo.dto.LineDataDto; import com.njcn.harmonic.pojo.dto.LineDataDto;
import com.njcn.harmonic.pojo.po.dim.RDimVoltageD; import com.njcn.harmonic.pojo.po.dim.RDimVoltageD;
import com.njcn.harmonic.pojo.po.upload.PmsRunStatisticD;
import com.njcn.harmonic.pojo.po.upload.PmsRunStatisticM;
import com.njcn.harmonic.pojo.po.upload.PmsRunStatisticY;
import com.njcn.harmonic.pojo.po.upload.RUploadEvaluationDataD; import com.njcn.harmonic.pojo.po.upload.RUploadEvaluationDataD;
import com.njcn.prepare.harmonic.enums.UploadEnum; import com.njcn.prepare.harmonic.enums.UploadEnum;
import com.njcn.prepare.harmonic.mapper.mysql.dim.GeneratrixWireMapper; import com.njcn.prepare.harmonic.mapper.mysql.dim.GeneratrixWireMapper;
import com.njcn.prepare.harmonic.mapper.mysql.dim.PmsMidLedgerMapper; import com.njcn.prepare.harmonic.mapper.mysql.dim.PmsMidLedgerMapper;
import com.njcn.prepare.harmonic.mapper.mysql.dim.RDimVoltageDMapper; import com.njcn.prepare.harmonic.mapper.mysql.dim.RDimVoltageDMapper;
import com.njcn.prepare.harmonic.mapper.mysql.line.PmsMonitorMapper; import com.njcn.prepare.harmonic.mapper.mysql.line.PmsMonitorMapper;
import com.njcn.prepare.harmonic.mapper.mysql.upload.PmsRunStatisticDMapper;
import com.njcn.prepare.harmonic.mapper.mysql.upload.RUploadEvaluationDataDMapper; import com.njcn.prepare.harmonic.mapper.mysql.upload.RUploadEvaluationDataDMapper;
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam; import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
import com.njcn.prepare.harmonic.pojo.dto.BusBarDto; import com.njcn.prepare.harmonic.pojo.dto.BusBarDto;
import com.njcn.prepare.harmonic.service.mysql.upload.IPmsRunStatisticMService;
import com.njcn.prepare.harmonic.service.mysql.upload.IPmsRunStatisticYService;
import com.njcn.prepare.harmonic.service.mysql.upload.IRUploadEvaluationDataDService; import com.njcn.prepare.harmonic.service.mysql.upload.IRUploadEvaluationDataDService;
import com.njcn.system.api.DicDataFeignClient; import com.njcn.system.api.DicDataFeignClient;
import com.njcn.system.enums.DicDataEnum; import com.njcn.system.enums.DicDataEnum;
@@ -65,17 +70,39 @@ public class RUploadEvaluationDataDServiceImpl extends MppServiceImpl<RUploadEva
private final DicDataFeignClient dicDataFeignClient; private final DicDataFeignClient dicDataFeignClient;
private final CommTerminalGeneralClient commTerminalGeneralClient; private final CommTerminalGeneralClient commTerminalGeneralClient;
private final GeneratrixWireMapper generatrixWireMapper; private final GeneratrixWireMapper generatrixWireMapper;
private final PmsRunStatisticDMapper runStatisticDMapper;
private final IPmsRunStatisticMService runStatisticMService;
private final IPmsRunStatisticYService runStatisticYService;
@Override @Override
public void insertEvaluationDataDay(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam) { public void insertEvaluationDataDay(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam) {
List<RUploadEvaluationDataD> result = new ArrayList<>(); List<RUploadEvaluationDataD> result = new ArrayList<>();
final Double defaultValue = 3.1415926; final Double defaultValue = 3.1415926;
//获取监测点信息 //首先获取pms_run_statistic表是否存在执行日期的数据
List<Monitor> list1 = this.getPmsMonitor(); List<PmsRunStatisticD> pmsRunStatisticsListD = runStatisticDMapper.selectList(new LambdaQueryWrapper<PmsRunStatisticD>().eq(PmsRunStatisticD::getStatisticDate, calculatedParam.getDataDate()));
//获取中台母线信息 //获取中台母线信息
List<PmsMidLedger> list2 = this.getBusBarInfo(); List<PmsMidLedger> list2 = this.getBusBarInfo();
//获取灿能母线信息 //获取灿能母线信息
List<GeneratrixWire> list3 = this.getCnBusBarInfo(list1); List<GeneratrixWire> list3;
if (CollUtil.isNotEmpty(pmsRunStatisticsListD)) {
List<String> wireIds = pmsRunStatisticsListD.stream()
.filter(x -> StrUtil.isNotBlank(x.getOnlineBusIds()))
.flatMap(x -> CollectionUtil.toList(x.getOnlineBusIds().split(StrUtil.COMMA)).stream()).distinct().collect(Collectors.toList());
if(CollUtil.isNotEmpty(wireIds)){
LambdaQueryWrapper<GeneratrixWire> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(GeneratrixWire::getStatus, DataStateEnum.ENABLE.getCode())
.in(GeneratrixWire::getId, wireIds);
list3 = generatrixWireMapper.selectList(lambdaQueryWrapper);
}else{
List<Monitor> list1 = this.getPmsMonitor();
list3 = this.getCnBusBarInfo(list1);
}
} else {
//获取监测点信息
List<Monitor> list1 = this.getPmsMonitor();
list3 = this.getCnBusBarInfo(list1);
}
//获取单位下各电压等级数据 //获取单位下各电压等级数据
DeptGetLineParam deptGetLineParam = new DeptGetLineParam(); DeptGetLineParam deptGetLineParam = new DeptGetLineParam();
Dept data = deptFeignClient.getRootDept().getData(); Dept data = deptFeignClient.getRootDept().getData();
@@ -175,6 +202,7 @@ public class RUploadEvaluationDataDServiceImpl extends MppServiceImpl<RUploadEva
/** /**
* 通过日表取平均值,作为月表数据 * 通过日表取平均值,作为月表数据
*
* @param calculatedParam * @param calculatedParam
*/ */
@Override @Override
@@ -188,12 +216,31 @@ public class RUploadEvaluationDataDServiceImpl extends MppServiceImpl<RUploadEva
//数据集 //数据集
List<RUploadEvaluationDataD> list = this.baseMapper.evaluationMonthData(beginMonth, startTime, endTime, "02"); List<RUploadEvaluationDataD> list = this.baseMapper.evaluationMonthData(beginMonth, startTime, endTime, "02");
//获取监测点信息 List<PmsRunStatisticM> pmsRunStatisticsList = runStatisticMService.selectListByDate(startTime, endTime,calculatedParam.getDataDate());
List<Monitor> list1 = this.getPmsMonitor();
//获取中台母线信息 //获取中台母线信息
List<PmsMidLedger> list2 = this.getBusBarInfo(); List<PmsMidLedger> list2 = this.getBusBarInfo();
//获取灿能母线信息 //获取灿能母线信息
List<GeneratrixWire> list3 = this.getCnBusBarInfo(list1); List<GeneratrixWire> list3;
if (CollUtil.isNotEmpty(pmsRunStatisticsList)) {
List<String> wireIds = pmsRunStatisticsList.stream()
.filter(x -> StrUtil.isNotBlank(x.getOnlineBusIds()))
.flatMap(x -> CollectionUtil.toList(x.getOnlineBusIds().split(StrUtil.COMMA)).stream()).distinct().collect(Collectors.toList());
if(CollUtil.isNotEmpty(wireIds)){
LambdaQueryWrapper<GeneratrixWire> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(GeneratrixWire::getStatus, DataStateEnum.ENABLE.getCode())
.in(GeneratrixWire::getId, wireIds);
list3 = generatrixWireMapper.selectList(lambdaQueryWrapper);
}else{
List<Monitor> list1 = this.getPmsMonitor();
list3 = this.getCnBusBarInfo(list1);
}
} else {
//获取监测点信息
List<Monitor> list1 = this.getPmsMonitor();
list3 = this.getCnBusBarInfo(list1);
}
//获取单位下各电压等级数据 //获取单位下各电压等级数据
DeptGetLineParam deptGetLineParam = new DeptGetLineParam(); DeptGetLineParam deptGetLineParam = new DeptGetLineParam();
@@ -256,16 +303,44 @@ public class RUploadEvaluationDataDServiceImpl extends MppServiceImpl<RUploadEva
/** /**
* 通过日表取平均值,作为年表数据 * 通过日表取平均值,作为年表数据
*
* @param calculatedParam * @param calculatedParam
*/ */
@Override @Override
public void insertEvaluationDataYear(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam) { public void insertEvaluationDataYear(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam) {
//获取监测点信息 //开始年
List<Monitor> list1 = this.getPmsMonitor(); String begin = DateUtil.format(DateUtil.beginOfYear(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_YEAR_PATTERN)), DatePattern.NORM_YEAR_PATTERN);
//起始时间
String startTime = DateUtil.format(DateUtil.beginOfYear(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)), DatePattern.NORM_DATE_PATTERN);
//结束时间
String endTime = DateUtil.format(DateUtil.endOfYear(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)), DatePattern.NORM_DATE_PATTERN);
//数据集
List<RUploadEvaluationDataD> list = this.baseMapper.evaluationMonthData(begin, startTime, endTime, "01");
List<PmsRunStatisticY> pmsRunStatisticsList = runStatisticYService.selectListByDate(startTime, endTime,calculatedParam.getDataDate());
//获取中台母线信息 //获取中台母线信息
List<PmsMidLedger> list2 = this.getBusBarInfo(); List<PmsMidLedger> list2 = this.getBusBarInfo();
//获取灿能母线信息 //获取灿能母线信息
List<GeneratrixWire> list3 = this.getCnBusBarInfo(list1); List<GeneratrixWire> list3;
if (CollUtil.isNotEmpty(pmsRunStatisticsList)) {
List<String> wireIds = pmsRunStatisticsList.stream()
.filter(x -> StrUtil.isNotBlank(x.getOnlineBusIds()))
.flatMap(x -> CollectionUtil.toList(x.getOnlineBusIds().split(StrUtil.COMMA)).stream()).distinct().collect(Collectors.toList());
if(CollUtil.isNotEmpty(wireIds)){
LambdaQueryWrapper<GeneratrixWire> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(GeneratrixWire::getStatus, DataStateEnum.ENABLE.getCode())
.in(GeneratrixWire::getId, wireIds);
list3 = generatrixWireMapper.selectList(lambdaQueryWrapper);
}else{
List<Monitor> list1 = this.getPmsMonitor();
list3 = this.getCnBusBarInfo(list1);
}
} else {
//获取监测点信息
List<Monitor> list1 = this.getPmsMonitor();
list3 = this.getCnBusBarInfo(list1);
}
//获取单位下各电压等级数据 //获取单位下各电压等级数据
DeptGetLineParam deptGetLineParam = new DeptGetLineParam(); DeptGetLineParam deptGetLineParam = new DeptGetLineParam();
@@ -290,16 +365,6 @@ public class RUploadEvaluationDataDServiceImpl extends MppServiceImpl<RUploadEva
} }
Map<String, BusBarDto> mapBus = busBarList.stream().collect(Collectors.toMap(BusBarDto::getOrgId, Function.identity())); Map<String, BusBarDto> mapBus = busBarList.stream().collect(Collectors.toMap(BusBarDto::getOrgId, Function.identity()));
//开始年
String begin = DateUtil.format(DateUtil.beginOfYear(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_YEAR_PATTERN)), DatePattern.NORM_YEAR_PATTERN);
//起始时间
String startTime = DateUtil.format(DateUtil.beginOfYear(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)), DatePattern.NORM_DATE_PATTERN);
//结束时间
String endTime = DateUtil.format(DateUtil.endOfYear(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)), DatePattern.NORM_DATE_PATTERN);
//数据集
List<RUploadEvaluationDataD> list = this.baseMapper.evaluationMonthData(begin,startTime,endTime,"01");
if (CollUtil.isNotEmpty(list)) { if (CollUtil.isNotEmpty(list)) {
list.forEach(item -> { list.forEach(item -> {
item.setId(IdUtil.simpleUUID()); item.setId(IdUtil.simpleUUID());

View File

@@ -8,18 +8,23 @@ import cn.hutool.core.util.IdUtil;
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.github.jeffreyning.mybatisplus.service.MppServiceImpl; import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.common.pojo.constant.BizParamConstant;
import com.njcn.device.biz.commApi.CommLineClient; import com.njcn.device.biz.commApi.CommLineClient;
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO; import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
import com.njcn.device.biz.pojo.dto.LineDTO; import com.njcn.device.biz.pojo.dto.LineDTO;
import com.njcn.device.biz.pojo.dto.LineDevGetDTO; import com.njcn.device.biz.pojo.dto.LineDevGetDTO;
import com.njcn.device.pq.pojo.po.RStatIntegrityD; import com.njcn.device.pq.pojo.po.RStatIntegrityD;
import com.njcn.harmonic.pojo.po.upload.PmsRunStatisticM;
import com.njcn.harmonic.pojo.po.upload.PmsRunStatisticY;
import com.njcn.harmonic.pojo.po.upload.RUploadPointStatisticalDataD; import com.njcn.harmonic.pojo.po.upload.RUploadPointStatisticalDataD;
import com.njcn.prepare.harmonic.enums.UploadEnum; import com.njcn.prepare.harmonic.enums.UploadEnum;
import com.njcn.prepare.harmonic.mapper.mysql.day.RStatIntegrityDMapper; import com.njcn.prepare.harmonic.mapper.mysql.day.RStatIntegrityDMapper;
import com.njcn.prepare.harmonic.mapper.mysql.line.PmsRunStatisticMapper; import com.njcn.prepare.harmonic.mapper.mysql.upload.PmsRunStatisticDMapper;
import com.njcn.prepare.harmonic.mapper.mysql.upload.RUploadPointStatisticalDataDMapper; import com.njcn.prepare.harmonic.mapper.mysql.upload.RUploadPointStatisticalDataDMapper;
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam; import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
import com.njcn.harmonic.pojo.po.upload.PmsRunStatisticD; import com.njcn.harmonic.pojo.po.upload.PmsRunStatisticD;
import com.njcn.prepare.harmonic.service.mysql.upload.IPmsRunStatisticMService;
import com.njcn.prepare.harmonic.service.mysql.upload.IPmsRunStatisticYService;
import com.njcn.prepare.harmonic.service.mysql.upload.IRUploadPointStatisticalDataDService; import com.njcn.prepare.harmonic.service.mysql.upload.IRUploadPointStatisticalDataDService;
import com.njcn.system.api.DicDataFeignClient; import com.njcn.system.api.DicDataFeignClient;
import com.njcn.system.api.DictTreeFeignClient; import com.njcn.system.api.DictTreeFeignClient;
@@ -61,9 +66,10 @@ public class RUploadPointStatisticalDataDServiceImpl extends MppServiceImpl<RUpl
private final DicDataFeignClient dicDataFeignClient; private final DicDataFeignClient dicDataFeignClient;
private final PmsRunStatisticMapper pmsRunStatisticMapper;
private final CommLineClient commLineClient; private final CommLineClient commLineClient;
private final PmsRunStatisticDMapper runStatisticDMapper;
private final IPmsRunStatisticMService runStatisticMService;
private final IPmsRunStatisticYService runStatisticYService;
/** /**
* 此算法用于计算底层数据,方便国网数据上送 * 此算法用于计算底层数据,方便国网数据上送
@@ -129,10 +135,9 @@ public class RUploadPointStatisticalDataDServiceImpl extends MppServiceImpl<RUpl
List<RStatIntegrityD> dataList = getStatIntegrityData(calculatedParam.getDataDate()); List<RStatIntegrityD> dataList = getStatIntegrityData(calculatedParam.getDataDate());
//下面先从表里获取在运测点相关数据,当表里没数据时候再从接口获取 //下面先从表里获取在运测点相关数据,当表里没数据时候再从接口获取
//首先获取pms_run_statistic表是否存在执行日期的数据 //首先获取pms_run_statistic表是否存在执行日期的数据
List<PmsRunStatisticD> pmsRunStatisticsListD = pmsRunStatisticMapper.selectList(new LambdaQueryWrapper<PmsRunStatisticD>().eq(PmsRunStatisticD::getStatisticDate,calculatedParam.getDataDate())); List<PmsRunStatisticD> pmsRunStatisticsListD = runStatisticDMapper.selectList(new LambdaQueryWrapper<PmsRunStatisticD>().eq(PmsRunStatisticD::getStatisticDate, calculatedParam.getDataDate()));
//筛选国网上送监测点 //筛选国网上送监测点
List<DeptGetChildrenMoreDTO> deptAll = calculatedParam.getIdList(); List<DeptGetChildrenMoreDTO> deptAll = calculatedParam.getIdList();
@@ -140,11 +145,16 @@ public class RUploadPointStatisticalDataDServiceImpl extends MppServiceImpl<RUpl
Map<String, PmsRunStatisticD> pmsRunStatisticMap = pmsRunStatisticsListD.stream().collect(Collectors.toMap(PmsRunStatisticD::getDeptId, Function.identity())); Map<String, PmsRunStatisticD> pmsRunStatisticMap = pmsRunStatisticsListD.stream().collect(Collectors.toMap(PmsRunStatisticD::getDeptId, Function.identity()));
List<LineDTO> lineDTOList; List<LineDTO> lineDTOList;
if (pmsRunStatisticMap.containsKey(dept.getCode())) { if (pmsRunStatisticMap.containsKey(dept.getCode())) {
List<String> monitorIds = CollectionUtil.toList(pmsRunStatisticMap.get(dept.getCode()).getRunMonitorIds().split(StrUtil.COMMA)); String runMonitorIds = pmsRunStatisticMap.get(dept.getCode()).getRunMonitorIds();
if(StrUtil.isNotBlank(runMonitorIds)){
List<String> monitorIds = CollectionUtil.toList(runMonitorIds.split(StrUtil.COMMA));
lineDTOList = commLineClient.getLineDetailBatch(monitorIds).getData(); lineDTOList = commLineClient.getLineDetailBatch(monitorIds).getData();
}else { }else {
lineDTOList = new ArrayList<>(); lineDTOList = new ArrayList<>();
} }
} else {
lineDTOList = new ArrayList<>();
}
deptAll.forEach(item -> { deptAll.forEach(item -> {
@@ -155,28 +165,51 @@ public class RUploadPointStatisticalDataDServiceImpl extends MppServiceImpl<RUpl
if (Objects.equals(Integer.parseInt(UploadEnum.NJCN_DEPT_LEVEL_1.getCode()), item.getDeptLevel())) { if (Objects.equals(Integer.parseInt(UploadEnum.NJCN_DEPT_LEVEL_1.getCode()), item.getDeptLevel())) {
return; return;
} }
List<String> upDevIds =new ArrayList<>();
List<String> onMonitorIds=new ArrayList<>();
if (CollectionUtil.isEmpty(pmsRunStatisticsListD)) { if (CollectionUtil.isEmpty(pmsRunStatisticsListD)) {
//正常流程 //正常流程
newBaseList = item.getLineBaseList().stream().filter(o -> Objects.equals(o.getIsUpToGrid(), 1)).collect(toList()); newBaseList = item.getLineBaseList().stream().filter(o -> Objects.equals(o.getIsUpToGrid(), 1)).collect(toList());
upDevIds = newBaseList.stream().map(LineDevGetDTO::getDevId).distinct().collect(toList());
} else { } else {
String[] monitorTemIds = pmsRunStatisticMap.get(item.getUnitId()).getRunMonitorIds().split(StrUtil.COMMA); if(pmsRunStatisticMap.containsKey(item.getUnitId())){
List<String> temIds = Arrays.stream(monitorTemIds).collect(toList()); PmsRunStatisticD pmsRunStatisticD = pmsRunStatisticMap.get(item.getUnitId());
if(StrUtil.isNotBlank(pmsRunStatisticD.getRunMonitorIds())){
newBaseList = lineDTOList.stream().filter(o -> temIds.contains(o.getLineId())).map(it->{ List<String> temIds = Arrays.stream(pmsRunStatisticD.getRunMonitorIds().split(StrUtil.COMMA)).collect(toList());
List<LineDevGetDTO> collect = lineDTOList.stream().filter(o -> temIds.contains(o.getLineId())).map(it -> {
LineDevGetDTO lineDevGetDTO = new LineDevGetDTO(); LineDevGetDTO lineDevGetDTO = new LineDevGetDTO();
lineDevGetDTO.setPointId(it.getLineId()); lineDevGetDTO.setPointId(it.getLineId());
lineDevGetDTO.setDevId(it.getDevId()); lineDevGetDTO.setDevId(it.getDevId());
lineDevGetDTO.setObjType(it.getObjType()); lineDevGetDTO.setObjType(it.getObjType());
return lineDevGetDTO; return lineDevGetDTO;
}).collect(Collectors.toList()); }).collect(toList());
if(CollUtil.isEmpty(collect)){
newBaseList = item.getLineBaseList().stream().filter(o -> Objects.equals(o.getIsUpToGrid(), 1)).collect(Collectors.toList());
upDevIds = newBaseList.stream().map(LineDevGetDTO::getDevId).distinct().collect(toList());
}else {
newBaseList = collect;
if(StrUtil.isNotBlank(pmsRunStatisticD.getRunDevIds())){
upDevIds = Arrays.stream(pmsRunStatisticD.getRunDevIds().split(StrUtil.COMMA)).collect(toList());
}
if(StrUtil.isNotBlank(pmsRunStatisticD.getOnlineMonitorIds())){
onMonitorIds.addAll(Arrays.stream(pmsRunStatisticD.getOnlineMonitorIds().split(StrUtil.COMMA)).collect(toList()));
}
}
}else{
newBaseList = item.getLineBaseList().stream().filter(o -> Objects.equals(o.getIsUpToGrid(), 1)).collect(toList());
upDevIds = newBaseList.stream().map(LineDevGetDTO::getDevId).distinct().collect(toList());
}
}else{
newBaseList = item.getLineBaseList().stream().filter(o -> Objects.equals(o.getIsUpToGrid(), 1)).collect(toList());
upDevIds = newBaseList.stream().map(LineDevGetDTO::getDevId).distinct().collect(toList());
} }
}
List<String> upMonitorIds = newBaseList.stream().map(LineDevGetDTO::getPointId).distinct().collect(toList()); List<String> upMonitorIds = newBaseList.stream().map(LineDevGetDTO::getPointId).distinct().collect(toList());
List<String> upDevIds = newBaseList.stream().map(LineDevGetDTO::getDevId).distinct().collect(toList());
List<LineDevGetDTO> finalNewBaseList = newBaseList; List<LineDevGetDTO> finalNewBaseList = newBaseList;
List<String> finalUpDevIds = upDevIds;
mapKey.forEach((key, val) -> { mapKey.forEach((key, val) -> {
List<LineDevGetDTO> keyItem = finalNewBaseList.stream().filter(o -> val.contains(o.getObjType())).collect(toList()); List<LineDevGetDTO> keyItem = finalNewBaseList.stream().filter(o -> val.contains(o.getObjType())).collect(toList());
RUploadPointStatisticalDataD rUploadPointStatisticalDataD = new RUploadPointStatisticalDataD(); RUploadPointStatisticalDataD rUploadPointStatisticalDataD = new RUploadPointStatisticalDataD();
@@ -219,18 +252,21 @@ public class RUploadPointStatisticalDataDServiceImpl extends MppServiceImpl<RUpl
long pointCount = keyItem.stream().map(LineDevGetDTO::getPointId).distinct().count(); long pointCount = keyItem.stream().map(LineDevGetDTO::getPointId).distinct().count();
rUploadPointStatisticalDataD.setRunTerminalNum(upDevIds.size()); rUploadPointStatisticalDataD.setRunTerminalNum(finalUpDevIds.size());
rUploadPointStatisticalDataD.setRunMonitorNum(upMonitorIds.size()); rUploadPointStatisticalDataD.setRunMonitorNum(upMonitorIds.size());
List<RStatIntegrityD> l3;
if(CollUtil.isNotEmpty(onMonitorIds)){
List<RStatIntegrityD> l3 = dataList.stream().filter(it -> upMonitorIds.contains(it.getLineIndex())).collect(toList()); l3 = dataList.stream().filter(it -> onMonitorIds.contains(it.getLineIndex())).collect(toList());
}else{
l3 = dataList.stream().filter(it -> upMonitorIds.contains(it.getLineIndex())).collect(toList());
}
int due = l3.stream().mapToInt(RStatIntegrityD::getDueTime).sum(); int due = l3.stream().mapToInt(RStatIntegrityD::getDueTime).sum();
int real = l3.stream().mapToInt(RStatIntegrityD::getRealTime).sum(); int real = l3.stream().mapToInt(RStatIntegrityD::getRealTime).sum();
rUploadPointStatisticalDataD.setExpectCollectNum(due); rUploadPointStatisticalDataD.setExpectCollectNum(due);
rUploadPointStatisticalDataD.setActualCollectNum(real); rUploadPointStatisticalDataD.setActualCollectNum(real);
long onlineCount = l3.stream().filter(me -> me.getRealTime() > 0).count(); long onlineCount = l3.stream().filter(me -> me.getRealTime() > 0).count();
rUploadPointStatisticalDataD.setOnlineMonitorNum((int) onlineCount); rUploadPointStatisticalDataD.setOnlineMonitorNum(onMonitorIds.size() == 0 ? (int) onlineCount : onMonitorIds.size());
rUploadPointStatisticalDataD.setOnlineMonitorRate(upMonitorIds.size() == 0 ? 0d : BigDecimal.valueOf(rUploadPointStatisticalDataD.getOnlineMonitorNum() * 100.0 / rUploadPointStatisticalDataD.getRunMonitorNum()).setScale(4, RoundingMode.HALF_UP).doubleValue()); rUploadPointStatisticalDataD.setOnlineMonitorRate(upMonitorIds.size() == 0 ? 0d : BigDecimal.valueOf(rUploadPointStatisticalDataD.getOnlineMonitorNum() * 100.0 / rUploadPointStatisticalDataD.getRunMonitorNum()).setScale(4, RoundingMode.HALF_UP).doubleValue());
@@ -289,7 +325,6 @@ public class RUploadPointStatisticalDataDServiceImpl extends MppServiceImpl<RUpl
}); });
if (CollectionUtil.isNotEmpty(result)) { if (CollectionUtil.isNotEmpty(result)) {
//查询数据如果有数据,将data_id置为null,这样就保留之前的唯一id //查询数据如果有数据,将data_id置为null,这样就保留之前的唯一id
LambdaQueryWrapper<RUploadPointStatisticalDataD> lambdaQueryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<RUploadPointStatisticalDataD> lambdaQueryWrapper = new LambdaQueryWrapper<>();
@@ -310,9 +345,11 @@ public class RUploadPointStatisticalDataDServiceImpl extends MppServiceImpl<RUpl
String startTime = DateUtil.format(DateUtil.beginOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)), DatePattern.NORM_DATE_PATTERN); String startTime = DateUtil.format(DateUtil.beginOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)), DatePattern.NORM_DATE_PATTERN);
//结束时间 //结束时间
String endTime = DateUtil.format(DateUtil.endOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)), DatePattern.NORM_DATE_PATTERN); String endTime = DateUtil.format(DateUtil.endOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)), DatePattern.NORM_DATE_PATTERN);
List<PmsRunStatisticM> pmsRunStatistic = runStatisticMService.selectListByDate(startTime, endTime,calculatedParam.getDataDate());
Map<String, PmsRunStatisticM> pmsRunStatisticMap = pmsRunStatistic.stream().collect(Collectors.toMap(PmsRunStatisticM::getDeptId, Function.identity()));
//数据集 //数据集
List<RUploadPointStatisticalDataD> list = this.baseMapper.pointStatisticalMonthData(beginMonth, startTime, endTime, "02"); List<RUploadPointStatisticalDataD> list = this.baseMapper.pointStatisticalMonthData(beginMonth, startTime, endTime, "02");
dataProcessing(calculatedParam, list); dataProcessing(calculatedParam, list, pmsRunStatisticMap, BizParamConstant.STAT_BIZ_MONTH);
} }
@Override @Override
@@ -323,18 +360,19 @@ public class RUploadPointStatisticalDataDServiceImpl extends MppServiceImpl<RUpl
String startTime = DateUtil.format(DateUtil.beginOfYear(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)), DatePattern.NORM_DATE_PATTERN); String startTime = DateUtil.format(DateUtil.beginOfYear(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)), DatePattern.NORM_DATE_PATTERN);
//结束时间 //结束时间
String endTime = DateUtil.format(DateUtil.endOfYear(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)), DatePattern.NORM_DATE_PATTERN); String endTime = DateUtil.format(DateUtil.endOfYear(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)), DatePattern.NORM_DATE_PATTERN);
List<PmsRunStatisticY> pmsRunStatistic = runStatisticYService.selectListByDate(startTime, endTime,calculatedParam.getDataDate());
Map<String, PmsRunStatisticY> pmsRunStatisticMap = pmsRunStatistic.stream().collect(Collectors.toMap(PmsRunStatisticY::getDeptId, Function.identity()));
//数据集 //数据集
List<RUploadPointStatisticalDataD> list = this.baseMapper.pointStatisticalMonthData(beginMonth, startTime, endTime, "01"); List<RUploadPointStatisticalDataD> list = this.baseMapper.pointStatisticalMonthData(beginMonth, startTime, endTime, "01");
dataProcessing(calculatedParam, list); dataProcessing(calculatedParam, list, pmsRunStatisticMap, BizParamConstant.STAT_BIZ_YEAR);
} }
/** /**
* @param calculatedParam * @param calculatedParam
* @param list 数据处理 * @param list 数据处理
*/ */
private void dataProcessing(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam, List<RUploadPointStatisticalDataD> list) { private void dataProcessing(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam, List<RUploadPointStatisticalDataD> list, Map<String, ?> pmsRunStatisticMap, String type) {
//数据分组
/* //数据分组
Map<String, List<RUploadPointStatisticalDataD>> listMap = list.stream().collect(Collectors.groupingBy(x -> x.getProvinceId() + x.getCityId() + x.getCountyId())); Map<String, List<RUploadPointStatisticalDataD>> listMap = list.stream().collect(Collectors.groupingBy(x -> x.getProvinceId() + x.getCityId() + x.getCountyId()));
//获取省级单位id //获取省级单位id
Dept root = deptFeignClient.getRootDept().getData(); Dept root = deptFeignClient.getRootDept().getData();
@@ -378,12 +416,70 @@ public class RUploadPointStatisticalDataDServiceImpl extends MppServiceImpl<RUpl
mapKey.put(sysDicTreePO.getCode(), ids); mapKey.put(sysDicTreePO.getCode(), ids);
otherIds.addAll(ids); otherIds.addAll(ids);
} }
List<LineDTO> lineDTOList=new ArrayList<>();
if (pmsRunStatisticMap.containsKey(dept.getCode())) {
List<String> monitorIds;
String runMonitorIds;
if (BizParamConstant.STAT_BIZ_MONTH.equals(type)) {
runMonitorIds = ((PmsRunStatisticM) pmsRunStatisticMap.get(dept.getCode())).getRunMonitorIds();
} else {
runMonitorIds = ((PmsRunStatisticY) pmsRunStatisticMap.get(dept.getCode())).getRunMonitorIds();
}
if(StrUtil.isNotBlank(runMonitorIds)){
monitorIds = CollectionUtil.toList(runMonitorIds.split(StrUtil.COMMA));
lineDTOList = commLineClient.getLineDetailBatch(monitorIds).getData();
}
}
RUploadPointStatisticalDataD data; RUploadPointStatisticalDataD data;
for (DeptGetChildrenMoreDTO item : calculatedParam.getIdList()) { for (DeptGetChildrenMoreDTO item : calculatedParam.getIdList()) {
//获取国网上送监测点 //获取国网上送监测点
List<LineDevGetDTO> temBaseList = item.getLineBaseList().stream().filter(o -> Objects.equals(o.getIsUpToGrid(), 1)).collect(Collectors.toList()); List<LineDevGetDTO> temBaseList;
long devCount;
if (CollectionUtil.isEmpty(pmsRunStatisticMap)) {
//正常流程
temBaseList = item.getLineBaseList().stream().filter(o -> Objects.equals(o.getIsUpToGrid(), 1)).collect(Collectors.toList());
devCount = temBaseList.stream().map(LineDevGetDTO::getDevId).distinct().count();
} else {
List<String> temIds=new ArrayList<>();
List<String> onDevIds=new ArrayList<>();
String runMonitorIds;
String devIds;
if (BizParamConstant.STAT_BIZ_MONTH.equals(type)) {
runMonitorIds = ((PmsRunStatisticM) pmsRunStatisticMap.get(item.getUnitId())).getRunMonitorIds();
devIds = ((PmsRunStatisticM) pmsRunStatisticMap.get(item.getUnitId())).getRunDevIds();
} else {
runMonitorIds = ((PmsRunStatisticY) pmsRunStatisticMap.get(item.getUnitId())).getRunMonitorIds();
devIds = ((PmsRunStatisticY) pmsRunStatisticMap.get(item.getUnitId())).getRunDevIds();
}
if(StrUtil.isNotBlank(runMonitorIds)){
temIds = CollectionUtil.toList(runMonitorIds.split(StrUtil.COMMA));
}
if(StrUtil.isNotBlank(devIds)){
onDevIds = CollectionUtil.toList(devIds.split(StrUtil.COMMA));
}
List<String> finalTemIds = temIds;
List<LineDevGetDTO> collect = lineDTOList.stream().filter(o -> finalTemIds.contains(o.getLineId())).map(it -> {
LineDevGetDTO lineDevGetDTO = new LineDevGetDTO();
lineDevGetDTO.setPointId(it.getLineId());
lineDevGetDTO.setDevId(it.getDevId());
lineDevGetDTO.setObjType(it.getObjType());
return lineDevGetDTO;
}).collect(toList());
if(CollUtil.isEmpty(collect)){
temBaseList = item.getLineBaseList().stream().filter(o -> Objects.equals(o.getIsUpToGrid(), 1)).collect(Collectors.toList());
devCount = temBaseList.stream().map(LineDevGetDTO::getDevId).distinct().count();
}else {
temBaseList = collect;
if(onDevIds.size()==0){
devCount = temBaseList.stream().map(LineDevGetDTO::getDevId).distinct().count();
}else{
devCount = onDevIds.size();
}
}
}
long monitorCount = temBaseList.stream().map(LineDevGetDTO::getPointId).distinct().count(); long monitorCount = temBaseList.stream().map(LineDevGetDTO::getPointId).distinct().count();
long devCount = temBaseList.stream().map(LineDevGetDTO::getDevId).distinct().count();
//其他类型 //其他类型
data = new RUploadPointStatisticalDataD(); data = new RUploadPointStatisticalDataD();
data.setProvinceId(dept.getCode()); data.setProvinceId(dept.getCode());
@@ -420,10 +516,16 @@ public class RUploadPointStatisticalDataDServiceImpl extends MppServiceImpl<RUpl
stationType = dictDataMap.get(DicDataEnum.Imp_Users.getCode()).getId(); stationType = dictDataMap.get(DicDataEnum.Imp_Users.getCode()).getId();
break; break;
} }
if (stationTypeMap.containsKey(stationType)) { if (stationTypeMap.containsKey(stationType)) {
long pointCount = keyItem.stream().map(LineDevGetDTO::getPointId).distinct().count(); long pointCount = keyItem.stream().map(LineDevGetDTO::getPointId).distinct().count();
RUploadPointStatisticalDataD rUploadPointStatisticalDataD = stationTypeMap.get(stationType); RUploadPointStatisticalDataD rUploadPointStatisticalDataD = stationTypeMap.get(stationType);
rUploadPointStatisticalDataD.setStationMonitorNum((int) pointCount); rUploadPointStatisticalDataD.setStationMonitorNum((int) pointCount);
rUploadPointStatisticalDataD.setRunTerminalNum((int) devCount);
rUploadPointStatisticalDataD.setOnlineMonitorNum((int) monitorCount);
rUploadPointStatisticalDataD.setRunMonitorNum((int) monitorCount);
rUploadPointStatisticalDataD.setOnlineMonitorRate(monitorCount == 0 ? 0d : BigDecimal.valueOf(rUploadPointStatisticalDataD.getOnlineMonitorNum() * 100.0 / rUploadPointStatisticalDataD.getRunMonitorNum()).setScale(4, RoundingMode.HALF_UP).doubleValue());
} }
}); });
@@ -437,10 +539,11 @@ public class RUploadPointStatisticalDataDServiceImpl extends MppServiceImpl<RUpl
rUploadPointStatisticalDataD.setOnlineMonitorNum((int) monitorCount); rUploadPointStatisticalDataD.setOnlineMonitorNum((int) monitorCount);
rUploadPointStatisticalDataD.setRunMonitorNum((int) monitorCount); rUploadPointStatisticalDataD.setRunMonitorNum((int) monitorCount);
rUploadPointStatisticalDataD.setStationMonitorNum((int) pointCount); rUploadPointStatisticalDataD.setStationMonitorNum((int) pointCount);
rUploadPointStatisticalDataD.setOnlineMonitorRate(monitorCount == 0 ? 0d : BigDecimal.valueOf(rUploadPointStatisticalDataD.getOnlineMonitorNum() * 100.0 / rUploadPointStatisticalDataD.getRunMonitorNum()).setScale(4, RoundingMode.HALF_UP).doubleValue());
} }
} }
}*/ }
if (CollUtil.isNotEmpty(list)) { if (CollUtil.isNotEmpty(list)) {
list.forEach(item -> { list.forEach(item -> {
item.setId(IdUtil.simpleUUID()); item.setId(IdUtil.simpleUUID());

View File

@@ -5,6 +5,7 @@ import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.common.pojo.enums.common.DataStateEnum; import com.njcn.common.pojo.enums.common.DataStateEnum;
@@ -16,11 +17,15 @@ import com.njcn.device.pms.api.StatationStatClient;
import com.njcn.device.pms.pojo.param.PmsStatationStatInfoParam; import com.njcn.device.pms.pojo.param.PmsStatationStatInfoParam;
import com.njcn.device.pms.pojo.po.PmsMidLedger; import com.njcn.device.pms.pojo.po.PmsMidLedger;
import com.njcn.device.pms.pojo.po.StatationStat; import com.njcn.device.pms.pojo.po.StatationStat;
import com.njcn.harmonic.pojo.po.upload.PmsRunStatisticM;
import com.njcn.harmonic.pojo.po.upload.PmsRunStatisticY;
import com.njcn.harmonic.pojo.po.upload.RUploadSubstationStatisticalDataD; import com.njcn.harmonic.pojo.po.upload.RUploadSubstationStatisticalDataD;
import com.njcn.prepare.harmonic.enums.UploadEnum; import com.njcn.prepare.harmonic.enums.UploadEnum;
import com.njcn.prepare.harmonic.mapper.mysql.dim.PmsMidLedgerMapper; import com.njcn.prepare.harmonic.mapper.mysql.dim.PmsMidLedgerMapper;
import com.njcn.prepare.harmonic.mapper.mysql.upload.RUploadSubstationStatisticalDataDMapper; import com.njcn.prepare.harmonic.mapper.mysql.upload.RUploadSubstationStatisticalDataDMapper;
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam; import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
import com.njcn.prepare.harmonic.service.mysql.upload.IPmsRunStatisticMService;
import com.njcn.prepare.harmonic.service.mysql.upload.IPmsRunStatisticYService;
import com.njcn.prepare.harmonic.service.mysql.upload.IRUploadSubstationStatisticalDataDService; import com.njcn.prepare.harmonic.service.mysql.upload.IRUploadSubstationStatisticalDataDService;
import com.njcn.user.api.DeptFeignClient; import com.njcn.user.api.DeptFeignClient;
import com.njcn.user.pojo.po.Dept; import com.njcn.user.pojo.po.Dept;
@@ -29,6 +34,7 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.*; import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import java.util.stream.Stream; import java.util.stream.Stream;
@@ -49,8 +55,15 @@ public class RUploadSubstationStatisticalDataDServiceImpl extends MppServiceImpl
private final StatationStatClient statationStatClient; private final StatationStatClient statationStatClient;
private final PmsMidLedgerMapper pmsMidLedgerMapper; private final PmsMidLedgerMapper pmsMidLedgerMapper;
private final CommTerminalGeneralClient commTerminalGeneralClient; private final CommTerminalGeneralClient commTerminalGeneralClient;
private final IPmsRunStatisticMService runStatisticMService;
private final IPmsRunStatisticYService runStatisticYService;
@Override @Override
public void insertSubStatisticalDataMonth(CalculatedParam<String> calculatedParam) { public void insertSubStatisticalDataMonth(CalculatedParam<String> calculatedParam) {
//起始时间
String startTime = DateUtil.format(DateUtil.beginOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)), DatePattern.NORM_DATE_PATTERN);
//结束时间
String endTime = DateUtil.format(DateUtil.endOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)), DatePattern.NORM_DATE_PATTERN);
List<RUploadSubstationStatisticalDataD> result = new ArrayList<>(); List<RUploadSubstationStatisticalDataD> result = new ArrayList<>();
//获取省级单位id //获取省级单位id
Dept data = deptFeignClient.getRootDept().getData(); Dept data = deptFeignClient.getRootDept().getData();
@@ -63,7 +76,22 @@ public class RUploadSubstationStatisticalDataDServiceImpl extends MppServiceImpl
List<DeptGetChildrenMoreDTO> deptGetChildrenList = commTerminalGeneralClient.deptGetLine(deptGetLineParam).getData(); List<DeptGetChildrenMoreDTO> deptGetChildrenList = commTerminalGeneralClient.deptGetLine(deptGetLineParam).getData();
Map<String,List<DeptGetChildrenMoreDTO>> deptChildren = deptGetChildrenList.stream().collect(Collectors.groupingBy(DeptGetChildrenMoreDTO::getUnitId)); Map<String,List<DeptGetChildrenMoreDTO>> deptChildren = deptGetChildrenList.stream().collect(Collectors.groupingBy(DeptGetChildrenMoreDTO::getUnitId));
//变电站id //变电站id
List<String> subList = calculatedParam.getIdList(); List<String> subList ;
//获取月数据
List<PmsRunStatisticM> pmsRunStatistics = runStatisticMService.selectListByDate(startTime, endTime,calculatedParam.getDataDate());
Map<String, PmsRunStatisticM> pmsRunStatisticMap = pmsRunStatistics.stream().collect(Collectors.toMap(PmsRunStatisticM::getDeptId, Function.identity()));
if (pmsRunStatisticMap.containsKey(dept.getCode())) {
String onlineStationIds = pmsRunStatisticMap.get(dept.getCode()).getOnlineStationIds();
if(StrUtil.isNotBlank(onlineStationIds)){
subList = CollectionUtil.toList(onlineStationIds.split(StrUtil.COMMA));
}else {
subList = calculatedParam.getIdList();
}
} else {
subList = calculatedParam.getIdList();
}
//获取监测变电站信息 //获取监测变电站信息
List<StatationStat> subInfo = getSubstationInfo(subList); List<StatationStat> subInfo = getSubstationInfo(subList);
Map<String,List<StatationStat>> subMap = subInfo.stream().collect(Collectors.groupingBy(StatationStat::getOrgId)); Map<String,List<StatationStat>> subMap = subInfo.stream().collect(Collectors.groupingBy(StatationStat::getOrgId));
@@ -84,6 +112,16 @@ public class RUploadSubstationStatisticalDataDServiceImpl extends MppServiceImpl
rUploadSubstationStatisticalDataD.setProvinceId(dept.getCode()); rUploadSubstationStatisticalDataD.setProvinceId(dept.getCode());
rUploadSubstationStatisticalDataD.setProvinceName(dept.getName()); rUploadSubstationStatisticalDataD.setProvinceName(dept.getName());
rUploadSubstationStatisticalDataD.setUploadStatus(Integer.parseInt(UploadEnum.UPLOAD_STATUS_0.getCode())); rUploadSubstationStatisticalDataD.setUploadStatus(Integer.parseInt(UploadEnum.UPLOAD_STATUS_0.getCode()));
if(pmsRunStatisticMap.containsKey(k)){
String runMonitorIds = pmsRunStatisticMap.get(dept.getCode()).getRunMonitorIds();
if(StrUtil.isNotBlank(runMonitorIds)){
ArrayList<String> list1 = CollectionUtil.toList(runMonitorIds.split(StrUtil.COMMA));
rUploadSubstationStatisticalDataD.setOnlineMonitorNum(list1.size());
}else {
rUploadSubstationStatisticalDataD.setOnlineMonitorNum(0);
}
}else{
//计算在线监测点数 //计算在线监测点数
List<LineDevGetDTO> l = deptChildren.get(k).get(0).getLineBaseList(); List<LineDevGetDTO> l = deptChildren.get(k).get(0).getLineBaseList();
if (CollUtil.isNotEmpty(l)){ if (CollUtil.isNotEmpty(l)){
@@ -92,6 +130,8 @@ public class RUploadSubstationStatisticalDataDServiceImpl extends MppServiceImpl
} else { } else {
rUploadSubstationStatisticalDataD.setOnlineMonitorNum(0); rUploadSubstationStatisticalDataD.setOnlineMonitorNum(0);
} }
}
//处理层级关系 && 处理基础数据 //处理层级关系 && 处理基础数据
this.getDeptLevel(list,rUploadSubstationStatisticalDataD,deptList,deptMap,k,subMap,midSubMap); this.getDeptLevel(list,rUploadSubstationStatisticalDataD,deptList,deptMap,k,subMap,midSubMap);
result.add(rUploadSubstationStatisticalDataD); result.add(rUploadSubstationStatisticalDataD);
@@ -122,6 +162,40 @@ public class RUploadSubstationStatisticalDataDServiceImpl extends MppServiceImpl
String endTime = DateUtil.format(DateUtil.endOfYear(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)), DatePattern.NORM_DATE_PATTERN); String endTime = DateUtil.format(DateUtil.endOfYear(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)), DatePattern.NORM_DATE_PATTERN);
//数据集 //数据集
List<RUploadSubstationStatisticalDataD> list = this.baseMapper.substationStatisticalMonthData(beginMonth,startTime,endTime); List<RUploadSubstationStatisticalDataD> list = this.baseMapper.substationStatisticalMonthData(beginMonth,startTime,endTime);
List<PmsRunStatisticY> pmsRunStatistics = runStatisticYService.selectListByDate(startTime, endTime,calculatedParam.getDataDate());
Map<String, PmsRunStatisticY> pmsRunStatisticMap = pmsRunStatistics.stream().collect(Collectors.toMap(PmsRunStatisticY::getDeptId, Function.identity()));
//数据分组
Map<String, List<RUploadSubstationStatisticalDataD>> listMap = list.stream().collect(Collectors.groupingBy(x ->{
String str = "";
if(StrUtil.isNotBlank(x.getProvinceId())){
str = x.getProvinceId();
}
if(StrUtil.isNotBlank(x.getCityId())){
str = x.getCityId();
}
if(StrUtil.isNotBlank(x.getCountyId())){
str = x.getCountyId();
}
return str;
}
));
listMap.forEach((key,value)->{
if(pmsRunStatisticMap.containsKey(key)){
PmsRunStatisticY pmsRunStatistic = pmsRunStatisticMap.get(key);
String runMonitorIds = pmsRunStatistic.getRunMonitorIds();
if(StrUtil.isNotBlank(runMonitorIds)){
ArrayList<String> list1 = CollectionUtil.toList(runMonitorIds.split(StrUtil.COMMA));
value.forEach(item->{
item.setOnlineMonitorNum(list1.size());
item.setMonitoringRate(Objects.isNull(item.getSubstationCount())?null:list1.size()*1.0/item.getSubstationCount()*100);
});
}
}
});
if (CollUtil.isNotEmpty(list)){ if (CollUtil.isNotEmpty(list)){
list.forEach(item->{ list.forEach(item->{
item.setId(IdUtil.simpleUUID()); item.setId(IdUtil.simpleUUID());
@@ -157,7 +231,13 @@ public class RUploadSubstationStatisticalDataDServiceImpl extends MppServiceImpl
* 判断当前部门的层级 * 判断当前部门的层级
* @return * @return
*/ */
public void getDeptLevel(List<String> list, RUploadSubstationStatisticalDataD rUploadSubstationStatisticalDataD, List<Dept> deptList, Map<String,List<Dept>> map, String code, Map<String,List<StatationStat>> subMap, Map<String,List<PmsMidLedger>> midSubMap) { public void getDeptLevel(List<String> list,
RUploadSubstationStatisticalDataD rUploadSubstationStatisticalDataD,
List<Dept> deptList,
Map<String,List<Dept>> map,
String code,
Map<String,List<StatationStat>> subMap,
Map<String,List<PmsMidLedger>> midSubMap) {
switch (list.size()) { switch (list.size()) {
//省级 //省级
case 2: case 2: