Commit 3ba88121 authored by ZWT's avatar ZWT

feat(零碳): 长庆

1.修复登录页面登录接口验证码输入后不需要验证直接能登录的问题;
2.长庆演示,首页展示大屏功能修改,修改线路详情接口,增加查询日平均用电量逻辑,同时重构查询日产液量和日发电量逻辑,更新接口文档并完成接口冒烟测试,同时生成用例;

BREAKING CHANGE: 无

Closes 无

[skip ci]
parent e9f7d6bf
......@@ -815,6 +815,20 @@ public class SpaceOptimizeBaseService {
return result.getResult();
}
/**
* 获得半小时平均功率
*
* @param context 上下文
* @param input 输入
* @return {@link List}<{@link DynamicQueryPlantPredictedPowerOutput}>
*/
public List<DynamicQueryPlantPredictedPowerOutput> getAveragePowerHalfHour(XContext context, DynamicQueryPlantPredictedPowerInput input) {
IPlantPredictedPowerCloudService cloudService = context.getBean(IPlantPredictedPowerCloudService.class);
XListResult<DynamicQueryPlantPredictedPowerOutput> result = cloudService.queryAveragePowerHalfHour(context, input);
result.throwIfFail();
return result.getResult();
}
/*-----------------------------------private-----------------------------------*/
/**
......
......@@ -156,7 +156,7 @@ public class SpaceOptimizeShortPeriodService extends SpaceOptimizeBaseService {
.collect(Collectors.groupingBy(SpaceInstitutionDurationEnt::getInstitutionId,
Collectors.groupingBy(SpaceInstitutionDurationEnt::getWellheadId)));
//初始化时间轴
List<DateTime> rangeToList = DateUtil.rangeToList(DateUtil.offsetDay(BusinessConstant.DATE_FLAG, -1), BusinessConstant.DATE_FLAG, DateField.MINUTE, 15);
List<DateTime> rangeToList = DateUtil.rangeToList(DateUtil.offsetDay(BusinessConstant.DATE_FLAG, -1), BusinessConstant.DATE_FLAG, DateField.MINUTE, 30);
//遍历
List<DynamicQueryPlantPredictedPowerOutput> powerList;
List<GetBasePriceStrategyDetailOutput> strategyList;
......@@ -166,7 +166,7 @@ public class SpaceOptimizeShortPeriodService extends SpaceOptimizeBaseService {
//创建记录
periodId = this.createOptimizePeriod(periodDTOList, detail.getId(), detail.getLineId(), BaseUtils.getExecutionCycleForCalibration(startDate, optimizeDate), optimizeDate);
//查预测光伏出力
powerList = this.getAveragePowerGenerationListByPlantIds(context, DynamicQueryPlantPredictedPowerInput.builder()
powerList = this.getAveragePowerHalfHour(context, DynamicQueryPlantPredictedPowerInput.builder()
.plantIds(plantIdsMap.get(detail.getLineId()))
.startTime(startDate.toString(BusinessConstant.DATE_FORMAT_DAY))
.endTime(optimizeDate.toString(BusinessConstant.DATE_FORMAT_DAY))
......
......@@ -28,6 +28,16 @@ public interface IPlantPredictedPowerCloudService {
@XText("光伏预测Cloud模块--条件查询时段发电量平均值")
XListResult<DynamicQueryPlantPredictedPowerOutput> queryAveragePowerGenerationListByParam(XContext context, DynamicQueryPlantPredictedPowerInput input);
/**
* 获得半小时平均功率
*
* @param context 上下文
* @param input 输入
* @return {@link XListResult}<{@link DynamicQueryPlantPredictedPowerOutput}>
*/
@XText("光伏预测Cloud模块--获得半小时平均功率")
XListResult<DynamicQueryPlantPredictedPowerOutput> queryAveragePowerHalfHour(XContext context, DynamicQueryPlantPredictedPowerInput input);
/**
* 光伏预测Cloud模块--获取每小时平均发电量列表
*
......
......@@ -47,4 +47,22 @@ public interface PredictedPowerViewMapper {
* @return {@link List}<{@link PredictedPowerView}>
*/
List<PredictedPowerView> selectShortPowerHourList(PredictedPowerView view);
/*-------------------------------------------------------------------------*/
/**
* 获取中期半小时预测数据
*
* @param view 看法
* @return {@link List}<{@link PredictedPowerView}>
*/
List<PredictedPowerView> selectMidPowerHalfHourList(PredictedPowerView view);
/**
* 获取短期半小时预测数据
*
* @param view 看法
* @return {@link List}<{@link PredictedPowerView}>
*/
List<PredictedPowerView> selectShortPowerHalfHourList(PredictedPowerView view);
}
......@@ -87,6 +87,45 @@ public class PlantPredictedPowerCloudServiceImpl implements IPlantPredictedPower
return XListResult.success(outputs);
}
@Override
public XListResult<DynamicQueryPlantPredictedPowerOutput> queryAveragePowerHalfHour(XContext context, DynamicQueryPlantPredictedPowerInput input) {
String plantId = input.getPlantId();
List<String> plantIds = input.getPlantIds();
String yearTime = input.getYearTime();
String monthTime = input.getMonthTime();
String startTime = input.getStartTime();
String endTime = input.getEndTime();
Integer dateType = input.getDateType();
List<PredictedPowerView> list = null;
if (CollUtil.isNotEmpty(plantIds)) {
PredictedPowerViewMapper mapper = context.getBean(PredictedPowerViewMapper.class);
switch (dateType) {
case 0:
list = mapper.selectMidPowerHalfHourList(PredictedPowerView.builder()
.plantIds(plantIds)
.startTime(startTime)
.endTime(endTime)
.build());
break;
case 1:
list = mapper.selectShortPowerHalfHourList(PredictedPowerView.builder()
.plantIds(plantIds)
.startTime(startTime)
.endTime(endTime)
.build());
break;
default:
}
}
List<DynamicQueryPlantPredictedPowerOutput> outputs;
if (CollUtil.isEmpty(list)) {
outputs = new ArrayList<>(0);
} else {
outputs = XCopyUtils.copyNewList(list, DynamicQueryPlantPredictedPowerOutput.class);
}
return XListResult.success(outputs);
}
/**
* 光伏预测Cloud模块--获取每小时平均发电量列表
*
......
......@@ -133,4 +133,76 @@
ORDER BY
a.create_time
</select>
<!--*********************************************************************************-->
<select id="selectMidPowerHalfHourList" resultMap="BaseResultMap">
SELECT
IFNULL( AVG( a.predict_power ), 0 ) AS power,
a.create_time AS create_time
FROM
(
SELECT
predict_power,
DATE_FORMAT ( CASE
MINUTE ( data_date )
WHEN 15 THEN
DATE_SUB( data_date, INTERVAL 15 MINUTE )
WHEN 45 THEN
DATE_SUB( data_date, INTERVAL 15 MINUTE ) ELSE data_date
END, '%H:%i:%s' ) 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="selectShortPowerHalfHourList" resultMap="BaseResultMap">
SELECT
IFNULL( AVG( a.predict_power ), 0 ) AS power,
a.create_time AS create_time
FROM
(
SELECT
predict_power,
DATE_FORMAT ( CASE
MINUTE ( data_date )
WHEN 15 THEN
DATE_SUB( data_date, INTERVAL 15 MINUTE )
WHEN 45 THEN
DATE_SUB( data_date, INTERVAL 15 MINUTE ) ELSE data_date
END, '%H:%i:%s' ) 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>
\ 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