Commit 132352f0 authored by ZWT's avatar ZWT

得到的

parent 3488c2de
......@@ -86,7 +86,7 @@
</insert>
<select id="selectDailyElectricityTrend" parameterType="pps.core.space.entity.LineDailyElectricityTrendView"
resultMap="BaseResultMap">
resultMap="BaseResultMap" databaseId="MySQL">
SELECT
IFNULL( SUM( PHOTOVOLTAIC_POWER ), 0 ) AS PHOTOVOLTAIC_POWER,
IFNULL( SUM( MUNICIPAL_POWER ), 0 ) AS MUNICIPAL_POWER,
......@@ -111,6 +111,32 @@
CREATE_DATE
</select>
<select id="selectDailyElectricityTrend" parameterType="pps.core.space.entity.LineDailyElectricityTrendView"
resultMap="BaseResultMap" databaseId="Oracle">
SELECT
NVL( SUM( PHOTOVOLTAIC_POWER ), 0 ) AS PHOTOVOLTAIC_POWER,
NVL( SUM( MUNICIPAL_POWER ), 0 ) AS MUNICIPAL_POWER,
NVL( SUM( LAST_PHOTOVOLTAIC_POWER ), 0 ) AS LAST_PHOTOVOLTAIC_POWER,
NVL( SUM( LAST_MUNICIPAL_POWER ), 0 ) AS LAST_MUNICIPAL_POWER,
CREATE_DATE
FROM
LINE_DAILY_ELECTRICITY_TREND
WHERE
STATION_NAME IN
<foreach collection="stationNameList" open="(" close=")" separator="," item="item">
#{item}
</foreach>
<if test="systemSource != null">
AND SYSTEM_SOURCE = #{systemSource}
</if>
AND CREATE_DATE BETWEEN #{startTime}
AND #{endTime}
GROUP BY
CREATE_DATE
ORDER BY
CREATE_DATE
</select>
<resultMap id="ExtResultMap" type="pps.core.space.entity.LineDailyElectricityTrendView" extends="BaseResultMap">
<result column="DAY_FLAG" property="dayFlag"/>
</resultMap>
......
......@@ -601,13 +601,18 @@ public class EnergyConsumptionAnalysisService {
.map(DynamicQueryBasePowerLinePlantViewOutput::getStationName)
.collect(Collectors.toList());
ThirdDailyAccumulationUpdateViewMapper mapper = context.getBean(ThirdDailyAccumulationUpdateViewMapper.class);
List<ThirdDailyAccumulationUpdateView> viewList = mapper.selectPowerStatisticsByDate(ThirdDailyAccumulationUpdateView.builder()
.today(today)
.yesterday(DateUtil.beginOfDay(DateUtil.yesterday()))
.lastYear(DateUtil.offset(today, DateField.YEAR, -1))
.stationNameList(collect)
.systemSource(oilFieldCode)
.build());
List<ThirdDailyAccumulationUpdateView> viewList = null;
try {
viewList = mapper.selectPowerStatisticsByDate(ThirdDailyAccumulationUpdateView.builder()
.today(today)
.yesterday(DateUtil.beginOfDay(DateUtil.yesterday()))
.lastYear(DateUtil.offset(today, DateField.YEAR, -1))
.stationNameList(collect)
.systemSource(oilFieldCode)
.build());
} catch (RuntimeException e) {
System.out.println();
}
outputs = XCopyUtils.copyNewList(viewList, PowerStatisticsOutput.class);
//谷电占比
if (BusinessConstant.ENV_SY.equals(oilFieldCode)) {
......@@ -775,9 +780,10 @@ public class EnergyConsumptionAnalysisService {
.map(DynamicQueryBasePowerLinePlantViewOutput::getStationName)
.collect(Collectors.toList());
//查本期
String oilFieldCode = ServiceUtil.getOilFieldCode(context);
DateTime endTime = DateUtil.offsetDay(input.getEndTime(), 1);
nowMap = this.getPowerMap(context, input.getStartTime(), endTime, collect, 2, null, null);
lastMap = this.getPowerMap(context, DateUtil.offset(input.getStartTime(), DateField.YEAR, -1), DateUtil.offset(endTime, DateField.YEAR, -1), collect, 2, null, null);
nowMap = this.getPowerMap(context, input.getStartTime(), endTime, collect, 2, oilFieldCode, null);
lastMap = this.getPowerMap(context, DateUtil.offset(input.getStartTime(), DateField.YEAR, -1), DateUtil.offset(endTime, DateField.YEAR, -1), collect, 2, oilFieldCode, null);
} else {
nowMap = Collections.emptyMap();
lastMap = Collections.emptyMap();
......@@ -1637,7 +1643,6 @@ public class EnergyConsumptionAnalysisService {
/*-----------------------------------private-----------------------------------*/
/**
* 电量统计
*
......@@ -1655,13 +1660,21 @@ public class EnergyConsumptionAnalysisService {
switch (oilFieldCode) {
case BusinessConstant.ENV_SY:
StationDailyProductionSituationMapper situationMapper = context.getBean(StationDailyProductionSituationMapper.class);
List<StationDailyProductionSituationEnt> list = situationMapper.selectList(new QueryWrapper<StationDailyProductionSituationEnt>()
.select("IFNULL( ROUND( SUM( daily_electricity_consumption ), 2 ), 0 ) AS daily_electricity_consumption",
"IFNULL( ROUND( SUM( daily_liquid_production ), 2 ), 0 ) AS daily_liquid_production",
"IFNULL( ROUND( SUM( photovoltaic_power ), 2 ), 0 ) AS photovoltaic_power",
"data_date"
)
.lambda()
QueryWrapper<StationDailyProductionSituationEnt> queryWrapper = new QueryWrapper<>();
if (CharSequenceUtil.equals(context.getProperty("x.db.databaseId"), BusinessConstant.ORACLE)) {
queryWrapper.select("NVL( ROUND( SUM( daily_electricity_consumption ), 2 ), 0 ) AS daily_electricity_consumption",
"NVL( ROUND( SUM( daily_liquid_production ), 2 ), 0 ) AS daily_liquid_production",
"NVL( ROUND( SUM( photovoltaic_power ), 2 ), 0 ) AS photovoltaic_power",
"data_date"
);
} else {
queryWrapper.select("IFNULL( ROUND( SUM( daily_electricity_consumption ), 2 ), 0 ) AS daily_electricity_consumption",
"IFNULL( ROUND( SUM( daily_liquid_production ), 2 ), 0 ) AS daily_liquid_production",
"IFNULL( ROUND( SUM( photovoltaic_power ), 2 ), 0 ) AS photovoltaic_power",
"data_date"
);
}
List<StationDailyProductionSituationEnt> list = situationMapper.selectList(queryWrapper.lambda()
.in(CollUtil.isNotEmpty(stationNameList), StationDailyProductionSituationEnt::getStationName, stationNameList)
.between(ObjectUtil.isAllNotEmpty(startTime, endTime), StationDailyProductionSituationEnt::getDataDate, startTime, endTime)
.groupBy(StationDailyProductionSituationEnt::getDataDate)
......
......@@ -75,7 +75,7 @@
</select>
<select id="selectGeneratedPowerHour" parameterType="pps.core.prediction.entity.ThirdActivePowerView"
resultMap="ExtBaseResultMap">
resultMap="ExtBaseResultMap" databaseId="MySQL">
SELECT
ROUND( SUM( PHOTOVOLTAIC_POWER ), 2 ) AS PHOTOVOLTAIC_POWER,
CREATE_DATE
......@@ -113,6 +113,45 @@
CREATE_DATE
</select>
<select id="selectGeneratedPowerHour" parameterType="pps.core.prediction.entity.ThirdActivePowerView"
resultMap="ExtBaseResultMap" databaseId="Oracle">
SELECT
ROUND( SUM( PHOTOVOLTAIC_POWER ), 2 ) AS PHOTOVOLTAIC_POWER,
CREATE_DATE
FROM (SELECT NVL(AVG(PHOTOVOLTAIC_POWER), 0) AS PHOTOVOLTAIC_POWER,
<choose>
<when test="dayFlag == 3">
TO_CHAR( CREATE_DATE, 'YYYY-MM-' ) || '01' AS CREATE_DATE,
</when>
<when test="dayFlag == 2">
TO_CHAR( CREATE_DATE, 'YYYY-MM-DD' ) AS CREATE_DATE,
</when>
<otherwise>
TO_CHAR( CREATE_DATE, 'YYYY-MM-DD HH24' ) || ':00:00' AS CREATE_DATE,
</otherwise>
</choose>
STATION_NAME
FROM THIRD_ACTIVE_POWER
WHERE (
<if test="stationNames != null and stationNames.size() > 0">
STATION_NAME IN
<foreach collection="stationNames" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
AND CREATE_DATE BETWEEN #{startTime}
AND #{endTime}
<if test="systemSource != null">
AND SYSTEM_SOURCE = #{systemSource}
</if>
)
GROUP BY STATION_NAME,
CREATE_DATE) Z
GROUP BY CREATE_DATE
ORDER BY
CREATE_DATE
</select>
<select id="selectAvgPhotovoltaicPower" parameterType="pps.core.prediction.entity.ThirdActivePowerView"
resultMap="BaseResultMap">
SELECT G.STATION_NAME,
......
......@@ -82,7 +82,7 @@
</resultMap>
<select id="selectPowerStatisticsByDate" parameterType="pps.core.prediction.entity.ThirdDailyAccumulationUpdateView"
resultMap="ExtResultMap">
resultMap="ExtResultMap" databaseId="MySQL">
SELECT Z.DAY_FLAG,
ROUND(Z.PHOTOVOLTAIC_POWER, 2) AS PHOTOVOLTAIC_POWER,
ROUND(Z.DAILY_ELECTRICITY_CONSUMPTION, 2) AS DAILY_ELECTRICITY_CONSUMPTION,
......@@ -130,6 +130,58 @@
) Z
</select>
<select id="selectPowerStatisticsByDate" parameterType="pps.core.prediction.entity.ThirdDailyAccumulationUpdateView"
resultMap="ExtResultMap" databaseId="Oracle">
SELECT Z.DAY_FLAG,
ROUND(Z.PHOTOVOLTAIC_POWER, 2) AS PHOTOVOLTAIC_POWER,
ROUND(Z.DAILY_ELECTRICITY_CONSUMPTION, 2) AS DAILY_ELECTRICITY_CONSUMPTION,
CASE
Z.DAILY_ELECTRICITY_CONSUMPTION
WHEN 0 THEN
0 ELSE NVL( ROUND( Z.IN_PLACE_CONSUMPTION / Z.DAILY_ELECTRICITY_CONSUMPTION * 100, 2 ), 0 )
END GREEN_ELECTRICITY_RATE,
NVL(ROUND(Z.PHOTOVOLTAIC_POWER - Z.IN_PLACE_CONSUMPTION, 2), 0) AS AVOID_PEAK_RATE
FROM (SELECT NVL(SUM(PHOTOVOLTAIC_POWER), 0) AS PHOTOVOLTAIC_POWER,
NVL(SUM(DAILY_ELECTRICITY_CONSUMPTION), 0) AS DAILY_ELECTRICITY_CONSUMPTION,
NVL(SUM(IN_PLACE_CONSUMPTION), 0) AS IN_PLACE_CONSUMPTION,
1 AS DAY_FLAG
FROM THIRD_DAILY_ACCUMULATION_UPDATE
WHERE
TO_CHAR( CREATE_DATE, 'YYYY-MM-DD HH24' ) || ':00:00' = #{today}
AND SYSTEM_SOURCE = #{systemSource}
AND STATION_NAME IN
<foreach collection="stationNameList" open="(" close=")" separator="," item="item">
#{item}
</foreach>
UNION ALL
SELECT NVL(SUM(PHOTOVOLTAIC_POWER), 0) AS PHOTOVOLTAIC_POWER,
NVL(SUM(DAILY_ELECTRICITY_CONSUMPTION), 0) AS DAILY_ELECTRICITY_CONSUMPTION,
NVL(SUM(IN_PLACE_CONSUMPTION), 0) AS IN_PLACE_CONSUMPTION,
2 AS DAY_FLAG
FROM THIRD_DAILY_ACCUMULATION_UPDATE
WHERE
TO_CHAR( CREATE_DATE, 'YYYY-MM-DD HH24' ) || ':00:00' = #{yesterday}
AND SYSTEM_SOURCE = #{systemSource}
AND STATION_NAME IN
<foreach collection="stationNameList" open="(" close=")" separator="," item="item">
#{item}
</foreach>
UNION ALL
SELECT NVL(SUM(PHOTOVOLTAIC_POWER), 0) AS PHOTOVOLTAIC_POWER,
NVL(SUM(DAILY_ELECTRICITY_CONSUMPTION), 0) AS DAILY_ELECTRICITY_CONSUMPTION,
NVL(SUM(IN_PLACE_CONSUMPTION), 0) AS IN_PLACE_CONSUMPTION,
3 AS DAY_FLAG
FROM THIRD_DAILY_ACCUMULATION_UPDATE
WHERE
TO_CHAR( CREATE_DATE, 'YYYY-MM-DD HH24' ) || ':00:00' = #{lastYear}
AND SYSTEM_SOURCE = #{systemSource}
AND STATION_NAME IN
<foreach collection="stationNameList" open="(" close=")" separator="," item="item">
#{item}
</foreach>
) Z
</select>
<select id="selectPowerTrendByDate"
parameterType="pps.core.prediction.entity.ThirdDailyAccumulationUpdateView"
resultMap="ExtResultMap">
......
......@@ -85,7 +85,7 @@
</select>
<select id="selectPowerConsumptionHour" parameterType="pps.core.prediction.entity.ThirdWellAvgActivePowerView"
resultMap="BaseResultMap">
resultMap="BaseResultMap" databaseId="MySQL">
SELECT
<choose>
<when test="systemSource == 'SY'">
......@@ -143,4 +143,64 @@
ORDER BY
INPUT_TIME
</select>
<select id="selectPowerConsumptionHour" parameterType="pps.core.prediction.entity.ThirdWellAvgActivePowerView"
resultMap="BaseResultMap" databaseId="Oracle">
SELECT
<choose>
<when test="systemSource == 'SY'">
ROUND( SUM( AVG_ACTIVE_POWER )/ 1000, 2 ) AS AVG_ACTIVE_POWER,
</when>
<otherwise>
ROUND( SUM( AVG_ACTIVE_POWER ), 2 ) AS AVG_ACTIVE_POWER,
</otherwise>
</choose>
INPUT_TIME
FROM
(
SELECT
NVL( AVG( AVG_ACTIVE_POWER ), 0 ) AS AVG_ACTIVE_POWER,
Z.INPUT_TIME,
Z.WELL_NUMBER
FROM
(
SELECT
AVG_ACTIVE_POWER,
<choose>
<when test="dayFlag == 3">
TO_CHAR( INPUT_TIME, 'YYYY-MM-' ) || '01' AS INPUT_TIME,
</when>
<when test="dayFlag == 2">
TO_CHAR( INPUT_TIME, 'YYYY-MM-DD' ) AS INPUT_TIME,
</when>
<otherwise>
TO_CHAR( INPUT_TIME, 'YYYY-MM-DD HH24' ) || ':00:00' AS INPUT_TIME,
</otherwise>
</choose>
WELL_NUMBER
FROM
THIRD_WELL_AVG_ACTIVE_POWER
WHERE
(
<if test="wellNumbers != null and wellNumbers.size() > 0">
WELL_NUMBER IN
<foreach collection="wellNumbers" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
AND INPUT_TIME BETWEEN #{startTime}
AND #{endTime}
<if test="systemSource != null">
AND SYSTEM_SOURCE = #{systemSource}
</if>
)) Z
GROUP BY
Z.WELL_NUMBER,
Z.INPUT_TIME
) Z
GROUP BY
INPUT_TIME
ORDER BY
INPUT_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