Commit 992d5ec1 authored by ZWT's avatar ZWT

feat(吉林演示): 松原

1.修改天气数据抽取定时任务,解决部分历史数据丢失问题;
2.修改第三方风机电站真实数据定时任务,修改代码逻辑,解决时间未按照15分钟间隔推送问题;
3.修改第三方风机电站模拟数据定时任务,解决时间日期格式错误导致数据重复问题;
4.新建第三方风力发电数据(每日最新数据)表,同时生成对应代码,修改第三方风机电站模拟数据定时任务,增加每日最新数据更新逻辑;
5.修改风资源监控页面场站发电量统计接口,增加模拟数据查询逻辑,修改代码完成冒烟测试;

BREAKING CHANGE: 无

Closes 无

[skip ci]
parent f6397894
......@@ -51,4 +51,34 @@ public class ThirdWindPowerGenerationUpdateView implements Serializable {
@XText("来源系统")
@TableField
private String systemSource;
/*---------------------------------- exist = false ----------------------------------*/
@XText("今日功率(kw)")
@TableField(exist = false)
private BigDecimal todayPower;
@XText("本月功率(kw)")
@TableField(exist = false)
private BigDecimal monthPower;
@XText("同期本月功率(kw)")
@TableField(exist = false)
private BigDecimal lastMonthPower;
@XText("本季功率(kw)")
@TableField(exist = false)
private BigDecimal seasonPower;
@XText("同期本季功率(kw)")
@TableField(exist = false)
private BigDecimal lastSeasonPower;
@XText("本年功率(kw)")
@TableField(exist = false)
private BigDecimal yearPower;
@XText("同期本年功率(kw)")
@TableField(exist = false)
private BigDecimal lastYearPower;
}
\ No newline at end of file
......@@ -37,4 +37,13 @@ public interface ThirdWindPowerGenerationUpdateViewMapper {
* @return int
*/
int deleteBatch(@Param(value = "list") List<String> deleteList, @Param(value = "create") DateTime create, @Param(value = "end") DateTime end);
/**
* 电站发电
*
* @param collect 收集
* @param dateList 日期列表
* @return {@link ThirdWindPowerGenerationUpdateView }
*/
ThirdWindPowerGenerationUpdateView stationPowerGeneration(@Param(value = "list") List<String> collect, @Param(value = "dateList") List<DateTime> dateList);
}
......@@ -12,10 +12,12 @@ import pps.cloud.system.service.data.sys_organization.GetAllOuListByOuIdInput;
import pps.cloud.system.service.data.sys_organization.GetSysOrganizationViewOutput;
import pps.core.base.entity.BaseWindTurbineEnt;
import pps.core.base.entity.BaseWindTurbineView;
import pps.core.base.entity.ThirdWindPowerGenerationUpdateView;
import pps.core.base.entity.WindPredictionFutureEnt;
import pps.core.base.enums.WindDirection;
import pps.core.base.mapper.BaseWindTurbineMapper;
import pps.core.base.mapper.BaseWindTurbineViewMapper;
import pps.core.base.mapper.ThirdWindPowerGenerationUpdateViewMapper;
import pps.core.base.mapper.WindPredictionFutureMapper;
import pps.core.base.service.data.base_wind_turbine.*;
import pps.core.base.service.data.weather_bureau_data.GetWeatherBureauDataOutput;
......@@ -109,6 +111,7 @@ public class WindPredictionFutureService {
/**
* 场站发电量统计
* todo 模拟数据
*
* @param context 上下文
* @param input 输入
......@@ -118,18 +121,53 @@ public class WindPredictionFutureService {
@XText("场站发电量统计")
public XSingleResult<GetStationPowerGenerationOutput> stationPowerGeneration(XContext context, GetBaseWindTurbineViewInput input) {
List<BaseWindTurbineEnt> turbineList = this.getWindTurbineList(context, input.getOuId());
DateTime now = DateUtil.beginOfDay(DateUtil.date());
//todo 暂时没接数据
if (CollUtil.isEmpty(turbineList)) {
return XSingleResult.success(new GetStationPowerGenerationOutput());
}
List<String> collect = turbineList.stream()
.map(BaseWindTurbineEnt::getStationName)
.collect(Collectors.toList());
DateTime now = DateUtil.date();
DateTime beginOfMonth = DateUtil.beginOfMonth(now);
DateTime endOfMonth = DateUtil.endOfMonth(now);
DateTime beginOfYear = DateUtil.beginOfYear(now);
DateTime endOfYear = DateUtil.endOfYear(now);
//计算季度
DateTime beginOfSeason;
DateTime endOfSeason;
String year = String.valueOf(now.year());
int month = now.monthBaseOne();
if (month <= 3) {
beginOfSeason = beginOfYear;
endOfSeason = DateUtil.endOfMonth(DateUtil.offsetMonth(beginOfSeason, 2));
} else if (month <= 6) {
beginOfSeason = DateUtil.parse(year + "-04-01");
endOfSeason = DateUtil.parse(year + "-06-30");
} else if (month <= 9) {
beginOfSeason = DateUtil.parse(year + "-07-01");
endOfSeason = DateUtil.parse(year + "-09-30");
} else {
beginOfSeason = DateUtil.beginOfMonth(DateUtil.offsetMonth(endOfYear, -2));
endOfSeason = endOfYear;
}
List<DateTime> dateList = CollUtil.list(false, DateUtil.beginOfDay(now), DateUtil.endOfDay(now),
beginOfMonth, endOfMonth,
DateUtil.offset(beginOfMonth, DateField.YEAR, -1), DateUtil.offset(endOfMonth, DateField.YEAR, -1),
beginOfSeason, endOfSeason,
DateUtil.offset(beginOfSeason, DateField.YEAR, -1), DateUtil.offset(endOfSeason, DateField.YEAR, -1),
beginOfYear, endOfYear,
DateUtil.offset(beginOfYear, DateField.YEAR, -1), DateUtil.offset(endOfYear, DateField.YEAR, -1));
//统计
ThirdWindPowerGenerationUpdateViewMapper viewMapper = context.getBean(ThirdWindPowerGenerationUpdateViewMapper.class);
ThirdWindPowerGenerationUpdateView stationedPowerGeneration = viewMapper.stationPowerGeneration(collect, dateList);
return XSingleResult.success(GetStationPowerGenerationOutput.builder()
.dailyGeneration(BigDecimal.ZERO)
.monthGeneration(BigDecimal.ZERO)
.monthGenerationRatio(BigDecimal.ZERO)
.quarterlyGeneration(BigDecimal.ZERO)
.quarterlyGenerationRatio(BigDecimal.ZERO)
.yearGeneration(BigDecimal.ZERO)
.yearGenerationRatio(BigDecimal.ZERO)
.dailyGeneration(stationedPowerGeneration.getTodayPower())
.monthGeneration(stationedPowerGeneration.getMonthPower())
.monthGenerationRatio(BaseUtils.getCycleRatio(stationedPowerGeneration.getMonthPower(), stationedPowerGeneration.getLastMonthPower()))
.quarterlyGeneration(stationedPowerGeneration.getSeasonPower())
.quarterlyGenerationRatio(BaseUtils.getCycleRatio(stationedPowerGeneration.getSeasonPower(), stationedPowerGeneration.getLastSeasonPower()))
.yearGeneration(stationedPowerGeneration.getYearPower())
.yearGenerationRatio(BaseUtils.getCycleRatio(stationedPowerGeneration.getYearPower(), stationedPowerGeneration.getLastYearPower()))
.build());
}
......
......@@ -21,23 +21,23 @@ import java.math.BigDecimal;
public class GetStationPowerGenerationOutput {
@XText("日发电量(kWh)")
private BigDecimal dailyGeneration;
private BigDecimal dailyGeneration = BigDecimal.ZERO;
@XText("月发电量(kWh)")
private BigDecimal monthGeneration;
private BigDecimal monthGeneration = BigDecimal.ZERO;
@XText("月发电量同比(%)")
private BigDecimal monthGenerationRatio;
private BigDecimal monthGenerationRatio = BigDecimal.ZERO;
@XText("季发电量(kWh)")
private BigDecimal quarterlyGeneration;
private BigDecimal quarterlyGeneration = BigDecimal.ZERO;
@XText("季发电量同比(%)")
private BigDecimal quarterlyGenerationRatio;
private BigDecimal quarterlyGenerationRatio = BigDecimal.ZERO;
@XText("年发电量(kWh)")
private BigDecimal yearGeneration;
private BigDecimal yearGeneration = BigDecimal.ZERO;
@XText("年发电量同比(%)")
private BigDecimal yearGenerationRatio;
private BigDecimal yearGenerationRatio = BigDecimal.ZERO;
}
......@@ -68,4 +68,67 @@
AND collect_time BETWEEN #{create}
AND #{end}
</delete>
<resultMap id="ExtResultMap" type="pps.core.base.entity.ThirdWindPowerGenerationUpdateView" extends="BaseResultMap">
<result column="today_power" property="todayPower" jdbcType="DECIMAL"/>
<result column="month_power" property="monthPower" jdbcType="DECIMAL"/>
<result column="last_month_power" property="lastMonthPower" jdbcType="DECIMAL"/>
<result column="season_power" property="seasonPower" jdbcType="DECIMAL"/>
<result column="last_season_power" property="lastSeasonPower" jdbcType="DECIMAL"/>
<result column="year_power" property="yearPower" jdbcType="DECIMAL"/>
<result column="last_year_power" property="lastYearPower" jdbcType="DECIMAL"/>
</resultMap>
<select id="stationPowerGeneration" resultMap="ExtResultMap">
SELECT IFNULL(SUM(actual_power), 0) AS today_power,
(SELECT IFNULL(SUM(actual_power), 0)
FROM third_wind_power_generation_update
WHERE collect_time BETWEEN #{dateList[2]} AND #{dateList[3]} AND station_name IN
<foreach collection="list" item="item" open="(" separator="," close=")">
#{item}
</foreach>
) AS month_power,
(SELECT IFNULL(SUM(actual_power), 0)
FROM third_wind_power_generation_update
WHERE collect_time BETWEEN #{dateList[4]} AND #{dateList[5]} AND station_name IN
<foreach collection="list" item="item" open="(" separator="," close=")">
#{item}
</foreach>
) AS last_month_power,
(SELECT IFNULL(SUM(actual_power), 0)
FROM third_wind_power_generation_update
WHERE collect_time BETWEEN #{dateList[6]} AND #{dateList[7]} AND station_name IN
<foreach collection="list" item="item" open="(" separator="," close=")">
#{item}
</foreach>
) AS season_power,
(SELECT IFNULL(SUM(actual_power), 0)
FROM third_wind_power_generation_update
WHERE collect_time BETWEEN #{dateList[8]} AND #{dateList[9]} AND station_name IN
<foreach collection="list" item="item" open="(" separator="," close=")">
#{item}
</foreach>
) AS last_season_power,
(SELECT IFNULL(SUM(actual_power), 0)
FROM third_wind_power_generation_update
WHERE collect_time BETWEEN #{dateList[10]} AND #{dateList[11]} AND station_name IN
<foreach collection="list" item="item" open="(" separator="," close=")">
#{item}
</foreach>
) AS year_power,
(SELECT IFNULL(SUM(actual_power), 0)
FROM third_wind_power_generation_update
WHERE collect_time BETWEEN #{dateList[12]} AND #{dateList[13]} AND station_name IN
<foreach collection="list" item="item" open="(" separator="," close=")">
#{item}
</foreach>
) AS last_year_power
FROM third_wind_power_generation_update
WHERE collect_time BETWEEN #{dateList[0]}
AND #{dateList[1]}
AND station_name IN
<foreach collection="list" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</select>
</mapper>
\ No newline at end of file
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment