Commit 31c7de35 authored by ZWT's avatar ZWT

feat(零碳): 长庆

1.邮件发送服务代码修改,修改配置文件及发送逻辑,解决邮件名称唯一性;
2.邮件接收功能修改,解决邮件接收协议修改后导致的一系列问题;
3.长期间开优化功能修改,修改定时任务处理逻辑及执行周期;
4.中期间开优化功能修改,修改定时任务处理逻辑及执行周期;

BREAKING CHANGE: 无

Closes 无

[skip ci]
parent d11ec61a
...@@ -11,7 +11,6 @@ import pps.cloud.base.service.data.base_price_strategy_detail.GetBasePriceStrate ...@@ -11,7 +11,6 @@ import pps.cloud.base.service.data.base_price_strategy_detail.GetBasePriceStrate
import pps.cloud.prediction.service.data.plant_predicted_power_data.DynamicQueryPlantPredictedPowerInput; import pps.cloud.prediction.service.data.plant_predicted_power_data.DynamicQueryPlantPredictedPowerInput;
import pps.core.common.constant.BusinessConstant; import pps.core.common.constant.BusinessConstant;
import pps.core.common.entity.BaseModel; import pps.core.common.entity.BaseModel;
import pps.core.common.utils.BaseUtils;
import pps.core.space.entity.*; import pps.core.space.entity.*;
import pps.core.space.mapper.*; import pps.core.space.mapper.*;
import pps.core.space.service.data.SpaceOptimizeDateDuration; import pps.core.space.service.data.SpaceOptimizeDateDuration;
...@@ -167,14 +166,13 @@ public class SpaceOptimizeLongPeriodService extends SpaceOptimizeBaseService { ...@@ -167,14 +166,13 @@ public class SpaceOptimizeLongPeriodService extends SpaceOptimizeBaseService {
output.setWellheadList(new ArrayList<>(0)); output.setWellheadList(new ArrayList<>(0));
} }
//查功率预测信息 //查功率预测信息
DateTime date = DateUtil.date(period.getCreateTime());
output.setPowerGenerationList( output.setPowerGenerationList(
super.getAveragePowerGenerationHourList(context, DynamicQueryPlantPredictedPowerInput.builder() super.getAveragePowerGenerationHourList(context, DynamicQueryPlantPredictedPowerInput.builder()
.plantIds(super.getOptimizeLineRelation(context, CollUtil.newArrayList(detailEnt)) .plantIds(super.getOptimizeLineRelation(context, CollUtil.newArrayList(detailEnt))
.getPlantIdsByLineIdMap() .getPlantIdsByLineIdMap()
.get(detailEnt.getLineId())) .get(detailEnt.getLineId()))
.yearTime(String.valueOf(date.year())) .startTime(DateUtil.beginOfDay(period.getCreateTime()).toString())
.monthTime(BaseUtils.getMonthString(date.month() + 1)) .endTime(DateUtil.beginOfDay(period.getOptimizeDeadline()).toString())
.dateType(BusinessConstant.ZERO) .dateType(BusinessConstant.ZERO)
.build()) .build())
); );
......
...@@ -31,6 +31,10 @@ public class PredictedPowerView { ...@@ -31,6 +31,10 @@ public class PredictedPowerView {
@TableField @TableField
private Date createTime; private Date createTime;
@XText("时")
@TableField
private String hourTime;
@XText("开始时间") @XText("开始时间")
@TableField(exist = false) @TableField(exist = false)
private String startTime; private String startTime;
......
...@@ -29,4 +29,20 @@ public interface PredictedPowerViewMapper { ...@@ -29,4 +29,20 @@ public interface PredictedPowerViewMapper {
* @return {@link List}<{@link PredictedPowerView}> * @return {@link List}<{@link PredictedPowerView}>
*/ */
List<PredictedPowerView> selectShortPowerList(PredictedPowerView view); List<PredictedPowerView> selectShortPowerList(PredictedPowerView view);
/**
* 获取中期预测数据(小时)
*
* @param view 看法
* @return {@link List}<{@link PredictedPowerView}>
*/
List<PredictedPowerView> selectMidPowerHourList(PredictedPowerView view);
/**
* 获取短期预测数据(小时)
*
* @param view 看法
* @return {@link List}<{@link PredictedPowerView}>
*/
List<PredictedPowerView> selectShortPowerHourList(PredictedPowerView view);
} }
...@@ -4,8 +4,6 @@ import cn.hutool.core.collection.CollUtil; ...@@ -4,8 +4,6 @@ import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject; import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.apache.commons.lang3.StringUtils;
import pps.cloud.base.service.IBaseWellheadCloudService; import pps.cloud.base.service.IBaseWellheadCloudService;
import pps.cloud.base.service.data.base_wellhead.DynamicQueryBaseWellheadInput; import pps.cloud.base.service.data.base_wellhead.DynamicQueryBaseWellheadInput;
import pps.cloud.base.service.data.base_wellhead.DynamicQueryBaseWellheadOutput; import pps.cloud.base.service.data.base_wellhead.DynamicQueryBaseWellheadOutput;
...@@ -14,12 +12,8 @@ import pps.cloud.prediction.service.data.plant_predicted_power_data.DynamicQuery ...@@ -14,12 +12,8 @@ import pps.cloud.prediction.service.data.plant_predicted_power_data.DynamicQuery
import pps.cloud.prediction.service.data.plant_predicted_power_data.DynamicQueryPlantPredictedPowerOutput; import pps.cloud.prediction.service.data.plant_predicted_power_data.DynamicQueryPlantPredictedPowerOutput;
import pps.core.auth.HttpRequestClient; import pps.core.auth.HttpRequestClient;
import pps.core.prediction.constant.ThirdPartyApiConstant; import pps.core.prediction.constant.ThirdPartyApiConstant;
import pps.core.prediction.entity.PlantPredictedPowerDataEnt;
import pps.core.prediction.entity.PlantPredictedPowerLongTermDataEnt;
import pps.core.prediction.entity.PredictedPowerView; import pps.core.prediction.entity.PredictedPowerView;
import pps.core.prediction.entity.WellheadDailyProductionSituationView; import pps.core.prediction.entity.WellheadDailyProductionSituationView;
import pps.core.prediction.mapper.PlantPredictedPowerDataMapper;
import pps.core.prediction.mapper.PlantPredictedPowerLongTermDataMapper;
import pps.core.prediction.mapper.PredictedPowerViewMapper; import pps.core.prediction.mapper.PredictedPowerViewMapper;
import pps.core.prediction.mapper.WellheadDailyProductionSituationViewMapper; import pps.core.prediction.mapper.WellheadDailyProductionSituationViewMapper;
import pps.core.prediction.service.data.wellhead_daily_production_situation.WellheadDailyProductionSituationJob; import pps.core.prediction.service.data.wellhead_daily_production_situation.WellheadDailyProductionSituationJob;
...@@ -111,38 +105,21 @@ public class PlantPredictedPowerCloudServiceImpl implements IPlantPredictedPower ...@@ -111,38 +105,21 @@ public class PlantPredictedPowerCloudServiceImpl implements IPlantPredictedPower
Integer dateType = input.getDateType(); Integer dateType = input.getDateType();
List list = null; List list = null;
if (CollUtil.isNotEmpty(plantIds)) { if (CollUtil.isNotEmpty(plantIds)) {
PredictedPowerViewMapper mapper = context.getBean(PredictedPowerViewMapper.class);
switch (dateType) { switch (dateType) {
case 0: case 0:
PlantPredictedPowerLongTermDataMapper longTermDataMapper = context.getBean(PlantPredictedPowerLongTermDataMapper.class); list = mapper.selectMidPowerHourList(PredictedPowerView.builder()
list = longTermDataMapper.selectList( .plantIds(plantIds)
new QueryWrapper<PlantPredictedPowerLongTermDataEnt>() .startTime(startTime)
.select("CONCAT( hour_time, ':', REPLACE ( min_time, ':00', '' ) ) AS hour_time", .endTime(endTime)
"IFNULL( AVG( power ), 0 ) AS power") .build());
.lambda()
.eq(StringUtils.isNotBlank(plantId), PlantPredictedPowerLongTermDataEnt::getPlantId, plantId)
.in(PlantPredictedPowerLongTermDataEnt::getPlantId, plantIds)
.eq(StringUtils.isNotBlank(yearTime), PlantPredictedPowerLongTermDataEnt::getYearTime, yearTime)
.eq(StringUtils.isNotBlank(monthTime), PlantPredictedPowerLongTermDataEnt::getMonthTime, monthTime)
.between(!StringUtils.isAnyBlank(startTime, endTime), PlantPredictedPowerLongTermDataEnt::getDataDate, startTime, endTime)
.groupBy(PlantPredictedPowerLongTermDataEnt::getHourTime, PlantPredictedPowerLongTermDataEnt::getMinTime)
.orderByAsc(PlantPredictedPowerLongTermDataEnt::getHourTime, PlantPredictedPowerLongTermDataEnt::getMinTime)
);
break; break;
case 1: case 1:
PlantPredictedPowerDataMapper mapper = context.getBean(PlantPredictedPowerDataMapper.class); list = mapper.selectShortPowerHourList(PredictedPowerView.builder()
list = mapper.selectList( .plantIds(plantIds)
new QueryWrapper<PlantPredictedPowerDataEnt>() .startTime(startTime)
.select("CONCAT( hour_time, ':', REPLACE ( min_time, ':00', '' ) ) AS hour_time", .endTime(endTime)
"IFNULL( AVG( power ), 0 ) AS power") .build());
.lambda()
.eq(StringUtils.isNotBlank(plantId), PlantPredictedPowerDataEnt::getPlantId, plantId)
.in(PlantPredictedPowerDataEnt::getPlantId, plantIds)
.eq(StringUtils.isNotBlank(yearTime), PlantPredictedPowerDataEnt::getYearTime, yearTime)
.eq(StringUtils.isNotBlank(monthTime), PlantPredictedPowerDataEnt::getMonthTime, monthTime)
.between(!StringUtils.isAnyBlank(startTime, endTime), PlantPredictedPowerDataEnt::getDataDate, startTime, endTime)
.groupBy(PlantPredictedPowerDataEnt::getHourTime, PlantPredictedPowerDataEnt::getMinTime)
.orderByAsc(PlantPredictedPowerDataEnt::getHourTime, PlantPredictedPowerDataEnt::getMinTime)
);
break; break;
default: default:
} }
......
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
<resultMap id="BaseResultMap" type="pps.core.prediction.entity.PredictedPowerView"> <resultMap id="BaseResultMap" type="pps.core.prediction.entity.PredictedPowerView">
<result column="power" property="power" jdbcType="DECIMAL"/> <result column="power" property="power" jdbcType="DECIMAL"/>
<result column="create_time" property="createTime" jdbcType="DATE"/> <result column="create_time" property="createTime" jdbcType="DATE"/>
<result column="hour_time" property="hourTime" jdbcType="VARCHAR"/>
</resultMap> </resultMap>
<select id="selectMidPowerList" resultMap="BaseResultMap"> <select id="selectMidPowerList" resultMap="BaseResultMap">
...@@ -63,4 +64,62 @@ ...@@ -63,4 +64,62 @@
ORDER BY ORDER BY
a.create_time a.create_time
</select> </select>
<select id="selectMidPowerHourList" resultMap="BaseResultMap">
SELECT
IFNULL( AVG( a.predict_power ), 0 ) AS power,
a.create_time AS hour_time
FROM
(
SELECT
predict_power,
HOUR( data_date ) AS create_time
FROM
plant_predicted_power_mid_term
WHERE
plant_id IN
<foreach collection="plantIds" item="item" open="(" separator="," close=")">
#{item}
</foreach>
<if test="startTime != null and endTime != null">
AND
data_date BETWEEN
#{startTime} AND
#{endTime}
</if>
) a
GROUP BY
a.create_time
ORDER BY
a.create_time
</select>
<select id="selectShortPowerHourList" resultMap="BaseResultMap">
SELECT
IFNULL( AVG( a.predict_power ), 0 ) AS power,
a.create_time AS hour_time
FROM
(
SELECT
predict_power,
HOUR( data_date ) AS create_time
FROM
plant_predicted_power_short_term
WHERE
plant_id IN
<foreach collection="plantIds" item="item" open="(" separator="," close=")">
#{item}
</foreach>
<if test="startTime != null and endTime != null">
AND
data_date BETWEEN
#{startTime} AND
#{endTime}
</if>
) a
GROUP BY
a.create_time
ORDER BY
a.create_time
</select>
</mapper> </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