Commit 1224455a authored by ZWT's avatar ZWT

feat(能源管理系统): 间开优化定时任务

1.开发间开优化长期间开优化定时任务,完成并网流程绿电消纳优先策略;

BREAKING CHANGE: 无

Closes 无

[skip ci]
parent 9465f72e
package pps.core.common.utils; package pps.core.common.utils;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUnit;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.lang.UUID; import cn.hutool.core.lang.UUID;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
...@@ -106,4 +108,19 @@ public class BaseUtils { ...@@ -106,4 +108,19 @@ public class BaseUtils {
.append(DateUtil.format(DateUtil.endOfMonth(date), "yyyy-MM-dd")); .append(DateUtil.format(DateUtil.endOfMonth(date), "yyyy-MM-dd"));
return stringBuilder.toString(); return stringBuilder.toString();
} }
/**
* 获取时差分钟
*
* @param optimizeTime 优化后时间
* @param originalTime 原始时间
* @return int
*/
public static int getTimeDifferenceMinute(DateTime optimizeTime, DateTime originalTime) {
int between = (int) optimizeTime.between(originalTime, DateUnit.MINUTE);
if (optimizeTime.compareTo(originalTime) < 0) {
between = ~between + 1;
}
return between;
}
} }
\ No newline at end of file
...@@ -218,10 +218,7 @@ public class SpaceOptimizeLongCloudServiceImpl implements ISpaceOptimizeLongClou ...@@ -218,10 +218,7 @@ public class SpaceOptimizeLongCloudServiceImpl implements ISpaceOptimizeLongClou
//计算时间偏移 //计算时间偏移
DateTime startTimeOptimize = DateUtil.parse(startTimeString, BusinessConstant.TIME_FORMAT); DateTime startTimeOptimize = DateUtil.parse(startTimeString, BusinessConstant.TIME_FORMAT);
//取时间间隔(分钟) //取时间间隔(分钟)
between = (int) startTimeOptimize.between(startTime, DateUnit.MINUTE); between = BaseUtils.getTimeDifferenceMinute(startTimeOptimize, startTime);
if (startTimeOptimize.compareTo(startTime) < 0) {
between = ~between + 1;
}
} }
//其它井口的第一次启动时间 //其它井口的第一次启动时间
else { else {
...@@ -256,10 +253,7 @@ public class SpaceOptimizeLongCloudServiceImpl implements ISpaceOptimizeLongClou ...@@ -256,10 +253,7 @@ public class SpaceOptimizeLongCloudServiceImpl implements ISpaceOptimizeLongClou
openWellTime, endTimeString openWellTime, endTimeString
); );
//取时间间隔(分钟) //取时间间隔(分钟)
between = (int) endTimeOptimize.between(endTime, DateUnit.MINUTE); between = BaseUtils.getTimeDifferenceMinute(endTimeOptimize, endTime);
if (endTimeOptimize.compareTo(endTime) < 0) {
between = ~between + 1;
}
} else { } else {
//无法优化 //无法优化
} }
...@@ -353,24 +347,21 @@ public class SpaceOptimizeLongCloudServiceImpl implements ISpaceOptimizeLongClou ...@@ -353,24 +347,21 @@ public class SpaceOptimizeLongCloudServiceImpl implements ISpaceOptimizeLongClou
//第一口井的启动时间 //第一口井的启动时间
if (isFirstWellhead) { if (isFirstWellhead) {
//计算优化后的时间差优化后的第一口井开井时间-优化前第一次开井时间 //计算优化后的时间差优化后的第一口井开井时间-优化前第一次开井时间
//取时间间隔(分钟) int startDuration = (int) startTime.between(endTime, DateUnit.MINUTE);
between = (int) firstEndTime.between(endTime, DateUnit.MINUTE); //第一次关井时间按照启动时长顺延
if (firstEndTime.compareTo(endTime) < 0) { DateTime endTimeOptimize = startTime.offset(DateField.MINUTE, startDuration);
between = ~between + 1;
}
this.createOptimizeLongDuration(longDurationList, duration, longPeriodId, recordId, wellheadId, null, this.createOptimizeLongDuration(longDurationList, duration, longPeriodId, recordId, wellheadId, null,
strategyDetailOutput.getStartTime(), strategyDetailOutput.getEndTime() strategyDetailOutput.getStartTime(), endTimeOptimize.toString(BusinessConstant.MINUTES_FORMAT)
); );
//取时间间隔(分钟)
between = BaseUtils.getTimeDifferenceMinute(firstEndTime, endTime);
}//其它井口的第一次启动时间 }//其它井口的第一次启动时间
else { else {
//其它井启动时间:第一口井启动时间+启动间隔 //其它井启动时间:第一口井启动时间+启动间隔
DateTime startTimeOffset = firstStartTime.offset(DateField.MINUTE, startInterval); DateTime startTimeOffset = firstStartTime.offset(DateField.MINUTE, startInterval);
DateTime endTimeOffset = firstEndTime.offset(DateField.MINUTE, startInterval); DateTime endTimeOffset = firstEndTime.offset(DateField.MINUTE, startInterval);
//取时间间隔(分钟) //取时间间隔(分钟)
between = (int) firstEndTime.between(endTime, DateUnit.MINUTE); between = BaseUtils.getTimeDifferenceMinute(firstEndTime, endTime);
if (firstEndTime.compareTo(endTime) < 0) {
between = ~between + 1;
}
this.createOptimizeLongDuration(longDurationList, duration, longPeriodId, recordId, wellheadId, null, this.createOptimizeLongDuration(longDurationList, duration, longPeriodId, recordId, wellheadId, null,
startTimeOffset.toString(BusinessConstant.MINUTES_FORMAT), endTimeOffset.toString(BusinessConstant.MINUTES_FORMAT) startTimeOffset.toString(BusinessConstant.MINUTES_FORMAT), endTimeOffset.toString(BusinessConstant.MINUTES_FORMAT)
); );
...@@ -452,6 +443,7 @@ public class SpaceOptimizeLongCloudServiceImpl implements ISpaceOptimizeLongClou ...@@ -452,6 +443,7 @@ public class SpaceOptimizeLongCloudServiceImpl implements ISpaceOptimizeLongClou
/*-----------------------------------private-----------------------------------*/ /*-----------------------------------private-----------------------------------*/
/** /**
* 创建长期优化信息 * 创建长期优化信息
* *
......
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