Commit 7e690066 authored by ZWT's avatar ZWT

得到的

parent 01bce0a4
...@@ -301,4 +301,20 @@ public class BaseUtils { ...@@ -301,4 +301,20 @@ public class BaseUtils {
public static String randomUUIDString() { public static String randomUUIDString() {
return UUID.randomUUID(true).toString(true); return UUID.randomUUID(true).toString(true);
} }
/**
* 字符串转日期时间
*
* @param dateStr 日期str
* @return {@link DateTime }
*/
public static DateTime strToDateTime(String dateStr) {
//转换开始时间和结束时间(开始时间不能为24:00)
if (CharSequenceUtil.equals(dateStr, BusinessConstant.END_OF_DAY_TIME)) {
return BusinessConstant.DATE_FLAG;
} else {
return DateUtil.parse(dateStr + BusinessConstant.INITIALIZATION_SECOND, BusinessConstant.TIME_FORMAT);
}
}
} }
\ No newline at end of file
package pps.core.base.service; package pps.core.base.service;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.text.CharSequenceUtil; import cn.hutool.core.text.CharSequenceUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import pps.cloud.base.service.IBasePriceStrategyCloudService; import pps.cloud.base.service.IBasePriceStrategyCloudService;
...@@ -12,6 +10,7 @@ import pps.core.base.entity.BasePriceStrategyDetailEnt; ...@@ -12,6 +10,7 @@ import pps.core.base.entity.BasePriceStrategyDetailEnt;
import pps.core.base.mapper.BasePriceStrategyDetailMapper; import pps.core.base.mapper.BasePriceStrategyDetailMapper;
import pps.core.common.constant.BusinessConstant; import pps.core.common.constant.BusinessConstant;
import pps.core.common.entity.BaseModel; import pps.core.common.entity.BaseModel;
import pps.core.common.utils.BaseUtils;
import xstartup.annotation.XService; import xstartup.annotation.XService;
import xstartup.base.XContext; import xstartup.base.XContext;
import xstartup.data.XListResult; import xstartup.data.XListResult;
...@@ -64,27 +63,12 @@ public class BasePriceStrategyCloudServiceImpl implements IBasePriceStrategyClou ...@@ -64,27 +63,12 @@ public class BasePriceStrategyCloudServiceImpl implements IBasePriceStrategyClou
output.setPeriodTypeKey(ent.getPeriodTypeKey()); output.setPeriodTypeKey(ent.getPeriodTypeKey());
output.setStartTime(ent.getStartTime()); output.setStartTime(ent.getStartTime());
output.setEndTime(ent.getEndTime()); output.setEndTime(ent.getEndTime());
output.setOpenTime(this.strToDateTime(ent.getStartTime())); output.setOpenTime(BaseUtils.strToDateTime(ent.getStartTime()));
output.setCloseTime(this.strToDateTime(ent.getEndTime())); output.setCloseTime(BaseUtils.strToDateTime(ent.getEndTime()));
output.setElectrovalence(ent.getElectrovalence()); output.setElectrovalence(ent.getElectrovalence());
outputs.add(output); outputs.add(output);
} }
} }
return XListResult.success(outputs); return XListResult.success(outputs);
} }
/**
* 字符串转日期时间
*
* @param dateStr 日期str
* @return {@link DateTime }
*/
private DateTime strToDateTime(String dateStr) {
//转换开始时间和结束时间(开始时间不能为24:00)
if (CharSequenceUtil.equals(dateStr, BusinessConstant.END_OF_DAY_TIME)) {
return BusinessConstant.DATE_FLAG;
} else {
return DateUtil.parse(dateStr + BusinessConstant.INITIALIZATION_SECOND, BusinessConstant.TIME_FORMAT);
}
}
} }
\ No newline at end of file
...@@ -2634,12 +2634,7 @@ public class SpaceOptimizeBaseService { ...@@ -2634,12 +2634,7 @@ public class SpaceOptimizeBaseService {
private Map<String, List<SpaceInstitutionDurationEnt>> getDurationMap(XContext context, String detailId) { private Map<String, List<SpaceInstitutionDurationEnt>> getDurationMap(XContext context, String detailId) {
SpaceInstitutionDurationMapper durationMapper = context.getBean(SpaceInstitutionDurationMapper.class); SpaceInstitutionDurationMapper durationMapper = context.getBean(SpaceInstitutionDurationMapper.class);
//通过间开ID和井口ID查所有井口时段配置 //通过间开ID和井口ID查所有井口时段配置
List<SpaceInstitutionDurationEnt> durationList = durationMapper.selectList(new QueryWrapper<SpaceInstitutionDurationEnt>() List<SpaceInstitutionDurationEnt> durationList = durationMapper.selectList(new LambdaQueryWrapper<SpaceInstitutionDurationEnt>()
.select("*",
"STR_TO_DATE( CONCAT( open_well_time, ':00' ), '%H:%i:%s' ) AS openTime",
"STR_TO_DATE( CONCAT( close_well_time, ':00' ), '%H:%i:%s' ) AS closeTime"
)
.lambda()
.eq(BaseModel::getIsDeleted, BusinessConstant.ONE) .eq(BaseModel::getIsDeleted, BusinessConstant.ONE)
.eq(SpaceInstitutionDurationEnt::getInstitutionId, detailId) .eq(SpaceInstitutionDurationEnt::getInstitutionId, detailId)
.orderByAsc(SpaceInstitutionDurationEnt::getOpenWellTime) .orderByAsc(SpaceInstitutionDurationEnt::getOpenWellTime)
...@@ -2647,6 +2642,11 @@ public class SpaceOptimizeBaseService { ...@@ -2647,6 +2642,11 @@ public class SpaceOptimizeBaseService {
if (CollUtil.isEmpty(durationList)) { if (CollUtil.isEmpty(durationList)) {
//没有设置时间段,无法优化 //没有设置时间段,无法优化
return Collections.emptyMap(); return Collections.emptyMap();
} else {
for (SpaceInstitutionDurationEnt ent : durationList) {
ent.setOpenTime(BaseUtils.strToDateTime(ent.getOpenWellTime()));
ent.setCloseTime(BaseUtils.strToDateTime(ent.getCloseWellTime()));
}
} }
return durationList.stream() return durationList.stream()
.collect( .collect(
......
...@@ -256,7 +256,7 @@ ...@@ -256,7 +256,7 @@
</resultMap> </resultMap>
<select id="selectWellheadsByInstitutionIds" parameterType="pps.core.space.entity.SpaceInstitutionWellheadView" <select id="selectWellheadsByInstitutionIds" parameterType="pps.core.space.entity.SpaceInstitutionWellheadView"
resultMap="ExtResultMap"> resultMap="ExtResultMap" databaseId="MySQL">
SELECT SELECT
W.INSTITUTION_ID, W.INSTITUTION_ID,
W.WELLHEAD_ID, W.WELLHEAD_ID,
...@@ -287,6 +287,38 @@ ...@@ -287,6 +287,38 @@
</if> </if>
</select> </select>
<select id="selectWellheadsByInstitutionIds" parameterType="pps.core.space.entity.SpaceInstitutionWellheadView"
resultMap="ExtResultMap" databaseId="Oracle">
SELECT
W.INSTITUTION_ID,
W.WELLHEAD_ID,
W.WELL_NUMBER,
W.RUN_TYPE_KEY,
NVL( W.INTERVAL_TYPE_KEY, '999' ) AS INTERVAL_TYPE_KEY,
W.INTERVAL_DESCRIBE,
NVL( W.START_SEQ, 0 ) AS START_SEQ,
W.OPEN_WELL_DAY,
W.CLOSE_WELL_DAY,
W.RUN_DURATION,
W.MAX_OPEN,
W.MIN_OPEN,
W.MAX_CLOSE,
W.MIN_CLOSE,
B.SERVICE_RATING
FROM
SPACE_INSTITUTION_WELLHEAD W
JOIN BASE_WELLHEAD B ON W.WELLHEAD_ID = B.ID
WHERE
W.IS_DELETED = 1
AND B.IS_DELETED = 1
<if test="list != null and list.size()>0">
AND W.INSTITUTION_ID IN
<foreach collection="list" open="(" close=")" separator="," item="item">
#{item}
</foreach>
</if>
</select>
<select id="selectInstitutionWellheadList" parameterType="pps.core.space.entity.SpaceInstitutionWellheadView" <select id="selectInstitutionWellheadList" parameterType="pps.core.space.entity.SpaceInstitutionWellheadView"
resultMap="BaseResultMap" databaseId="MySQL"> resultMap="BaseResultMap" databaseId="MySQL">
SELECT W.WELLHEAD_ID, SELECT W.WELLHEAD_ID,
......
...@@ -108,7 +108,7 @@ ...@@ -108,7 +108,7 @@
ID=#{id} ID=#{id}
</select> </select>
<insert id="batchInsert" parameterType="list"> <insert id="batchInsert" parameterType="list" databaseId="MySQL">
INSERT INTO SPACE_OPTIMIZE_EFFECT ( ID , INSERT INTO SPACE_OPTIMIZE_EFFECT ( ID ,
IS_DELETED, IS_DELETED,
CREATE_BY_ID, CREATE_BY_ID,
...@@ -199,4 +199,97 @@ ...@@ -199,4 +199,97 @@
) )
</foreach> </foreach>
</insert> </insert>
<insert id="batchInsert" parameterType="list" databaseId="Oracle">
INSERT ALL
<foreach collection="list" item="item">
INTO SPACE_OPTIMIZE_EFFECT ( ID ,
IS_DELETED,
CREATE_BY_ID,
CREATE_BY_NAME,
CREATE_TIME,
MODIFY_BY_ID,
MODIFY_BY_NAME,
MODIFY_TIME,
PERIOD_ID,
WELLHEAD_ID,
WELL_NUMBER,
OPTIMIZE_DATE,
OPTIMAL_RESULT,
TOTAL_DURATION,
GREEN_POWER_DURATION,
LOW_POWER_DURATION,
MID_POWER_DURATION,
HIGH_POWER_DURATION,
PEAK_POWER_DURATION,
GREEN_POWER_RATE,
GREEN_POWER_COST,
LOW_POWER_COST,
MID_POWER_COST,
HIGH_POWER_COST,
PEAK_POWER_COST,
POWER_COST,
OPTIMAL_TOTAL_DURATION,
OPTIMAL_GREEN_POWER_DURATION,
OPTIMAL_LOW_POWER_DURATION,
OPTIMAL_MID_POWER_DURATION,
OPTIMAL_HIGH_POWER_DURATION,
OPTIMAL_PEAK_POWER_DURATION,
OPTIMAL_GREEN_POWER_RATE,
OPTIMAL_GREEN_POWER_COST,
OPTIMAL_LOW_POWER_COST,
OPTIMAL_MID_POWER_COST,
OPTIMAL_HIGH_POWER_COST,
OPTIMAL_PEAK_POWER_COST,
OPTIMAL_POWER_COST,
GREEN_POWER_UPGRADE,
COST_DOWN,
INSTITUTION_RESULT)
VALUES (
#{item.id},
#{item.isDeleted},
#{item.createById},
#{item.createByName},
#{item.createTime},
#{item.modifyById},
#{item.modifyByName},
#{item.modifyTime},
#{item.periodId},
#{item.wellheadId},
#{item.wellNumber},
#{item.optimizeDate},
#{item.optimalResult},
#{item.totalDuration},
#{item.greenPowerDuration},
#{item.lowPowerDuration},
#{item.midPowerDuration},
#{item.highPowerDuration},
#{item.peakPowerDuration},
#{item.greenPowerRate},
#{item.greenPowerCost},
#{item.lowPowerCost},
#{item.midPowerCost},
#{item.highPowerCost},
#{item.peakPowerCost},
#{item.powerCost},
#{item.optimalTotalDuration},
#{item.optimalGreenPowerDuration},
#{item.optimalLowPowerDuration},
#{item.optimalMidPowerDuration},
#{item.optimalHighPowerDuration},
#{item.optimalPeakPowerDuration},
#{item.optimalGreenPowerRate},
#{item.optimalGreenPowerCost},
#{item.optimalLowPowerCost},
#{item.optimalMidPowerCost},
#{item.optimalHighPowerCost},
#{item.optimalPeakPowerCost},
#{item.optimalPowerCost},
#{item.greenPowerUpgrade},
#{item.costDown},
#{item.institutionResult}
)
</foreach>
SELECT * FROM DUAL
</insert>
</mapper> </mapper>
\ No newline at end of file
...@@ -301,7 +301,7 @@ ...@@ -301,7 +301,7 @@
<!--*********************************************************************************--> <!--*********************************************************************************-->
<select id="selectMidPowerHalfHourList" resultMap="BaseResultMap"> <select id="selectMidPowerHalfHourList" resultMap="BaseResultMap" databaseId="MySQL">
SELECT SELECT
IFNULL( AVG( A.PREDICT_POWER ), 0 ) AS POWER, IFNULL( AVG( A.PREDICT_POWER ), 0 ) AS POWER,
A.CREATE_TIME AS CREATE_TIME A.CREATE_TIME AS CREATE_TIME
...@@ -345,7 +345,51 @@ ...@@ -345,7 +345,51 @@
A.CREATE_TIME A.CREATE_TIME
</select> </select>
<select id="selectShortPowerHalfHourList" resultMap="BaseResultMap"> <select id="selectMidPowerHalfHourList" resultMap="BaseResultMap" databaseId="Oracle">
SELECT
NVL( AVG( A.PREDICT_POWER ), 0 ) AS POWER,
A.CREATE_TIME AS CREATE_TIME
FROM
(
SELECT
PREDICT_POWER,
'1970-01-01 ' || TO_CHAR (
<choose>
<when test="formatType == 0">
TO_DATE( DATA_DATE , 'YYYY-MM-DD HH24:MI:SS')
</when>
<otherwise>
CASE
MINUTE ( DATA_DATE )
WHEN 15 THEN
DATE_SUB( DATA_DATE, INTERVAL 15 MINUTE )
WHEN 45 THEN
DATE_SUB( DATA_DATE, INTERVAL 15 MINUTE ) ELSE DATA_DATE
END
</otherwise>
</choose>
, 'HH24:MI:SS' ) AS CREATE_TIME
FROM
PLANT_PREDICTED_POWER_MID_TERM
WHERE
PLANT_ID IN
<foreach collection="plantIds" item="item" open="(" separator="," close=")">
#{item}
</foreach>
<if test="startTime != null and endTime != null">
AND
DATA_DATE BETWEEN
#{startTime} AND
#{endTime}
</if>
) A
GROUP BY
A.CREATE_TIME
ORDER BY
A.CREATE_TIME
</select>
<select id="selectShortPowerHalfHourList" resultMap="BaseResultMap" databaseId="MySQL">
SELECT SELECT
IFNULL( AVG( A.PREDICT_POWER ), 0 ) AS POWER, IFNULL( AVG( A.PREDICT_POWER ), 0 ) AS POWER,
A.CREATE_TIME AS CREATE_TIME A.CREATE_TIME AS CREATE_TIME
...@@ -388,4 +432,48 @@ ...@@ -388,4 +432,48 @@
ORDER BY ORDER BY
A.CREATE_TIME A.CREATE_TIME
</select> </select>
<select id="selectShortPowerHalfHourList" resultMap="BaseResultMap" databaseId="Oracle">
SELECT
NVL( AVG( A.PREDICT_POWER ), 0 ) AS POWER,
A.CREATE_TIME AS CREATE_TIME
FROM
(
SELECT
PREDICT_POWER,
'1970-01-01 ' || TO_CHAR (
<choose>
<when test="formatType == 0">
TO_DATE( DATA_DATE , 'YYYY-MM-DD HH24:MI:SS')
</when>
<otherwise>
CASE
MINUTE ( DATA_DATE )
WHEN 15 THEN
DATE_SUB( DATA_DATE, INTERVAL 15 MINUTE )
WHEN 45 THEN
DATE_SUB( DATA_DATE, INTERVAL 15 MINUTE ) ELSE DATA_DATE
END
</otherwise>
</choose>
, 'HH24:MI:SS' ) AS CREATE_TIME
FROM
PLANT_PREDICTED_POWER_SHORT_TERM
WHERE
PLANT_ID IN
<foreach collection="plantIds" item="item" open="(" separator="," close=")">
#{item}
</foreach>
<if test="startTime != null and endTime != null">
AND
DATA_DATE BETWEEN
#{startTime} AND
#{endTime}
</if>
) A
GROUP BY
A.CREATE_TIME
ORDER BY
A.CREATE_TIME
</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