添加中间表算法
This commit is contained in:
@@ -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.RStatHarmonicVoltageService;
|
||||
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.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.dim.*;
|
||||
import com.njcn.prepare.harmonic.service.mysql.line.PollutionService;
|
||||
import com.njcn.prepare.harmonic.service.mysql.newalgorithm.*;
|
||||
import com.yomahub.liteflow.annotation.LiteflowComponent;
|
||||
@@ -50,6 +47,7 @@ public class OrgPointExecutor extends BaseExecutor{
|
||||
private final RAlarmCountService rAlarmCountService;
|
||||
|
||||
private final RDimBusbarHarmnicDPOService rDimBusbarHarmnicDPOService;
|
||||
private final RDimStationHarmnicDPOService rDimStationHarmnicDPOService;
|
||||
|
||||
private final RDimStationTargetDPOService rDimStationTargetDPOService;
|
||||
private final RDimStationTargetMPOService rDimStationTargetMPOService;
|
||||
@@ -442,6 +440,8 @@ public class OrgPointExecutor extends BaseExecutor{
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 河北主网新增算法表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.LocalDateTimeUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
|
||||
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
|
||||
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.StatationStat;
|
||||
import com.njcn.harmonic.pojo.po.RMpEventDetailDPO;
|
||||
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.pojo.bo.CalculatedParam;
|
||||
import com.njcn.prepare.harmonic.pojo.mysql.ROperatingMonitorDPO;
|
||||
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.ROperatingMonitorService;
|
||||
import com.njcn.system.api.DicDataFeignClient;
|
||||
@@ -48,6 +55,8 @@ public class RDimBusbarHarmnicDPOServiceImpl extends MppServiceImpl<RDimBusbarHa
|
||||
private final IRStatLimitRateDService irStatLimitRateDService;
|
||||
private final ROperatingMonitorService rOperatingMonitorService;
|
||||
private final RMpEventDetailDService rMpEventDetailDService;
|
||||
private final RDimStationHarmnicDPOService rMpStationHarmnicDPOService;
|
||||
private final StatationStatClient statationStatClient;
|
||||
|
||||
//咨询后直接用Mapper查询,这个算法只用pms补考虑pq,后续不知道要不要改
|
||||
private final PmsMonitorMapper pmsMonitorMapper;
|
||||
@@ -107,6 +116,7 @@ public class RDimBusbarHarmnicDPOServiceImpl extends MppServiceImpl<RDimBusbarHa
|
||||
RDimBusbarHarmnicDPO rDimBusbarHarmnicDPO = new RDimBusbarHarmnicDPO();
|
||||
rDimBusbarHarmnicDPO.setOrgId(deptGetChildrenMoreDTO.getUnitId());
|
||||
rDimBusbarHarmnicDPO.setStatisDate(localDate);
|
||||
rDimBusbarHarmnicDPO.setPowerId(busbar.getPowerrId());
|
||||
rDimBusbarHarmnicDPO.setBusbarId(busbar.getLineId());
|
||||
rDimBusbarHarmnicDPO.setTargetType(temp.getId());
|
||||
rDimBusbarHarmnicDPO.setLevel(0);
|
||||
@@ -164,6 +174,40 @@ public class RDimBusbarHarmnicDPOServiceImpl extends MppServiceImpl<RDimBusbarHa
|
||||
}
|
||||
if (!CollectionUtils.isEmpty(rDimBusbarHarmnicDPOList)) {
|
||||
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