Commit ab19aba5 authored by ZWT's avatar ZWT

得到的

parent e9fda711
...@@ -3,6 +3,7 @@ package pps.core.space.service; ...@@ -3,6 +3,7 @@ package pps.core.space.service;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.text.CharSequenceUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
...@@ -114,11 +115,16 @@ public class SpaceOptimizeShortCloudServiceImpl extends SpaceOptimizeBaseService ...@@ -114,11 +115,16 @@ public class SpaceOptimizeShortCloudServiceImpl extends SpaceOptimizeBaseService
*/ */
@Override @Override
public XSingleResult<GetMonthlyWellCountOutput> monthlyWellCount(XContext context, GetMonthlyWellCountInput input) { public XSingleResult<GetMonthlyWellCountOutput> monthlyWellCount(XContext context, GetMonthlyWellCountInput input) {
QueryWrapper<SpaceOptimizeShortWellheadEnt> queryWrapper = new QueryWrapper<>();
if (CharSequenceUtil.equals(context.getProperty("x.db.databaseId"), BusinessConstant.ORACLE)) {
queryWrapper.select("DISTINCT WELL_NUMBER")
.apply("EXTRACT( YEAR FROM OPTIMIZE_DATE ) = {0}", input.getMonth());
} else {
queryWrapper.select("DISTINCT WELL_NUMBER")
.apply("MONTH ( OPTIMIZE_DATE ) = {0}", input.getMonth());
}
SpaceOptimizeShortWellheadMapper mapper = context.getBean(SpaceOptimizeShortWellheadMapper.class); SpaceOptimizeShortWellheadMapper mapper = context.getBean(SpaceOptimizeShortWellheadMapper.class);
Long count = mapper.selectCount(new QueryWrapper<SpaceOptimizeShortWellheadEnt>() Long count = mapper.selectCount(queryWrapper);
.select("DISTINCT well_number")
.apply("MONTH ( optimize_date ) = {0}", input.getMonth())
);
return XSingleResult.success(GetMonthlyWellCountOutput.builder() return XSingleResult.success(GetMonthlyWellCountOutput.builder()
.wellNumber(count) .wellNumber(count)
.build()); .build());
......
...@@ -91,7 +91,7 @@ ...@@ -91,7 +91,7 @@
</resultMap> </resultMap>
<select id="selectWellheadAnalysisPage" parameterType="pps.core.space.entity.WellDailyElectricityTrendView" <select id="selectWellheadAnalysisPage" parameterType="pps.core.space.entity.WellDailyElectricityTrendView"
resultMap="ExtResultMap"> resultMap="ExtResultMap" databaseId="MySQL">
SELECT SELECT
Z.* Z.*
FROM FROM
...@@ -153,4 +153,68 @@ ...@@ -153,4 +153,68 @@
ORDER BY ORDER BY
Z.WELL_NUMBER Z.WELL_NUMBER
</select> </select>
<select id="selectWellheadAnalysisPage" parameterType="pps.core.space.entity.WellDailyElectricityTrendView"
resultMap="ExtResultMap" databaseId="Oracle">
SELECT
Z.*
FROM
(
SELECT T.WELL_NUMBER,
T.SPACE_RUN_DURATION,
T.DAILY_LIQUID_PRODUCTION,
T.GREEN_ELECTRICITY_RATE,
T.DAILY_CARBON_REDUCTION,
T.VALLEY_ELECTRIC_RATE,
M.MONTH_DAILY_GREEN_OPEN_HOUR,
M.MONTH_SPACE_RUN_DURATION,
M.MONTH_DAILY_GREEN_CONSUMPTION,
M.MONTH_VALLEY_ELECTRIC_OPEN_HOUR,
Y.YEAR_DAILY_GREEN_OPEN_HOUR,
Y.YEAR_SPACE_RUN_DURATION,
Y.YEAR_DAILY_GREEN_CONSUMPTION,
Y.YEAR_VALLEY_ELECTRIC_OPEN_HOUR
FROM WELL_DAILY_ELECTRICITY_TREND T
LEFT JOIN (SELECT WELL_NUMBER,
SUM(DAILY_GREEN_OPEN_HOUR) AS MONTH_DAILY_GREEN_OPEN_HOUR,
SUM(SPACE_RUN_DURATION) AS MONTH_SPACE_RUN_DURATION,
SUM(DAILY_GREEN_CONSUMPTION) AS MONTH_DAILY_GREEN_CONSUMPTION,
SUM(VALLEY_ELECTRIC_OPEN_HOUR) AS MONTH_VALLEY_ELECTRIC_OPEN_HOUR
FROM WELL_DAILY_ELECTRICITY_TREND
WHERE
EXTRACT( MONTH FROM CREATE_DATE ) = #{month}
AND WELL_NUMBER IN
<foreach collection="wellNumberList" open="(" close=")" separator="," item="item">
#{item}
</foreach>
GROUP BY
WELL_NUMBER) M ON T.WELL_NUMBER = M.WELL_NUMBER
LEFT JOIN (SELECT WELL_NUMBER,
SUM(DAILY_GREEN_OPEN_HOUR) AS YEAR_DAILY_GREEN_OPEN_HOUR,
SUM(SPACE_RUN_DURATION) AS YEAR_SPACE_RUN_DURATION,
SUM(DAILY_GREEN_CONSUMPTION) AS YEAR_DAILY_GREEN_CONSUMPTION,
SUM(VALLEY_ELECTRIC_OPEN_HOUR) AS YEAR_VALLEY_ELECTRIC_OPEN_HOUR
FROM WELL_DAILY_ELECTRICITY_TREND
WHERE
EXTRACT( YEAR FROM CREATE_DATE ) = #{year}
AND WELL_NUMBER IN
<foreach collection="wellNumberList" open="(" close=")" separator="," item="item">
#{item}
</foreach>
GROUP BY
WELL_NUMBER) Y ON T.WELL_NUMBER = Y.WELL_NUMBER
WHERE T.CREATE_DATE = #{createDate}
AND T.WELL_NUMBER IN
<foreach collection="wellNumberList" open="(" close=")" separator="," item="item">
#{item}
</foreach>
) Z
<where>
<if test="wellNumber != null and wellNumber != ''">
AND Z.WELL_NUMBER LIKE CONCAT('%',#{wellNumber},'%')
</if>
</where>
ORDER BY
Z.WELL_NUMBER
</select>
</mapper> </mapper>
\ No newline at end of file
...@@ -1205,15 +1205,22 @@ public class EnergyConsumptionAnalysisService { ...@@ -1205,15 +1205,22 @@ public class EnergyConsumptionAnalysisService {
DateTime end = DateUtil.beginOfDay(DateUtil.date()); DateTime end = DateUtil.beginOfDay(DateUtil.date());
List<DynamicQueryBasePowerLinePlantViewOutput> plantList = ServiceUtil.getPowerLinePlantList(context, plantInput); List<DynamicQueryBasePowerLinePlantViewOutput> plantList = ServiceUtil.getPowerLinePlantList(context, plantInput);
if (CollUtil.isNotEmpty(plantList)) { if (CollUtil.isNotEmpty(plantList)) {
QueryWrapper<ThirdDailyAccumulationUpdateEnt> queryWrapper = new QueryWrapper<>();
if (CharSequenceUtil.equals(context.getProperty("x.db.databaseId"), BusinessConstant.ORACLE)) {
queryWrapper.select("NVL( SUM( photovoltaic_power ), 0 ) AS photovoltaic_power",
"NVL( SUM( daily_electricity_consumption ), 0 ) AS daily_electricity_consumption",
"NVL( SUM( daily_liquid_production ), 0 ) AS daily_liquid_production",
"NVL( SUM( in_place_consumption ), 0 ) AS in_place_consumption");
} else {
queryWrapper.select("IFNULL( SUM( photovoltaic_power ), 0 ) AS photovoltaic_power",
"IFNULL( SUM( daily_electricity_consumption ), 0 ) AS daily_electricity_consumption",
"IFNULL( SUM( daily_liquid_production ), 0 ) AS daily_liquid_production",
"IFNULL( SUM( in_place_consumption ), 0 ) AS in_place_consumption");
}
DateTime start = DateUtil.beginOfMonth(end); DateTime start = DateUtil.beginOfMonth(end);
//累计发电 //累计发电
ThirdDailyAccumulationUpdateMapper analysisMapper = context.getBean(ThirdDailyAccumulationUpdateMapper.class); ThirdDailyAccumulationUpdateMapper analysisMapper = context.getBean(ThirdDailyAccumulationUpdateMapper.class);
ThirdDailyAccumulationUpdateEnt analysisEnt = analysisMapper.selectOne(new QueryWrapper<ThirdDailyAccumulationUpdateEnt>() ThirdDailyAccumulationUpdateEnt analysisEnt = analysisMapper.selectOne(queryWrapper.lambda()
.select("IFNULL( SUM( photovoltaic_power ), 0 ) AS photovoltaic_power",
"IFNULL( SUM( daily_electricity_consumption ), 0 ) AS daily_electricity_consumption",
"IFNULL( SUM( daily_liquid_production ), 0 ) AS daily_liquid_production",
"IFNULL( SUM( in_place_consumption ), 0 ) AS in_place_consumption")
.lambda()
.between(ThirdDailyAccumulationUpdateEnt::getSaveDate, start, end) .between(ThirdDailyAccumulationUpdateEnt::getSaveDate, start, end)
.in(ThirdDailyAccumulationUpdateEnt::getStationName, plantList.stream() .in(ThirdDailyAccumulationUpdateEnt::getStationName, plantList.stream()
.map(DynamicQueryBasePowerLinePlantViewOutput::getStationName) .map(DynamicQueryBasePowerLinePlantViewOutput::getStationName)
......
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