修复洪水预报自动执行方案任务

master
cxw 2024-11-14 13:38:52 +08:00
parent f6b357f5bb
commit 2d4d43ff9a
3 changed files with 34 additions and 12 deletions

View File

@ -45,9 +45,9 @@ public class ForecastTaskController {
public R<ForecastTask> insert(@Validated(Insert.class) @RequestBody ForecastTask dto) {
dto.setId(IdWorker.getId());
boolean result = service.save(dto);
// if (result) {
// taskGroupHandler.addCronJob(String.valueOf(dto.getId()), dto);
// }
if (result) {
taskGroupHandler.addCronJob(String.valueOf(dto.getId()), dto);
}
return R.ok(result ? dto : null);
}
@ -61,11 +61,11 @@ public class ForecastTaskController {
dto.setChtm(oldTask.getChtm());
dto.setUpdateTm(new Date());
boolean result = service.updateById(dto);
// if (result) {
// // 先删除,再重新添加
// taskGroupHandler.removeCronJob(String.valueOf(dto.getId()));
// taskGroupHandler.addCronJob(String.valueOf(dto.getId()), dto);
// }
if (result) {
// 先删除,再重新添加
taskGroupHandler.removeCronJob(String.valueOf(dto.getId()));
taskGroupHandler.addCronJob(String.valueOf(dto.getId()), dto);
}
return R.ok(result ? dto : null);
}
@ -73,9 +73,9 @@ public class ForecastTaskController {
@GetMapping("/del/{id}")
public R<Boolean> del(@Schema(name = "id") @PathVariable("id") Serializable id) {
boolean b = service.removeById(id);
// if (b) {
// taskGroupHandler.removeCronJob((String) id);
// }
if (b) {
taskGroupHandler.removeCronJob((String) id);
}
return R.ok(service.removeById(id));
}

View File

@ -138,4 +138,20 @@ public class ForecastTask extends GenericPageParams implements Serializable {
@JsonFormat(pattern = DateFormatString.YYYY_MM_DD_HH_MM_SS, timezone = "GMT+8")
@TableField(exist = false)
private Date endTime;
/**
*
*/
@TableField(value="last_excute_tm")
@Schema(description="上一次执行时间")
@JsonFormat(pattern = DateFormatString.YYYY_MM_DD_HH_MM_SS, timezone = "GMT+8")
private Date lastExcuteTm;
/**
*
*/
@TableField(value="last_resultsave_tm")
@Schema(description="上一次结果保存时间")
@JsonFormat(pattern = DateFormatString.YYYY_MM_DD_HH_MM_SS, timezone = "GMT+8")
private Date lastResultsaveTm;
}

View File

@ -13,6 +13,7 @@ import com.gunshi.project.xyt.model.ForecastUseparam;
import com.gunshi.project.xyt.service.AttResBaseService;
import com.gunshi.project.xyt.service.ForecastProjectService;
import com.gunshi.project.xyt.service.ForecastResultsService;
import com.gunshi.project.xyt.service.ForecastTaskService;
import com.gunshi.project.xyt.service.ForecastUseparamService;
import lombok.extern.slf4j.Slf4j;
import org.quartz.Job;
@ -57,6 +58,8 @@ public class TaskGroupJob implements Job {
@Autowired
private ForecastProjectService forecastProjectService;
@Autowired
private ForecastTaskService forecastTaskService;
@Override
public void execute(JobExecutionContext context) throws JobExecutionException {
@ -65,6 +68,7 @@ public class TaskGroupJob implements Job {
String jobId = (String) jdMap.get("jobId");
ForecastTask forecastTask = (ForecastTask) jdMap.get("forecastTask");
log.info("{}----TaskGroupJob-计划执行开始===>jobId:{}", sdf.format(nowDate), jobId);
forecastTask.setLastExcuteTm(nowDate);
try {
// 根据执行时间、预热期、预见期获取对应的预报、开始、结束时间
Date nowTime = sdfMinute.parse(sdf.format(nowDate));
@ -112,7 +116,7 @@ public class TaskGroupJob implements Job {
forecastProject.setProjectTm(nowTime);
forecastProject.setStartTm(startTime);
forecastProject.setEndTm(endTime);
forecastProject.setUserId("0000000000_系统");
forecastProject.setUserId("1_系统");
forecastProject.setForecastPeriod(forecastPeriod);
forecastProject.setForecastWarm(forecastWarm);
forecastProject.setTimeInterval(forecastTask.getTimeInterval());
@ -121,10 +125,12 @@ public class TaskGroupJob implements Job {
boolean save = forecastProjectService.save(forecastProject);
if (save) {
forecastProjectService.saveForecastResults(forecastProject);
forecastTask.setLastResultsaveTm(nowDate);
}
}
}
}
forecastTaskService.updateById(forecastTask);
} catch (Exception e) {
throw new RuntimeException(e);
}