Commit 18a11145 authored by ZWT's avatar ZWT

得到的

parent 3856da1e
......@@ -384,10 +384,15 @@ public class DailyElectricityTrendCloudServiceImpl implements IDailyElectricityT
* @return {@link Map }<{@link String }, {@link LineDailyElectricityTrendEnt }>
*/
private Map<String, LineDailyElectricityTrendEnt> getLastElectricityTrendMap(XContext context, Date createDate, String oilFieldCode) {
LambdaQueryWrapper<LineDailyElectricityTrendEnt> queryWrapper = new LambdaQueryWrapper<>();
if (CharSequenceUtil.equals(context.getProperty("x.db.databaseId"), BusinessConstant.ORACLE)) {
queryWrapper.apply("TO_CHAR( CREATE_DATE, 'YYYY-MM-DD' ) = {0}", DateUtil.offset(createDate, DateField.YEAR, -1).toDateStr());
} else {
queryWrapper.apply("DATE( CREATE_DATE ) = {0}", DateUtil.offset(createDate, DateField.YEAR, -1));
}
LineDailyElectricityTrendMapper mapper = context.getBean(LineDailyElectricityTrendMapper.class);
List<LineDailyElectricityTrendEnt> list = mapper.selectList(new LambdaQueryWrapper<LineDailyElectricityTrendEnt>()
List<LineDailyElectricityTrendEnt> list = mapper.selectList(queryWrapper
.eq(CharSequenceUtil.isNotBlank(oilFieldCode), LineDailyElectricityTrendEnt::getSystemSource, oilFieldCode)
.apply("DATE( create_date ) = {0}", DateUtil.offset(createDate, DateField.YEAR, -1))
);
Map<String, LineDailyElectricityTrendEnt> collect;
if (CollUtil.isEmpty(list)) {
......
......@@ -58,7 +58,7 @@
ID=#{id}
</select>
<insert id="batchInsert" parameterType="list">
<insert id="batchInsert" parameterType="list" databaseId="MySQL">
INSERT INTO LINE_DAILY_ELECTRICITY_TREND (ID, STATION_NAME, TOTAL_POWER, PHOTOVOLTAIC_POWER, MUNICIPAL_POWER,
LAST_TOTAL_POWER, LAST_PHOTOVOLTAIC_POWER, LAST_MUNICIPAL_POWER, TOTAL_RATIO, PHOTOVOLTAIC_RATIO,
MUNICIPAL_RATIO, VALLEY_ELECTRIC_OPEN_HOUR, VALLEY_ELECTRIC_RATE, SUM_RUN_DURATION, CREATE_DATE, SYSTEM_SOURCE)
......@@ -85,6 +85,36 @@
</foreach>
</insert>
<insert id="batchInsert" parameterType="list" databaseId="Oracle">
INSERT ALL
<foreach collection="list" item="item">
INTO LINE_DAILY_ELECTRICITY_TREND (ID, STATION_NAME, TOTAL_POWER, PHOTOVOLTAIC_POWER, MUNICIPAL_POWER,
LAST_TOTAL_POWER, LAST_PHOTOVOLTAIC_POWER, LAST_MUNICIPAL_POWER, TOTAL_RATIO, PHOTOVOLTAIC_RATIO,
MUNICIPAL_RATIO, VALLEY_ELECTRIC_OPEN_HOUR, VALLEY_ELECTRIC_RATE, SUM_RUN_DURATION, CREATE_DATE,
SYSTEM_SOURCE)
VALUES
(
#{item.id},
#{item.stationName},
#{item.totalPower},
#{item.photovoltaicPower},
#{item.municipalPower},
#{item.lastTotalPower},
#{item.lastPhotovoltaicPower},
#{item.lastMunicipalPower},
#{item.totalRatio},
#{item.photovoltaicRatio},
#{item.municipalRatio},
#{item.valleyElectricOpenHour},
#{item.valleyElectricRate},
#{item.sumRunDuration},
#{item.createDate},
#{item.systemSource}
)
</foreach>
SELECT * FROM DUAL
</insert>
<select id="selectDailyElectricityTrend" parameterType="pps.core.space.entity.LineDailyElectricityTrendView"
resultMap="BaseResultMap" databaseId="MySQL">
SELECT
......
......@@ -130,7 +130,7 @@
</select>
<select id="selectOptimizationResultList" resultMap="ExtendsResultMap"
parameterType="pps.core.space.entity.SpaceOptimizeShortDurationView">
parameterType="pps.core.space.entity.SpaceOptimizeShortDurationView" databaseId="MySQL">
SELECT P.LINE_ID,
L.LINE_NAME,
S.WELL_NUMBER,
......@@ -160,6 +160,37 @@
D.OPEN_WELL_TIME
</select>
<select id="selectOptimizationResultList" resultMap="ExtendsResultMap"
parameterType="pps.core.space.entity.SpaceOptimizeShortDurationView" databaseId="Oracle">
SELECT P.LINE_ID,
L.LINE_NAME,
S.WELL_NUMBER,
S.WELLHEAD_ID,
W.SERVICE_RATING,
S.START_SEQ,
D.OPEN_WELL_TIME,
D.CLOSE_WELL_TIME,
NVL(CASE TO_CHAR(I.RUN_TYPE_KEY) WHEN 'CONTINUOUS' THEN 24 ELSE I.RUN_DURATION END, 0) AS RUN_DURATION
FROM SPACE_OPTIMIZE_SHORT_PERIOD P
JOIN SPACE_OPTIMIZE_SHORT_WELLHEAD S ON P.ID = S.SHORT_PERIOD_ID
JOIN SPACE_OPTIMIZE_SHORT_DURATION D ON S.WELLHEAD_ID = D.WELLHEAD_ID
AND S.OPTIMIZE_DATE = D.OPTIMIZE_DATE
LEFT JOIN BASE_WELLHEAD W ON S.WELLHEAD_ID = W.ID
LEFT JOIN BASE_POWER_LINE L ON P.LINE_ID = L.ID
LEFT JOIN SPACE_INSTITUTION_WELLHEAD I ON S.WELLHEAD_ID = I.WELLHEAD_ID
WHERE P.OPTIMIZE_DATE = #{optimizeDate}
AND D.IS_OPTIMIZE = 0
AND P.IS_DELETED = 1
AND S.IS_DELETED = 1
AND D.IS_DELETED = 1
AND W.IS_DELETED = 1
AND L.IS_DELETED = 1
AND I.IS_DELETED = 1
ORDER BY P.LINE_ID,
S.START_SEQ,
D.OPEN_WELL_TIME
</select>
<select id="selectResultList" resultMap="ExtendsResultMap"
parameterType="pps.core.space.entity.SpaceOptimizeShortDurationView">
SELECT p.line_id,
......
......@@ -54,7 +54,7 @@
ID=#{id}
</select>
<insert id="batchInsert" parameterType="list">
<insert id="batchInsert" parameterType="list" databaseId="MySQL">
INSERT INTO WELL_DAILY_ELECTRICITY_TREND (ID, WELL_NUMBER, SPACE_RUN_DURATION, DAILY_OPEN_HOUR,
DAILY_GREEN_OPEN_HOUR, DAILY_GREEN_CONSUMPTION, DAILY_ELECTRICITY_CONSUMPTION, DAILY_LIQUID_PRODUCTION,
DAILY_CARBON_REDUCTION, GREEN_ELECTRICITY_RATE, VALLEY_ELECTRIC_OPEN_HOUR, VALLEY_ELECTRIC_RATE, CREATE_DATE,
......@@ -79,6 +79,34 @@
</foreach>
</insert>
<insert id="batchInsert" parameterType="list" databaseId="Oracle">
INSERT ALL
<foreach collection="list" item="item">
INTO WELL_DAILY_ELECTRICITY_TREND (ID, WELL_NUMBER, SPACE_RUN_DURATION, DAILY_OPEN_HOUR,
DAILY_GREEN_OPEN_HOUR, DAILY_GREEN_CONSUMPTION, DAILY_ELECTRICITY_CONSUMPTION, DAILY_LIQUID_PRODUCTION,
DAILY_CARBON_REDUCTION, GREEN_ELECTRICITY_RATE, VALLEY_ELECTRIC_OPEN_HOUR, VALLEY_ELECTRIC_RATE,
CREATE_DATE,
SYSTEM_SOURCE) VALUES
(
#{item.id},
#{item.wellNumber},
#{item.spaceRunDuration},
#{item.dailyOpenHour},
#{item.dailyGreenOpenHour},
#{item.dailyGreenConsumption},
#{item.dailyElectricityConsumption},
#{item.dailyLiquidProduction},
#{item.dailyCarbonReduction},
#{item.greenElectricityRate},
#{item.valleyElectricOpenHour},
#{item.valleyElectricRate},
#{item.createDate},
#{item.systemSource}
)
</foreach>
SELECT * FROM DUAL
</insert>
<resultMap id="ExtResultMap" type="pps.core.space.entity.WellDailyElectricityTrendView" extends="BaseResultMap">
<result column="MONTH_DAILY_GREEN_OPEN_HOUR" property="monthDailyGreenOpenHour"/>
<result column="MONTH_SPACE_RUN_DURATION" property="monthSpaceRunDuration"/>
......
......@@ -10,6 +10,7 @@ import pps.cloud.prediction.service.data.third_daily_accumulation_update.GetThir
import pps.cloud.prediction.service.data.third_daily_accumulation_update.GetThirdDailyAccumulationUpdateOutput;
import pps.cloud.prediction.service.data.wellhead_daily_production_situation.GetWellheadDailyProductionSituationInput;
import pps.cloud.prediction.service.data.wellhead_daily_production_situation.GetWellheadDailyProductionSituationOutput;
import pps.core.common.constant.BusinessConstant;
import pps.core.prediction.entity.ThirdActivePowerView;
import pps.core.prediction.entity.ThirdDailyAccumulationUpdateEnt;
import pps.core.prediction.entity.WellheadDailyProductionSituationEnt;
......@@ -81,15 +82,22 @@ public class ThirdPowerCloudServiceImpl implements IThirdPowerCloudService {
*/
@Override
public XListResult<GetThirdDailyAccumulationUpdateOutput> queryDailyUpdatePower(XContext context, GetThirdDailyAccumulationUpdateInput input) {
QueryWrapper<ThirdDailyAccumulationUpdateEnt> queryWrapper = new QueryWrapper<>();
if (CharSequenceUtil.equals(context.getProperty("x.db.databaseId"), BusinessConstant.ORACLE)) {
queryWrapper.select("STATION_NAME",
"NVL( AVG( PHOTOVOLTAIC_POWER ), 0 ) AS PHOTOVOLTAIC_POWER",
"NVL( AVG( DAILY_ELECTRICITY_CONSUMPTION ), 0 ) AS DAILY_ELECTRICITY_CONSUMPTION")
.apply("TO_CHAR( CREATE_DATE, 'YYYY-MM-DD' ) = {0}", DateUtil.date(input.getCreateDate()).toDateStr());
} else {
queryWrapper.select("STATION_NAME",
"IFNULL( AVG( PHOTOVOLTAIC_POWER ), 0 ) AS PHOTOVOLTAIC_POWER",
"IFNULL( AVG( DAILY_ELECTRICITY_CONSUMPTION ), 0 ) AS DAILY_ELECTRICITY_CONSUMPTION")
.apply("DATE( CREATE_DATE ) = {0}", input.getCreateDate());
}
ThirdDailyAccumulationUpdateMapper mapper = context.getBean(ThirdDailyAccumulationUpdateMapper.class);
List<ThirdDailyAccumulationUpdateEnt> list = mapper.selectList(new QueryWrapper<ThirdDailyAccumulationUpdateEnt>()
.select("station_name",
"IFNULL( AVG( photovoltaic_power ), 0 ) AS photovoltaic_power",
"IFNULL( AVG( daily_electricity_consumption ), 0 ) AS daily_electricity_consumption")
.lambda()
List<ThirdDailyAccumulationUpdateEnt> list = mapper.selectList(queryWrapper.lambda()
.gt(ThirdDailyAccumulationUpdateEnt::getPhotovoltaicPower, 0)
.eq(CharSequenceUtil.isNotBlank(input.getSystemSource()), ThirdDailyAccumulationUpdateEnt::getSystemSource, input.getSystemSource())
.apply("DATE( create_date ) = {0}", input.getCreateDate())
.groupBy(ThirdDailyAccumulationUpdateEnt::getStationName)
);
return XListResult.success(XCopyUtils.copyNewList(list, GetThirdDailyAccumulationUpdateOutput.class));
......@@ -105,12 +113,19 @@ public class ThirdPowerCloudServiceImpl implements IThirdPowerCloudService {
@Override
public XListResult<GetWellheadDailyProductionSituationOutput> queryWellProductionList(XContext context, GetWellheadDailyProductionSituationInput input) {
WellheadDailyProductionSituationMapper mapper = context.getBean(WellheadDailyProductionSituationMapper.class);
List<WellheadDailyProductionSituationEnt> list = mapper.selectList(new QueryWrapper<WellheadDailyProductionSituationEnt>()
.select("well_number",
"IFNULL( production_time, 0 ) AS production_time",
"IFNULL( daily_electricity_consumption, 0 ) AS daily_electricity_consumption",
"IFNULL( daily_liquid_production, 0 ) AS daily_liquid_production")
.lambda()
QueryWrapper<WellheadDailyProductionSituationEnt> queryWrapper = new QueryWrapper<>();
if (CharSequenceUtil.equals(context.getProperty("x.db.databaseId"), BusinessConstant.ORACLE)) {
queryWrapper.select("WELL_NUMBER",
"NVL( PRODUCTION_TIME, 0 ) AS PRODUCTION_TIME",
"NVL( DAILY_ELECTRICITY_CONSUMPTION, 0 ) AS DAILY_ELECTRICITY_CONSUMPTION",
"NVL( DAILY_LIQUID_PRODUCTION, 0 ) AS DAILY_LIQUID_PRODUCTION");
} else {
queryWrapper.select("WELL_NUMBER",
"IFNULL( PRODUCTION_TIME, 0 ) AS PRODUCTION_TIME",
"IFNULL( DAILY_ELECTRICITY_CONSUMPTION, 0 ) AS DAILY_ELECTRICITY_CONSUMPTION",
"IFNULL( DAILY_LIQUID_PRODUCTION, 0 ) AS DAILY_LIQUID_PRODUCTION");
}
List<WellheadDailyProductionSituationEnt> list = mapper.selectList(queryWrapper.lambda()
.eq(WellheadDailyProductionSituationEnt::getDataDate, input.getCreateDate())
.eq(CharSequenceUtil.isNotBlank(input.getSystemSource()), WellheadDailyProductionSituationEnt::getSystemSource, input.getSystemSource())
);
......
......@@ -153,7 +153,7 @@
</select>
<select id="selectAvgPhotovoltaicPower" parameterType="pps.core.prediction.entity.ThirdActivePowerView"
resultMap="BaseResultMap">
resultMap="BaseResultMap" databaseId="MySQL">
SELECT G.STATION_NAME,
G.CREATE_TIME AS CREATE_DATE,
AVG(G.PHOTOVOLTAIC_POWER) AS PHOTOVOLTAIC_POWER
......@@ -193,6 +193,46 @@
G.CREATE_TIME
</select>
<select id="selectAvgPhotovoltaicPower" parameterType="pps.core.prediction.entity.ThirdActivePowerView"
resultMap="BaseResultMap" databaseId="Oracle">
SELECT G.STATION_NAME,
'1970-01-01 ' || G.CREATE_TIME AS CREATE_DATE,
AVG(G.PHOTOVOLTAIC_POWER) AS PHOTOVOLTAIC_POWER
FROM (SELECT A.STATION_NAME,
A.PHOTOVOLTAIC_POWER,
TO_CHAR(
CASE
WHEN EXTRACT( MINUTE FROM CAST( A.CREATE_TIME AS TIMESTAMP ) ) IN ( 10, 20, 40, 50 ) THEN
A.CREATE_TIME - NUMTODSINTERVAL( 5, 'MINUTE' ) ELSE A.CREATE_TIME
END,
'HH24:MI:'
) || '00' AS CREATE_TIME
FROM (SELECT
Z.STATION_NAME,
Z.PHOTOVOLTAIC_POWER,
CASE
WHEN Z.MO &lt; 5 THEN
Z.CREATE_DATE + NUMTODSINTERVAL( Z.MO, 'MINUTE' ) ELSE Z.CREATE_DATE
END AS CREATE_TIME
FROM (SELECT STATION_NAME,
CREATE_DATE,
PHOTOVOLTAIC_POWER,
5 - MOD( EXTRACT( MINUTE FROM CAST( CREATE_DATE AS TIMESTAMP ) ), 5 ) AS MO
FROM
THIRD_ACTIVE_POWER
WHERE
TO_CHAR( CREATE_DATE, 'YYYY-MM-DD' ) = TO_CHAR( #{createDate}, 'YYYY-MM-DD' )
<if test="systemSource != null">
AND SYSTEM_SOURCE = #{systemSource}
</if>
AND PHOTOVOLTAIC_POWER
&gt; 0) Z) A) G
GROUP BY G.STATION_NAME,
G.CREATE_TIME
ORDER BY G.STATION_NAME,
G.CREATE_TIME
</select>
<select id="selectAvgPower15" parameterType="pps.core.prediction.entity.ThirdActivePowerView"
resultMap="BaseResultMap" databaseId="MySQL">
SELECT IFNULL(AVG(Z.PHOTOVOLTAIC_POWER), 0) AS PHOTOVOLTAIC_POWER,
......
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