Commit b45c938d authored by ZWT's avatar ZWT

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

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

BREAKING CHANGE: 无

Closes 无

[skip ci]
parent a6ca38a2
......@@ -2,7 +2,9 @@ package pps.core.space.mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import pps.core.space.entity.*;
import pps.core.space.entity.SpaceOptimizeDurationDTO;
import pps.core.space.entity.SpaceOptimizePeriodDTO;
import pps.core.space.entity.SpaceOptimizeWellheadDTO;
import java.util.List;
......@@ -40,7 +42,7 @@ public interface SpaceOptimizeViewMapper {
int longDurationBatchInsertList(@Param(value = "list") List<SpaceOptimizeDurationDTO> list);
/**
* 期间开优化批量新增
* 中短期间开优化批量新增
*
* @param list 列表
* @return int
......@@ -48,7 +50,7 @@ public interface SpaceOptimizeViewMapper {
int midPeriodBatchInsertList(@Param(value = "list") List<SpaceOptimizePeriodDTO> list);
/**
* 期间开优化井口批量新增
* 中短期间开优化井口批量新增
*
* @param list 列表
* @return int
......@@ -56,10 +58,34 @@ public interface SpaceOptimizeViewMapper {
int midWellheadBatchInsertList(@Param(value = "list") List<SpaceOptimizeWellheadDTO> list);
/**
* 期间开优化井口配置批量新增
* 中短期间开优化井口配置批量新增
*
* @param list 列表
* @return int
*/
int midDurationBatchInsertList(@Param(value = "list") List<SpaceOptimizeDurationDTO> list);
/**
* 短期间开优化批量新增
*
* @param list 列表
* @return int
*/
int shortPeriodBatchInsertList(@Param(value = "list") List<SpaceOptimizePeriodDTO> list);
/**
* 短期间开优化井口批量新增
*
* @param list 列表
* @return int
*/
int shortWellheadBatchInsertList(@Param(value = "list") List<SpaceOptimizeWellheadDTO> list);
/**
* 短期间开优化井口配置批量新增
*
* @param list 列表
* @return int
*/
int shortDurationBatchInsertList(@Param(value = "list") List<SpaceOptimizeDurationDTO> list);
}
......@@ -8,11 +8,13 @@ import org.apache.commons.lang3.StringUtils;
import pps.cloud.space.service.ISpaceOptimizeShortCloudService;
import pps.core.common.constant.BusinessConstant;
import pps.core.common.entity.BaseModel;
import pps.core.common.utils.BaseUtils;
import pps.core.space.entity.*;
import pps.core.space.mapper.*;
import xstartup.annotation.XService;
import xstartup.base.XContext;
import xstartup.data.XServiceResult;
import xstartup.helper.XTransactionHelper;
import java.util.*;
import java.util.stream.Collectors;
......@@ -229,6 +231,47 @@ public class SpaceOptimizeShortCloudServiceImpl extends SpaceOptimizeBaseService
}
}
}
return XServiceResult.OK;
//开启事务
return XTransactionHelper.begin(context, () -> {
int size;
SpaceOptimizeViewMapper optimizeViewMapper = context.getBean(SpaceOptimizeViewMapper.class);
if (CollUtil.isNotEmpty(periodDTOList)) {
size = periodDTOList.size();
if (size > BaseUtils.BATCH_SIZE) {
List<List<SpaceOptimizePeriodDTO>> subList = BaseUtils.getSubList(periodDTOList);
subList.forEach(b -> optimizeViewMapper.shortPeriodBatchInsertList(b));
} else {
optimizeViewMapper.shortPeriodBatchInsertList(periodDTOList);
}
}
if (CollUtil.isNotEmpty(wellheadDTOList)) {
size = wellheadDTOList.size();
if (size > BaseUtils.BATCH_SIZE) {
List<List<SpaceOptimizeWellheadDTO>> subList = BaseUtils.getSubList(wellheadDTOList);
subList.forEach(b -> optimizeViewMapper.shortWellheadBatchInsertList(b));
} else {
optimizeViewMapper.shortWellheadBatchInsertList(wellheadDTOList);
}
}
if (CollUtil.isNotEmpty(unOptimizeDurationList)) {
size = unOptimizeDurationList.size();
if (size > BaseUtils.BATCH_SIZE) {
List<List<SpaceOptimizeDurationDTO>> subList = BaseUtils.getSubList(unOptimizeDurationList);
subList.forEach(b -> optimizeViewMapper.shortDurationBatchInsertList(b));
} else {
optimizeViewMapper.shortDurationBatchInsertList(unOptimizeDurationList);
}
}
if (CollUtil.isNotEmpty(durationDTOList)) {
size = durationDTOList.size();
if (size > BaseUtils.BATCH_SIZE) {
List<List<SpaceOptimizeDurationDTO>> subList = BaseUtils.getSubList(durationDTOList);
subList.forEach(b -> optimizeViewMapper.shortDurationBatchInsertList(b));
} else {
optimizeViewMapper.shortDurationBatchInsertList(durationDTOList);
}
}
return XServiceResult.OK;
});
}
}
\ No newline at end of file
......@@ -177,4 +177,77 @@
)
</foreach>
</insert>
<insert id="shortPeriodBatchInsertList" parameterType="list">
INSERT INTO space_optimize_short_period (id, create_by_id, create_by_name, create_time, modify_by_id,
modify_by_name, modify_time, line_id, institution_id, optimize_state, optimize_date)
VALUES
<foreach collection="list" item="item" separator=",">
(
#{item.id},
#{item.createById},
#{item.createByName},
#{item.createTime},
#{item.modifyById},
#{item.modifyByName},
#{item.modifyTime},
#{item.lineId},
#{item.institutionId},
#{item.optimizeState},
#{item.optimizeDeadline}
)
</foreach>
</insert>
<insert id="shortWellheadBatchInsertList" parameterType="list">
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)
VALUES
<foreach collection="list" item="item" separator=",">
(
#{item.id},
#{item.createById},
#{item.createByName},
#{item.createTime},
#{item.modifyById},
#{item.modifyByName},
#{item.modifyTime},
#{item.periodId},
#{item.wellheadId},
#{item.wellNumber}
)
</foreach>
</insert>
<insert id="shortDurationBatchInsertList" parameterType="list">
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,
generation_type_key, open_well_time, close_well_time)
VALUES
<foreach collection="list" item="item" separator=",">
(
#{item.id},
#{item.createById},
#{item.createByName},
#{item.createTime},
#{item.modifyById},
#{item.modifyByName},
#{item.modifyTime},
#{item.recordId},
#{item.periodId},
#{item.wellheadId},
#{item.isOptimize},
<choose>
<when test="item.generationTypeKey != null and item.generationTypeKey != ''">
#{item.generationTypeKey},
</when>
<otherwise>
NULL,
</otherwise>
</choose>
#{item.openWellTime},
#{item.closeWellTime}
)
</foreach>
</insert>
</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