添加中间表算法
This commit is contained in:
@@ -40,6 +40,8 @@ public class RDimBusbarHarmnicDPO {
|
|||||||
@MppMultiId(value = "BusBar_Id")
|
@MppMultiId(value = "BusBar_Id")
|
||||||
private String busbarId;
|
private String busbarId;
|
||||||
|
|
||||||
|
@TableField(exist = false)
|
||||||
|
private String powerId;
|
||||||
/**
|
/**
|
||||||
* 稳态指标类型
|
* 稳态指标类型
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -0,0 +1,71 @@
|
|||||||
|
package com.njcn.harmonic.pojo.po.dim;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import java.time.LocalDate;
|
||||||
|
|
||||||
|
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* Date: 2023/11/23 9:26【需求编号】
|
||||||
|
*
|
||||||
|
* @author clam
|
||||||
|
* @version V1.0.0
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@TableName(value = "r_dim_station_harmnic_d")
|
||||||
|
public class RDimStationHarmnicDPO {
|
||||||
|
/**
|
||||||
|
* 单位code
|
||||||
|
*/
|
||||||
|
@MppMultiId(value = "Org_Id")
|
||||||
|
private String orgId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 统计时间 yyyy-mm-dd
|
||||||
|
*/
|
||||||
|
@MppMultiId(value = "Statis_Date")
|
||||||
|
private LocalDate statisDate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 电站id
|
||||||
|
*/
|
||||||
|
@MppMultiId(value = "Station_Id")
|
||||||
|
private String stationId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 稳态/暂态指标类型
|
||||||
|
*/
|
||||||
|
@MppMultiId(value = "Target_type")
|
||||||
|
private String targetType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 0稳态指标1.暂态指标
|
||||||
|
*/
|
||||||
|
@MppMultiId(value = "Level")
|
||||||
|
private Integer level;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 电压等级
|
||||||
|
*/
|
||||||
|
@TableField(value = "Voltage_level")
|
||||||
|
private String voltageLevel;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 超标次数
|
||||||
|
*/
|
||||||
|
@TableField(value = "limit_count")
|
||||||
|
private Integer limitCount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 稳态总统计次数
|
||||||
|
*/
|
||||||
|
@TableField(value = "Statis_count")
|
||||||
|
private Integer statisCount;
|
||||||
|
}
|
||||||
@@ -10,10 +10,7 @@ import com.njcn.prepare.harmonic.service.mysql.area.RStatHarmonicOrgService;
|
|||||||
import com.njcn.prepare.harmonic.service.mysql.area.RStatHarmonicService;
|
import com.njcn.prepare.harmonic.service.mysql.area.RStatHarmonicService;
|
||||||
import com.njcn.prepare.harmonic.service.mysql.area.RStatHarmonicVoltageService;
|
import com.njcn.prepare.harmonic.service.mysql.area.RStatHarmonicVoltageService;
|
||||||
import com.njcn.prepare.harmonic.service.mysql.area.RStatOrgService;
|
import com.njcn.prepare.harmonic.service.mysql.area.RStatOrgService;
|
||||||
import com.njcn.prepare.harmonic.service.mysql.dim.RDimBusTargetDPOService;
|
import com.njcn.prepare.harmonic.service.mysql.dim.*;
|
||||||
import com.njcn.prepare.harmonic.service.mysql.dim.RDimBusTargetMPOService;
|
|
||||||
import com.njcn.prepare.harmonic.service.mysql.dim.RDimBusTargetYPOService;
|
|
||||||
import com.njcn.prepare.harmonic.service.mysql.dim.RDimBusbarHarmnicDPOService;
|
|
||||||
import com.njcn.prepare.harmonic.service.mysql.line.PollutionService;
|
import com.njcn.prepare.harmonic.service.mysql.line.PollutionService;
|
||||||
import com.njcn.prepare.harmonic.service.mysql.newalgorithm.*;
|
import com.njcn.prepare.harmonic.service.mysql.newalgorithm.*;
|
||||||
import com.yomahub.liteflow.annotation.LiteflowComponent;
|
import com.yomahub.liteflow.annotation.LiteflowComponent;
|
||||||
@@ -50,6 +47,7 @@ public class OrgPointExecutor extends BaseExecutor{
|
|||||||
private final RAlarmCountService rAlarmCountService;
|
private final RAlarmCountService rAlarmCountService;
|
||||||
|
|
||||||
private final RDimBusbarHarmnicDPOService rDimBusbarHarmnicDPOService;
|
private final RDimBusbarHarmnicDPOService rDimBusbarHarmnicDPOService;
|
||||||
|
private final RDimStationHarmnicDPOService rDimStationHarmnicDPOService;
|
||||||
|
|
||||||
private final RDimStationTargetDPOService rDimStationTargetDPOService;
|
private final RDimStationTargetDPOService rDimStationTargetDPOService;
|
||||||
private final RDimStationTargetMPOService rDimStationTargetMPOService;
|
private final RDimStationTargetMPOService rDimStationTargetMPOService;
|
||||||
@@ -442,6 +440,8 @@ public class OrgPointExecutor extends BaseExecutor{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 河北主网新增算法表r_dim_station_target_d/m/y
|
* 河北主网新增算法表r_dim_station_target_d/m/y
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -0,0 +1,16 @@
|
|||||||
|
package com.njcn.prepare.harmonic.mapper.mysql.dim;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
|
||||||
|
import com.njcn.harmonic.pojo.po.dim.RDimStationHarmnicDPO;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* Date: 2023/11/23 9:26【需求编号】
|
||||||
|
*
|
||||||
|
* @author clam
|
||||||
|
* @version V1.0.0
|
||||||
|
*/
|
||||||
|
public interface RDimStationHarmnicDPOMapper extends MppBaseMapper<RDimStationHarmnicDPO> {
|
||||||
|
}
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="com.njcn.prepare.harmonic.mapper.mysql.dim.RDimStationHarmnicDPOMapper">
|
||||||
|
<resultMap id="BaseResultMap" type="com.njcn.harmonic.pojo.po.dim.RDimStationHarmnicDPO">
|
||||||
|
<!--@mbg.generated-->
|
||||||
|
<!--@Table r_dim_station_harmnic_d-->
|
||||||
|
<id column="Org_Id" jdbcType="CHAR" property="orgId" />
|
||||||
|
<id column="Statis_Date" jdbcType="DATE" property="statisDate" />
|
||||||
|
<id column="Station Id" jdbcType="CHAR" property="stationId" />
|
||||||
|
<id column="Target_type" jdbcType="CHAR" property="targetType" />
|
||||||
|
<id column="Level" jdbcType="BIT" property="level" />
|
||||||
|
<result column="Voltage_level" jdbcType="CHAR" property="voltageLevel" />
|
||||||
|
<result column="limit_count" jdbcType="INTEGER" property="limitCount" />
|
||||||
|
<result column="Statis_count" jdbcType="INTEGER" property="statisCount" />
|
||||||
|
</resultMap>
|
||||||
|
<sql id="Base_Column_List">
|
||||||
|
<!--@mbg.generated-->
|
||||||
|
Org_Id, Statis_Date, `Station Id`, Target_type, `Level`, Monitor_Tag, Voltage_level,
|
||||||
|
limit_count, Statis_count
|
||||||
|
</sql>
|
||||||
|
</mapper>
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
package com.njcn.prepare.harmonic.service.mysql.dim;
|
||||||
|
|
||||||
|
import com.github.jeffreyning.mybatisplus.service.IMppService;
|
||||||
|
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
|
||||||
|
import com.njcn.harmonic.pojo.po.dim.RDimStationHarmnicDPO;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* Date: 2023/11/23 9:26【需求编号】
|
||||||
|
*
|
||||||
|
* @author clam
|
||||||
|
* @version V1.0.0
|
||||||
|
*/
|
||||||
|
public interface RDimStationHarmnicDPOService extends IMppService<RDimStationHarmnicDPO> {
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -2,17 +2,24 @@ package com.njcn.prepare.harmonic.service.mysql.dim.impl;
|
|||||||
|
|
||||||
import cn.hutool.core.date.DatePattern;
|
import cn.hutool.core.date.DatePattern;
|
||||||
import cn.hutool.core.date.LocalDateTimeUtil;
|
import cn.hutool.core.date.LocalDateTimeUtil;
|
||||||
|
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.biz.pojo.dto.DeptGetChildrenMoreDTO;
|
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
|
||||||
import com.njcn.device.biz.pojo.dto.LineDevGetDTO;
|
import com.njcn.device.biz.pojo.dto.LineDevGetDTO;
|
||||||
|
import com.njcn.device.pms.api.StatationStatClient;
|
||||||
|
import com.njcn.device.pms.pojo.dto.PmsStatationStatInfoDTO;
|
||||||
|
import com.njcn.device.pms.pojo.param.PmsStatationStatInfoParam;
|
||||||
import com.njcn.device.pms.pojo.po.Monitor;
|
import com.njcn.device.pms.pojo.po.Monitor;
|
||||||
|
import com.njcn.device.pms.pojo.po.StatationStat;
|
||||||
import com.njcn.harmonic.pojo.po.RMpEventDetailDPO;
|
import com.njcn.harmonic.pojo.po.RMpEventDetailDPO;
|
||||||
import com.njcn.harmonic.pojo.po.day.RStatLimitRateDPO;
|
import com.njcn.harmonic.pojo.po.day.RStatLimitRateDPO;
|
||||||
|
import com.njcn.harmonic.pojo.po.dim.RDimStationHarmnicDPO;
|
||||||
import com.njcn.prepare.harmonic.mapper.mysql.line.PmsMonitorMapper;
|
import com.njcn.prepare.harmonic.mapper.mysql.line.PmsMonitorMapper;
|
||||||
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.day.IRStatLimitRateDService;
|
import com.njcn.prepare.harmonic.service.mysql.day.IRStatLimitRateDService;
|
||||||
|
|
||||||
|
import com.njcn.prepare.harmonic.service.mysql.dim.RDimStationHarmnicDPOService;
|
||||||
import com.njcn.prepare.harmonic.service.mysql.line.RMpEventDetailDService;
|
import com.njcn.prepare.harmonic.service.mysql.line.RMpEventDetailDService;
|
||||||
import com.njcn.prepare.harmonic.service.mysql.line.ROperatingMonitorService;
|
import com.njcn.prepare.harmonic.service.mysql.line.ROperatingMonitorService;
|
||||||
import com.njcn.system.api.DicDataFeignClient;
|
import com.njcn.system.api.DicDataFeignClient;
|
||||||
@@ -48,6 +55,8 @@ public class RDimBusbarHarmnicDPOServiceImpl extends MppServiceImpl<RDimBusbarHa
|
|||||||
private final IRStatLimitRateDService irStatLimitRateDService;
|
private final IRStatLimitRateDService irStatLimitRateDService;
|
||||||
private final ROperatingMonitorService rOperatingMonitorService;
|
private final ROperatingMonitorService rOperatingMonitorService;
|
||||||
private final RMpEventDetailDService rMpEventDetailDService;
|
private final RMpEventDetailDService rMpEventDetailDService;
|
||||||
|
private final RDimStationHarmnicDPOService rMpStationHarmnicDPOService;
|
||||||
|
private final StatationStatClient statationStatClient;
|
||||||
|
|
||||||
//咨询后直接用Mapper查询,这个算法只用pms补考虑pq,后续不知道要不要改
|
//咨询后直接用Mapper查询,这个算法只用pms补考虑pq,后续不知道要不要改
|
||||||
private final PmsMonitorMapper pmsMonitorMapper;
|
private final PmsMonitorMapper pmsMonitorMapper;
|
||||||
@@ -107,6 +116,7 @@ public class RDimBusbarHarmnicDPOServiceImpl extends MppServiceImpl<RDimBusbarHa
|
|||||||
RDimBusbarHarmnicDPO rDimBusbarHarmnicDPO = new RDimBusbarHarmnicDPO();
|
RDimBusbarHarmnicDPO rDimBusbarHarmnicDPO = new RDimBusbarHarmnicDPO();
|
||||||
rDimBusbarHarmnicDPO.setOrgId(deptGetChildrenMoreDTO.getUnitId());
|
rDimBusbarHarmnicDPO.setOrgId(deptGetChildrenMoreDTO.getUnitId());
|
||||||
rDimBusbarHarmnicDPO.setStatisDate(localDate);
|
rDimBusbarHarmnicDPO.setStatisDate(localDate);
|
||||||
|
rDimBusbarHarmnicDPO.setPowerId(busbar.getPowerrId());
|
||||||
rDimBusbarHarmnicDPO.setBusbarId(busbar.getLineId());
|
rDimBusbarHarmnicDPO.setBusbarId(busbar.getLineId());
|
||||||
rDimBusbarHarmnicDPO.setTargetType(temp.getId());
|
rDimBusbarHarmnicDPO.setTargetType(temp.getId());
|
||||||
rDimBusbarHarmnicDPO.setLevel(0);
|
rDimBusbarHarmnicDPO.setLevel(0);
|
||||||
@@ -164,6 +174,40 @@ public class RDimBusbarHarmnicDPOServiceImpl extends MppServiceImpl<RDimBusbarHa
|
|||||||
}
|
}
|
||||||
if (!CollectionUtils.isEmpty(rDimBusbarHarmnicDPOList)) {
|
if (!CollectionUtils.isEmpty(rDimBusbarHarmnicDPOList)) {
|
||||||
this.saveOrUpdateBatchByMultiId(rDimBusbarHarmnicDPOList, 500);
|
this.saveOrUpdateBatchByMultiId(rDimBusbarHarmnicDPOList, 500);
|
||||||
|
Map<String, Map<Integer, Map<String, Map<String, List<RDimBusbarHarmnicDPO>>>>> collect = rDimBusbarHarmnicDPOList.stream().collect(Collectors.groupingBy(RDimBusbarHarmnicDPO::getOrgId,
|
||||||
|
Collectors.groupingBy(RDimBusbarHarmnicDPO::getLevel,
|
||||||
|
Collectors.groupingBy(RDimBusbarHarmnicDPO::getTargetType,
|
||||||
|
Collectors.groupingBy(RDimBusbarHarmnicDPO::getPowerId)))));
|
||||||
|
List<RDimStationHarmnicDPO> rDimStationHarmnicDPOList = new ArrayList<>();
|
||||||
|
List<String> powerIdList = rDimBusbarHarmnicDPOList.stream().map(RDimBusbarHarmnicDPO::getPowerId).distinct().collect(Collectors.toList());
|
||||||
|
PmsStatationStatInfoParam param = new PmsStatationStatInfoParam();
|
||||||
|
param.setPowerIds(powerIdList);
|
||||||
|
List<PmsStatationStatInfoDTO> data = statationStatClient.getStatationStatInfo(param).getData();
|
||||||
|
collect.forEach((orgId,map)->{
|
||||||
|
map.forEach((level,map1)->{
|
||||||
|
map1.forEach((targetType,map2)->{
|
||||||
|
map2.forEach((powerId,map3)->{
|
||||||
|
RDimStationHarmnicDPO rDimStationHarmnicDPO = new RDimStationHarmnicDPO();
|
||||||
|
rDimStationHarmnicDPO.setOrgId(orgId);
|
||||||
|
rDimStationHarmnicDPO.setStatisDate(localDate);
|
||||||
|
rDimStationHarmnicDPO.setTargetType(targetType);
|
||||||
|
rDimStationHarmnicDPO.setStationId(powerId);
|
||||||
|
rDimStationHarmnicDPO.setLevel(level);
|
||||||
|
int sum = map3.stream().mapToInt(RDimBusbarHarmnicDPO::getStatisCount).sum();
|
||||||
|
rDimStationHarmnicDPO.setStatisCount(sum);
|
||||||
|
int limitSum = map3.stream().mapToInt(RDimBusbarHarmnicDPO::getLimitCount).sum();
|
||||||
|
rDimStationHarmnicDPO.setLimitCount(limitSum);
|
||||||
|
rDimStationHarmnicDPO.setVoltageLevel(data.stream().filter(temp->Objects.equals(temp.getPowerId(),powerId)).map(PmsStatationStatInfoDTO::getPowerVoltageLevel).findFirst().orElse("3.14159"));
|
||||||
|
rDimStationHarmnicDPOList.add(rDimStationHarmnicDPO);
|
||||||
|
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
if (!CollectionUtils.isEmpty(rDimStationHarmnicDPOList) ) {
|
||||||
|
rMpStationHarmnicDPOService.saveOrUpdateBatchByMultiId(rDimStationHarmnicDPOList,500);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,24 @@
|
|||||||
|
package com.njcn.prepare.harmonic.service.mysql.dim.impl;
|
||||||
|
|
||||||
|
|
||||||
|
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import com.njcn.prepare.harmonic.mapper.mysql.dim.RDimStationHarmnicDPOMapper;
|
||||||
|
import com.njcn.harmonic.pojo.po.dim.RDimStationHarmnicDPO;
|
||||||
|
import com.njcn.prepare.harmonic.service.mysql.dim.RDimStationHarmnicDPOService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* Date: 2023/11/23 9:26【需求编号】
|
||||||
|
*
|
||||||
|
* @author clam
|
||||||
|
* @version V1.0.0
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class RDimStationHarmnicDPOServiceImpl extends MppServiceImpl<RDimStationHarmnicDPOMapper, RDimStationHarmnicDPO> implements RDimStationHarmnicDPOService{
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user