2026-03-25提交:查询接口调整
This commit is contained in:
parent
5c0b0b99c4
commit
fd06ec8cf7
@ -30,17 +30,19 @@ public class DailyChartCollectVO {
|
||||
private Integer scheduledUserCount;
|
||||
|
||||
/**
|
||||
* K线数组,每一项包含起始值、结束值、最低、最高
|
||||
* 单个时间点的总K线指标
|
||||
*/
|
||||
private List<Integer> klineObj;
|
||||
private KLineSingleVO klineSingle;
|
||||
|
||||
/**
|
||||
* 近5/10/20/30日其下各县区23时停电用户数累加/县数量
|
||||
* 单个时间点的故障类K线指标
|
||||
*/
|
||||
private Integer ma5Obj;
|
||||
private Integer ma10Obj;
|
||||
private Integer ma20Obj;
|
||||
private Integer ma30Obj;
|
||||
private KLineSingleVO faultKlineSingle;
|
||||
|
||||
/**
|
||||
* 单个时间点的计划类K线指标
|
||||
*/
|
||||
private KLineSingleVO scheduledKlineSingle;
|
||||
|
||||
/**
|
||||
* 日累计降雨量
|
||||
|
||||
@ -34,17 +34,19 @@ public class DailyPowerOutageEventVO {
|
||||
private List<Integer> scheduledUserCountList;
|
||||
|
||||
/**
|
||||
* K线数组,每一项包含起始值、结束值、最低、最高
|
||||
* K线图
|
||||
*/
|
||||
private List<List<Integer>> kline;
|
||||
private KLineVO userKline;
|
||||
|
||||
/**
|
||||
* 近5/10/20/30日其下各县区23时停电用户数累加/县数量
|
||||
* 故障K线图
|
||||
*/
|
||||
private List<Integer> ma5;
|
||||
private List<Integer> ma10;
|
||||
private List<Integer> ma20;
|
||||
private List<Integer> ma30;
|
||||
private KLineVO faultUserKline;
|
||||
|
||||
/**
|
||||
* 计划K线图
|
||||
*/
|
||||
private KLineVO scheduledUserKline;
|
||||
|
||||
/**
|
||||
* 日累计降雨量
|
||||
@ -82,7 +84,6 @@ public class DailyPowerOutageEventVO {
|
||||
List<DailyChartCollectVO> collectVOList;
|
||||
|
||||
public void initList() {
|
||||
kline = new ArrayList<>();
|
||||
userCounts = new ArrayList<>();
|
||||
cumulativeRain = new ArrayList<>();
|
||||
avgRain = new ArrayList<>();
|
||||
@ -90,11 +91,14 @@ public class DailyPowerOutageEventVO {
|
||||
maxTemp = new ArrayList<>();
|
||||
minTemp = new ArrayList<>();
|
||||
windSpeed = new ArrayList<>();
|
||||
ma5 = new ArrayList<>();
|
||||
ma10 = new ArrayList<>();
|
||||
ma20 = new ArrayList<>();
|
||||
ma30 = new ArrayList<>();
|
||||
faultUserCountList = new ArrayList<>();
|
||||
scheduledUserCountList = new ArrayList<>();
|
||||
userKline = new KLineVO().setKline(new ArrayList<>()).setMa5(new ArrayList<>()).setMa10(new ArrayList<>())
|
||||
.setMa20(new ArrayList<>()).setMa30(new ArrayList<>());
|
||||
faultUserKline = new KLineVO().setKline(new ArrayList<>()).setMa5(new ArrayList<>()).setMa10(new ArrayList<>())
|
||||
.setMa20(new ArrayList<>()).setMa30(new ArrayList<>());
|
||||
scheduledUserKline = new KLineVO().setKline(new ArrayList<>()).setMa5(new ArrayList<>()).setMa10(new ArrayList<>())
|
||||
.setMa20(new ArrayList<>()).setMa30(new ArrayList<>());
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,29 @@
|
||||
package com.southern.power.grid.entity;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 单个时间点的K线指标
|
||||
*
|
||||
* @author: junzhangfm
|
||||
* @date: 2026/3/25
|
||||
**/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class KLineSingleVO {
|
||||
/**
|
||||
* K线数组,每一项包含起始值、结束值、最低、最高
|
||||
*/
|
||||
private List<Integer> klineObj;
|
||||
|
||||
/**
|
||||
* 近5/10/20/30日其下各县区23时停电用户数累加/县数量
|
||||
*/
|
||||
private Integer ma5Obj;
|
||||
private Integer ma10Obj;
|
||||
private Integer ma20Obj;
|
||||
private Integer ma30Obj;
|
||||
}
|
||||
29
src/main/java/com/southern/power/grid/entity/KLineVO.java
Normal file
29
src/main/java/com/southern/power/grid/entity/KLineVO.java
Normal file
@ -0,0 +1,29 @@
|
||||
package com.southern.power.grid.entity;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* K线图实体
|
||||
*
|
||||
* @author: junzhangfm
|
||||
* @date: 2026/3/25
|
||||
**/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class KLineVO {
|
||||
/**
|
||||
* K线数组,每一项包含起始值、结束值、最低、最高
|
||||
*/
|
||||
private List<List<Integer>> kline;
|
||||
|
||||
/**
|
||||
* 近5/10/20/30日其下各县区23时停电用户数累加/县数量
|
||||
*/
|
||||
private List<Integer> ma5;
|
||||
private List<Integer> ma10;
|
||||
private List<Integer> ma20;
|
||||
private List<Integer> ma30;
|
||||
}
|
||||
@ -5,6 +5,7 @@ import com.southern.power.grid.dao.DnerDailyPowerOutageEventMapper;
|
||||
import com.southern.power.grid.entity.DailyChartCollectVO;
|
||||
import com.southern.power.grid.entity.DailyPowerOutageEventVO;
|
||||
import com.southern.power.grid.entity.DnerDailyPowerOutageEvent;
|
||||
import com.southern.power.grid.entity.KLineSingleVO;
|
||||
import com.southern.power.grid.service.IDnerDailyPowerOutageEventService;
|
||||
import com.southern.power.grid.utils.TimeUtil;
|
||||
import lombok.NonNull;
|
||||
@ -57,9 +58,25 @@ public class DnerDailyPowerOutageEventServiceImpl
|
||||
List<DailyChartCollectVO> collectVOList = new ArrayList<>();
|
||||
for (int i = 0; i < result.getUserCounts().size(); i++) {
|
||||
collectVOList.add(new DailyChartCollectVO().setUserCount(result.getUserCounts().get(i))
|
||||
.setKlineObj(result.getKline().get(i)).setMa5Obj(result.getMa5().get(i))
|
||||
.setMa10Obj(result.getMa10().get(i)).setMa20Obj(result.getMa20().get(i))
|
||||
.setMa30Obj(result.getMa30().get(i)).setCumulativeRainObj(result.getCumulativeRain().get(i))
|
||||
.setKlineSingle(new KLineSingleVO()
|
||||
.setKlineObj(result.getUserKline().getKline().get(i))
|
||||
.setMa5Obj(result.getUserKline().getMa5().get(i))
|
||||
.setMa10Obj(result.getUserKline().getMa10().get(i))
|
||||
.setMa20Obj(result.getUserKline().getMa20().get(i))
|
||||
.setMa30Obj(result.getUserKline().getMa30().get(i)))
|
||||
.setFaultKlineSingle(new KLineSingleVO()
|
||||
.setKlineObj(result.getFaultUserKline().getKline().get(i))
|
||||
.setMa5Obj(result.getFaultUserKline().getMa5().get(i))
|
||||
.setMa10Obj(result.getFaultUserKline().getMa10().get(i))
|
||||
.setMa20Obj(result.getFaultUserKline().getMa20().get(i))
|
||||
.setMa30Obj(result.getFaultUserKline().getMa30().get(i)))
|
||||
.setScheduledKlineSingle(new KLineSingleVO()
|
||||
.setKlineObj(result.getScheduledUserKline().getKline().get(i))
|
||||
.setMa5Obj(result.getScheduledUserKline().getMa5().get(i))
|
||||
.setMa10Obj(result.getScheduledUserKline().getMa10().get(i))
|
||||
.setMa20Obj(result.getScheduledUserKline().getMa20().get(i))
|
||||
.setMa30Obj(result.getScheduledUserKline().getMa30().get(i)))
|
||||
.setCumulativeRainObj(result.getCumulativeRain().get(i))
|
||||
.setAvgRainObj(result.getAvgRain().get(i)).setAvgTempObj(result.getAvgTemp().get(i))
|
||||
.setMaxTempObj(result.getMaxTemp().get(i)).setMinTempObj(result.getMinTemp().get(i))
|
||||
.setWindSpeedObj(result.getWindSpeed().get(i))
|
||||
@ -71,18 +88,33 @@ public class DnerDailyPowerOutageEventServiceImpl
|
||||
|
||||
private static void setDailyData(DnerDailyPowerOutageEvent event, DailyPowerOutageEventVO result,
|
||||
Map<String, DnerDailyPowerOutageEvent> dateTimeAndEntityMap) {
|
||||
List<Integer> klineE = Arrays.asList(event.getStarUserCount(), event.getEndUserCount(),
|
||||
event.getMinUserCount(), event.getMaxUserCount());
|
||||
result.getKline().add(klineE);
|
||||
result.getCumulativeRain().add(Double.valueOf(event.getDailyPrecipitation()));
|
||||
result.getAvgRain().add(Double.valueOf(event.getHourlyPrecipitation()));
|
||||
result.getAvgTemp().add(Double.valueOf(event.getTemperature()));
|
||||
result.getMaxTemp().add(Double.valueOf(event.getHourlyMaxTemperature()));
|
||||
result.getMinTemp().add(Double.valueOf(event.getHourlyMinTemperature()));
|
||||
result.getMa5().add(getMa(event, dateTimeAndEntityMap, 5));
|
||||
result.getMa10().add(getMa(event, dateTimeAndEntityMap, 10));
|
||||
result.getMa20().add(getMa(event, dateTimeAndEntityMap, 20));
|
||||
result.getMa30().add(getMa(event, dateTimeAndEntityMap, 30));
|
||||
// 总的
|
||||
result.getUserKline().getKline().add(Arrays.asList(event.getStarUserCount(), event.getEndUserCount(),
|
||||
event.getMinUserCount(), event.getMaxUserCount()));
|
||||
result.getUserKline().getMa5().add(getMa(event, dateTimeAndEntityMap, 5, 0));
|
||||
result.getUserKline().getMa10().add(getMa(event, dateTimeAndEntityMap, 10, 0));
|
||||
result.getUserKline().getMa20().add(getMa(event, dateTimeAndEntityMap, 20, 0));
|
||||
result.getUserKline().getMa30().add(getMa(event, dateTimeAndEntityMap, 30, 0));
|
||||
// 计划
|
||||
result.getFaultUserKline().getKline().add(Arrays.asList(event.getFaultStarUserCount(),
|
||||
event.getFaultEndUserCount(), event.getFaultMinUserCount(), event.getFaultMaxUserCount()));
|
||||
result.getFaultUserKline().getMa5().add(getMa(event, dateTimeAndEntityMap, 5, 1));
|
||||
result.getFaultUserKline().getMa10().add(getMa(event, dateTimeAndEntityMap, 10, 1));
|
||||
result.getFaultUserKline().getMa20().add(getMa(event, dateTimeAndEntityMap, 20, 1));
|
||||
result.getFaultUserKline().getMa30().add(getMa(event, dateTimeAndEntityMap, 30, 1));
|
||||
// 故障
|
||||
result.getScheduledUserKline().getKline().add(Arrays.asList(
|
||||
event.getScheduledStarUserCount(), event.getScheduledEndUserCount(),
|
||||
event.getScheduledMinUserCount(), event.getScheduledMaxUserCount()));
|
||||
result.getScheduledUserKline().getMa5().add(getMa(event, dateTimeAndEntityMap, 5, 2));
|
||||
result.getScheduledUserKline().getMa10().add(getMa(event, dateTimeAndEntityMap, 10, 2));
|
||||
result.getScheduledUserKline().getMa20().add(getMa(event, dateTimeAndEntityMap, 20, 2));
|
||||
result.getScheduledUserKline().getMa30().add(getMa(event, dateTimeAndEntityMap, 30, 2));
|
||||
result.getWindSpeed().add(Double.valueOf(event.getExtremeWindSpeedHourly()));
|
||||
result.getUserCounts().add(event.getUserCount());
|
||||
result.getFaultUserCountList().add(event.getFaultUserCount());
|
||||
@ -91,16 +123,29 @@ public class DnerDailyPowerOutageEventServiceImpl
|
||||
|
||||
private static void setZeroData(DailyPowerOutageEventVO result) {
|
||||
List<Integer> klineE = Arrays.asList(0, 0, 0, 0);
|
||||
result.getKline().add(klineE);
|
||||
result.getCumulativeRain().add(0.0);
|
||||
result.getAvgRain().add(0.0);
|
||||
result.getAvgTemp().add(0.0);
|
||||
result.getMaxTemp().add(0.0);
|
||||
result.getMinTemp().add(0.0);
|
||||
result.getMa5().add(0);
|
||||
result.getMa10().add(0);
|
||||
result.getMa20().add(0);
|
||||
result.getMa30().add(0);
|
||||
// 总的
|
||||
result.getUserKline().getKline().add(klineE);
|
||||
result.getUserKline().getMa5().add(0);
|
||||
result.getUserKline().getMa10().add(0);
|
||||
result.getUserKline().getMa20().add(0);
|
||||
result.getUserKline().getMa30().add(0);
|
||||
// 计划
|
||||
result.getFaultUserKline().getKline().add(klineE);
|
||||
result.getFaultUserKline().getMa5().add(0);
|
||||
result.getFaultUserKline().getMa10().add(0);
|
||||
result.getFaultUserKline().getMa20().add(0);
|
||||
result.getFaultUserKline().getMa30().add(0);
|
||||
// 故障
|
||||
result.getScheduledUserKline().getKline().add(klineE);
|
||||
result.getScheduledUserKline().getMa5().add(0);
|
||||
result.getScheduledUserKline().getMa10().add(0);
|
||||
result.getScheduledUserKline().getMa20().add(0);
|
||||
result.getScheduledUserKline().getMa30().add(0);
|
||||
result.getWindSpeed().add(0.0);
|
||||
result.getUserCounts().add(0);
|
||||
result.getFaultUserCountList().add(0);
|
||||
@ -109,10 +154,29 @@ public class DnerDailyPowerOutageEventServiceImpl
|
||||
|
||||
private static int getMa(DnerDailyPowerOutageEvent event,
|
||||
Map<String, DnerDailyPowerOutageEvent> dateTimeAndEntityMap,
|
||||
int maNum) {
|
||||
int maNum, int maType) {
|
||||
int userCount = 0;
|
||||
List<String> maDateList = TimeUtil.getBetweenDates(
|
||||
TimeUtil.getBeforeNumDays(event.getDataTime(), maNum - 1), event.getDataTime());
|
||||
if (1 == maType) { // 故障类
|
||||
for (String date : maDateList) {
|
||||
DnerDailyPowerOutageEvent outageEvent = dateTimeAndEntityMap.get(date);
|
||||
if (!Objects.isNull(outageEvent)) {
|
||||
userCount += outageEvent.getFaultEndUserCount();
|
||||
}
|
||||
}
|
||||
return userCount/maNum;
|
||||
}
|
||||
if (2 == maType) { // 计划类
|
||||
for (String date : maDateList) {
|
||||
DnerDailyPowerOutageEvent outageEvent = dateTimeAndEntityMap.get(date);
|
||||
if (!Objects.isNull(outageEvent)) {
|
||||
userCount += outageEvent.getScheduledEndUserCount();
|
||||
}
|
||||
}
|
||||
return userCount/maNum;
|
||||
}
|
||||
// 总的
|
||||
for (String date : maDateList) {
|
||||
DnerDailyPowerOutageEvent outageEvent = dateTimeAndEntityMap.get(date);
|
||||
if (!Objects.isNull(outageEvent)) {
|
||||
|
||||
@ -7,7 +7,9 @@
|
||||
<select id="selectListByConditions">
|
||||
select `id`, `org_code`, `data_time`, `hourly_precipitation`, `daily_precipitation`, `temperature`,
|
||||
`hourly_max_temperature`, `hourly_min_temperature`, `extreme_wind_speed_hourly`, `user_count`,
|
||||
`star_user_count`, `end_user_count`, `min_user_count`, `max_user_count`, `outage_state`, `outage_type`,
|
||||
`star_user_count`, `end_user_count`, `min_user_count`, `max_user_count`, `fault_star_user_count`,
|
||||
`fault_end_user_count`, `fault_min_user_count`, `fault_max_user_count`, `scheduled_star_user_count`,
|
||||
`scheduled_end_user_count`,`scheduled_min_user_count`,`scheduled_max_user_count`,
|
||||
`create_by`, `create_time`, `update_by`, `update_time`, `fault_user_count`, `scheduled_user_count`
|
||||
from dner_daily_power_outage_event
|
||||
where org_code = #{orgCode}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user