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