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