zbj//1.单位暂态指标数据统计_季统计 算法
This commit is contained in:
@@ -23,6 +23,8 @@ public class RStatEventOrgDVO {
|
||||
|
||||
private Integer ecSum;
|
||||
|
||||
private Integer ecMSum;
|
||||
|
||||
private Integer emSum;
|
||||
|
||||
private Float emrAvg;
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
package com.njcn.prepare.harmonic.pojo.po;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDate;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
*
|
||||
* </p>
|
||||
*
|
||||
* @author zbj
|
||||
* @since 2023-06-16
|
||||
*/
|
||||
@Data
|
||||
@TableName("r_stat_event_org_q")
|
||||
public class RStatEventOrgQPO implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@MppMultiId(value = "org_no")
|
||||
private String orgNo;
|
||||
|
||||
@MppMultiId(value = "data_date")
|
||||
private LocalDate dataDate;
|
||||
|
||||
@MppMultiId(value = "event_type")
|
||||
private String eventType;
|
||||
|
||||
@TableField(value = "event_measurement_average")
|
||||
private Float eventMeasurementAverage;
|
||||
|
||||
@TableField(value = "event_measurement_accrued")
|
||||
private Integer eventMeasurementAccrued;
|
||||
|
||||
@TableField(value = "event_freq")
|
||||
private Float eventFreq;
|
||||
|
||||
@TableField(value = "event_count")
|
||||
private Integer eventCount;
|
||||
|
||||
@TableField(value = "event_measurement_ratio_average")
|
||||
private Float eventMeasurementRatioAverage;
|
||||
|
||||
@TableField(value = "event_measurement_ratio_accrued")
|
||||
private Float eventMeasurementRatioAccrued;
|
||||
|
||||
@MppMultiId(value = "data_type")
|
||||
private String dataType;
|
||||
|
||||
|
||||
}
|
||||
@@ -3,6 +3,9 @@ package com.njcn.prepare.harmonic.mapper.mysql.area;
|
||||
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
|
||||
import com.njcn.prepare.harmonic.pojo.po.RStatOrgQPO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
*
|
||||
@@ -15,4 +18,10 @@ import org.apache.ibatis.annotations.Mapper;
|
||||
*/
|
||||
@Mapper
|
||||
public interface RStatOrgQMapper extends MppBaseMapper<RStatOrgQPO> {
|
||||
|
||||
Map<String, Object> selectQlist(@Param("startTime") String startTime,
|
||||
@Param("endTime") String endTime,
|
||||
@Param("orgId") String orgId,
|
||||
@Param("dataTypeId") String dataTypeId);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
<?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.area.RStatOrgQMapper">
|
||||
|
||||
<select id="selectQlist" resultType="java.util.Map">
|
||||
SELECT sum(effective_measurement_accrued) "efSum"
|
||||
FROM r_stat_org_q
|
||||
WHERE date_format(data_date, '%y%m%d') >= date_format(#{startTime}, '%y%m%d')
|
||||
AND date_format(data_date, '%y%m%d') <= date_format(#{endTime}, '%y%m%d')
|
||||
AND org_no = #{orgId}
|
||||
AND data_type = #{dataTypeId}
|
||||
GROUP BY org_no
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
@@ -25,4 +25,8 @@ public interface RStatEventOrgDPOMapper extends MppBaseMapper<RStatEventOrgDPO>
|
||||
@Param("orgId") String orgId,
|
||||
@Param("dataTypeId") String dataTypeId);
|
||||
|
||||
List<RStatEventOrgDVO> selectQlist(@Param("startTime") String startTime,
|
||||
@Param("endTime") String endTime,
|
||||
@Param("orgId") String orgId,
|
||||
@Param("dataTypeId") String dataTypeId);
|
||||
}
|
||||
@@ -19,4 +19,10 @@ import java.util.List;
|
||||
*/
|
||||
@Mapper
|
||||
public interface RStatEventOrgMPOMapper extends MppBaseMapper<RStatEventOrgMPO> {
|
||||
|
||||
List<RStatEventOrgDVO> selectQlist(@Param("startTime") String startTime,
|
||||
@Param("endTime") String endTime,
|
||||
@Param("orgId") String orgId,
|
||||
@Param("dataTypeId") String dataTypeId);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package com.njcn.prepare.harmonic.mapper.mysql.newalgorithm;
|
||||
|
||||
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
|
||||
import com.njcn.prepare.harmonic.pojo.po.RStatEventOrgQPO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
* Description:
|
||||
* 接口文档访问地址:http://serverIP:port/swagger-ui.html
|
||||
* Date: 2022/12/13 15:39【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
@Mapper
|
||||
public interface RStatEventOrgQPOMapper extends MppBaseMapper<RStatEventOrgQPO> {
|
||||
}
|
||||
@@ -3,6 +3,10 @@ package com.njcn.prepare.harmonic.mapper.mysql.newalgorithm;
|
||||
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
|
||||
import com.njcn.prepare.harmonic.pojo.po.RStatEventQPO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* Description:
|
||||
@@ -14,4 +18,10 @@ import org.apache.ibatis.annotations.Mapper;
|
||||
*/
|
||||
@Mapper
|
||||
public interface RStatEventQPOMapper extends MppBaseMapper<RStatEventQPO> {
|
||||
|
||||
List<Map<String, Object>> selectQlist(@Param("startTime") String startTime,
|
||||
@Param("endTime") String endTime,
|
||||
@Param("orgId") String orgId,
|
||||
@Param("dataTypeId") String dataTypeId);
|
||||
|
||||
}
|
||||
@@ -18,4 +18,20 @@
|
||||
event_type
|
||||
</select>
|
||||
|
||||
|
||||
<select id="selectQlist" resultType="com.njcn.prepare.harmonic.pojo.po.RStatEventOrgDVO">
|
||||
SELECT
|
||||
org_no "orgNo",
|
||||
event_type "eventType",
|
||||
sum(event_measurement) "emSum",
|
||||
sum(event_count) "ecSum"
|
||||
FROM r_stat_event_org_d
|
||||
WHERE date_format(data_date, '%y%m%d') >= date_format(#{startTime}, '%y%m%d')
|
||||
AND date_format(data_date, '%y%m%d') <= date_format(#{endTime}, '%y%m%d')
|
||||
AND org_no = #{orgId}
|
||||
AND data_type = #{dataTypeId}
|
||||
GROUP BY org_no,
|
||||
event_type
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,20 @@
|
||||
<?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.newalgorithm.RStatEventOrgMPOMapper">
|
||||
|
||||
<select id="selectQlist" resultType="com.njcn.prepare.harmonic.pojo.po.RStatEventOrgDVO">
|
||||
SELECT org_no "orgNo",
|
||||
event_type "eventType",
|
||||
round(avg(event_measurement_average), 2) "emAvg",
|
||||
sum(event_count) "ecMSum",
|
||||
round(avg(event_measurement_ratio_average), 2) "emrAvg"
|
||||
FROM r_stat_event_org_m
|
||||
WHERE date_format(data_date, '%y%m%d') >= date_format(#{startTime}, '%y%m%d')
|
||||
AND date_format(data_date, '%y%m%d') <= date_format(#{endTime}, '%y%m%d')
|
||||
AND org_no = #{orgId}
|
||||
AND data_type = #{dataTypeId}
|
||||
GROUP BY org_no,
|
||||
event_type
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,17 @@
|
||||
<?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.newalgorithm.RStatEventQPOMapper">
|
||||
|
||||
<select id="selectQlist" resultType="java.util.Map">
|
||||
SELECT event_type "eventType",
|
||||
sum(event_measurement_accrued) "emaSum"
|
||||
FROM r_stat_event_q
|
||||
WHERE date_format(data_date, '%y%m%d') >= date_format(#{startTime}, '%y%m%d')
|
||||
AND date_format(data_date, '%y%m%d') <= date_format(#{endTime}, '%y%m%d')
|
||||
AND org_no = #{orgId}
|
||||
AND data_type = #{dataTypeId}
|
||||
GROUP BY org_no,
|
||||
event_type
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,14 @@
|
||||
package com.njcn.prepare.harmonic.service.mysql.newalgorithm;
|
||||
|
||||
|
||||
import com.github.jeffreyning.mybatisplus.service.IMppService;
|
||||
import com.njcn.prepare.harmonic.pojo.po.RStatEventOrgQPO;
|
||||
|
||||
|
||||
/**
|
||||
* @author zbj
|
||||
* @since 2023-06-16
|
||||
*/
|
||||
|
||||
public interface RStatEventOrgQPOService extends IMppService<RStatEventOrgQPO> {
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
package com.njcn.prepare.harmonic.service.mysql.newalgorithm.impl;
|
||||
|
||||
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
|
||||
import com.njcn.prepare.harmonic.mapper.mysql.newalgorithm.RStatEventOrgMPOMapper;
|
||||
import com.njcn.prepare.harmonic.mapper.mysql.newalgorithm.RStatEventOrgQPOMapper;
|
||||
import com.njcn.prepare.harmonic.pojo.po.RStatEventOrgMPO;
|
||||
import com.njcn.prepare.harmonic.pojo.po.RStatEventOrgQPO;
|
||||
import com.njcn.prepare.harmonic.service.mysql.newalgorithm.RStatEventOrgMPOService;
|
||||
import com.njcn.prepare.harmonic.service.mysql.newalgorithm.RStatEventOrgQPOService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 终端检测监督
|
||||
* </p>
|
||||
*
|
||||
* @author zbj
|
||||
* @since 2023-06-14
|
||||
*/
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class RStatEventOrgQPOServiceImpl extends MppServiceImpl<RStatEventOrgQPOMapper, RStatEventOrgQPO> implements RStatEventOrgQPOService {
|
||||
}
|
||||
@@ -14,9 +14,7 @@ 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.line.RMpEventDetailDMapper;
|
||||
import com.njcn.prepare.harmonic.mapper.mysql.line.RMpEventDetailMMapper;
|
||||
import com.njcn.prepare.harmonic.mapper.mysql.newalgorithm.RStatEventDPOMapper;
|
||||
import com.njcn.prepare.harmonic.mapper.mysql.newalgorithm.RStatEventMPOMapper;
|
||||
import com.njcn.prepare.harmonic.mapper.mysql.newalgorithm.RStatEventOrgDPOMapper;
|
||||
import com.njcn.prepare.harmonic.mapper.mysql.newalgorithm.*;
|
||||
import com.njcn.prepare.harmonic.pojo.po.*;
|
||||
import com.njcn.prepare.harmonic.service.mysql.newalgorithm.*;
|
||||
import com.njcn.system.api.DicDataFeignClient;
|
||||
@@ -24,6 +22,7 @@ import com.njcn.system.enums.DicDataEnum;
|
||||
import com.njcn.system.enums.DicDataTypeEnum;
|
||||
import com.njcn.system.pojo.po.DictData;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
@@ -56,23 +55,31 @@ public class RStatEventOrgServiceImpl implements RStatEventOrgService {
|
||||
|
||||
private final RStatOrgMMapper rStatOrgMMapper;
|
||||
|
||||
private final RStatOrgQMapper rStatOrgQMapper;
|
||||
|
||||
private final RStatEventOrgDPOMapper rStatEventOrgDPOMapper;
|
||||
|
||||
private final RStatEventOrgMPOMapper rStatEventOrgMPOMapper;
|
||||
|
||||
private final RStatEventMPOMapper rStatEventMPOMapper;
|
||||
|
||||
private final RStatEventQPOMapper rStatEventQPOMapper;
|
||||
|
||||
private final RStatEventOrgDPOService rStatEventOrgDPOService;
|
||||
|
||||
private final RStatEventOrgMPOService rStatEventOrgMPOService;
|
||||
|
||||
private final RStatEventOrgQPOService rStatEventOrgQPOService;
|
||||
|
||||
@Override
|
||||
public void handler(List<DeptGetChildrenMoreDTO> data, String dataDate, Integer type) {
|
||||
switch (type) {
|
||||
/* case 1:
|
||||
this.rStartEventYHandler (data, dataDate, type);
|
||||
break;
|
||||
case 2:
|
||||
this.rStartEventQHandler(data, dataDate, type);
|
||||
break;*/
|
||||
case 2:
|
||||
this.rStartEventOrgQHandler(data, dataDate, type);
|
||||
break;
|
||||
case 3:
|
||||
this.rStartEventOrgMHandler(data, dataDate, type);
|
||||
break;
|
||||
@@ -316,4 +323,192 @@ public class RStatEventOrgServiceImpl implements RStatEventOrgService {
|
||||
}
|
||||
}
|
||||
|
||||
//季表
|
||||
public void rStartEventOrgQHandler(List<DeptGetChildrenMoreDTO> data, String dataDate, Integer type) {
|
||||
List<RStatEventOrgQPO> rStatEventOrgQPOS = new ArrayList<>();
|
||||
DecimalFormat df = new DecimalFormat("0.00");
|
||||
Date date = DateUtil.parse(dataDate);
|
||||
LocalDate localDate = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
|
||||
|
||||
//计算季度的开始日期和结束日期
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
||||
Calendar calendar = Calendar.getInstance();
|
||||
calendar.setTime(date);
|
||||
int quarter = (calendar.get(Calendar.MONTH) / 3) + 1; // 计算日期所在的季度
|
||||
calendar.set(Calendar.MONTH, (quarter - 1) * 3); // 设置季度开始的月份
|
||||
calendar.set(Calendar.DAY_OF_MONTH, 1); // 设置季度开始的日期
|
||||
String startTime = sdf.format(calendar.getTime()); // 季度开始日期
|
||||
calendar.add(Calendar.MONTH, 2); // 添加两个月,使其到季度结束的月份
|
||||
calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH)); // 设置季度结束的日期 - 月份最后一天
|
||||
String endTime = sdf.format(calendar.getTime()); // 季度结束日期
|
||||
|
||||
/*获取暂态统计指标*/
|
||||
List<DictData> eventStatis = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.EVENT_STATIS.getCode()).getData();
|
||||
Map<String, DictData> eventStatisMap = eventStatis.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData));
|
||||
|
||||
/*获取数据类型*/
|
||||
List<DictData> dataTypeList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DATA_TYPE.getCode()).getData();
|
||||
Map<String, DictData> dataTypeMap = dataTypeList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData));
|
||||
|
||||
data.forEach(deptGetChildrenMoreDTO -> {
|
||||
|
||||
//主网月表
|
||||
List<RStatEventOrgDVO> zwMList = rStatEventOrgMPOMapper.selectQlist(startTime, endTime,
|
||||
deptGetChildrenMoreDTO.getUnitId(), dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId());
|
||||
|
||||
//配网月表
|
||||
List<RStatEventOrgDVO> pwMList = rStatEventOrgMPOMapper.selectQlist(startTime, endTime,
|
||||
deptGetChildrenMoreDTO.getUnitId(), dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId());
|
||||
|
||||
//主网天表
|
||||
List<RStatEventOrgDVO> zwDList = rStatEventOrgDPOMapper.selectQlist(startTime, endTime,
|
||||
deptGetChildrenMoreDTO.getUnitId(), dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId());
|
||||
|
||||
//配网天表
|
||||
List<RStatEventOrgDVO> pwDList = rStatEventOrgDPOMapper.selectQlist(startTime, endTime,
|
||||
deptGetChildrenMoreDTO.getUnitId(), dataTypeMap.get(DicDataEnum.DISTRIBUTION_POINT.getCode()).getId());
|
||||
|
||||
//主网r_stat_event_q
|
||||
List<Map<String, Object>> zwEmaSum = rStatEventQPOMapper.selectQlist(startTime, endTime,
|
||||
deptGetChildrenMoreDTO.getUnitId(), dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId());
|
||||
|
||||
//配网r_stat_event_q
|
||||
List<Map<String, Object>> pwEmaSum = rStatEventQPOMapper.selectQlist(startTime, endTime,
|
||||
deptGetChildrenMoreDTO.getUnitId(), dataTypeMap.get(DicDataEnum.DISTRIBUTION_POINT.getCode()).getId());
|
||||
|
||||
//主网r_stat_org_q
|
||||
Map<String, Object> zwEfSum = rStatOrgQMapper.selectQlist(startTime, endTime,
|
||||
deptGetChildrenMoreDTO.getUnitId(), dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId());
|
||||
|
||||
//配网r_stat_org_q
|
||||
Map<String, Object> pwEfSum = rStatOrgQMapper.selectQlist(startTime, endTime,
|
||||
deptGetChildrenMoreDTO.getUnitId(), dataTypeMap.get(DicDataEnum.DISTRIBUTION_POINT.getCode()).getId());
|
||||
|
||||
|
||||
//主网
|
||||
if (!CollectionUtils.isEmpty(zwMList) && !CollectionUtils.isEmpty(zwDList)) {
|
||||
|
||||
for (RStatEventOrgDVO rStatEventOrgDVO : zwMList) {
|
||||
for (RStatEventOrgDVO statEventOrgDVO : zwDList) {
|
||||
if (Objects.equals(rStatEventOrgDVO.getEventType(),statEventOrgDVO.getEventType())){
|
||||
rStatEventOrgDVO.setEcSum(statEventOrgDVO.getEcSum());
|
||||
rStatEventOrgDVO.setEmSum(statEventOrgDVO.getEmSum());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//转map
|
||||
Map<String, Integer> emaMap = new HashMap<>();
|
||||
if (!CollectionUtils.isEmpty(zwEmaSum)) {
|
||||
for (Map<String, Object> map : zwEmaSum) {
|
||||
emaMap.put(map.get("eventType").toString(), Integer.valueOf(map.get("emaSum").toString()));
|
||||
}
|
||||
} else {
|
||||
emaMap.put(eventStatisMap.get(DicDataEnum.VOLTAGE_DIP.getCode()).getId(), 0);
|
||||
emaMap.put(eventStatisMap.get(DicDataEnum.VOLTAGE_RISE.getCode()).getId(), 0);
|
||||
emaMap.put(eventStatisMap.get(DicDataEnum.SHORT_INTERRUPTIONS.getCode()).getId(), 0);
|
||||
}
|
||||
|
||||
//循环
|
||||
zwMList.forEach(obj -> {
|
||||
RStatEventOrgQPO rStatEventOrgQPO = new RStatEventOrgQPO();
|
||||
rStatEventOrgQPO.setOrgNo(obj.getOrgNo());
|
||||
rStatEventOrgQPO.setDataDate(localDate);
|
||||
rStatEventOrgQPO.setEventType(obj.getEventType());
|
||||
rStatEventOrgQPO.setEventMeasurementAverage(obj.getEmrAvg());
|
||||
rStatEventOrgQPO.setEventCount(obj.getEcMSum());
|
||||
rStatEventOrgQPO.setEventMeasurementRatioAverage(obj.getEmrAvg());
|
||||
rStatEventOrgQPO.setDataType(dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId());
|
||||
|
||||
if (emaMap.get(obj.getEventType()) == 0) {
|
||||
rStatEventOrgQPO.setEventMeasurementAccrued(0);
|
||||
} else {
|
||||
rStatEventOrgQPO.setEventMeasurementAccrued(emaMap.get(obj.getEventType()));
|
||||
}
|
||||
if (obj.getEmSum() == 0) {
|
||||
rStatEventOrgQPO.setEventFreq(0.00f);
|
||||
} else {
|
||||
String value = df.format(obj.getEcSum().floatValue() / obj.getEmSum());
|
||||
rStatEventOrgQPO.setEventFreq(Float.parseFloat(value));
|
||||
}
|
||||
if (!CollectionUtils.isEmpty(zwEfSum)) {
|
||||
if (Integer.parseInt(zwEfSum.get("efSum").toString()) == 0) {
|
||||
rStatEventOrgQPO.setEventMeasurementRatioAccrued(0.00f);
|
||||
} else {
|
||||
String value = df.format(rStatEventOrgQPO.getEventMeasurementAccrued() / Float.parseFloat(zwEfSum.get("efSum").toString()));
|
||||
rStatEventOrgQPO.setEventMeasurementRatioAccrued(Float.parseFloat(value));
|
||||
}
|
||||
} else {
|
||||
rStatEventOrgQPO.setEventMeasurementRatioAccrued(0.00f);
|
||||
}
|
||||
rStatEventOrgQPOS.add(rStatEventOrgQPO);
|
||||
});
|
||||
}
|
||||
|
||||
//配网
|
||||
if (!CollectionUtils.isEmpty(pwMList) && !CollectionUtils.isEmpty(pwDList)) {
|
||||
|
||||
for (RStatEventOrgDVO rStatEventOrgDVO : pwMList) {
|
||||
for (RStatEventOrgDVO statEventOrgDVO : pwDList) {
|
||||
if (Objects.equals(rStatEventOrgDVO.getEventType(),statEventOrgDVO.getEventType())){
|
||||
rStatEventOrgDVO.setEcSum(statEventOrgDVO.getEcSum());
|
||||
rStatEventOrgDVO.setEmSum(statEventOrgDVO.getEmSum());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//转map
|
||||
Map<String, Integer> emaMap = new HashMap<>();
|
||||
if (!CollectionUtils.isEmpty(pwEmaSum)) {
|
||||
for (Map<String, Object> map : pwEmaSum) {
|
||||
emaMap.put(map.get("eventType").toString(), Integer.valueOf(map.get("emaSum").toString()));
|
||||
}
|
||||
} else {
|
||||
emaMap.put(eventStatisMap.get(DicDataEnum.VOLTAGE_DIP.getCode()).getId(), 0);
|
||||
emaMap.put(eventStatisMap.get(DicDataEnum.VOLTAGE_RISE.getCode()).getId(), 0);
|
||||
emaMap.put(eventStatisMap.get(DicDataEnum.SHORT_INTERRUPTIONS.getCode()).getId(), 0);
|
||||
}
|
||||
|
||||
//循环
|
||||
pwMList.forEach(obj -> {
|
||||
RStatEventOrgQPO rStatEventOrgQPO = new RStatEventOrgQPO();
|
||||
rStatEventOrgQPO.setOrgNo(obj.getOrgNo());
|
||||
rStatEventOrgQPO.setDataDate(localDate);
|
||||
rStatEventOrgQPO.setEventType(obj.getEventType());
|
||||
rStatEventOrgQPO.setEventMeasurementAverage(obj.getEmrAvg());
|
||||
rStatEventOrgQPO.setEventCount(obj.getEcMSum());
|
||||
rStatEventOrgQPO.setEventMeasurementRatioAverage(obj.getEmrAvg());
|
||||
rStatEventOrgQPO.setDataType(dataTypeMap.get(DicDataEnum.DISTRIBUTION_POINT.getCode()).getId());
|
||||
|
||||
if (emaMap.get(obj.getEventType()) == 0) {
|
||||
rStatEventOrgQPO.setEventMeasurementAccrued(0);
|
||||
} else {
|
||||
rStatEventOrgQPO.setEventMeasurementAccrued(emaMap.get(obj.getEventType()));
|
||||
}
|
||||
if (obj.getEmSum() == 0) {
|
||||
rStatEventOrgQPO.setEventFreq(0.00f);
|
||||
} else {
|
||||
String value = df.format(obj.getEcSum() / obj.getEmSum().floatValue());
|
||||
rStatEventOrgQPO.setEventFreq(Float.parseFloat(value));
|
||||
}
|
||||
if (!CollectionUtils.isEmpty(pwEfSum)) {
|
||||
if (Integer.parseInt(pwEfSum.get("efSum").toString()) == 0) {
|
||||
rStatEventOrgQPO.setEventMeasurementRatioAccrued(0.00f);
|
||||
} else {
|
||||
String value = df.format(rStatEventOrgQPO.getEventMeasurementAccrued() / Float.parseFloat(pwEfSum.get("efSum").toString()));
|
||||
rStatEventOrgQPO.setEventMeasurementRatioAccrued(Float.parseFloat(value));
|
||||
}
|
||||
} else {
|
||||
rStatEventOrgQPO.setEventMeasurementRatioAccrued(0.00f);
|
||||
}
|
||||
rStatEventOrgQPOS.add(rStatEventOrgQPO);
|
||||
});
|
||||
}
|
||||
|
||||
});
|
||||
if (!CollectionUtils.isEmpty(rStatEventOrgQPOS)) {
|
||||
rStatEventOrgQPOService.saveOrUpdateBatchByMultiId(rStatEventOrgQPOS, 500);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user