Commit a879cb49 authored by ZWT's avatar ZWT

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

1.开发间开优化短期间开优化定时任务;
2.开发间开优化短期间开优化定时任务,增加大间开井口时段信息初始化逻辑;
3.开发间开优化短期间开优化定时任务,增加间开井井口时段信息初始化逻辑;
4.开发间开优化短期间开优化定时任务,增加短期间开记录批量新增功能;

BREAKING CHANGE: 无

Closes 无

[skip ci]
parent b45c938d
...@@ -144,13 +144,16 @@ public class SpaceOptimizeBaseService { ...@@ -144,13 +144,16 @@ public class SpaceOptimizeBaseService {
BigDecimal powerMax = this.getPowerMax(avgPowerList); BigDecimal powerMax = this.getPowerMax(avgPowerList);
//取当前制度下井口的总功率 //取当前制度下井口的总功率
BigDecimal wellheadTotalPower = this.getWellheadTotalPower(spaceWellheadList, detail.getId()); BigDecimal wellheadTotalPower = this.getWellheadTotalPower(spaceWellheadList, detail.getId());
Map<String, List<SpaceInstitutionDurationEnt>> durationMap = this.getDurationMap(context, detail.getId());
//根据类型过滤井口:大间开,连抽井不优化 //根据类型过滤井口:大间开,连抽井不优化
Map<Boolean, List<SpaceInstitutionWellheadView>> wellheadViewMap = this.getWellheadViewList(spaceWellheadList, detail.getId()); Map<Boolean, List<SpaceInstitutionWellheadView>> wellheadViewMap = this.getWellheadViewList(spaceWellheadList, detail.getId());
//保存不需要优化的井口
this.setUnOptimizeWellheadConfig(durationDTOList, unOptimizeDurationList, wellheadDTOList,
wellheadViewMap.get(false), durationMap, periodId);
List<SpaceInstitutionWellheadView> wellheadViewList = wellheadViewMap.get(true); List<SpaceInstitutionWellheadView> wellheadViewList = wellheadViewMap.get(true);
if (CollUtil.isEmpty(wellheadViewList)) { if (CollUtil.isEmpty(wellheadViewList)) {
return; return;
} }
Map<String, List<SpaceInstitutionDurationEnt>> durationMap = this.getDurationMap(context, detail.getId());
if (CollUtil.isEmpty(durationMap)) { if (CollUtil.isEmpty(durationMap)) {
//没有设置时间段,无法优化 //没有设置时间段,无法优化
return; return;
...@@ -181,9 +184,6 @@ public class SpaceOptimizeBaseService { ...@@ -181,9 +184,6 @@ public class SpaceOptimizeBaseService {
lowWellheadList, durationMap, detail, monthNum, periodId); lowWellheadList, durationMap, detail, monthNum, periodId);
} }
} }
//保存不需要优化的井口
this.setUnOptimizeWellheadConfig(wellheadDTOList, unOptimizeDurationList, durationDTOList,
wellheadViewMap.get(false), durationMap, periodId);
} }
/** /**
...@@ -211,12 +211,15 @@ public class SpaceOptimizeBaseService { ...@@ -211,12 +211,15 @@ public class SpaceOptimizeBaseService {
} }
//根据类型过滤井口:大间开,连抽井不优化 //根据类型过滤井口:大间开,连抽井不优化
Map<Boolean, List<SpaceInstitutionWellheadView>> wellheadViewMap = this.getWellheadViewList(spaceWellheadList, detail.getId()); Map<Boolean, List<SpaceInstitutionWellheadView>> wellheadViewMap = this.getWellheadViewList(spaceWellheadList, detail.getId());
//获取井口间开时间段
Map<String, List<SpaceInstitutionDurationEnt>> durationMap = this.getDurationMap(context, detail.getId());
//保存不需要优化的井口
this.setUnOptimizeWellheadConfig(durationDTOList, unOptimizeDurationList, wellheadDTOList,
wellheadViewMap.get(false), durationMap, periodId);
List<SpaceInstitutionWellheadView> wellheadViewList = wellheadViewMap.get(true); List<SpaceInstitutionWellheadView> wellheadViewList = wellheadViewMap.get(true);
if (CollUtil.isEmpty(wellheadViewList)) { if (CollUtil.isEmpty(wellheadViewList)) {
return; return;
} }
//获取井口间开时间段
Map<String, List<SpaceInstitutionDurationEnt>> durationMap = this.getDurationMap(context, detail.getId());
if (CollUtil.isEmpty(durationMap)) { if (CollUtil.isEmpty(durationMap)) {
//没有设置时间段,无法优化 //没有设置时间段,无法优化
return; return;
...@@ -420,9 +423,6 @@ public class SpaceOptimizeBaseService { ...@@ -420,9 +423,6 @@ public class SpaceOptimizeBaseService {
} }
} }
} }
//保存不需要优化的井口
this.setUnOptimizeWellheadConfig(wellheadDTOList, unOptimizeDurationList, durationDTOList,
wellheadViewMap.get(false), durationMap, periodId);
} }
/** /**
...@@ -770,6 +770,51 @@ public class SpaceOptimizeBaseService { ...@@ -770,6 +770,51 @@ public class SpaceOptimizeBaseService {
} }
} }
/**
* 保存不需要优化的井口
*
* @param durationDTOList 持续时间dtolist
* @param unOptimizeDurationList 取消优化工期列表
* @param wellheadDTOList 井口dtolist
* @param unOptimizeWellheadList 取消优化井口列表
* @param durationMap 持续时间图
* @param periodId 期间id
*/
private void setUnOptimizeWellheadConfig(List<SpaceOptimizeDurationDTO> durationDTOList, List<SpaceOptimizeDurationDTO> unOptimizeDurationList,
List<SpaceOptimizeWellheadDTO> wellheadDTOList, List<SpaceInstitutionWellheadView> unOptimizeWellheadList,
Map<String, List<SpaceInstitutionDurationEnt>> durationMap, String periodId) {
if (CollUtil.isNotEmpty(unOptimizeWellheadList)) {
for (SpaceInstitutionWellheadView wellhead : unOptimizeWellheadList) {
String wellheadId = wellhead.getWellheadId();
String recordId = this.createOptimizeWellhead(wellheadDTOList, periodId, wellheadId, wellhead.getWellNumber());
switch (wellhead.getIntervalTypeKey()) {
//小间开(不优化)
case "0":
if (!durationMap.containsKey(wellheadId)) {
continue;
}
//初始化未优化间开
List<SpaceInstitutionDurationEnt> durationList = durationMap.get(wellheadId);
for (SpaceInstitutionDurationEnt durationEnt : durationList) {
this.createUnOptimizeDuration(unOptimizeDurationList, durationEnt, periodId, recordId, wellheadId);
this.createOptimizeDuration(durationDTOList, periodId, recordId, wellheadId, null,
durationEnt.getOpenWellTime(), durationEnt.getCloseWellTime()
);
}
break;
//大间开
case "1":
//创建间开记录
this.createDuration(unOptimizeDurationList, recordId, periodId, wellheadId, BusinessConstant.ONE, BusinessConstant.START_OF_DAY_TIME, BusinessConstant.END_OF_DAY_TIME, null);
this.createDuration(durationDTOList, recordId, periodId, wellheadId, BusinessConstant.ZERO, BusinessConstant.START_OF_DAY_TIME, BusinessConstant.END_OF_DAY_TIME, null);
break;
default:
//未配置不处理
}
}
}
}
/** /**
* 获得最大功率 * 获得最大功率
* *
...@@ -837,7 +882,7 @@ public class SpaceOptimizeBaseService { ...@@ -837,7 +882,7 @@ public class SpaceOptimizeBaseService {
); );
if (CollUtil.isEmpty(durationList)) { if (CollUtil.isEmpty(durationList)) {
//没有设置时间段,无法优化 //没有设置时间段,无法优化
return null; return new HashMap<>(0);
} }
return durationList.stream() return durationList.stream()
.collect( .collect(
...@@ -963,42 +1008,6 @@ public class SpaceOptimizeBaseService { ...@@ -963,42 +1008,6 @@ public class SpaceOptimizeBaseService {
); );
} }
/**
* 设置不需要优化的井口配置
*
* @param wellheadDTOList 井口dtolist
* @param unOptimizeDurationList 取消优化工期列表
* @param durationDTOList 持续时间dtolist
* @param unOptimizeWellheadList 取消优化井口列表
* @param durationMap 持续时间图
* @param periodId 期间id
*/
private void setUnOptimizeWellheadConfig(List<SpaceOptimizeWellheadDTO> wellheadDTOList, List<SpaceOptimizeDurationDTO> unOptimizeDurationList,
List<SpaceOptimizeDurationDTO> durationDTOList, List<SpaceInstitutionWellheadView> unOptimizeWellheadList,
Map<String, List<SpaceInstitutionDurationEnt>> durationMap, String periodId) {
//保存不需要优化的井口
if (CollUtil.isEmpty(unOptimizeWellheadList)) {
return;
}
for (SpaceInstitutionWellheadView unOptimizeWellhead : unOptimizeWellheadList) {
String wellheadId = unOptimizeWellhead.getWellheadId();
String recordId = this.createOptimizeWellhead(wellheadDTOList, periodId, wellheadId, unOptimizeWellhead.getWellNumber());
List<SpaceInstitutionDurationEnt> durationConfigList = durationMap.get(wellheadId);
if (CollUtil.isEmpty(durationConfigList)) {
//没有设置时间段,无法优化
continue;
}
for (SpaceInstitutionDurationEnt durationEnt : durationConfigList) {
//保存原始记录
this.createUnOptimizeDuration(unOptimizeDurationList, durationEnt, periodId, recordId, wellheadId);
//存未优化结果
this.createOptimizeDuration(durationDTOList, periodId, recordId, wellheadId, null,
BusinessConstant.START_OF_DAY_TIME, BusinessConstant.END_OF_DAY_TIME
);
}
}
}
/** /**
* 离网型间开记录 * 离网型间开记录
* *
......
...@@ -103,12 +103,12 @@ public class SpaceOptimizeShortCloudServiceImpl extends SpaceOptimizeBaseService ...@@ -103,12 +103,12 @@ public class SpaceOptimizeShortCloudServiceImpl extends SpaceOptimizeBaseService
for (SpaceInstitutionWellheadEnt wellhead : unOptimizeWellheadList) { for (SpaceInstitutionWellheadEnt wellhead : unOptimizeWellheadList) {
String wellheadId = wellhead.getWellheadId(); String wellheadId = wellhead.getWellheadId();
String recordId = super.createOptimizeWellhead(wellheadDTOList, periodId, wellheadId, wellhead.getWellNumber()); String recordId = super.createOptimizeWellhead(wellheadDTOList, periodId, wellheadId, wellhead.getWellNumber());
if (!durationListMap.containsKey(wellheadId)) {
continue;
}
switch (wellhead.getIntervalTypeKey()) { switch (wellhead.getIntervalTypeKey()) {
//小间开(不优化) //小间开(不优化)
case "0": case "0":
if (!durationListMap.containsKey(wellheadId)) {
continue;
}
//初始化未优化间开 //初始化未优化间开
List<SpaceInstitutionDurationEnt> durationList = durationListMap.get(wellheadId); List<SpaceInstitutionDurationEnt> durationList = durationListMap.get(wellheadId);
for (SpaceInstitutionDurationEnt durationEnt : durationList) { for (SpaceInstitutionDurationEnt durationEnt : durationList) {
......
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