Commit 466231a0 authored by ZWT's avatar ZWT

feat(零碳): 长庆演示系统新增功能

1.修改第三方日累计数据推送表表结构,增加日累计储能放电量字段,同时修改代码对应实体及mapper文件,修改相关接口增加储能日累计放电量接收逻辑;
2.修改首页井场收益分析模块接口,修改获取储能累计放电量逻辑;
3.设计并创建井口日用电趋势表,生成对应实体类及mapper文件;
4.统计分析模块,新增本月累计节电经济效益查询接口,添加线上接口文档并完成接口冒烟测试;
5.统计分析模块,新增本月累计减碳量查询接口,添加线上接口文档并完成接口冒烟测试;
6.统计分析模块,新增光伏发电趋势查询接口,添加线上接口文档并完成接口冒烟测试;
7.统计分析模块,新增月度总览查询接口,添加线上接口文档并完成接口冒烟测试;

BREAKING CHANGE: 无

Closes 无

[skip ci]
parent b125d23c
......@@ -9,6 +9,7 @@ import pps.core.common.entity.BaseModel;
import xstartup.annotation.XText;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
......@@ -46,4 +47,10 @@ public class SpaceOptimizeShortWellheadView extends BaseModel implements Seriali
@XText("是否防冻井(0_是;1_否)")
@TableField
private Integer frostproofWell;
/*------------------------- other -------------------------*/
@XText("运行时长(小时/天)")
@TableField(exist = false)
private BigDecimal runDuration;
}
......@@ -13,7 +13,27 @@ import java.util.List;
*/
@Repository(value = "pps.core.space.mapper.SpaceOptimizeShortWellheadViewMapper")
public interface SpaceOptimizeShortWellheadViewMapper {
/**
* 选择一个
*
* @param record 记录
* @return {@link SpaceOptimizeShortWellheadView }
*/
SpaceOptimizeShortWellheadView selectOne(SpaceOptimizeShortWellheadView record);
/**
* 选择列表
*
* @param record 记录
* @return {@link List }<{@link SpaceOptimizeShortWellheadView }>
*/
List<SpaceOptimizeShortWellheadView> selectList(SpaceOptimizeShortWellheadView record);
/**
* 选择列表联接
*
* @param record 记录
* @return {@link List }<{@link SpaceOptimizeShortWellheadView }>
*/
List<SpaceOptimizeShortWellheadView> selectListJoin(SpaceOptimizeShortWellheadView record);
}
......@@ -1445,18 +1445,20 @@ public class SpaceOptimizeBaseService {
List<SpaceOptimizeDateDuration> durationOutputs = null;
switch (flag) {
case 1:
wellheadOutputs = XCopyUtils.copyNewList(context.getBean(SpaceOptimizeUltraWellheadMapper.class).selectList(new LambdaQueryWrapper<SpaceOptimizeUltraWellheadEnt>()
.eq(SpaceOptimizeUltraWellheadEnt::getUltraPeriodId, periodId)
.eq(BaseModel::getIsDeleted, BusinessConstant.ONE)
.eq(SpaceOptimizeUltraWellheadEnt::getOptimizeDate, optimizeDate)
.orderByAsc(SpaceOptimizeUltraWellheadEnt::getStartSeq)
), GetSpaceOptimizeWellheadOutput.class);
durationOutputs = XCopyUtils.copyNewList(context.getBean(SpaceOptimizeUltraDurationMapper.class).selectList(new LambdaQueryWrapper<SpaceOptimizeUltraDurationEnt>()
.eq(SpaceOptimizeUltraDurationEnt::getUltraPeriodId, periodId)
.eq(BaseModel::getIsDeleted, BusinessConstant.ONE)
.eq(SpaceOptimizeUltraDurationEnt::getOptimizeDate, optimizeDate)
.orderByAsc(SpaceOptimizeUltraDurationEnt::getIsOptimize, SpaceOptimizeUltraDurationEnt::getOpenWellTime)
), SpaceOptimizeDateDuration.class);
wellheadOutputs = XCopyUtils.copyNewList(context.getBean(SpaceOptimizeUltraWellheadMapper.class)
.selectList(new LambdaQueryWrapper<SpaceOptimizeUltraWellheadEnt>()
.eq(SpaceOptimizeUltraWellheadEnt::getUltraPeriodId, periodId)
.eq(BaseModel::getIsDeleted, BusinessConstant.ONE)
.eq(SpaceOptimizeUltraWellheadEnt::getOptimizeDate, optimizeDate)
.orderByAsc(SpaceOptimizeUltraWellheadEnt::getStartSeq)
), GetSpaceOptimizeWellheadOutput.class);
durationOutputs = XCopyUtils.copyNewList(context.getBean(SpaceOptimizeUltraDurationMapper.class)
.selectList(new LambdaQueryWrapper<SpaceOptimizeUltraDurationEnt>()
.eq(SpaceOptimizeUltraDurationEnt::getUltraPeriodId, periodId)
.eq(BaseModel::getIsDeleted, BusinessConstant.ONE)
.eq(SpaceOptimizeUltraDurationEnt::getOptimizeDate, optimizeDate)
.orderByAsc(SpaceOptimizeUltraDurationEnt::getIsOptimize, SpaceOptimizeUltraDurationEnt::getOpenWellTime)
), SpaceOptimizeDateDuration.class);
break;
case 2:
wellheadOutputs = XCopyUtils.copyNewList(context.getBean(SpaceOptimizeLongWellheadMapper.class).selectList(new LambdaQueryWrapper<SpaceOptimizeLongWellheadEnt>()
......@@ -1487,12 +1489,11 @@ public class SpaceOptimizeBaseService {
), SpaceOptimizeDateDuration.class);
break;
case 4:
wellheadOutputs = XCopyUtils.copyNewList(context.getBean(SpaceOptimizeShortWellheadMapper.class).selectList(new LambdaQueryWrapper<SpaceOptimizeShortWellheadEnt>()
.eq(SpaceOptimizeShortWellheadEnt::getShortPeriodId, periodId)
.eq(BaseModel::getIsDeleted, BusinessConstant.ONE)
.eq(SpaceOptimizeShortWellheadEnt::getOptimizeDate, optimizeDate)
.orderByAsc(SpaceOptimizeShortWellheadEnt::getStartSeq)
), GetSpaceOptimizeWellheadOutput.class);
wellheadOutputs = XCopyUtils.copyNewList(context.getBean(SpaceOptimizeShortWellheadViewMapper.class)
.selectListJoin(SpaceOptimizeShortWellheadView.builder()
.shortPeriodId(periodId)
.optimizeDate(optimizeDate)
.build()), GetSpaceOptimizeWellheadOutput.class);
durationOutputs = XCopyUtils.copyNewList(context.getBean(SpaceOptimizeShortDurationMapper.class).selectList(new LambdaQueryWrapper<SpaceOptimizeShortDurationEnt>()
.eq(SpaceOptimizeShortDurationEnt::getShortPeriodId, periodId)
.eq(BaseModel::getIsDeleted, BusinessConstant.ONE)
......@@ -1520,17 +1521,27 @@ public class SpaceOptimizeBaseService {
tmpList.add(durationOutput);
}
}
wellheadOutputs.forEach(w -> {
//取绿电时间
List<DynamicQueryPlantPredictedPowerOutput> greenTimeList = powerList.stream()
.filter(p -> p.getPower().compareTo(BigDecimal.ZERO) > 0)
.collect(Collectors.toList());
for (GetSpaceOptimizeWellheadOutput w : wellheadOutputs) {
BigDecimal initializeGreenRate = BigDecimal.ZERO;
BigDecimal optimizeGreenRate = BigDecimal.ZERO;
if (collect.containsKey(w.getWellheadId())) {
Map<Integer, List<SpaceOptimizeDateDuration>> listMap = collect.get(w.getWellheadId()).stream()
.collect(Collectors.groupingBy(SpaceOptimizeDateDuration::getIsOptimize));
w.setOptimizeList(ServiceUtil.getAllDateDuration(listMap.get(0)));
w.setInitializeList(ServiceUtil.getAllDateDuration(listMap.get(1)));
//计算绿电占比
} else {
w.setOptimizeList(new ArrayList<>(0));
w.setInitializeList(new ArrayList<>(0));
w.setOptimizeList(Collections.emptyList());
w.setInitializeList(Collections.emptyList());
}
});
w.setInitializeGreenRate(initializeGreenRate);
w.setOptimizeGreenRate(optimizeGreenRate);
}
}
}
return wellheadOutputs;
......
......@@ -4,6 +4,7 @@ import lombok.Data;
import pps.core.space.service.data.SpaceOptimizeDateDuration;
import xstartup.annotation.XText;
import java.math.BigDecimal;
import java.util.List;
/**
......@@ -24,6 +25,9 @@ public class GetSpaceOptimizeWellheadOutput {
@XText("井号")
private String wellNumber;
@XText("运行时长(小时/天)")
private BigDecimal runDuration;
/**
* 井口配置(未优化)
*/
......@@ -35,4 +39,16 @@ public class GetSpaceOptimizeWellheadOutput {
*/
@XText("井口配置(已优化)")
private List<SpaceOptimizeDateDuration> optimizeList;
/**
* 未优化绿电占比(%)
*/
@XText("未优化绿电占比(%)")
private BigDecimal initializeGreenRate;
/**
* 已优化绿电占比(%)
*/
@XText("已优化绿电占比(%)")
private BigDecimal optimizeGreenRate;
}
......@@ -48,4 +48,24 @@
where
id=#{id}
</select>
<resultMap id="ExtResultMap" type="pps.core.space.entity.SpaceOptimizeShortWellheadView" extends="BaseResultMap">
<result column="run_duration" property="runDuration" jdbcType="DECIMAL"/>
</resultMap>
<select id="selectListJoin" parameterType="pps.core.space.entity.SpaceOptimizeShortWellheadView"
resultMap="BaseResultMap">
SELECT s.wellhead_id,
s.well_number,
s.start_seq,
s.optimize_date,
w.run_duration
FROM space_optimize_short_wellhead s
LEFT JOIN space_institution_wellhead w ON s.wellhead_id = w.wellhead_id
WHERE s.is_deleted = 1
AND w.is_deleted = 1
AND s.short_period_id = #{shortPeriodId}
AND s.optimize_date = #{optimizeDate}
ORDER BY s.start_seq ASC
</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