diff --git a/src/main/java/com/iflytop/nuclear/controller/CheckController.java b/src/main/java/com/iflytop/nuclear/controller/CheckController.java index 5631e16..3bf8d00 100644 --- a/src/main/java/com/iflytop/nuclear/controller/CheckController.java +++ b/src/main/java/com/iflytop/nuclear/controller/CheckController.java @@ -35,7 +35,7 @@ public class CheckController { } // 判断当前order 0为横向检查 1为纵向检查 CheckResult checkResult = checkService.autoCheck(order, startIndex, taskId); - return ResponseData.success(); + return ResponseData.success(checkResult); } @GetMapping("/stop/{id}") diff --git a/src/main/java/com/iflytop/nuclear/controller/TaskController.java b/src/main/java/com/iflytop/nuclear/controller/TaskController.java index cd5a854..9b09cc4 100644 --- a/src/main/java/com/iflytop/nuclear/controller/TaskController.java +++ b/src/main/java/com/iflytop/nuclear/controller/TaskController.java @@ -105,4 +105,14 @@ public class TaskController { return ResponseData.success(jo); } + /** + * 获取处于进行中任务的状态信息 + * @return + */ + @GetMapping("/process") + public ResponseData getProcessTaskInfo() { + TaskVO taskVO = taskService.processTask(); + return ResponseData.success(taskVO); + } + } diff --git a/src/main/java/com/iflytop/nuclear/entity/CheckResult.java b/src/main/java/com/iflytop/nuclear/entity/CheckResult.java index bfcf1e6..2881ced 100644 --- a/src/main/java/com/iflytop/nuclear/entity/CheckResult.java +++ b/src/main/java/com/iflytop/nuclear/entity/CheckResult.java @@ -18,4 +18,6 @@ public class CheckResult { private boolean isFinished; private String currentTestCoord; + + private String error; } diff --git a/src/main/java/com/iflytop/nuclear/service/TaskService.java b/src/main/java/com/iflytop/nuclear/service/TaskService.java index 23a8c68..0109ff2 100644 --- a/src/main/java/com/iflytop/nuclear/service/TaskService.java +++ b/src/main/java/com/iflytop/nuclear/service/TaskService.java @@ -15,4 +15,5 @@ import java.util.List; public interface TaskService extends IService { List getTaskInfoByUsername(String username, String user_role); + TaskVO processTask(); } diff --git a/src/main/java/com/iflytop/nuclear/service/impl/CheckServiceImpl.java b/src/main/java/com/iflytop/nuclear/service/impl/CheckServiceImpl.java index 20a18f6..559498c 100644 --- a/src/main/java/com/iflytop/nuclear/service/impl/CheckServiceImpl.java +++ b/src/main/java/com/iflytop/nuclear/service/impl/CheckServiceImpl.java @@ -2,6 +2,7 @@ package com.iflytop.nuclear.service.impl; import cn.hutool.core.util.IdUtil; import com.alibaba.fastjson2.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.iflytop.nuclear.entity.CheckInfo; import com.iflytop.nuclear.entity.CheckResult; @@ -91,7 +92,7 @@ public class CheckServiceImpl implements CheckService { webSocketServer.sendMessage("update"); } - public void initCheck(String initNextCoord,int order, int taskId) throws IOException { + public String initCheck(String initNextCoord,int order, int taskId) throws IOException { // 指定初始化index为1-6 String nextCoord = initNextCoord; this.updateCoordAndStatus(taskId, nextCoord, 1, true, false); @@ -125,9 +126,10 @@ public class CheckServiceImpl implements CheckService { this.updateCoordAndStatus(taskId, nextCoord, 3, false, true); } } + return nextCoord; } - public void continueCheck(int taskId, int order) throws IOException { + public String continueCheck(int taskId, int order) throws IOException { // 被中断过,需要从中断的currentCoord坐标继续 // 首先需要读取数据库,获得当前taskId的信息 Task task = taskService.getById(taskId); @@ -160,10 +162,20 @@ public class CheckServiceImpl implements CheckService { this.updateCoordAndStatus(taskId, nextCoord, 3, false, true); } } + return nextCoord; } @Override public CheckResult autoCheck(int order, String startIndex, int taskId) throws IOException { + // 检测是否有正在进行的任务 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("status", 1); + Task one = taskService.getOne(queryWrapper); + if (one != null) { + CheckResult checkResult = new CheckResult(); + checkResult.setError("当前已有一个任务正在进行中,请暂停该任务后重试。"); + return checkResult; + } this.changeBreakOff(false); this.updateCoordAndStatus(taskId, null, 1, false, false); currentTaskId = taskId; diff --git a/src/main/java/com/iflytop/nuclear/service/impl/TaskServiceImpl.java b/src/main/java/com/iflytop/nuclear/service/impl/TaskServiceImpl.java index 62e0788..27df59c 100644 --- a/src/main/java/com/iflytop/nuclear/service/impl/TaskServiceImpl.java +++ b/src/main/java/com/iflytop/nuclear/service/impl/TaskServiceImpl.java @@ -73,4 +73,43 @@ public class TaskServiceImpl extends ServiceImpl implements Ta } return result; } + + @Override + public TaskVO processTask() { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("status", 1); + Task task = this.getOne(queryWrapper); + if (task != null){ + QueryWrapper nuclearCoreConfigQueryWrapper = new QueryWrapper<>(); + nuclearCoreConfigQueryWrapper.eq("task_id", task.getId()); + List nuclearCoreConfigList = nuclearCoreConfigService.list(nuclearCoreConfigQueryWrapper); + boolean canUpload = true; + if (nuclearCoreConfigList.size() > 0) { + canUpload = false; + } + Long nuclearStationId = task.getNuclearStationId(); + Long nuclearCoreId = task.getNuclearCoreId(); + NuclearCore nuclearCore = nuclearCoreService.getById(nuclearCoreId); + NuclearStation nuclearStation = nuclearStationService.getById(nuclearStationId); + QueryWrapper accountQueryWrapper = new QueryWrapper<>(); + accountQueryWrapper.eq("username", task.getOperatorId()); + Account account = accountService.getOne(accountQueryWrapper); + TaskVO taskVO = TaskVO.builder() + .taskName(task.getTaskName()) + .checkOrder(task.getCheckOrder()) + .id(task.getId()) + .currentCoord(task.getCurrentCoord()) + .status(task.getStatus()) + .nuclearCoreName(nuclearCore.getName()) + .nuclearStationName(nuclearStation.getName()) + .publishTime(task.getPublishTime()) + .operatorName(account.getNickname()) + .startTime(task.getStartTime()) + .endTime(task.getEndTime()) + .canUpload(canUpload) + .build(); + return taskVO; + } + return null; + } }