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; ...@@ -9,6 +9,7 @@ import pps.core.common.entity.BaseModel;
import xstartup.annotation.XText; import xstartup.annotation.XText;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
/** /**
...@@ -46,4 +47,10 @@ public class SpaceOptimizeShortWellheadView extends BaseModel implements Seriali ...@@ -46,4 +47,10 @@ public class SpaceOptimizeShortWellheadView extends BaseModel implements Seriali
@XText("是否防冻井(0_是;1_否)") @XText("是否防冻井(0_是;1_否)")
@TableField @TableField
private Integer frostproofWell; private Integer frostproofWell;
/*------------------------- other -------------------------*/
@XText("运行时长(小时/天)")
@TableField(exist = false)
private BigDecimal runDuration;
} }
...@@ -13,7 +13,27 @@ import java.util.List; ...@@ -13,7 +13,27 @@ import java.util.List;
*/ */
@Repository(value = "pps.core.space.mapper.SpaceOptimizeShortWellheadViewMapper") @Repository(value = "pps.core.space.mapper.SpaceOptimizeShortWellheadViewMapper")
public interface SpaceOptimizeShortWellheadViewMapper { public interface SpaceOptimizeShortWellheadViewMapper {
/**
* 选择一个
*
* @param record 记录
* @return {@link SpaceOptimizeShortWellheadView }
*/
SpaceOptimizeShortWellheadView selectOne(SpaceOptimizeShortWellheadView record); SpaceOptimizeShortWellheadView selectOne(SpaceOptimizeShortWellheadView record);
/**
* 选择列表
*
* @param record 记录
* @return {@link List }<{@link SpaceOptimizeShortWellheadView }>
*/
List<SpaceOptimizeShortWellheadView> selectList(SpaceOptimizeShortWellheadView record); List<SpaceOptimizeShortWellheadView> selectList(SpaceOptimizeShortWellheadView record);
/**
* 选择列表联接
*
* @param record 记录
* @return {@link List }<{@link SpaceOptimizeShortWellheadView }>
*/
List<SpaceOptimizeShortWellheadView> selectListJoin(SpaceOptimizeShortWellheadView record);
} }
...@@ -1445,13 +1445,15 @@ public class SpaceOptimizeBaseService { ...@@ -1445,13 +1445,15 @@ public class SpaceOptimizeBaseService {
List<SpaceOptimizeDateDuration> durationOutputs = null; List<SpaceOptimizeDateDuration> durationOutputs = null;
switch (flag) { switch (flag) {
case 1: case 1:
wellheadOutputs = XCopyUtils.copyNewList(context.getBean(SpaceOptimizeUltraWellheadMapper.class).selectList(new LambdaQueryWrapper<SpaceOptimizeUltraWellheadEnt>() wellheadOutputs = XCopyUtils.copyNewList(context.getBean(SpaceOptimizeUltraWellheadMapper.class)
.selectList(new LambdaQueryWrapper<SpaceOptimizeUltraWellheadEnt>()
.eq(SpaceOptimizeUltraWellheadEnt::getUltraPeriodId, periodId) .eq(SpaceOptimizeUltraWellheadEnt::getUltraPeriodId, periodId)
.eq(BaseModel::getIsDeleted, BusinessConstant.ONE) .eq(BaseModel::getIsDeleted, BusinessConstant.ONE)
.eq(SpaceOptimizeUltraWellheadEnt::getOptimizeDate, optimizeDate) .eq(SpaceOptimizeUltraWellheadEnt::getOptimizeDate, optimizeDate)
.orderByAsc(SpaceOptimizeUltraWellheadEnt::getStartSeq) .orderByAsc(SpaceOptimizeUltraWellheadEnt::getStartSeq)
), GetSpaceOptimizeWellheadOutput.class); ), GetSpaceOptimizeWellheadOutput.class);
durationOutputs = XCopyUtils.copyNewList(context.getBean(SpaceOptimizeUltraDurationMapper.class).selectList(new LambdaQueryWrapper<SpaceOptimizeUltraDurationEnt>() durationOutputs = XCopyUtils.copyNewList(context.getBean(SpaceOptimizeUltraDurationMapper.class)
.selectList(new LambdaQueryWrapper<SpaceOptimizeUltraDurationEnt>()
.eq(SpaceOptimizeUltraDurationEnt::getUltraPeriodId, periodId) .eq(SpaceOptimizeUltraDurationEnt::getUltraPeriodId, periodId)
.eq(BaseModel::getIsDeleted, BusinessConstant.ONE) .eq(BaseModel::getIsDeleted, BusinessConstant.ONE)
.eq(SpaceOptimizeUltraDurationEnt::getOptimizeDate, optimizeDate) .eq(SpaceOptimizeUltraDurationEnt::getOptimizeDate, optimizeDate)
...@@ -1487,12 +1489,11 @@ public class SpaceOptimizeBaseService { ...@@ -1487,12 +1489,11 @@ public class SpaceOptimizeBaseService {
), SpaceOptimizeDateDuration.class); ), SpaceOptimizeDateDuration.class);
break; break;
case 4: case 4:
wellheadOutputs = XCopyUtils.copyNewList(context.getBean(SpaceOptimizeShortWellheadMapper.class).selectList(new LambdaQueryWrapper<SpaceOptimizeShortWellheadEnt>() wellheadOutputs = XCopyUtils.copyNewList(context.getBean(SpaceOptimizeShortWellheadViewMapper.class)
.eq(SpaceOptimizeShortWellheadEnt::getShortPeriodId, periodId) .selectListJoin(SpaceOptimizeShortWellheadView.builder()
.eq(BaseModel::getIsDeleted, BusinessConstant.ONE) .shortPeriodId(periodId)
.eq(SpaceOptimizeShortWellheadEnt::getOptimizeDate, optimizeDate) .optimizeDate(optimizeDate)
.orderByAsc(SpaceOptimizeShortWellheadEnt::getStartSeq) .build()), GetSpaceOptimizeWellheadOutput.class);
), GetSpaceOptimizeWellheadOutput.class);
durationOutputs = XCopyUtils.copyNewList(context.getBean(SpaceOptimizeShortDurationMapper.class).selectList(new LambdaQueryWrapper<SpaceOptimizeShortDurationEnt>() durationOutputs = XCopyUtils.copyNewList(context.getBean(SpaceOptimizeShortDurationMapper.class).selectList(new LambdaQueryWrapper<SpaceOptimizeShortDurationEnt>()
.eq(SpaceOptimizeShortDurationEnt::getShortPeriodId, periodId) .eq(SpaceOptimizeShortDurationEnt::getShortPeriodId, periodId)
.eq(BaseModel::getIsDeleted, BusinessConstant.ONE) .eq(BaseModel::getIsDeleted, BusinessConstant.ONE)
...@@ -1520,17 +1521,27 @@ public class SpaceOptimizeBaseService { ...@@ -1520,17 +1521,27 @@ public class SpaceOptimizeBaseService {
tmpList.add(durationOutput); 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())) { if (collect.containsKey(w.getWellheadId())) {
Map<Integer, List<SpaceOptimizeDateDuration>> listMap = collect.get(w.getWellheadId()).stream() Map<Integer, List<SpaceOptimizeDateDuration>> listMap = collect.get(w.getWellheadId()).stream()
.collect(Collectors.groupingBy(SpaceOptimizeDateDuration::getIsOptimize)); .collect(Collectors.groupingBy(SpaceOptimizeDateDuration::getIsOptimize));
w.setOptimizeList(ServiceUtil.getAllDateDuration(listMap.get(0))); w.setOptimizeList(ServiceUtil.getAllDateDuration(listMap.get(0)));
w.setInitializeList(ServiceUtil.getAllDateDuration(listMap.get(1))); w.setInitializeList(ServiceUtil.getAllDateDuration(listMap.get(1)));
//计算绿电占比
} else { } else {
w.setOptimizeList(new ArrayList<>(0)); w.setOptimizeList(Collections.emptyList());
w.setInitializeList(new ArrayList<>(0)); w.setInitializeList(Collections.emptyList());
}
w.setInitializeGreenRate(initializeGreenRate);
w.setOptimizeGreenRate(optimizeGreenRate);
} }
});
} }
} }
return wellheadOutputs; return wellheadOutputs;
......
...@@ -4,6 +4,7 @@ import lombok.Data; ...@@ -4,6 +4,7 @@ import lombok.Data;
import pps.core.space.service.data.SpaceOptimizeDateDuration; import pps.core.space.service.data.SpaceOptimizeDateDuration;
import xstartup.annotation.XText; import xstartup.annotation.XText;
import java.math.BigDecimal;
import java.util.List; import java.util.List;
/** /**
...@@ -24,6 +25,9 @@ public class GetSpaceOptimizeWellheadOutput { ...@@ -24,6 +25,9 @@ public class GetSpaceOptimizeWellheadOutput {
@XText("井号") @XText("井号")
private String wellNumber; private String wellNumber;
@XText("运行时长(小时/天)")
private BigDecimal runDuration;
/** /**
* 井口配置(未优化) * 井口配置(未优化)
*/ */
...@@ -35,4 +39,16 @@ public class GetSpaceOptimizeWellheadOutput { ...@@ -35,4 +39,16 @@ public class GetSpaceOptimizeWellheadOutput {
*/ */
@XText("井口配置(已优化)") @XText("井口配置(已优化)")
private List<SpaceOptimizeDateDuration> optimizeList; private List<SpaceOptimizeDateDuration> optimizeList;
/**
* 未优化绿电占比(%)
*/
@XText("未优化绿电占比(%)")
private BigDecimal initializeGreenRate;
/**
* 已优化绿电占比(%)
*/
@XText("已优化绿电占比(%)")
private BigDecimal optimizeGreenRate;
} }
...@@ -48,4 +48,24 @@ ...@@ -48,4 +48,24 @@
where where
id=#{id} id=#{id}
</select> </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> </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