Commit f9dc2671 authored by ZWT's avatar ZWT

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

1.开发间开优化定期校准定时任务,配置表达式修改定时任务配置文件,创建cloud模块方法;
2.开发间开优化定期校准定时任务,完成业务逻辑开发;
3.修改间开制度管理模块定期校准新增功能,增加初始化校准历史业务逻辑;

BREAKING CHANGE: 无

Closes 无

[skip ci]
parent ec9000a1
......@@ -125,6 +125,21 @@ public class BaseUtils {
return stringBuilder.toString();
}
/**
* 获取校准执行周期
*
* @param date 日期
* @param offset 抵消
* @return {@link String}
*/
public static String getExecutionCycleForCalibration(Date date, int offset) {
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append(DateUtil.format(DateUtil.beginOfDay(date), BusinessConstant.DATE_FORMAT_DAY_C))
.append('-')
.append(DateUtil.format(DateUtil.offsetDay(date, offset), BusinessConstant.DATE_FORMAT_DAY_C));
return stringBuilder.toString();
}
/**
* 获取时差分钟
*
......
......@@ -141,23 +141,8 @@ public class SpaceCalibrationCloudServiceImpl implements ISpaceCalibrationCloudS
BaseUtils.setBaseModelDefaultForJob(historyView);
historyView.setLineId(lineId);
historyView.setInstitutionId(institutionId);
historyView.setExecutionCycle(this.getExecutionCycleForCalibration(date, dayNumber));
historyView.setExecutionCycle(BaseUtils.getExecutionCycleForCalibration(date, dayNumber));
historyView.setCalibrationDate(DateUtil.beginOfDay(DateUtil.offsetDay(date, dayNumber + 1)));
historyViewList.add(historyView);
}
/**
* 获取校准执行周期
*
* @param date 日期
* @param offset 抵消
* @return {@link String}
*/
private String getExecutionCycleForCalibration(Date date, int offset) {
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append(DateUtil.format(DateUtil.beginOfDay(date), BusinessConstant.DATE_FORMAT_DAY_C))
.append('-')
.append(DateUtil.format(DateUtil.offsetDay(date, offset), BusinessConstant.DATE_FORMAT_DAY_C));
return stringBuilder.toString();
}
}
package pps.core.space.service;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
......@@ -10,10 +12,12 @@ import pps.core.common.session.PpsUserSession;
import pps.core.common.utils.BaseUtils;
import pps.core.space.entity.SpaceCalibrationHistoryView;
import pps.core.space.entity.SpaceCalibrationPeriodEnt;
import pps.core.space.entity.SpaceInstitutionDetailEnt;
import pps.core.space.entity.SpaceInstitutionWellheadEnt;
import pps.core.space.enums.BusinessError;
import pps.core.space.mapper.SpaceCalibrationHistoryViewMapper;
import pps.core.space.mapper.SpaceCalibrationPeriodMapper;
import pps.core.space.mapper.SpaceInstitutionDetailMapper;
import pps.core.space.mapper.SpaceInstitutionWellheadMapper;
import pps.core.space.service.data.space_calibration_history.QuerySpaceCalibrationHistoryInput;
import pps.core.space.service.data.space_calibration_history.QuerySpaceCalibrationHistoryOutput;
......@@ -38,10 +42,7 @@ import xstartup.feature.api.annotation.XApiGet;
import xstartup.feature.api.annotation.XApiPost;
import xstartup.helper.XTransactionHelper;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.*;
import java.util.stream.Collectors;
/**
......@@ -66,15 +67,39 @@ public class SpaceCalibrationService {
@XText("校准周期--新增")
public XServiceResult createSpaceCalibrationPeriod(XContext context, CreateSpaceCalibrationPeriodInput input) {
PpsUserSession session = context.getSession(PpsUserSession.class);
return XTransactionHelper.begin(context, () -> {
SpaceCalibrationPeriodMapper mapper = context.getBean(SpaceCalibrationPeriodMapper.class);
SpaceCalibrationPeriodEnt periodEnt = this.getPeriodEntByParam(mapper, input.getLineId(), input.getOuId());
if (Objects.nonNull(periodEnt)) {
return XServiceResult.error(context, BusinessError.LineExists);
SpaceCalibrationPeriodMapper mapper = context.getBean(SpaceCalibrationPeriodMapper.class);
SpaceCalibrationPeriodEnt periodEnt = this.getPeriodEntByParam(mapper, input.getLineId(), input.getOuId());
if (Objects.nonNull(periodEnt)) {
return XServiceResult.error(context, BusinessError.LineExists);
}
SpaceCalibrationPeriodEnt entity = XCopyUtils.copyNewObject(input, SpaceCalibrationPeriodEnt.class);
//查生效中的基础间开
String lineId = entity.getLineId();
//取当前时间
DateTime date = DateUtil.date();
String sameDay = date.toString(BusinessConstant.DATE_FORMAT_DAY);
SpaceInstitutionDetailMapper detailMapper = context.getBean(SpaceInstitutionDetailMapper.class);
List<SpaceInstitutionDetailEnt> detailEntList = detailMapper.selectList(new LambdaQueryWrapper<SpaceInstitutionDetailEnt>()
.eq(BaseModel::getIsDeleted, BusinessConstant.ONE)
.eq(SpaceInstitutionDetailEnt::getIsCurrentBasic, BusinessConstant.ZERO)
.eq(SpaceInstitutionDetailEnt::getLineId, lineId)
.le(SpaceInstitutionDetailEnt::getInstitutionStartDate, sameDay)
.ge(SpaceInstitutionDetailEnt::getInstitutionEndDate, sameDay)
);
List<SpaceCalibrationHistoryView> historyViewList = new ArrayList<>(8);
if (CollUtil.isNotEmpty(detailEntList)) {
for (SpaceInstitutionDetailEnt detailEnt : detailEntList) {
//创建周期
this.createCalibrationHistory(historyViewList, lineId, detailEnt.getId(), date, Integer.valueOf(entity.getDayNumber()));
}
SpaceCalibrationPeriodEnt entity = XCopyUtils.copyNewObject(input, SpaceCalibrationPeriodEnt.class);
}
return XTransactionHelper.begin(context, () -> {
BaseUtils.setBaseModelDefault(entity, session);
mapper.insert(entity);
SpaceCalibrationHistoryViewMapper historyViewMapper = context.getBean(SpaceCalibrationHistoryViewMapper.class);
if (CollUtil.isNotEmpty(historyViewList)) {
historyViewMapper.batchInsertList(historyViewList);
}
return XServiceResult.OK;
});
}
......@@ -217,4 +242,25 @@ public class SpaceCalibrationService {
.eq(SpaceCalibrationPeriodEnt::getOuId, ouId)
);
}
/**
* 创建校准历史记录
*
* @param historyViewList 历史视图列表
* @param lineId 线路id
* @param institutionId 机构id
* @param date 日期
* @param dayNumber 天数
*/
private void createCalibrationHistory(List<SpaceCalibrationHistoryView> historyViewList, String lineId,
String institutionId, Date date, Integer dayNumber) {
SpaceCalibrationHistoryView historyView = new SpaceCalibrationHistoryView();
BaseUtils.setBaseModelDefaultForJob(historyView);
historyView.setLineId(lineId);
historyView.setInstitutionId(institutionId);
historyView.setExecutionCycle(BaseUtils.getExecutionCycleForCalibration(date, dayNumber));
historyView.setCalibrationDate(DateUtil.beginOfDay(DateUtil.offsetDay(date, dayNumber + 1)));
historyViewList.add(historyView);
}
}
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