Commit aa91ab63 authored by ZWT's avatar ZWT

feat(零碳): 长庆

1.长庆演示首页功能开发,新增查询井场/场站列表接口,添加接口文档并完成接口冒烟测试;
2.长庆演示首页功能开发,新增总览信息统计接口,添加接口文档并完成接口冒烟测试;
3.长庆演示首页功能开发,新增用能分析统计接口,添加接口文档并完成接口冒烟测试;
4.长庆演示首页功能开发,新增累计用电统计接口,添加接口文档并完成接口冒烟测试;
5.长庆演示首页功能开发,新增光伏实时监控统计接口,添加接口文档并完成接口冒烟测试;
6.长庆演示首页功能开发,新增先导实验井间开制度统计接口,添加接口文档并完成接口冒烟测试;
7.长庆演示首页功能开发,新增零碳井场收益分析统计接口,添加接口文档并完成接口冒烟测试;
8.长庆演示首页功能开发,新增零碳井场实时监控接口,添加接口文档并完成接口冒烟测试;

BREAKING CHANGE: 无

Closes 无

[skip ci]
parent 5c732cb0
...@@ -49,6 +49,10 @@ public class SpaceOptimizeDurationDTO extends BaseModel implements Serializable ...@@ -49,6 +49,10 @@ public class SpaceOptimizeDurationDTO extends BaseModel implements Serializable
@TableField @TableField
private Integer firstStart; private Integer firstStart;
@XText("优化日期")
@TableField
private Date optimizeDate;
@XText("开井时间") @XText("开井时间")
@TableField(exist = false) @TableField(exist = false)
private Date openTime; private Date openTime;
......
...@@ -10,6 +10,7 @@ import pps.core.common.entity.BaseModel; ...@@ -10,6 +10,7 @@ import pps.core.common.entity.BaseModel;
import xstartup.annotation.XText; import xstartup.annotation.XText;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date;
/** /**
* 中期间开优化井口制度记录 * 中期间开优化井口制度记录
...@@ -55,4 +56,8 @@ public class SpaceOptimizeLongDurationEnt extends BaseModel implements Serializa ...@@ -55,4 +56,8 @@ public class SpaceOptimizeLongDurationEnt extends BaseModel implements Serializa
@XText("是否第一次启动(0_是;1_否)") @XText("是否第一次启动(0_是;1_否)")
@TableField @TableField
private Integer firstStart; private Integer firstStart;
@XText("优化日期")
@TableField
private Date optimizeDate;
} }
...@@ -6,6 +6,7 @@ import pps.core.common.entity.BaseModel; ...@@ -6,6 +6,7 @@ import pps.core.common.entity.BaseModel;
import xstartup.annotation.XText; import xstartup.annotation.XText;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date;
/** /**
* 中期间开优化井口制度记录 * 中期间开优化井口制度记录
...@@ -47,4 +48,8 @@ public class SpaceOptimizeLongDurationView extends BaseModel implements Serializ ...@@ -47,4 +48,8 @@ public class SpaceOptimizeLongDurationView extends BaseModel implements Serializ
@XText("是否第一次启动(0_是;1_否)") @XText("是否第一次启动(0_是;1_否)")
@TableField @TableField
private Integer firstStart; private Integer firstStart;
@XText("优化日期")
@TableField
private Date optimizeDate;
} }
...@@ -7,6 +7,7 @@ import pps.core.common.entity.BaseModel; ...@@ -7,6 +7,7 @@ import pps.core.common.entity.BaseModel;
import xstartup.annotation.XText; import xstartup.annotation.XText;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date;
/** /**
* 短期间开开优化井口制度记录 * 短期间开开优化井口制度记录
...@@ -49,4 +50,8 @@ public class SpaceOptimizeMidDurationEnt extends BaseModel implements Serializab ...@@ -49,4 +50,8 @@ public class SpaceOptimizeMidDurationEnt extends BaseModel implements Serializab
@XText("是否第一次启动(0_是;1_否)") @XText("是否第一次启动(0_是;1_否)")
@TableField @TableField
private Integer firstStart; private Integer firstStart;
@XText("优化日期")
@TableField
private Date optimizeDate;
} }
...@@ -6,6 +6,7 @@ import pps.core.common.entity.BaseModel; ...@@ -6,6 +6,7 @@ import pps.core.common.entity.BaseModel;
import xstartup.annotation.XText; import xstartup.annotation.XText;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date;
/** /**
* 短期间开开优化井口制度记录 * 短期间开开优化井口制度记录
...@@ -47,4 +48,8 @@ public class SpaceOptimizeMidDurationView extends BaseModel implements Serializa ...@@ -47,4 +48,8 @@ public class SpaceOptimizeMidDurationView extends BaseModel implements Serializa
@XText("是否第一次启动(0_是;1_否)") @XText("是否第一次启动(0_是;1_否)")
@TableField @TableField
private Integer firstStart; private Integer firstStart;
@XText("优化日期")
@TableField
private Date optimizeDate;
} }
...@@ -7,6 +7,7 @@ import pps.core.common.entity.BaseModel; ...@@ -7,6 +7,7 @@ import pps.core.common.entity.BaseModel;
import xstartup.annotation.XText; import xstartup.annotation.XText;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date;
/** /**
* 极短期间开优化井口制度记录 * 极短期间开优化井口制度记录
...@@ -49,4 +50,8 @@ public class SpaceOptimizeShortDurationEnt extends BaseModel implements Serializ ...@@ -49,4 +50,8 @@ public class SpaceOptimizeShortDurationEnt extends BaseModel implements Serializ
@XText("是否第一次启动(0_是;1_否)") @XText("是否第一次启动(0_是;1_否)")
@TableField @TableField
private Integer firstStart; private Integer firstStart;
@XText("优化日期")
@TableField
private Date optimizeDate;
} }
...@@ -55,6 +55,10 @@ public class SpaceOptimizeShortDurationView extends BaseModel implements Seriali ...@@ -55,6 +55,10 @@ public class SpaceOptimizeShortDurationView extends BaseModel implements Seriali
@TableField @TableField
private Integer firstStart; private Integer firstStart;
@XText("优化日期")
@TableField
private Date optimizeDate;
/*------------------------------------------------------*/ /*------------------------------------------------------*/
@XText("组织ID") @XText("组织ID")
......
...@@ -7,6 +7,7 @@ import pps.core.common.entity.BaseModel; ...@@ -7,6 +7,7 @@ import pps.core.common.entity.BaseModel;
import xstartup.annotation.XText; import xstartup.annotation.XText;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date;
/** /**
* 长期间开开优化井口制度记录 * 长期间开开优化井口制度记录
...@@ -49,4 +50,8 @@ public class SpaceOptimizeUltraDurationEnt extends BaseModel implements Serializ ...@@ -49,4 +50,8 @@ public class SpaceOptimizeUltraDurationEnt extends BaseModel implements Serializ
@XText("是否第一次启动(0_是;1_否)") @XText("是否第一次启动(0_是;1_否)")
@TableField @TableField
private Integer firstStart; private Integer firstStart;
@XText("优化日期")
@TableField
private Date optimizeDate;
} }
...@@ -6,6 +6,7 @@ import pps.core.common.entity.BaseModel; ...@@ -6,6 +6,7 @@ import pps.core.common.entity.BaseModel;
import xstartup.annotation.XText; import xstartup.annotation.XText;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date;
/** /**
* 长期间开开优化井口制度记录 * 长期间开开优化井口制度记录
...@@ -47,4 +48,8 @@ public class SpaceOptimizeUltraDurationView extends BaseModel implements Seriali ...@@ -47,4 +48,8 @@ public class SpaceOptimizeUltraDurationView extends BaseModel implements Seriali
@XText("是否第一次启动(0_是;1_否)") @XText("是否第一次启动(0_是;1_否)")
@TableField @TableField
private Integer firstStart; private Integer firstStart;
@XText("优化日期")
@TableField
private Date optimizeDate;
} }
...@@ -85,33 +85,36 @@ public class SpaceOptimizeBaseService { ...@@ -85,33 +85,36 @@ public class SpaceOptimizeBaseService {
} }
//创建记录 //创建记录
String periodId = this.createOptimizePeriod(periodDTOList, detail.getId(), detail.getLineId(), BaseUtils.getExecutionCycleForCalibration(date, DateUtil.offsetDay(optimizeDeadline, -1)), optimizeDeadline); String periodId = this.createOptimizePeriod(periodDTOList, detail.getId(), detail.getLineId(), BaseUtils.getExecutionCycleForCalibration(date, DateUtil.offsetDay(optimizeDeadline, -1)), optimizeDeadline);
DynamicQueryPlantPredictedPowerInput powerInput = DynamicQueryPlantPredictedPowerInput.builder() for (int i = offset; i <= offset; i++) {
.plantIds(relation.getPlantIdsByLineIdMap().get(detail.getLineId())) DateTime optimizeDate = DateUtil.offsetDay(date, i);
.startTime(date.toString(BusinessConstant.DATE_FORMAT_DAY)) DynamicQueryPlantPredictedPowerInput powerInput = DynamicQueryPlantPredictedPowerInput.builder()
.endTime(optimizeDeadline.toString(BusinessConstant.DATE_FORMAT_DAY)) .plantIds(relation.getPlantIdsByLineIdMap().get(detail.getLineId()))
.dateType(dateType) .startTime(date.toString(BusinessConstant.DATE_FORMAT_DAY))
.build(); .endTime(optimizeDate.toString(BusinessConstant.DATE_FORMAT_DAY))
switch (detail.getGridTypeKey()) { .dateType(dateType)
//并网型优化 .build();
case "1": switch (detail.getGridTypeKey()) {
this.gridConnectedOptimization(context, wellheadDTOList, durationDTOList, unOptimizeDurationList, //并网型优化
relation.getWellheadsByInstitutionIdIdMap().get(detail.getId()), detail, monthNum, periodId, case "1":
powerInput this.gridConnectedOptimization(context, wellheadDTOList, durationDTOList, unOptimizeDurationList,
); relation.getWellheadsByInstitutionIdIdMap().get(detail.getId()), detail, monthNum, periodId,
break; powerInput, optimizeDate
//离网型优化 );
case "0": break;
this.offGridOptimization(context, wellheadDTOList, durationDTOList, unOptimizeDurationList, //离网型优化
relation.getWellheadsByInstitutionIdIdMap().get(detail.getId()), relation.getStorageAvgMap(), detail, periodId, case "0":
DynamicQueryStoragePredictedPowerInput.builder() this.offGridOptimization(context, wellheadDTOList, durationDTOList, unOptimizeDurationList,
.storageIds(relation.getStorageIdsByLineIdMap().get(detail.getLineId())) relation.getWellheadsByInstitutionIdIdMap().get(detail.getId()), relation.getStorageAvgMap(), detail, periodId,
.startTime(DateUtil.offsetDay(date, -offset).toString(BusinessConstant.DATE_FORMAT_DAY)) DynamicQueryStoragePredictedPowerInput.builder()
.endTime(DateUtil.offsetDay(optimizeDeadline, -offset).toString(BusinessConstant.DATE_FORMAT_DAY)) .storageIds(relation.getStorageIdsByLineIdMap().get(detail.getLineId()))
.build(), powerInput .startTime(DateUtil.offsetDay(date, -i).toString(BusinessConstant.DATE_FORMAT_DAY))
); .endTime(DateUtil.offsetDay(optimizeDeadline, -i).toString(BusinessConstant.DATE_FORMAT_DAY))
break; .build(), powerInput, optimizeDate
default: );
//电网类型不存在 break;
default:
//电网类型不存在
}
} }
} }
} }
...@@ -190,19 +193,20 @@ public class SpaceOptimizeBaseService { ...@@ -190,19 +193,20 @@ public class SpaceOptimizeBaseService {
* @param monthNum 月份 * @param monthNum 月份
* @param periodId 期间id * @param periodId 期间id
* @param plantPowerInput 电厂功率输入 * @param plantPowerInput 电厂功率输入
* @param optimizeDate 优化日期
*/ */
public void gridConnectedOptimization(XContext context, List<SpaceOptimizeWellheadDTO> wellheadDTOList, public void gridConnectedOptimization(XContext context, List<SpaceOptimizeWellheadDTO> wellheadDTOList,
List<SpaceOptimizeDurationDTO> durationDTOList, List<SpaceOptimizeDurationDTO> unOptimizeDurationList, List<SpaceOptimizeDurationDTO> durationDTOList, List<SpaceOptimizeDurationDTO> unOptimizeDurationList,
List<SpaceInstitutionWellheadView> spaceWellheadList, List<SpaceInstitutionWellheadView> spaceWellheadList,
SpaceInstitutionDetailEnt detail, int monthNum, String periodId, SpaceInstitutionDetailEnt detail, int monthNum, String periodId,
DynamicQueryPlantPredictedPowerInput plantPowerInput) { DynamicQueryPlantPredictedPowerInput plantPowerInput, DateTime optimizeDate) {
//获取当前制度对应的光伏预测数据列表 //获取当前制度对应的光伏预测数据列表
Map<String, List<SpaceInstitutionDurationEnt>> durationMap = this.getDurationMap(context, detail.getId()); Map<String, List<SpaceInstitutionDurationEnt>> durationMap = this.getDurationMap(context, detail.getId());
List<DynamicQueryPlantPredictedPowerOutput> avgPowerList = this.getAveragePowerGenerationListByPlantIds(context, plantPowerInput); List<DynamicQueryPlantPredictedPowerOutput> avgPowerList = this.getAveragePowerGenerationListByPlantIds(context, plantPowerInput);
if (CollUtil.isEmpty(avgPowerList)) { if (CollUtil.isEmpty(avgPowerList)) {
//没有预测数据都不优化 //没有预测数据都不优化
this.setUnOptimizeWellheadConfig(durationDTOList, unOptimizeDurationList, wellheadDTOList, this.setUnOptimizeWellheadConfig(durationDTOList, unOptimizeDurationList, wellheadDTOList,
spaceWellheadList, durationMap, periodId); spaceWellheadList, durationMap, periodId, optimizeDate);
return; return;
} }
//取光伏出力峰值 //取光伏出力峰值
...@@ -213,7 +217,7 @@ public class SpaceOptimizeBaseService { ...@@ -213,7 +217,7 @@ public class SpaceOptimizeBaseService {
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, this.setUnOptimizeWellheadConfig(durationDTOList, unOptimizeDurationList, wellheadDTOList,
wellheadViewMap.get(false), durationMap, periodId); wellheadViewMap.get(false), durationMap, periodId, optimizeDate);
List<SpaceInstitutionWellheadView> wellheadViewList = wellheadViewMap.get(true); List<SpaceInstitutionWellheadView> wellheadViewList = wellheadViewMap.get(true);
if (CollUtil.isEmpty(wellheadViewList)) { if (CollUtil.isEmpty(wellheadViewList)) {
return; return;
...@@ -226,7 +230,7 @@ public class SpaceOptimizeBaseService { ...@@ -226,7 +230,7 @@ public class SpaceOptimizeBaseService {
if (powerMax.compareTo(wellheadTotalPower) >= BusinessConstant.ZERO) { if (powerMax.compareTo(wellheadTotalPower) >= BusinessConstant.ZERO) {
//---------------------------------绿电消纳策略--------------------------------- //---------------------------------绿电消纳策略---------------------------------
this.greenElectricityConsumptionStrategy(wellheadDTOList, unOptimizeDurationList, durationDTOList, this.greenElectricityConsumptionStrategy(wellheadDTOList, unOptimizeDurationList, durationDTOList,
wellheadViewList, avgPowerList, durationMap, detail, periodId); wellheadViewList, avgPowerList, durationMap, detail, periodId, optimizeDate);
} else { } else {
//遍历井口,按发电功率大于等于光伏出力峰值条件分组 //遍历井口,按发电功率大于等于光伏出力峰值条件分组
Map<Boolean, List<SpaceInstitutionWellheadView>> collect = this.getWellheadViewMapByPower(wellheadViewList, powerMax); Map<Boolean, List<SpaceInstitutionWellheadView>> collect = this.getWellheadViewMapByPower(wellheadViewList, powerMax);
...@@ -237,17 +241,17 @@ public class SpaceOptimizeBaseService { ...@@ -237,17 +241,17 @@ public class SpaceOptimizeBaseService {
if (size == lowWellheadListSize) { if (size == lowWellheadListSize) {
//---------------------------------消峰平谷策略--------------------------------- //---------------------------------消峰平谷策略---------------------------------
this.peakEliminationAndValleyLevelingStrategy(context, wellheadDTOList, unOptimizeDurationList, durationDTOList, wellheadViewList, this.peakEliminationAndValleyLevelingStrategy(context, wellheadDTOList, unOptimizeDurationList, durationDTOList, wellheadViewList,
durationMap, detail, monthNum, periodId); durationMap, detail, monthNum, periodId, optimizeDate);
} }
//光伏出力峰值>=线路哪部分井口运行功率:满足的部分井口采用绿电消纳优先,不满足的井采用消峰平谷 //光伏出力峰值>=线路哪部分井口运行功率:满足的部分井口采用绿电消纳优先,不满足的井采用消峰平谷
else { else {
List<SpaceInstitutionWellheadView> highWellheadList = collect.get(true); List<SpaceInstitutionWellheadView> highWellheadList = collect.get(true);
if (CollUtil.isNotEmpty(highWellheadList)) { if (CollUtil.isNotEmpty(highWellheadList)) {
this.greenElectricityConsumptionStrategy(wellheadDTOList, unOptimizeDurationList, durationDTOList, this.greenElectricityConsumptionStrategy(wellheadDTOList, unOptimizeDurationList, durationDTOList,
highWellheadList, avgPowerList, durationMap, detail, periodId); highWellheadList, avgPowerList, durationMap, detail, periodId, optimizeDate);
} }
this.peakEliminationAndValleyLevelingStrategy(context, wellheadDTOList, unOptimizeDurationList, durationDTOList, this.peakEliminationAndValleyLevelingStrategy(context, wellheadDTOList, unOptimizeDurationList, durationDTOList,
lowWellheadList, durationMap, detail, monthNum, periodId); lowWellheadList, durationMap, detail, monthNum, periodId, optimizeDate);
} }
} }
} }
...@@ -265,11 +269,12 @@ public class SpaceOptimizeBaseService { ...@@ -265,11 +269,12 @@ public class SpaceOptimizeBaseService {
* @param periodId 期间id * @param periodId 期间id
* @param input 输入 * @param input 输入
* @param plantPowerInput 电厂功率输入 * @param plantPowerInput 电厂功率输入
* @param optimizeDate 优化日期
*/ */
public void offGridOptimization(XContext context, List<SpaceOptimizeWellheadDTO> wellheadDTOList, List<SpaceOptimizeDurationDTO> durationDTOList, public void offGridOptimization(XContext context, List<SpaceOptimizeWellheadDTO> wellheadDTOList, List<SpaceOptimizeDurationDTO> durationDTOList,
List<SpaceOptimizeDurationDTO> unOptimizeDurationList, List<SpaceInstitutionWellheadView> spaceWellheadList, List<SpaceOptimizeDurationDTO> unOptimizeDurationList, List<SpaceInstitutionWellheadView> spaceWellheadList,
Map<String, List<DynamicQueryBasePowerLineStorageViewOutput>> storageAvgMap, SpaceInstitutionDetailEnt detail, String periodId, Map<String, List<DynamicQueryBasePowerLineStorageViewOutput>> storageAvgMap, SpaceInstitutionDetailEnt detail, String periodId,
DynamicQueryStoragePredictedPowerInput input, DynamicQueryPlantPredictedPowerInput plantPowerInput) { DynamicQueryStoragePredictedPowerInput input, DynamicQueryPlantPredictedPowerInput plantPowerInput, DateTime optimizeDate) {
//获取井口间开时间段 //获取井口间开时间段
Map<String, List<SpaceInstitutionDurationEnt>> durationMap = this.getDurationMap(context, detail.getId()); Map<String, List<SpaceInstitutionDurationEnt>> durationMap = this.getDurationMap(context, detail.getId());
//获取当前制度对应的光伏预测数据列表 //获取当前制度对应的光伏预测数据列表
...@@ -277,14 +282,14 @@ public class SpaceOptimizeBaseService { ...@@ -277,14 +282,14 @@ public class SpaceOptimizeBaseService {
if (CollUtil.isEmpty(avgPowerList)) { if (CollUtil.isEmpty(avgPowerList)) {
//没有预测数据都不优化 //没有预测数据都不优化
this.setUnOptimizeWellheadConfig(durationDTOList, unOptimizeDurationList, wellheadDTOList, this.setUnOptimizeWellheadConfig(durationDTOList, unOptimizeDurationList, wellheadDTOList,
spaceWellheadList, durationMap, periodId); spaceWellheadList, durationMap, periodId, optimizeDate);
return; return;
} }
//根据类型过滤井口:大间开,连抽井不优化 //根据类型过滤井口:大间开,连抽井不优化
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, this.setUnOptimizeWellheadConfig(durationDTOList, unOptimizeDurationList, wellheadDTOList,
wellheadViewMap.get(false), durationMap, periodId); wellheadViewMap.get(false), durationMap, periodId, optimizeDate);
List<SpaceInstitutionWellheadView> wellheadViewList = wellheadViewMap.get(true); List<SpaceInstitutionWellheadView> wellheadViewList = wellheadViewMap.get(true);
if (CollUtil.isEmpty(wellheadViewList)) { if (CollUtil.isEmpty(wellheadViewList)) {
return; return;
...@@ -310,7 +315,7 @@ public class SpaceOptimizeBaseService { ...@@ -310,7 +315,7 @@ public class SpaceOptimizeBaseService {
for (int w = 0, wellheadSize = wellheadViewList.size(); w < wellheadSize; w++) { for (int w = 0, wellheadSize = wellheadViewList.size(); w < wellheadSize; w++) {
SpaceInstitutionWellheadView wellhead = wellheadViewList.get(w); SpaceInstitutionWellheadView wellhead = wellheadViewList.get(w);
String wellheadId = wellhead.getWellheadId(); String wellheadId = wellhead.getWellheadId();
String recordId = this.createOptimizeWellhead(wellheadDTOList, periodId, wellheadId, wellhead.getWellNumber(), wellhead.getStartSeq()); String recordId = this.createOptimizeWellhead(wellheadDTOList, periodId, wellheadId, wellhead.getWellNumber(), wellhead.getStartSeq(), optimizeDate);
//取当前井口最大发电量 //取当前井口最大发电量
BigDecimal serviceRating = wellhead.getServiceRating(); BigDecimal serviceRating = wellhead.getServiceRating();
List<SpaceInstitutionDurationEnt> durationConfigList = durationMap.get(wellheadId); List<SpaceInstitutionDurationEnt> durationConfigList = durationMap.get(wellheadId);
...@@ -320,7 +325,7 @@ public class SpaceOptimizeBaseService { ...@@ -320,7 +325,7 @@ public class SpaceOptimizeBaseService {
} }
//保存原始记录 //保存原始记录
for (SpaceInstitutionDurationEnt durationEnt : durationConfigList) { for (SpaceInstitutionDurationEnt durationEnt : durationConfigList) {
this.createUnOptimizeDuration(unOptimizeDurationList, durationEnt, periodId, recordId, wellheadId); this.createUnOptimizeDuration(unOptimizeDurationList, durationEnt, periodId, recordId, wellheadId, optimizeDate);
} }
totalOperatingPower = totalOperatingPower.add(serviceRating); totalOperatingPower = totalOperatingPower.add(serviceRating);
if (w == 0) { if (w == 0) {
...@@ -484,21 +489,21 @@ public class SpaceOptimizeBaseService { ...@@ -484,21 +489,21 @@ public class SpaceOptimizeBaseService {
if (openTime.compareTo(BusinessConstant.DATE_FLAG) < 0 && closeTime.compareTo(BusinessConstant.DATE_FLAG) > 0) { if (openTime.compareTo(BusinessConstant.DATE_FLAG) < 0 && closeTime.compareTo(BusinessConstant.DATE_FLAG) > 0) {
this.createOptimizeDuration(durationDTOList, periodId, durationDTO.getRecordId(), durationDTO.getWellheadId(), BusinessConstant.PHOTOVOLTAIC, this.createOptimizeDuration(durationDTOList, periodId, durationDTO.getRecordId(), durationDTO.getWellheadId(), BusinessConstant.PHOTOVOLTAIC,
openTime.toString(BusinessConstant.MINUTES_FORMAT), BusinessConstant.END_OF_DAY_TIME, openTime.toString(BusinessConstant.MINUTES_FORMAT), BusinessConstant.END_OF_DAY_TIME,
durationDTO.getFirstStart() durationDTO.getFirstStart(), optimizeDate
); );
this.createOptimizeDuration(durationDTOList, periodId, durationDTO.getRecordId(), durationDTO.getWellheadId(), BusinessConstant.PHOTOVOLTAIC, this.createOptimizeDuration(durationDTOList, periodId, durationDTO.getRecordId(), durationDTO.getWellheadId(), BusinessConstant.PHOTOVOLTAIC,
BusinessConstant.START_OF_DAY_TIME, closeTime.toString(BusinessConstant.MINUTES_FORMAT), BusinessConstant.START_OF_DAY_TIME, closeTime.toString(BusinessConstant.MINUTES_FORMAT),
durationDTO.getFirstStart() durationDTO.getFirstStart(), optimizeDate
); );
} else if (closeTime.compareTo(BusinessConstant.DATE_FLAG) == 0) { } else if (closeTime.compareTo(BusinessConstant.DATE_FLAG) == 0) {
this.createOptimizeDuration(durationDTOList, periodId, durationDTO.getRecordId(), durationDTO.getWellheadId(), BusinessConstant.PHOTOVOLTAIC, this.createOptimizeDuration(durationDTOList, periodId, durationDTO.getRecordId(), durationDTO.getWellheadId(), BusinessConstant.PHOTOVOLTAIC,
openTime.toString(BusinessConstant.MINUTES_FORMAT), BusinessConstant.END_OF_DAY_TIME, openTime.toString(BusinessConstant.MINUTES_FORMAT), BusinessConstant.END_OF_DAY_TIME,
durationDTO.getFirstStart() durationDTO.getFirstStart(), optimizeDate
); );
} else { } else {
this.createOptimizeDuration(durationDTOList, periodId, durationDTO.getRecordId(), durationDTO.getWellheadId(), BusinessConstant.PHOTOVOLTAIC, this.createOptimizeDuration(durationDTOList, periodId, durationDTO.getRecordId(), durationDTO.getWellheadId(), BusinessConstant.PHOTOVOLTAIC,
openTime.toString(BusinessConstant.MINUTES_FORMAT), closeTime.toString(BusinessConstant.MINUTES_FORMAT), openTime.toString(BusinessConstant.MINUTES_FORMAT), closeTime.toString(BusinessConstant.MINUTES_FORMAT),
durationDTO.getFirstStart() durationDTO.getFirstStart(), optimizeDate
); );
} }
//-----------------------------------原始逻辑 //-----------------------------------原始逻辑
...@@ -647,16 +652,18 @@ public class SpaceOptimizeBaseService { ...@@ -647,16 +652,18 @@ public class SpaceOptimizeBaseService {
* @param wellheadId 井口id * @param wellheadId 井口id
* @param wellNumber 井号 * @param wellNumber 井号
* @param startSeq 开始seq * @param startSeq 开始seq
* @param optimizeDate 优化日期
* @return {@link String} * @return {@link String}
*/ */
public String createOptimizeWellhead(List<SpaceOptimizeWellheadDTO> wellheadDTOList, String periodId, public String createOptimizeWellhead(List<SpaceOptimizeWellheadDTO> wellheadDTOList, String periodId,
String wellheadId, String wellNumber, Integer startSeq) { String wellheadId, String wellNumber, Integer startSeq, DateTime optimizeDate) {
SpaceOptimizeWellheadDTO wellheadDTO = new SpaceOptimizeWellheadDTO(); SpaceOptimizeWellheadDTO wellheadDTO = new SpaceOptimizeWellheadDTO();
BaseUtils.setBaseModelDefaultForJob(wellheadDTO); BaseUtils.setBaseModelDefaultForJob(wellheadDTO);
wellheadDTO.setPeriodId(periodId); wellheadDTO.setPeriodId(periodId);
wellheadDTO.setWellheadId(wellheadId); wellheadDTO.setWellheadId(wellheadId);
wellheadDTO.setWellNumber(wellNumber); wellheadDTO.setWellNumber(wellNumber);
wellheadDTO.setStartSeq(startSeq); wellheadDTO.setStartSeq(startSeq);
wellheadDTO.setOptimizeDate(optimizeDate);
wellheadDTOList.add(wellheadDTO); wellheadDTOList.add(wellheadDTO);
return wellheadDTO.getId(); return wellheadDTO.getId();
} }
...@@ -669,13 +676,14 @@ public class SpaceOptimizeBaseService { ...@@ -669,13 +676,14 @@ public class SpaceOptimizeBaseService {
* @param periodId 期间id * @param periodId 期间id
* @param recordId 记录id * @param recordId 记录id
* @param wellheadId 井口id * @param wellheadId 井口id
* @param optimizeDate 优化时间
*/ */
public void createUnOptimizeDuration(List<SpaceOptimizeDurationDTO> unOptimizeDurationList, public void createUnOptimizeDuration(List<SpaceOptimizeDurationDTO> unOptimizeDurationList,
SpaceInstitutionDurationEnt durationEnt, SpaceInstitutionDurationEnt durationEnt,
String periodId, String recordId, String wellheadId) { String periodId, String recordId, String wellheadId, DateTime optimizeDate) {
this.createDuration(unOptimizeDurationList, recordId, periodId, wellheadId, BusinessConstant.ONE, this.createDuration(unOptimizeDurationList, recordId, periodId, wellheadId, BusinessConstant.ONE,
durationEnt.getOpenWellTime(), durationEnt.getCloseWellTime(), null, durationEnt.getOpenWellTime(), durationEnt.getCloseWellTime(), null,
BusinessConstant.ONE); BusinessConstant.ONE, optimizeDate);
} }
/** /**
...@@ -689,12 +697,13 @@ public class SpaceOptimizeBaseService { ...@@ -689,12 +697,13 @@ public class SpaceOptimizeBaseService {
* @param openWellTime 开井时间 * @param openWellTime 开井时间
* @param endTimeString 结束时间字符串 * @param endTimeString 结束时间字符串
* @param firstStart 是否第一次启动 * @param firstStart 是否第一次启动
* @param optimizeDate 优化时间
*/ */
public void createOptimizeDuration(List<SpaceOptimizeDurationDTO> durationDTOList, String periodId, public void createOptimizeDuration(List<SpaceOptimizeDurationDTO> durationDTOList, String periodId,
String recordId, String wellheadId, String generationTypeKey, String recordId, String wellheadId, String generationTypeKey,
String openWellTime, String endTimeString, Integer firstStart) { String openWellTime, String endTimeString, Integer firstStart, DateTime optimizeDate) {
this.createDuration(durationDTOList, recordId, periodId, wellheadId, BusinessConstant.ZERO, this.createDuration(durationDTOList, recordId, periodId, wellheadId, BusinessConstant.ZERO,
openWellTime, endTimeString, generationTypeKey, firstStart); openWellTime, endTimeString, generationTypeKey, firstStart, optimizeDate);
} }
/** /**
...@@ -709,10 +718,11 @@ public class SpaceOptimizeBaseService { ...@@ -709,10 +718,11 @@ public class SpaceOptimizeBaseService {
* @param closeWellTime 关井时间 * @param closeWellTime 关井时间
* @param generationTypeKey 生成类型密钥 * @param generationTypeKey 生成类型密钥
* @param firstStart 是否第一次启动 * @param firstStart 是否第一次启动
* @param optimizeDate 优化时间
*/ */
public void createDuration(List<SpaceOptimizeDurationDTO> durationDTOList, String recordId, public void createDuration(List<SpaceOptimizeDurationDTO> durationDTOList, String recordId,
String periodId, String wellheadId, Integer isOptimize, String openWellTime, String periodId, String wellheadId, Integer isOptimize, String openWellTime,
String closeWellTime, String generationTypeKey, Integer firstStart) { String closeWellTime, String generationTypeKey, Integer firstStart, DateTime optimizeDate) {
SpaceOptimizeDurationDTO durationDTO = new SpaceOptimizeDurationDTO(); SpaceOptimizeDurationDTO durationDTO = new SpaceOptimizeDurationDTO();
BaseUtils.setBaseModelDefaultForJob(durationDTO); BaseUtils.setBaseModelDefaultForJob(durationDTO);
durationDTO.setRecordId(recordId); durationDTO.setRecordId(recordId);
...@@ -723,6 +733,7 @@ public class SpaceOptimizeBaseService { ...@@ -723,6 +733,7 @@ public class SpaceOptimizeBaseService {
durationDTO.setCloseWellTime(closeWellTime); durationDTO.setCloseWellTime(closeWellTime);
durationDTO.setGenerationTypeKey(generationTypeKey); durationDTO.setGenerationTypeKey(generationTypeKey);
durationDTO.setFirstStart(firstStart); durationDTO.setFirstStart(firstStart);
durationDTO.setOptimizeDate(optimizeDate);
durationDTOList.add(durationDTO); durationDTOList.add(durationDTO);
} }
...@@ -739,11 +750,12 @@ public class SpaceOptimizeBaseService { ...@@ -739,11 +750,12 @@ public class SpaceOptimizeBaseService {
* @param durationMap 持续时间图 * @param durationMap 持续时间图
* @param detail 细节 * @param detail 细节
* @param periodId 期间id * @param periodId 期间id
* @param optimizeDate 优化日期
*/ */
private void greenElectricityConsumptionStrategy(List<SpaceOptimizeWellheadDTO> wellheadDTOList, List<SpaceOptimizeDurationDTO> unOptimizeDurationList, private void greenElectricityConsumptionStrategy(List<SpaceOptimizeWellheadDTO> wellheadDTOList, List<SpaceOptimizeDurationDTO> unOptimizeDurationList,
List<SpaceOptimizeDurationDTO> durationDTOList, List<SpaceInstitutionWellheadView> wellheadViewList, List<SpaceOptimizeDurationDTO> durationDTOList, List<SpaceInstitutionWellheadView> wellheadViewList,
List<DynamicQueryPlantPredictedPowerOutput> avgPowerList, Map<String, List<SpaceInstitutionDurationEnt>> durationMap, List<DynamicQueryPlantPredictedPowerOutput> avgPowerList, Map<String, List<SpaceInstitutionDurationEnt>> durationMap,
SpaceInstitutionDetailEnt detail, String periodId) { SpaceInstitutionDetailEnt detail, String periodId, DateTime optimizeDate) {
//时间差 //时间差
int between = 0; int between = 0;
//启动间隔累积 //启动间隔累积
...@@ -757,7 +769,7 @@ public class SpaceOptimizeBaseService { ...@@ -757,7 +769,7 @@ public class SpaceOptimizeBaseService {
for (int w = 0, wellheadSize = wellheadViewList.size(); w < wellheadSize; w++) { for (int w = 0, wellheadSize = wellheadViewList.size(); w < wellheadSize; w++) {
SpaceInstitutionWellheadView wellhead = wellheadViewList.get(w); SpaceInstitutionWellheadView wellhead = wellheadViewList.get(w);
String wellheadId = wellhead.getWellheadId(); String wellheadId = wellhead.getWellheadId();
String recordId = this.createOptimizeWellhead(wellheadDTOList, periodId, wellheadId, wellhead.getWellNumber(), wellhead.getStartSeq()); String recordId = this.createOptimizeWellhead(wellheadDTOList, periodId, wellheadId, wellhead.getWellNumber(), wellhead.getStartSeq(), optimizeDate);
//取当前井口最大发电量 //取当前井口最大发电量
BigDecimal serviceRating = wellhead.getServiceRating(); BigDecimal serviceRating = wellhead.getServiceRating();
List<SpaceInstitutionDurationEnt> durationConfigList = durationMap.get(wellheadId); List<SpaceInstitutionDurationEnt> durationConfigList = durationMap.get(wellheadId);
...@@ -767,7 +779,7 @@ public class SpaceOptimizeBaseService { ...@@ -767,7 +779,7 @@ public class SpaceOptimizeBaseService {
} }
//保存原始记录 //保存原始记录
for (SpaceInstitutionDurationEnt durationEnt : durationConfigList) { for (SpaceInstitutionDurationEnt durationEnt : durationConfigList) {
this.createUnOptimizeDuration(unOptimizeDurationList, durationEnt, periodId, recordId, wellheadId); this.createUnOptimizeDuration(unOptimizeDurationList, durationEnt, periodId, recordId, wellheadId, optimizeDate);
} }
//累加 //累加
totalOperatingPower = totalOperatingPower.add(serviceRating); totalOperatingPower = totalOperatingPower.add(serviceRating);
...@@ -809,7 +821,7 @@ public class SpaceOptimizeBaseService { ...@@ -809,7 +821,7 @@ public class SpaceOptimizeBaseService {
DateTime endTimeOptimize = startTimeOptimize.offsetNew(DateField.MINUTE, startDuration); DateTime endTimeOptimize = startTimeOptimize.offsetNew(DateField.MINUTE, startDuration);
this.createOptimizeDuration(durationDTOList, periodId, recordId, wellheadId, null, this.createOptimizeDuration(durationDTOList, periodId, recordId, wellheadId, null,
startTimeOptimize.toString(BusinessConstant.MINUTES_FORMAT), endTimeOptimize.toString(BusinessConstant.MINUTES_FORMAT), startTimeOptimize.toString(BusinessConstant.MINUTES_FORMAT), endTimeOptimize.toString(BusinessConstant.MINUTES_FORMAT),
BusinessConstant.ZERO BusinessConstant.ZERO, optimizeDate
); );
firstStartTime = startTimeOptimize; firstStartTime = startTimeOptimize;
//计算时间偏移,取时间间隔(分钟) //计算时间偏移,取时间间隔(分钟)
...@@ -838,7 +850,7 @@ public class SpaceOptimizeBaseService { ...@@ -838,7 +850,7 @@ public class SpaceOptimizeBaseService {
DateTime endTimeOptimize = startTimeOptimize.offsetNew(DateField.MINUTE, openDuration); DateTime endTimeOptimize = startTimeOptimize.offsetNew(DateField.MINUTE, openDuration);
this.createOptimizeDuration(durationDTOList, periodId, recordId, wellheadId, null, this.createOptimizeDuration(durationDTOList, periodId, recordId, wellheadId, null,
startTimeOptimize.toString(BusinessConstant.MINUTES_FORMAT), BaseUtils.getEndTimeString(endTimeOptimize), startTimeOptimize.toString(BusinessConstant.MINUTES_FORMAT), BaseUtils.getEndTimeString(endTimeOptimize),
BusinessConstant.ZERO BusinessConstant.ZERO, optimizeDate
); );
//取时间间隔(分钟) //取时间间隔(分钟)
between = BaseUtils.getTimeDifferenceMinute(endTimeOptimize, endTime); between = BaseUtils.getTimeDifferenceMinute(endTimeOptimize, endTime);
...@@ -854,25 +866,25 @@ public class SpaceOptimizeBaseService { ...@@ -854,25 +866,25 @@ public class SpaceOptimizeBaseService {
this.createOptimizeDuration(durationDTOList, periodId, recordId, wellheadId, null, this.createOptimizeDuration(durationDTOList, periodId, recordId, wellheadId, null,
startOffset.toString(BusinessConstant.MINUTES_FORMAT), startOffset.toString(BusinessConstant.MINUTES_FORMAT),
BusinessConstant.END_OF_DAY_TIME, BusinessConstant.END_OF_DAY_TIME,
BusinessConstant.ONE BusinessConstant.ONE, optimizeDate
); );
this.createOptimizeDuration(durationDTOList, periodId, recordId, wellheadId, null, this.createOptimizeDuration(durationDTOList, periodId, recordId, wellheadId, null,
BusinessConstant.START_OF_DAY_TIME, BusinessConstant.START_OF_DAY_TIME,
endOffset.toString(BusinessConstant.MINUTES_FORMAT), endOffset.toString(BusinessConstant.MINUTES_FORMAT),
BusinessConstant.ONE BusinessConstant.ONE, optimizeDate
); );
} else if (endOffset.compareTo(BusinessConstant.DATE_FLAG) == 0) { } else if (endOffset.compareTo(BusinessConstant.DATE_FLAG) == 0) {
this.createOptimizeDuration(durationDTOList, periodId, recordId, wellheadId, null, this.createOptimizeDuration(durationDTOList, periodId, recordId, wellheadId, null,
startOffset.toString(BusinessConstant.MINUTES_FORMAT), startOffset.toString(BusinessConstant.MINUTES_FORMAT),
BusinessConstant.END_OF_DAY_TIME, BusinessConstant.END_OF_DAY_TIME,
BusinessConstant.ONE BusinessConstant.ONE, optimizeDate
); );
} else { } else {
//计算偏移 //计算偏移
this.createOptimizeDuration(durationDTOList, periodId, recordId, wellheadId, null, this.createOptimizeDuration(durationDTOList, periodId, recordId, wellheadId, null,
startOffset.toString(BusinessConstant.MINUTES_FORMAT), startOffset.toString(BusinessConstant.MINUTES_FORMAT),
endOffset.toString(BusinessConstant.MINUTES_FORMAT), endOffset.toString(BusinessConstant.MINUTES_FORMAT),
BusinessConstant.ONE BusinessConstant.ONE, optimizeDate
); );
} }
} }
...@@ -892,11 +904,12 @@ public class SpaceOptimizeBaseService { ...@@ -892,11 +904,12 @@ public class SpaceOptimizeBaseService {
* @param detail 细节 * @param detail 细节
* @param monthNum 月份 * @param monthNum 月份
* @param periodId id * @param periodId id
* @param optimizeDate 优化日期
*/ */
private void peakEliminationAndValleyLevelingStrategy(XContext context, List<SpaceOptimizeWellheadDTO> wellheadDTOList, List<SpaceOptimizeDurationDTO> unOptimizeDurationList, private void peakEliminationAndValleyLevelingStrategy(XContext context, List<SpaceOptimizeWellheadDTO> wellheadDTOList, List<SpaceOptimizeDurationDTO> unOptimizeDurationList,
List<SpaceOptimizeDurationDTO> durationDTOList, List<SpaceInstitutionWellheadView> wellheadViewList, List<SpaceOptimizeDurationDTO> durationDTOList, List<SpaceInstitutionWellheadView> wellheadViewList,
Map<String, List<SpaceInstitutionDurationEnt>> durationMap, SpaceInstitutionDetailEnt detail, Map<String, List<SpaceInstitutionDurationEnt>> durationMap, SpaceInstitutionDetailEnt detail,
int monthNum, String periodId) { int monthNum, String periodId, DateTime optimizeDate) {
//判断是否第一口井 //判断是否第一口井
boolean isFirstWellhead; boolean isFirstWellhead;
//时间差 //时间差
...@@ -910,7 +923,7 @@ public class SpaceOptimizeBaseService { ...@@ -910,7 +923,7 @@ public class SpaceOptimizeBaseService {
for (int w = 0, wellheadSize = wellheadViewList.size(); w < wellheadSize; w++) { for (int w = 0, wellheadSize = wellheadViewList.size(); w < wellheadSize; w++) {
SpaceInstitutionWellheadView wellhead = wellheadViewList.get(w); SpaceInstitutionWellheadView wellhead = wellheadViewList.get(w);
String wellheadId = wellhead.getWellheadId(); String wellheadId = wellhead.getWellheadId();
String recordId = this.createOptimizeWellhead(wellheadDTOList, periodId, wellheadId, wellhead.getWellNumber(), wellhead.getStartSeq()); String recordId = this.createOptimizeWellhead(wellheadDTOList, periodId, wellheadId, wellhead.getWellNumber(), wellhead.getStartSeq(), optimizeDate);
List<SpaceInstitutionDurationEnt> durationConfigList = durationMap.get(wellheadId); List<SpaceInstitutionDurationEnt> durationConfigList = durationMap.get(wellheadId);
if (CollUtil.isEmpty(durationConfigList)) { if (CollUtil.isEmpty(durationConfigList)) {
//没有设置时间段,无法优化 //没有设置时间段,无法优化
...@@ -918,7 +931,7 @@ public class SpaceOptimizeBaseService { ...@@ -918,7 +931,7 @@ public class SpaceOptimizeBaseService {
} }
//保存原始记录 //保存原始记录
for (SpaceInstitutionDurationEnt durationEnt : durationConfigList) { for (SpaceInstitutionDurationEnt durationEnt : durationConfigList) {
this.createUnOptimizeDuration(unOptimizeDurationList, durationEnt, periodId, recordId, wellheadId); this.createUnOptimizeDuration(unOptimizeDurationList, durationEnt, periodId, recordId, wellheadId, optimizeDate);
} }
if (w == 0) { if (w == 0) {
//第一个井口 //第一个井口
...@@ -979,7 +992,7 @@ public class SpaceOptimizeBaseService { ...@@ -979,7 +992,7 @@ public class SpaceOptimizeBaseService {
DateTime endTimeOptimize = firstStartTime.offsetNew(DateField.MINUTE, startDuration); DateTime endTimeOptimize = firstStartTime.offsetNew(DateField.MINUTE, startDuration);
this.createOptimizeDuration(durationDTOList, periodId, recordId, wellheadId, null, this.createOptimizeDuration(durationDTOList, periodId, recordId, wellheadId, null,
startTimeString, endTimeOptimize.toString(BusinessConstant.MINUTES_FORMAT), startTimeString, endTimeOptimize.toString(BusinessConstant.MINUTES_FORMAT),
BusinessConstant.ZERO BusinessConstant.ZERO, optimizeDate
); );
//取时间间隔(分钟) //取时间间隔(分钟)
between = BaseUtils.getTimeDifferenceMinute(endTimeOptimize, endTime); between = BaseUtils.getTimeDifferenceMinute(endTimeOptimize, endTime);
...@@ -992,7 +1005,7 @@ public class SpaceOptimizeBaseService { ...@@ -992,7 +1005,7 @@ public class SpaceOptimizeBaseService {
between = BaseUtils.getTimeDifferenceMinute(endTimeOffset, endTime); between = BaseUtils.getTimeDifferenceMinute(endTimeOffset, endTime);
this.createOptimizeDuration(durationDTOList, periodId, recordId, wellheadId, null, this.createOptimizeDuration(durationDTOList, periodId, recordId, wellheadId, null,
startTimeOffset.toString(BusinessConstant.MINUTES_FORMAT), endTimeOffset.toString(BusinessConstant.MINUTES_FORMAT), startTimeOffset.toString(BusinessConstant.MINUTES_FORMAT), endTimeOffset.toString(BusinessConstant.MINUTES_FORMAT),
BusinessConstant.ONE BusinessConstant.ONE, optimizeDate
); );
} }
} else { } else {
...@@ -1003,25 +1016,25 @@ public class SpaceOptimizeBaseService { ...@@ -1003,25 +1016,25 @@ public class SpaceOptimizeBaseService {
this.createOptimizeDuration(durationDTOList, periodId, recordId, wellheadId, null, this.createOptimizeDuration(durationDTOList, periodId, recordId, wellheadId, null,
startOffset.toString(BusinessConstant.MINUTES_FORMAT), startOffset.toString(BusinessConstant.MINUTES_FORMAT),
BusinessConstant.END_OF_DAY_TIME, BusinessConstant.END_OF_DAY_TIME,
BusinessConstant.ONE BusinessConstant.ONE, optimizeDate
); );
this.createOptimizeDuration(durationDTOList, periodId, recordId, wellheadId, null, this.createOptimizeDuration(durationDTOList, periodId, recordId, wellheadId, null,
BusinessConstant.START_OF_DAY_TIME, BusinessConstant.START_OF_DAY_TIME,
endOffset.toString(BusinessConstant.MINUTES_FORMAT), endOffset.toString(BusinessConstant.MINUTES_FORMAT),
BusinessConstant.ONE BusinessConstant.ONE, optimizeDate
); );
} else if (endOffset.compareTo(BusinessConstant.DATE_FLAG) == 0) { } else if (endOffset.compareTo(BusinessConstant.DATE_FLAG) == 0) {
this.createOptimizeDuration(durationDTOList, periodId, recordId, wellheadId, null, this.createOptimizeDuration(durationDTOList, periodId, recordId, wellheadId, null,
startOffset.toString(BusinessConstant.MINUTES_FORMAT), startOffset.toString(BusinessConstant.MINUTES_FORMAT),
BusinessConstant.END_OF_DAY_TIME, BusinessConstant.END_OF_DAY_TIME,
BusinessConstant.ONE BusinessConstant.ONE, optimizeDate
); );
} else { } else {
//计算偏移 //计算偏移
this.createOptimizeDuration(durationDTOList, periodId, recordId, wellheadId, null, this.createOptimizeDuration(durationDTOList, periodId, recordId, wellheadId, null,
startOffset.toString(BusinessConstant.MINUTES_FORMAT), startOffset.toString(BusinessConstant.MINUTES_FORMAT),
endOffset.toString(BusinessConstant.MINUTES_FORMAT), endOffset.toString(BusinessConstant.MINUTES_FORMAT),
BusinessConstant.ONE BusinessConstant.ONE, optimizeDate
); );
} }
} }
...@@ -1038,14 +1051,15 @@ public class SpaceOptimizeBaseService { ...@@ -1038,14 +1051,15 @@ public class SpaceOptimizeBaseService {
* @param unOptimizeWellheadList 取消优化井口列表 * @param unOptimizeWellheadList 取消优化井口列表
* @param durationMap 持续时间图 * @param durationMap 持续时间图
* @param periodId 期间id * @param periodId 期间id
* @param optimizeDate 优化日期
*/ */
private void setUnOptimizeWellheadConfig(List<SpaceOptimizeDurationDTO> durationDTOList, List<SpaceOptimizeDurationDTO> unOptimizeDurationList, private void setUnOptimizeWellheadConfig(List<SpaceOptimizeDurationDTO> durationDTOList, List<SpaceOptimizeDurationDTO> unOptimizeDurationList,
List<SpaceOptimizeWellheadDTO> wellheadDTOList, List<SpaceInstitutionWellheadView> unOptimizeWellheadList, List<SpaceOptimizeWellheadDTO> wellheadDTOList, List<SpaceInstitutionWellheadView> unOptimizeWellheadList,
Map<String, List<SpaceInstitutionDurationEnt>> durationMap, String periodId) { Map<String, List<SpaceInstitutionDurationEnt>> durationMap, String periodId, DateTime optimizeDate) {
if (CollUtil.isNotEmpty(unOptimizeWellheadList)) { if (CollUtil.isNotEmpty(unOptimizeWellheadList)) {
for (SpaceInstitutionWellheadView wellhead : unOptimizeWellheadList) { for (SpaceInstitutionWellheadView wellhead : unOptimizeWellheadList) {
String wellheadId = wellhead.getWellheadId(); String wellheadId = wellhead.getWellheadId();
String recordId = this.createOptimizeWellhead(wellheadDTOList, periodId, wellheadId, wellhead.getWellNumber(), wellhead.getStartSeq()); String recordId = this.createOptimizeWellhead(wellheadDTOList, periodId, wellheadId, wellhead.getWellNumber(), wellhead.getStartSeq(), optimizeDate);
switch (wellhead.getIntervalTypeKey()) { switch (wellhead.getIntervalTypeKey()) {
//小间开(不优化) //小间开(不优化)
case "0": case "0":
...@@ -1055,10 +1069,10 @@ public class SpaceOptimizeBaseService { ...@@ -1055,10 +1069,10 @@ public class SpaceOptimizeBaseService {
//初始化未优化间开 //初始化未优化间开
List<SpaceInstitutionDurationEnt> durationList = durationMap.get(wellheadId); List<SpaceInstitutionDurationEnt> durationList = durationMap.get(wellheadId);
for (SpaceInstitutionDurationEnt durationEnt : durationList) { for (SpaceInstitutionDurationEnt durationEnt : durationList) {
this.createUnOptimizeDuration(unOptimizeDurationList, durationEnt, periodId, recordId, wellheadId); this.createUnOptimizeDuration(unOptimizeDurationList, durationEnt, periodId, recordId, wellheadId, optimizeDate);
this.createOptimizeDuration(durationDTOList, periodId, recordId, wellheadId, null, this.createOptimizeDuration(durationDTOList, periodId, recordId, wellheadId, null,
durationEnt.getOpenWellTime(), durationEnt.getCloseWellTime(), durationEnt.getOpenWellTime(), durationEnt.getCloseWellTime(),
BusinessConstant.ONE BusinessConstant.ONE, optimizeDate
); );
} }
break; break;
...@@ -1066,22 +1080,22 @@ public class SpaceOptimizeBaseService { ...@@ -1066,22 +1080,22 @@ public class SpaceOptimizeBaseService {
case "1": case "1":
//创建间开记录(全开) //创建间开记录(全开)
this.createDuration(unOptimizeDurationList, recordId, periodId, wellheadId, BusinessConstant.ONE, BusinessConstant.START_OF_DAY_TIME, BusinessConstant.END_OF_DAY_TIME, null, this.createDuration(unOptimizeDurationList, recordId, periodId, wellheadId, BusinessConstant.ONE, BusinessConstant.START_OF_DAY_TIME, BusinessConstant.END_OF_DAY_TIME, null,
BusinessConstant.ONE); BusinessConstant.ONE, optimizeDate);
this.createDuration(durationDTOList, recordId, periodId, wellheadId, BusinessConstant.ZERO, 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,
BusinessConstant.ONE); BusinessConstant.ONE, optimizeDate);
break; break;
default: default:
if (StringUtils.equals(wellhead.getRunTypeKey(), BusinessConstant.CONTINUOUS_PUMPING_WELL)) { if (StringUtils.equals(wellhead.getRunTypeKey(), BusinessConstant.CONTINUOUS_PUMPING_WELL)) {
this.createDuration(unOptimizeDurationList, recordId, periodId, wellheadId, BusinessConstant.ONE, BusinessConstant.START_OF_DAY_TIME, BusinessConstant.END_OF_DAY_TIME, null, this.createDuration(unOptimizeDurationList, recordId, periodId, wellheadId, BusinessConstant.ONE, BusinessConstant.START_OF_DAY_TIME, BusinessConstant.END_OF_DAY_TIME, null,
BusinessConstant.ONE); BusinessConstant.ONE, optimizeDate);
this.createDuration(durationDTOList, recordId, periodId, wellheadId, BusinessConstant.ZERO, 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,
BusinessConstant.ONE); BusinessConstant.ONE, optimizeDate);
} else { } else {
//未配置全关 //未配置全关
this.createDuration(unOptimizeDurationList, recordId, periodId, wellheadId, BusinessConstant.ONE, BusinessConstant.START_OF_DAY_TIME, BusinessConstant.START_OF_DAY_TIME, null, this.createDuration(unOptimizeDurationList, recordId, periodId, wellheadId, BusinessConstant.ONE, BusinessConstant.START_OF_DAY_TIME, BusinessConstant.START_OF_DAY_TIME, null,
BusinessConstant.ONE); BusinessConstant.ONE, optimizeDate);
this.createDuration(durationDTOList, recordId, periodId, wellheadId, BusinessConstant.ZERO, BusinessConstant.START_OF_DAY_TIME, BusinessConstant.START_OF_DAY_TIME, null, this.createDuration(durationDTOList, recordId, periodId, wellheadId, BusinessConstant.ZERO, BusinessConstant.START_OF_DAY_TIME, BusinessConstant.START_OF_DAY_TIME, null,
BusinessConstant.ONE); BusinessConstant.ONE, optimizeDate);
} }
} }
} }
......
...@@ -170,4 +170,4 @@ public class SpaceOptimizeUltraPeriodService extends SpaceOptimizeBaseService { ...@@ -170,4 +170,4 @@ public class SpaceOptimizeUltraPeriodService extends SpaceOptimizeBaseService {
); );
return XSingleResult.success(output); return XSingleResult.success(output);
} }
} }
\ No newline at end of file
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
<insert id="longWellheadBatchInsertList" parameterType="list"> <insert id="longWellheadBatchInsertList" parameterType="list">
INSERT INTO space_optimize_long_wellhead ( id, create_by_id, create_by_name, create_time, INSERT INTO space_optimize_long_wellhead ( id, create_by_id, create_by_name, create_time,
modify_by_id, modify_by_name, modify_time, long_period_id, wellhead_id, well_number, start_seq) modify_by_id, modify_by_name, modify_time, long_period_id, wellhead_id, well_number, start_seq, optimize_date)
VALUES VALUES
<foreach collection="list" item="item" separator=","> <foreach collection="list" item="item" separator=",">
( (
...@@ -41,7 +41,8 @@ ...@@ -41,7 +41,8 @@
#{item.periodId}, #{item.periodId},
#{item.wellheadId}, #{item.wellheadId},
#{item.wellNumber}, #{item.wellNumber},
#{item.startSeq} #{item.startSeq},
#{item.optimizeDate}
) )
</foreach> </foreach>
</insert> </insert>
...@@ -62,7 +63,7 @@ ...@@ -62,7 +63,7 @@
generation_type_key, generation_type_key,
open_well_time, open_well_time,
close_well_time, close_well_time,
first_start first_start, optimize_date
) )
VALUES VALUES
<foreach collection="list" item="item" separator=","> <foreach collection="list" item="item" separator=",">
...@@ -88,7 +89,8 @@ ...@@ -88,7 +89,8 @@
</choose> </choose>
#{item.openWellTime}, #{item.openWellTime},
#{item.closeWellTime}, #{item.closeWellTime},
#{item.firstStart} #{item.firstStart},
#{item.optimizeDate}
) )
</foreach> </foreach>
</insert> </insert>
...@@ -118,7 +120,7 @@ ...@@ -118,7 +120,7 @@
<insert id="midWellheadBatchInsertList" parameterType="list"> <insert id="midWellheadBatchInsertList" parameterType="list">
INSERT INTO space_optimize_mid_wellhead ( id, create_by_id, create_by_name, create_time, INSERT INTO space_optimize_mid_wellhead ( id, create_by_id, create_by_name, create_time,
modify_by_id, modify_by_name, modify_time, mid_period_id, wellhead_id, well_number, start_seq) modify_by_id, modify_by_name, modify_time, mid_period_id, wellhead_id, well_number, start_seq, optimize_date)
VALUES VALUES
<foreach collection="list" item="item" separator=","> <foreach collection="list" item="item" separator=",">
( (
...@@ -132,7 +134,8 @@ ...@@ -132,7 +134,8 @@
#{item.periodId}, #{item.periodId},
#{item.wellheadId}, #{item.wellheadId},
#{item.wellNumber}, #{item.wellNumber},
#{item.startSeq} #{item.startSeq},
#{item.optimizeDate}
) )
</foreach> </foreach>
</insert> </insert>
...@@ -153,7 +156,7 @@ ...@@ -153,7 +156,7 @@
generation_type_key, generation_type_key,
open_well_time, open_well_time,
close_well_time, close_well_time,
first_start first_start, optimize_date
) )
VALUES VALUES
<foreach collection="list" item="item" separator=","> <foreach collection="list" item="item" separator=",">
...@@ -179,7 +182,8 @@ ...@@ -179,7 +182,8 @@
</choose> </choose>
#{item.openWellTime}, #{item.openWellTime},
#{item.closeWellTime}, #{item.closeWellTime},
#{item.firstStart} #{item.firstStart},
#{item.optimizeDate}
) )
</foreach> </foreach>
</insert> </insert>
...@@ -207,7 +211,7 @@ ...@@ -207,7 +211,7 @@
<insert id="shortWellheadBatchInsertList" parameterType="list"> <insert id="shortWellheadBatchInsertList" parameterType="list">
INSERT INTO space_optimize_short_wellhead (id, create_by_id, create_by_name, create_time, modify_by_id, INSERT INTO space_optimize_short_wellhead (id, create_by_id, create_by_name, create_time, modify_by_id,
modify_by_name, modify_time, short_period_id, wellhead_id, well_number, start_seq) modify_by_name, modify_time, short_period_id, wellhead_id, well_number, start_seq, optimize_date)
VALUES VALUES
<foreach collection="list" item="item" separator=","> <foreach collection="list" item="item" separator=",">
( (
...@@ -221,7 +225,8 @@ ...@@ -221,7 +225,8 @@
#{item.periodId}, #{item.periodId},
#{item.wellheadId}, #{item.wellheadId},
#{item.wellNumber}, #{item.wellNumber},
#{item.startSeq} #{item.startSeq},
#{item.optimizeDate}
) )
</foreach> </foreach>
</insert> </insert>
...@@ -229,7 +234,7 @@ ...@@ -229,7 +234,7 @@
<insert id="shortDurationBatchInsertList" parameterType="list"> <insert id="shortDurationBatchInsertList" parameterType="list">
INSERT INTO space_optimize_short_duration (id, create_by_id, create_by_name, create_time, INSERT INTO space_optimize_short_duration (id, create_by_id, create_by_name, create_time,
modify_by_id, modify_by_name, modify_time, record_id, short_period_id, wellhead_id, is_optimize, modify_by_id, modify_by_name, modify_time, record_id, short_period_id, wellhead_id, is_optimize,
generation_type_key, open_well_time, close_well_time, first_start) generation_type_key, open_well_time, close_well_time, first_start, optimize_date)
VALUES VALUES
<foreach collection="list" item="item" separator=","> <foreach collection="list" item="item" separator=",">
( (
...@@ -254,7 +259,8 @@ ...@@ -254,7 +259,8 @@
</choose> </choose>
#{item.openWellTime}, #{item.openWellTime},
#{item.closeWellTime}, #{item.closeWellTime},
#{item.firstStart} #{item.firstStart},
#{item.optimizeDate}
) )
</foreach> </foreach>
</insert> </insert>
...@@ -284,7 +290,7 @@ ...@@ -284,7 +290,7 @@
<insert id="ultraWellheadBatchInsertList" parameterType="list"> <insert id="ultraWellheadBatchInsertList" parameterType="list">
INSERT INTO space_optimize_ultra_wellhead ( id, create_by_id, create_by_name, create_time, INSERT INTO space_optimize_ultra_wellhead ( id, create_by_id, create_by_name, create_time,
modify_by_id, modify_by_name, modify_time, ultra_period_id, wellhead_id, well_number, start_seq) modify_by_id, modify_by_name, modify_time, ultra_period_id, wellhead_id, well_number, start_seq, optimize_date)
VALUES VALUES
<foreach collection="list" item="item" separator=","> <foreach collection="list" item="item" separator=",">
( (
...@@ -298,7 +304,8 @@ ...@@ -298,7 +304,8 @@
#{item.periodId}, #{item.periodId},
#{item.wellheadId}, #{item.wellheadId},
#{item.wellNumber}, #{item.wellNumber},
#{item.startSeq} #{item.startSeq},
#{item.optimizeDate}
) )
</foreach> </foreach>
</insert> </insert>
...@@ -319,7 +326,7 @@ ...@@ -319,7 +326,7 @@
generation_type_key, generation_type_key,
open_well_time, open_well_time,
close_well_time, close_well_time,
first_start first_start, optimize_date
) )
VALUES VALUES
<foreach collection="list" item="item" separator=","> <foreach collection="list" item="item" separator=",">
...@@ -345,7 +352,8 @@ ...@@ -345,7 +352,8 @@
</choose> </choose>
#{item.openWellTime}, #{item.openWellTime},
#{item.closeWellTime}, #{item.closeWellTime},
#{item.firstStart} #{item.firstStart},
#{item.optimizeDate}
) )
</foreach> </foreach>
</insert> </insert>
......
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