Browse Source

机器狗,无人机定时任务

master
wangguangyuan 2 months ago
parent
commit
d06e0eb744
4 changed files with 118 additions and 22 deletions
  1. +3
    -0
      inspect-job/src/main/java/com/inspect/job/client/TaskExecClient.java
  2. +15
    -1
      inspect-job/src/main/java/com/inspect/job/task/JobMainTask.java
  3. +65
    -7
      inspect-main/inspect-main-task-exec/src/main/java/com/inspect/exec/controller/PatrolTaskExecController.java
  4. +35
    -14
      inspect-main/inspect-main-task/src/main/java/com/inspect/task/controller/PatrolTaskController.java

+ 3
- 0
inspect-job/src/main/java/com/inspect/job/client/TaskExecClient.java View File

@ -110,6 +110,9 @@ public interface TaskExecClient {
@PostMapping({"/exec/makeCurrentDayTask"})
Map<String, List<PatrolTask>> makeCurrentDayTask();
@PostMapping({"/exec/execDeviceTask"})
void execDeviceTask(@RequestBody List<PatrolTask> patrolTaskListEx);
@PostMapping({"/getPatrolTaskStatusByTaskPatrolledId"})
PatrolTaskStatus getPatrolTaskStatusByTaskPatrolledId(String patrolId);


+ 15
- 1
inspect-job/src/main/java/com/inspect/job/task/JobMainTask.java View File

@ -767,7 +767,7 @@ public class JobMainTask {
TaskStateData taskStateData = new TaskStateData();
taskStateData.setType(StaEnum.RunState.getCode());
taskStateData.setReceiveCode("");
taskStateData.setSendCode("手动点位");
taskStateData.setSendCode("摄像头");
taskStateData.setTaskStateList(taskStates);
Object patrolRunResult = JSONArray.toJSON(taskStateData);
try {
@ -2021,13 +2021,27 @@ public class JobMainTask {
List<PatrolTask> patrolTaskList = JSON.parseArray(redisService.getCacheObject(redisKey), PatrolTask.class);
// 筛选出可见光任务
List<PatrolTask> patrolTaskListEx = new ArrayList<>();
List<PatrolTask> patrolTaskControlList = new ArrayList<>();
for (PatrolTask patrolTask : patrolTaskList) {
log.info("EXTRACT_REDIS_TASK devType: {}", patrolTask.getDevType());
if(StringUtils.isNotEmpty(patrolTask.getDevType())
&& patrolTask.getDevType().contains("2")) {
patrolTaskListEx.add(patrolTask);
}
if(StringUtils.isNotEmpty(patrolTask.getDevType())
&& (patrolTask.getDevType().contains("0") || patrolTask.getDevType().contains("1"))) {
patrolTaskControlList.add(patrolTask);
}
}
if (!patrolTaskControlList.isEmpty()) {
log.info(Color.YELLOW + "PATROL_TASK_LIST_DEVICE: {}, task list size: {}" + Color.END, redisKey, patrolTaskControlList.size());
redisService.setCacheObjectOfTask(RedisConst.TASK_CURRENT_CODE, taskCode, redisKey, 5L, TimeUnit.MINUTES);
// 执行机器狗无人机设备任务
taskExecClient.execDeviceTask(patrolTaskControlList);
}
if (!patrolTaskListEx.isEmpty()) {
log.info(Color.YELLOW + "PATROL_TASK_LIST_VL: {}, task list size: {}" + Color.END, redisKey, patrolTaskListEx.size());
redisService.setCacheObjectOfTask(RedisConst.TASK_CURRENT_CODE, taskCode, redisKey, 5L, TimeUnit.MINUTES);


+ 65
- 7
inspect-main/inspect-main-task-exec/src/main/java/com/inspect/exec/controller/PatrolTaskExecController.java View File

@ -41,10 +41,13 @@ import com.inspect.patrol.service.IPatrolPresetActionService;
import com.inspect.patrol.service.IPatrolPresetParamService;
import com.inspect.patrol.service.IPatrolPresetPosService;
import com.inspect.system.base.domain.SysDictData;
import com.inspect.system.base.openDomain.BasedataEqpBookMoMain;
import com.inspect.task.domain.PatrolTask;
import com.inspect.task.domain.SendTask;
import com.inspect.task.service.IPatrolTaskService;
import com.inspect.taskinfo.domain.PatrolTaskInfo;
import com.inspect.taskinfo.service.IPatrolTaskInfoService;
import com.inspect.taskstatus.client.FeignTaskClient;
import com.inspect.taskstatus.domain.PatrolTaskStatus;
import com.inspect.taskstatus.service.IPatrolTaskStatusService;
@ -52,6 +55,7 @@ import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.TimeUnit;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.collections4.CollectionUtils;
@ -81,6 +85,9 @@ public class PatrolTaskExecController extends BaseController {
private final IPatrolResultService patrolResultService;
@Resource
private FeignTaskClient feignTaskClient;
public PatrolTaskExecController(IPatrolTaskInfoService patrolTaskInfoService, IPatrolTaskService patrolTaskService, RedisService redisService, IPatrolTaskStatusService patrolTaskStatusService, IDBPatrolPointService dbPatrolPointService, IPatrolPresetPosService patrolPresetPosService, IPatrolPresetActionService patrolPresetActionService, IPatrolTaskExecRecordService patrolTaskExecRecordService, IPatrolTaskPointExecRecordService patrolTaskPointExecRecordService, IMaintainRegionService maintainRegionService, IPatrolPresetParamService patrolPresetParamService, ISilenceTaskPointExecRecordService silenceTaskPointExecRecordService, IEqpBookChannelService eqpBookChannelService, IPatrolResultService patrolResultService, IEqpBookService eqpBookService) {
this.patrolTaskInfoService = patrolTaskInfoService;
this.patrolTaskService = patrolTaskService;
@ -552,8 +559,8 @@ public class PatrolTaskExecController extends BaseController {
// 按小时执行
int intervalNumber = task.getIntervalNumber();
if (intervalNumber > 0) {
// List<Date> exeTimes = getExecTimes(task.getIntervalExecuteTime(), DateUtils.format(DateUtils.yyyyMMddHHmmss2, task.getIntervalStartTime()), DateUtils.format(DateUtils.yyyyMMddHHmmss2, task.getIntervalEndTime()), intervalNumber);
List<Date> exeTimes = getExecTimesOld(task.getIntervalExecuteTime(), intervalNumber);
List<Date> exeTimes = getExecTimes(task.getIntervalExecuteTime(), DateUtils.format(DateUtils.yyyyMMddHHmmss2, task.getIntervalStartTime()), DateUtils.format(DateUtils.yyyyMMddHHmmss2, task.getIntervalEndTime()), intervalNumber);
// List<Date> exeTimes = getExecTimesOld(task.getIntervalExecuteTime(), intervalNumber);
for (Date exeTime : exeTimes) {
logger.info("[TASK] {}, isInterTaskByHour exeTime: {}", task.getTaskCode(), DateUtils.format(DateUtils.yyyyMMddHHmmss2, exeTime));
task.setFixedStartTime(exeTime);
@ -608,9 +615,9 @@ public class PatrolTaskExecController extends BaseController {
List<String> devNoList = new ArrayList<>();
String[] devTypes = task.getDevType().split(StringUtils.COMMA);
for (int i = 0; i < devTypes.length; ++i) {
if ("2".equals(devTypes[i])) {
// if ("2".equals(devTypes[i])) {
devNoList.add(devNos[i]);
}
// }
}
if(devNoList.isEmpty()) {
@ -791,6 +798,57 @@ public class PatrolTaskExecController extends BaseController {
// }
}
@PostMapping({"/execDeviceTask"})
private void execDeviceTask(@RequestBody List<PatrolTask> patrolTaskListEx) {
String sendCode = "";
BasedataEqpBookMoMain basedataEqpBookMoMain = new BasedataEqpBookMoMain();
basedataEqpBookMoMain.setType("20");// type:20 - robot
List<BasedataEqpBookMoMain> basedataEqpBookMoMains = this.patrolResultService.selectBasedataEqpBookList(basedataEqpBookMoMain);
if (!basedataEqpBookMoMains.isEmpty()) {
sendCode = basedataEqpBookMoMains.get(0).getPatrolDeviceCode();
}
for (PatrolTask patrolTask : patrolTaskListEx) {
if (StringUtils.isNotEmpty(patrolTask.getDevNo())) {
String[] devTypes = patrolTask.getDevType().split(StringUtils.COMMA);
String[] devNos = patrolTask.getDevNo().split(StringUtils.COMMA);
List<String> pilotTaskCmds = new ArrayList<>();
for (int i = 0; i < devNos.length; i++) {
log.info("execDeviceTask devNo: {}, devType: {}", devNos[i], devTypes[i]);
BasedataEqpBookMoMain basedataEqpbookMomain = new BasedataEqpBookMoMain();
basedataEqpbookMomain.setPatrolDeviceCode(devNos[i]);
List<BasedataEqpBookMoMain> eqpBookMoMains = patrolResultService.selectBasedataEqpBookList(basedataEqpbookMomain);
String receiveCode = "";
if (!eqpBookMoMains.isEmpty() && eqpBookMoMains.get(0).getMainSystemCode() != null) {
receiveCode = eqpBookMoMains.get(0).getMainSystemCode();
}
if (StringUtils.isNotEmpty(receiveCode)) {
log.info("定时任务--无人机-机器人任务构建, receiveCode: {}, devType: {}, devNo: {}", receiveCode, patrolTask.getDevType(), patrolTask.getDevNo());
SendTask sendTask = new SendTask();
sendTask.setReceiveCode(receiveCode);
sendTask.setSendCode(sendCode);
sendTask.setCode(patrolTask.getTaskId() + "");
sendTask.setType("41");
sendTask.setCommand("1");
String pilotTaskCmd = JSONObject.toJSONString(sendTask);
pilotTaskCmds.add(pilotTaskCmd);
}
}
// 下发无人机-机器人任务
for(String pilotTaskCmd : pilotTaskCmds) {
log.info("定时任务--无人机-机器人任务执行, pilotTaskCmd: {}", pilotTaskCmd);
try {
this.feignTaskClient.sendCommand(pilotTaskCmd);
} catch (Exception e) {
log.error("定时任务--无人机-机器人任务下发异常: {}", e.getMessage());
}
}
}
}
}
private void extracted(String key, String taskCode) {
log.info(Color.RED + "[EXEC] Add new task [{}]" + Color.END, key);//日志里没搜到
redisService.setCacheObjectOfTask(RedisConst.TASK_CURRENT_CODE, taskCode, key, 5L, TimeUnit.MINUTES);
@ -815,9 +873,9 @@ public class PatrolTaskExecController extends BaseController {
List<String> devTypeList = new ArrayList<>();
List<String> devNoList = new ArrayList<>();
for (int i = 0; i < devTypes.length; ++i) {
if (!"2".equals(devTypes[i])) {
continue;
}
// if (!"2".equals(devTypes[i])) {
// continue;
// }
devTypeList.add(devTypes[i]);
devNoList.add(devNos[i]);


+ 35
- 14
inspect-main/inspect-main-task/src/main/java/com/inspect/task/controller/PatrolTaskController.java View File

@ -707,6 +707,13 @@ public class PatrolTaskController extends BaseController {
}
}
issueTask(patrolTask);
// 修改任务删除原有的任务执行策略根据新的策略重新生成
if (StringUtils.isNotEmpty(patrolTask.getTaskCode())) {
Collection<String> redisKeys = redisService.keys(RedisConst.TASK_CODE + patrolTask.getTaskCode() + StringUtils.AT + "*");
for (String redisKey : redisKeys) {
redisService.deleteObject(redisKey);
}
}
}
return toAjax(a);
} catch (Exception e) {
@ -1217,20 +1224,34 @@ public class PatrolTaskController extends BaseController {
}
private PatrolSendTask handleFixTypeTask(PatrolSendTask patrolSendTask) {
if (StringUtils.isNotEmpty(patrolSendTask.getFixedStartTime())) {
patrolSendTask.setCycleEndTime("");
patrolSendTask.setCycleExecuteTime("");
patrolSendTask.setCycleMonth("");
patrolSendTask.setCycleStartTime("");
patrolSendTask.setCycleWeek("");
patrolSendTask.setIntervalEndTime("");
patrolSendTask.setIntervalType("");
patrolSendTask.setIntervalExecuteTime("");
patrolSendTask.setIntervalNumber("");
patrolSendTask.setIntervalStartTime("");
patrolSendTask.setInvalidEndTime("");
patrolSendTask.setInvalidStartTime("");
}
// if (StringUtils.isNotEmpty(patrolSendTask.getFixedStartTime())) {
// patrolSendTask.setCycleEndTime("");
// patrolSendTask.setCycleExecuteTime("");
// patrolSendTask.setCycleMonth("");
// patrolSendTask.setCycleStartTime("");
// patrolSendTask.setCycleWeek("");
// patrolSendTask.setIntervalEndTime("");
// patrolSendTask.setIntervalType("");
// patrolSendTask.setIntervalExecuteTime("");
// patrolSendTask.setIntervalNumber("");
// patrolSendTask.setIntervalStartTime("");
// patrolSendTask.setInvalidEndTime("");
// patrolSendTask.setInvalidStartTime("");
// }
// 下发给机器狗无人机普通任务
patrolSendTask.setFixedStartTime("");
patrolSendTask.setCycleEndTime("");
patrolSendTask.setCycleExecuteTime("");
patrolSendTask.setCycleMonth("");
patrolSendTask.setCycleStartTime("");
patrolSendTask.setCycleWeek("");
patrolSendTask.setIntervalEndTime("");
patrolSendTask.setIntervalType("");
patrolSendTask.setIntervalExecuteTime("");
patrolSendTask.setIntervalNumber("");
patrolSendTask.setIntervalStartTime("");
patrolSendTask.setInvalidEndTime("");
patrolSendTask.setInvalidStartTime("");
return patrolSendTask;
}


Loading…
Cancel
Save