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 { ...@@ -125,6 +125,21 @@ public class BaseUtils {
return stringBuilder.toString(); 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 ...@@ -141,23 +141,8 @@ public class SpaceCalibrationCloudServiceImpl implements ISpaceCalibrationCloudS
BaseUtils.setBaseModelDefaultForJob(historyView); BaseUtils.setBaseModelDefaultForJob(historyView);
historyView.setLineId(lineId); historyView.setLineId(lineId);
historyView.setInstitutionId(institutionId); historyView.setInstitutionId(institutionId);
historyView.setExecutionCycle(this.getExecutionCycleForCalibration(date, dayNumber)); historyView.setExecutionCycle(BaseUtils.getExecutionCycleForCalibration(date, dayNumber));
historyView.setCalibrationDate(DateUtil.beginOfDay(DateUtil.offsetDay(date, dayNumber + 1))); historyView.setCalibrationDate(DateUtil.beginOfDay(DateUtil.offsetDay(date, dayNumber + 1)));
historyViewList.add(historyView); 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; package pps.core.space.service;
import cn.hutool.core.collection.CollUtil; 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.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
...@@ -10,10 +12,12 @@ import pps.core.common.session.PpsUserSession; ...@@ -10,10 +12,12 @@ import pps.core.common.session.PpsUserSession;
import pps.core.common.utils.BaseUtils; import pps.core.common.utils.BaseUtils;
import pps.core.space.entity.SpaceCalibrationHistoryView; import pps.core.space.entity.SpaceCalibrationHistoryView;
import pps.core.space.entity.SpaceCalibrationPeriodEnt; import pps.core.space.entity.SpaceCalibrationPeriodEnt;
import pps.core.space.entity.SpaceInstitutionDetailEnt;
import pps.core.space.entity.SpaceInstitutionWellheadEnt; import pps.core.space.entity.SpaceInstitutionWellheadEnt;
import pps.core.space.enums.BusinessError; import pps.core.space.enums.BusinessError;
import pps.core.space.mapper.SpaceCalibrationHistoryViewMapper; import pps.core.space.mapper.SpaceCalibrationHistoryViewMapper;
import pps.core.space.mapper.SpaceCalibrationPeriodMapper; import pps.core.space.mapper.SpaceCalibrationPeriodMapper;
import pps.core.space.mapper.SpaceInstitutionDetailMapper;
import pps.core.space.mapper.SpaceInstitutionWellheadMapper; 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.QuerySpaceCalibrationHistoryInput;
import pps.core.space.service.data.space_calibration_history.QuerySpaceCalibrationHistoryOutput; import pps.core.space.service.data.space_calibration_history.QuerySpaceCalibrationHistoryOutput;
...@@ -38,10 +42,7 @@ import xstartup.feature.api.annotation.XApiGet; ...@@ -38,10 +42,7 @@ import xstartup.feature.api.annotation.XApiGet;
import xstartup.feature.api.annotation.XApiPost; import xstartup.feature.api.annotation.XApiPost;
import xstartup.helper.XTransactionHelper; import xstartup.helper.XTransactionHelper;
import java.util.ArrayList; import java.util.*;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
...@@ -66,15 +67,39 @@ public class SpaceCalibrationService { ...@@ -66,15 +67,39 @@ public class SpaceCalibrationService {
@XText("校准周期--新增") @XText("校准周期--新增")
public XServiceResult createSpaceCalibrationPeriod(XContext context, CreateSpaceCalibrationPeriodInput input) { public XServiceResult createSpaceCalibrationPeriod(XContext context, CreateSpaceCalibrationPeriodInput input) {
PpsUserSession session = context.getSession(PpsUserSession.class); PpsUserSession session = context.getSession(PpsUserSession.class);
return XTransactionHelper.begin(context, () -> {
SpaceCalibrationPeriodMapper mapper = context.getBean(SpaceCalibrationPeriodMapper.class); SpaceCalibrationPeriodMapper mapper = context.getBean(SpaceCalibrationPeriodMapper.class);
SpaceCalibrationPeriodEnt periodEnt = this.getPeriodEntByParam(mapper, input.getLineId(), input.getOuId()); SpaceCalibrationPeriodEnt periodEnt = this.getPeriodEntByParam(mapper, input.getLineId(), input.getOuId());
if (Objects.nonNull(periodEnt)) { if (Objects.nonNull(periodEnt)) {
return XServiceResult.error(context, BusinessError.LineExists); return XServiceResult.error(context, BusinessError.LineExists);
} }
SpaceCalibrationPeriodEnt entity = XCopyUtils.copyNewObject(input, SpaceCalibrationPeriodEnt.class); 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()));
}
}
return XTransactionHelper.begin(context, () -> {
BaseUtils.setBaseModelDefault(entity, session); BaseUtils.setBaseModelDefault(entity, session);
mapper.insert(entity); mapper.insert(entity);
SpaceCalibrationHistoryViewMapper historyViewMapper = context.getBean(SpaceCalibrationHistoryViewMapper.class);
if (CollUtil.isNotEmpty(historyViewList)) {
historyViewMapper.batchInsertList(historyViewList);
}
return XServiceResult.OK; return XServiceResult.OK;
}); });
} }
...@@ -217,4 +242,25 @@ public class SpaceCalibrationService { ...@@ -217,4 +242,25 @@ public class SpaceCalibrationService {
.eq(SpaceCalibrationPeriodEnt::getOuId, ouId) .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