Commit 6625fe64 authored by ZWT's avatar ZWT

feat(能源管理系统): 测试问题修复

1.修改基础信息配置--井口配置模块,新增/修改接口,增加井口编号重复校验及必填项校验逻辑;
2.修改基础信息配置--井口配置模块,修改接口,解决部分字段丢失导致数据未更新问题;
3.修改基础信息配置--柴发设备配置模块,新增/修改接口,增加出场编号重复校验及必填项校验逻辑;
4.修改基础信息配置--储能设备配置模块,新增/修改接口,增加出场编号重复校验及必填项校验逻辑;
5.修改基础信息配置--光伏电站配置模块,新增/修改接口,增加出场编号重复校验及必填项校验逻辑;
6.修改基础信息配置--间开制度管理模块,设为基础制度/重新优化接口,增加业务逻辑初始化校准周期;

BREAKING CHANGE: 无

Closes 无

[skip ci]
parent 33ebcb83
......@@ -332,8 +332,11 @@ public class SpaceCalibrationService {
private SpaceCalibrationPeriodEnt getPeriodEntByParam(SpaceCalibrationPeriodMapper mapper, String lineId, String ouId) {
return mapper.selectOne(
new LambdaQueryWrapper<SpaceCalibrationPeriodEnt>()
.eq(BaseModel::getIsDeleted, BusinessConstant.ONE)
.eq(SpaceCalibrationPeriodEnt::getLineId, lineId)
.eq(SpaceCalibrationPeriodEnt::getOuId, ouId)
.orderByDesc(BaseModel::getModifyTime)
.last("LIMIT 1")
);
}
......
......@@ -290,7 +290,6 @@ public class SpaceInstitutionDetailService extends SpaceOptimizeBaseService {
@XApiPost
@XText("基础间开配置--设为基础制度")
public XServiceResult updateBasicInstitution(XContext context, UpdateSpaceInstitutionDetailInput input) {
PpsUserSession session = context.getSession(PpsUserSession.class);
String ouId = input.getOuId();
String lineId = input.getLineId();
String institutionId = input.getId();
......@@ -303,6 +302,7 @@ public class SpaceInstitutionDetailService extends SpaceOptimizeBaseService {
if (isCurrentBasic.equals(BusinessConstant.ZERO)) {
return XServiceResult.error(context, BusinessError.RepeatSetting);
}
PpsUserSession session = context.getSession(PpsUserSession.class);
return XTransactionHelper.begin(context, () -> {
//关闭当前基础制度
mapper.update(null, new LambdaUpdateWrapper<SpaceInstitutionDetailEnt>()
......@@ -325,7 +325,7 @@ public class SpaceInstitutionDetailService extends SpaceOptimizeBaseService {
//长期/中短期制度优化初始化
this.institutionOptimizeInitialize(context, detail);
//校准周期初始化
this.calibrationHistoryInitialize(context, detail, session);
return XServiceResult.OK;
});
}
......@@ -345,7 +345,6 @@ public class SpaceInstitutionDetailService extends SpaceOptimizeBaseService {
if (StringUtils.isEmpty(historyId)) {
return XServiceResult.error(context, BusinessError.LackOfHistoryRecord);
}
PpsUserSession session = context.getSession(PpsUserSession.class);
String institutionId = input.getId();
SpaceInstitutionDetailMapper mapper = context.getBean(SpaceInstitutionDetailMapper.class);
SpaceInstitutionDetailEnt detail = this.getInstitutionDetail(mapper, institutionId);
......@@ -360,10 +359,13 @@ public class SpaceInstitutionDetailService extends SpaceOptimizeBaseService {
if (DateUtil.date().compareTo(calibrationDate) > 0) {
return XServiceResult.error(context, BusinessError.Expired);
}
PpsUserSession session = context.getSession(PpsUserSession.class);
return XTransactionHelper.begin(context, () -> {
this.updateInstitutionDetail(context, session, mapper, institutionId, input, detail);
//制度优化
this.institutionOptimizeInitialize(context, detail);
//校准周期初始化
this.calibrationHistoryInitialize(context, detail, session);
return XServiceResult.OK;
});
}
......@@ -585,6 +587,67 @@ public class SpaceInstitutionDetailService extends SpaceOptimizeBaseService {
}
}
/**
* 校准周期初始化
*
* @param context 上下文
* @param detail 细节
*/
private void calibrationHistoryInitialize(XContext context, SpaceInstitutionDetailEnt detail, PpsUserSession session) {
//查最近的校准历史
SpaceCalibrationHistoryMapper mapper = context.getBean(SpaceCalibrationHistoryMapper.class);
SpaceCalibrationHistoryEnt historyEnt = mapper.selectOne(new LambdaQueryWrapper<SpaceCalibrationHistoryEnt>()
.eq(BaseModel::getIsDeleted, BusinessConstant.ONE)
.eq(SpaceCalibrationHistoryEnt::getInstitutionId, detail.getId())
.orderByDesc(SpaceCalibrationHistoryEnt::getCalibrationDate)
.last("LIMIT 1")
);
DateTime now = DateUtil.beginOfDay(DateUtil.date());
boolean isCreate = false;
if (Objects.nonNull(historyEnt)) {
//判断当前时间是否大于等于校准日期
Date calibrationDate = historyEnt.getCalibrationDate();
if (DateUtil.compare(now, calibrationDate) >= 0) {
isCreate = true;
}
} else {
isCreate = true;
}
//新增
if (isCreate) {
//查周期配置
SpaceCalibrationPeriodMapper periodMapper = context.getBean(SpaceCalibrationPeriodMapper.class);
SpaceCalibrationPeriodEnt periodEnt = periodMapper.selectOne(new LambdaQueryWrapper<SpaceCalibrationPeriodEnt>()
.eq(BaseModel::getIsDeleted, BusinessConstant.ONE)
.eq(SpaceCalibrationPeriodEnt::getLineId, detail.getLineId())
.eq(SpaceCalibrationPeriodEnt::getOuId, detail.getOuId())
.orderByDesc(BaseModel::getModifyTime)
.last("LIMIT 1")
);
if (Objects.nonNull(periodEnt)) {
mapper.insert(this.createCalibrationHistory(session, detail, now, Integer.valueOf(periodEnt.getDayNumber())));
}
}
}
/**
* 创建校准历史记录
*
* @param detail 细节
* @param date 日期
* @param dayNumber 天数
* @return {@link SpaceCalibrationHistoryEnt}
*/
private SpaceCalibrationHistoryEnt createCalibrationHistory(PpsUserSession session, SpaceInstitutionDetailEnt detail, Date date, Integer dayNumber) {
SpaceCalibrationHistoryEnt historyEnt = new SpaceCalibrationHistoryEnt();
BaseUtils.setBaseModelDefault(historyEnt, session);
historyEnt.setLineId(detail.getLineId());
historyEnt.setInstitutionId(detail.getId());
historyEnt.setExecutionCycle(BaseUtils.getExecutionCycleForCalibration(date, dayNumber));
historyEnt.setCalibrationDate(DateUtil.beginOfDay(DateUtil.offsetDay(date, dayNumber + 1)));
return historyEnt;
}
/**
* 条件查询输电线路井口列表
*
......
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