feat(plan): 更新巡检和保养计划的时间计算逻辑

- 在巡检计划服务中根据巡检级别和周期字段重新构建cron表达式
- 在保养计划服务中根据保养级别和周期字段重新构建cron表达式
- 实现基于不同级别(日/月/年)的cron表达式生成逻辑
- 添加周级别处理时的日期偏移计算(week + 1)
- 集成CronUtils获取下次执行时间功能
- 更新时间限制计算逻辑,统一转换为秒数存储
- 移除控制器文件中的多余空行以优化代码格式
master
zangch@mesnac.com 7 days ago
parent 9d60b0cd78
commit a55c0eaa8b

@ -13,9 +13,6 @@ import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
* Controller
*

@ -13,9 +13,6 @@ import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
* Controller
*

@ -189,6 +189,46 @@ public class DmsPlanInspectServiceImpl implements IDmsPlanInspectService
@Override
public int updateDmsPlanInspect(DmsPlanInspect dmsPlanInspect)
{
// 根据巡检级别和周期字段重新构建cron表达式
String day = "*";
String month = "*";
String week = "*";
String year = "*";
String cron = "";
if (dmsPlanInspect.getDay()!=null){
day = dmsPlanInspect.getDay().toString();
}
if (dmsPlanInspect.getMonth()!=null){
month = dmsPlanInspect.getMonth().toString();
}
if (dmsPlanInspect.getWeek()!=null){
Long weekDay = dmsPlanInspect.getWeek() + 1;
week = weekDay.toString();
}
if (dmsPlanInspect.getYear()!=null){
year = dmsPlanInspect.getYear().toString();
}
if (dmsPlanInspect.getInspectLevel().equals(1l)){
cron = "0 0 "+dmsPlanInspect.getHour()+" "+day+" "+month+" ?";
}
if (dmsPlanInspect.getInspectLevel().equals(2l)){
cron = "0 0 "+dmsPlanInspect.getHour()+" ?"+" "+month+" "+week;
}
if (dmsPlanInspect.getInspectLevel().equals(3l)){
cron = "0 0 "+dmsPlanInspect.getHour()+" "+day+" "+ month+" ? "+year;
}
String time = cron;
//通过cron表达式获取下一次执行时间
Date nextExecution = CronUtils.getNextExecution(time);
dmsPlanInspect.setPlanTime(nextExecution);
dmsPlanInspect.setCronExpression(cron);
Long timeLimitDays = dmsPlanInspect.getTimeLimitDays()==null?0L:dmsPlanInspect.getTimeLimitDays();
Long timeLimitHours = dmsPlanInspect.getTimeLimitHours() == null?0L:dmsPlanInspect.getTimeLimitHours();
dmsPlanInspect.setTimeLimit((timeLimitDays * 24 * 60 * 60)
+ (timeLimitHours * 60 * 60));
LoginUser user = SecurityUtils.getLoginUser();
dmsPlanInspect.setUpdateBy(user.getUserId());
dmsPlanInspect.setUpdateTime(DateUtils.getNowDate());

@ -191,10 +191,40 @@ public class DmsPlanMaintServiceImpl implements IDmsPlanMaintService {
}
}*/
String time = dmsPlanMaint.getCronExpression();
// 根据保养级别和周期字段重新构建cron表达式
String day = "*";
String month = "*";
String week = "*";
String year = "*";
String cron = "";
if (dmsPlanMaint.getDay()!=null){
day = dmsPlanMaint.getDay().toString();
}
if (dmsPlanMaint.getMonth()!=null){
month = dmsPlanMaint.getMonth().toString();
}
if (dmsPlanMaint.getWeek()!=null){
Long weekDay = dmsPlanMaint.getWeek() + 1;
week = weekDay.toString();
}
if (dmsPlanMaint.getYear()!=null){
year = dmsPlanMaint.getYear().toString();
}
if (dmsPlanMaint.getMaintLevel().equals(1l)){
cron = "0 0 "+dmsPlanMaint.getHour()+" "+day+" "+month+" ?";
}
if (dmsPlanMaint.getMaintLevel().equals(2l)){
cron = "0 0 "+dmsPlanMaint.getHour()+" ?"+" "+month+" "+week;
}
if (dmsPlanMaint.getMaintLevel().equals(3l)){
cron = "0 0 "+dmsPlanMaint.getHour()+" "+day+" "+ month+" ? "+year;
}
String time = cron;
//通过cron表达式获取下一次执行时间
Date nextExecution = CronUtils.getNextExecution(time);
dmsPlanMaint.setMaintTime(nextExecution);
dmsPlanMaint.setCronExpression(cron);
Long timeLimitDays = dmsPlanMaint.getTimeLimitDays()==null?0L:dmsPlanMaint.getTimeLimitDays();
Long timeLimitHours = dmsPlanMaint.getTimeLimitHours() == null?0L:dmsPlanMaint.getTimeLimitHours();
dmsPlanMaint.setTimeLimit((timeLimitDays * 24 * 60 * 60)

Loading…
Cancel
Save