Commit 60198d1e authored by ZWT's avatar ZWT

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

1.开发间开优化长期间开优化定时任务,了解长期并网型流程算法;
2.定时任务模块新增CRON常量类,定义常用表达式;

BREAKING CHANGE: 无

Closes 无

[skip ci]
parent a8eb4f72
......@@ -14,7 +14,8 @@ public enum BusinessError implements XError {
PhotovoltaicReference(2002, "当前光伏电站已被引用"),
LineReference(2003, "当前线路已被引用"),
StrategyReference(2004, "当前策略已被引用"),
WellheadReference(2005, "当前井口已被引用"),
WellheadReferenceLine(2005, "当前井口已被线路引用"),
WellheadReferenceSpace(2006, "当前井口已被间开引用"),
;
private int code;
......
......@@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.apache.commons.lang3.StringUtils;
import pps.cloud.space.service.ISpaceInstitutionDetailCloudService;
import pps.core.base.entity.BaseDieselGeneratorEnt;
import pps.core.base.entity.BasePowerLineWellheadEnt;
import pps.core.base.entity.BaseWellheadEnt;
......@@ -79,8 +80,11 @@ public class BaseWellheadService extends BaseService {
@XApiPost
public XServiceResult deleteBaseWellhead(XContext context, DeleteBaseWellheadInput input) {
String wellheadId = input.getId();
if (this.checkWellheadIsReference(context, wellheadId)) {
return XServiceResult.error(context, BusinessError.WellheadReference);
if (this.checkWellheadIsLineReference(context, wellheadId)) {
return XServiceResult.error(context, BusinessError.WellheadReferenceLine);
}
if (this.checkWellheadIsSpaceReference(context, wellheadId)) {
return XServiceResult.error(context, BusinessError.WellheadReferenceSpace);
}
return XTransactionHelper.begin(context, () -> {
BaseWellheadMapper mapper = context.getBean(BaseWellheadMapper.class);
......@@ -130,13 +134,13 @@ public class BaseWellheadService extends BaseService {
/*-----------------------------------private-----------------------------------*/
/**
* 检查井口是否被引用
* 检查井口是否被线路引用
*
* @param context 上下文
* @param wellheadId 井口ID
* @return boolean
*/
private boolean checkWellheadIsReference(XContext context, String wellheadId) {
private boolean checkWellheadIsLineReference(XContext context, String wellheadId) {
BasePowerLineWellheadMapper mapper = context.getBean(BasePowerLineWellheadMapper.class);
Long count = mapper.selectCount(new LambdaQueryWrapper<BasePowerLineWellheadEnt>()
.eq(BasePowerLineWellheadEnt::getWellheadId, wellheadId)
......@@ -145,6 +149,20 @@ public class BaseWellheadService extends BaseService {
return count > 0;
}
/**
* 检查井口是否被间开引用
*
* @param context 上下文
* @param wellheadId 井口id
* @return boolean
*/
private boolean checkWellheadIsSpaceReference(XContext context, String wellheadId) {
ISpaceInstitutionDetailCloudService contextBean = context.getBean(ISpaceInstitutionDetailCloudService.class);
XSingleResult<Long> result = contextBean.getInstitutionWellheadCountByWellheadId(context, wellheadId);
result.throwIfFail();
return result.getResult() > 0;
}
/**
* 通过井口ID查询井口信息
*
......
package pps.core.task.job;
import pps.cloud.space.service.ISpaceOptimizeLongCloudService;
import pps.core.task.constant.CronConstant;
import xstartup.annotation.XService;
import xstartup.annotation.XText;
import xstartup.base.XContext;
......@@ -25,7 +24,8 @@ public class SpaceOptimizeLongJob implements XJob {
* @param xContext x上下文
* @return {@link XServiceResult}
*/
@XCronTrigger(value = CronConstant.FIRST_DAY_OF_THE_MONTH)
@XCronTrigger(value = XCronTrigger.PRE_10S)
// @XCronTrigger(value = CronConstant.FIRST_DAY_OF_THE_MONTH)
@Override
public XServiceResult execute(XContext xContext) {
ISpaceOptimizeLongCloudService service = xContext.getBean(ISpaceOptimizeLongCloudService.class);
......
......@@ -17,13 +17,24 @@ import xstartup.feature.api.annotation.XApiGet;
public interface ISpaceInstitutionDetailCloudService {
/**
* 基础间开配置模块--获取线路配置制度数量
* 基础间开配置模块--检查线路是否被引用
*
* @param context 上下文
* @param lineId 线路id
* @return {@link XSingleResult}<{@link Long}>
*/
@XText("基础间开配置模块--获取线路配置制度数量")
@XText("基础间开配置模块--检查线路是否被引用")
@XApiGet
XSingleResult<Long> getInstitutionLineCountByLineId(XContext context, String lineId);
/**
* 基础间开配置模块--检查井口是否被引用
*
* @param context 上下文
* @param wellheadId 井口id
* @return {@link XSingleResult}<{@link Long}>
*/
@XText("基础间开配置模块--检查井口是否被引用")
@XApiGet
XSingleResult<Long> getInstitutionWellheadCountByWellheadId(XContext context, String wellheadId);
}
......@@ -5,7 +5,9 @@ import pps.cloud.space.service.ISpaceInstitutionDetailCloudService;
import pps.core.common.constant.BusinessConstant;
import pps.core.common.entity.BaseModel;
import pps.core.space.entity.SpaceInstitutionDetailEnt;
import pps.core.space.entity.SpaceInstitutionWellheadEnt;
import pps.core.space.mapper.SpaceInstitutionDetailMapper;
import pps.core.space.mapper.SpaceInstitutionWellheadMapper;
import xstartup.annotation.XService;
import xstartup.base.XContext;
import xstartup.data.XSingleResult;
......@@ -35,4 +37,21 @@ public class SpaceInstitutionDetailCloudServiceImpl implements ISpaceInstitution
.eq(SpaceInstitutionDetailEnt::getLineId, lineId)
));
}
/**
* 基础间开配置模块--检查井口是否被引用
*
* @param context 上下文
* @param wellheadId 井口id
* @return {@link XSingleResult}<{@link Long}>
*/
@Override
public XSingleResult<Long> getInstitutionWellheadCountByWellheadId(XContext context, String wellheadId) {
SpaceInstitutionWellheadMapper mapper = context.getBean(SpaceInstitutionWellheadMapper.class);
return XSingleResult.success(mapper.selectCount(
new LambdaQueryWrapper<SpaceInstitutionWellheadEnt>()
.eq(BaseModel::getIsDeleted, BusinessConstant.ONE)
.eq(SpaceInstitutionWellheadEnt::getWellheadId, wellheadId)
));
}
}
package pps.core.space.service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import pps.cloud.space.service.ISpaceOptimizeLongCloudService;
import pps.core.common.constant.BusinessConstant;
import pps.core.common.entity.BaseModel;
import pps.core.space.entity.SpaceInstitutionDetailEnt;
import pps.core.space.mapper.SpaceInstitutionDetailMapper;
import xstartup.annotation.XService;
import xstartup.base.XContext;
import xstartup.data.XServiceResult;
import java.util.List;
/**
* 长期间开优化Cloud模块
*
......@@ -22,7 +29,14 @@ public class SpaceOptimizeLongCloudServiceImpl implements ISpaceOptimizeLongClou
*/
@Override
public XServiceResult optimizeLongJob(XContext context) {
//取生效中的基础间开
SpaceInstitutionDetailMapper detailMapper = context.getBean(SpaceInstitutionDetailMapper.class);
List<SpaceInstitutionDetailEnt> detailEntList = detailMapper.selectList(new LambdaQueryWrapper<SpaceInstitutionDetailEnt>()
.eq(BaseModel::getIsDeleted, BusinessConstant.ONE)
.eq(SpaceInstitutionDetailEnt::getIsCurrentBasic, BusinessConstant.ZERO)
.apply(" institution_end_date >= CURDATE() ")
);
//
return XServiceResult.OK;
}
......
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