zbj//1.单位暂态指标数据统计_季统计 算法
This commit is contained in:
@@ -23,6 +23,8 @@ public class RStatEventOrgDVO {
|
|||||||
|
|
||||||
private Integer ecSum;
|
private Integer ecSum;
|
||||||
|
|
||||||
|
private Integer ecMSum;
|
||||||
|
|
||||||
private Integer emSum;
|
private Integer emSum;
|
||||||
|
|
||||||
private Float emrAvg;
|
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.github.jeffreyning.mybatisplus.base.MppBaseMapper;
|
||||||
import com.njcn.prepare.harmonic.pojo.po.RStatOrgQPO;
|
import com.njcn.prepare.harmonic.pojo.po.RStatOrgQPO;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
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
|
@Mapper
|
||||||
public interface RStatOrgQMapper extends MppBaseMapper<RStatOrgQPO> {
|
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("orgId") String orgId,
|
||||||
@Param("dataTypeId") String dataTypeId);
|
@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
|
@Mapper
|
||||||
public interface RStatEventOrgMPOMapper extends MppBaseMapper<RStatEventOrgMPO> {
|
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.github.jeffreyning.mybatisplus.base.MppBaseMapper;
|
||||||
import com.njcn.prepare.harmonic.pojo.po.RStatEventQPO;
|
import com.njcn.prepare.harmonic.pojo.po.RStatEventQPO;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Description:
|
* Description:
|
||||||
@@ -14,4 +18,10 @@ import org.apache.ibatis.annotations.Mapper;
|
|||||||
*/
|
*/
|
||||||
@Mapper
|
@Mapper
|
||||||
public interface RStatEventQPOMapper extends MppBaseMapper<RStatEventQPO> {
|
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
|
event_type
|
||||||
</select>
|
</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>
|
</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.area.RStatOrgYMapper;
|
||||||
import com.njcn.prepare.harmonic.mapper.mysql.line.RMpEventDetailDMapper;
|
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.line.RMpEventDetailMMapper;
|
||||||
import com.njcn.prepare.harmonic.mapper.mysql.newalgorithm.RStatEventDPOMapper;
|
import com.njcn.prepare.harmonic.mapper.mysql.newalgorithm.*;
|
||||||
import com.njcn.prepare.harmonic.mapper.mysql.newalgorithm.RStatEventMPOMapper;
|
|
||||||
import com.njcn.prepare.harmonic.mapper.mysql.newalgorithm.RStatEventOrgDPOMapper;
|
|
||||||
import com.njcn.prepare.harmonic.pojo.po.*;
|
import com.njcn.prepare.harmonic.pojo.po.*;
|
||||||
import com.njcn.prepare.harmonic.service.mysql.newalgorithm.*;
|
import com.njcn.prepare.harmonic.service.mysql.newalgorithm.*;
|
||||||
import com.njcn.system.api.DicDataFeignClient;
|
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.enums.DicDataTypeEnum;
|
||||||
import com.njcn.system.pojo.po.DictData;
|
import com.njcn.system.pojo.po.DictData;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.util.CollectionUtils;
|
import org.springframework.util.CollectionUtils;
|
||||||
|
|
||||||
@@ -56,23 +55,31 @@ public class RStatEventOrgServiceImpl implements RStatEventOrgService {
|
|||||||
|
|
||||||
private final RStatOrgMMapper rStatOrgMMapper;
|
private final RStatOrgMMapper rStatOrgMMapper;
|
||||||
|
|
||||||
|
private final RStatOrgQMapper rStatOrgQMapper;
|
||||||
|
|
||||||
private final RStatEventOrgDPOMapper rStatEventOrgDPOMapper;
|
private final RStatEventOrgDPOMapper rStatEventOrgDPOMapper;
|
||||||
|
|
||||||
|
private final RStatEventOrgMPOMapper rStatEventOrgMPOMapper;
|
||||||
|
|
||||||
private final RStatEventMPOMapper rStatEventMPOMapper;
|
private final RStatEventMPOMapper rStatEventMPOMapper;
|
||||||
|
|
||||||
|
private final RStatEventQPOMapper rStatEventQPOMapper;
|
||||||
|
|
||||||
private final RStatEventOrgDPOService rStatEventOrgDPOService;
|
private final RStatEventOrgDPOService rStatEventOrgDPOService;
|
||||||
|
|
||||||
private final RStatEventOrgMPOService rStatEventOrgMPOService;
|
private final RStatEventOrgMPOService rStatEventOrgMPOService;
|
||||||
|
|
||||||
|
private final RStatEventOrgQPOService rStatEventOrgQPOService;
|
||||||
|
|
||||||
@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:
|
||||||
this.rStartEventYHandler (data, dataDate, type);
|
this.rStartEventYHandler (data, dataDate, type);
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
this.rStartEventQHandler(data, dataDate, type);
|
|
||||||
break;*/
|
break;*/
|
||||||
|
case 2:
|
||||||
|
this.rStartEventOrgQHandler(data, dataDate, type);
|
||||||
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
this.rStartEventOrgMHandler(data, dataDate, type);
|
this.rStartEventOrgMHandler(data, dataDate, type);
|
||||||
break;
|
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