|
|
@ -7,6 +7,7 @@ import com.inspect.analysis.domain.ResultAnalysisSummaryDTO; |
|
|
import com.inspect.analysis.service.IResultAnalysisService; |
|
|
import com.inspect.analysis.service.IResultAnalysisService; |
|
|
import com.inspect.base.core.constant.AlgConstants; |
|
|
import com.inspect.base.core.constant.AlgConstants; |
|
|
import com.inspect.base.core.constant.RedisConst; |
|
|
import com.inspect.base.core.constant.RedisConst; |
|
|
|
|
|
import com.inspect.base.core.domain.maintain.MaintainRegion; |
|
|
import com.inspect.base.core.enums.TaskStatus; |
|
|
import com.inspect.base.core.enums.TaskStatus; |
|
|
import com.inspect.base.core.enums.TaskType; |
|
|
import com.inspect.base.core.enums.TaskType; |
|
|
import com.inspect.base.core.utils.DateUtils; |
|
|
import com.inspect.base.core.utils.DateUtils; |
|
|
@ -24,6 +25,7 @@ import com.inspect.calender.enums.TaskStateEnum; |
|
|
import com.inspect.calender.service.TaskCalendarGenerator; |
|
|
import com.inspect.calender.service.TaskCalendarGenerator; |
|
|
import com.inspect.common.log.annotation.Log; |
|
|
import com.inspect.common.log.annotation.Log; |
|
|
import com.inspect.common.log.enums.BizType; |
|
|
import com.inspect.common.log.enums.BizType; |
|
|
|
|
|
import com.inspect.maintain.service.IMaintainRegionService; |
|
|
import com.inspect.partrolresult.service.IPatrolResultService; |
|
|
import com.inspect.partrolresult.service.IPatrolResultService; |
|
|
import com.inspect.resultmain.domain.PatrolTaskResultMain; |
|
|
import com.inspect.resultmain.domain.PatrolTaskResultMain; |
|
|
import com.inspect.resultmain.service.IPatrolTaskResultMainService; |
|
|
import com.inspect.resultmain.service.IPatrolTaskResultMainService; |
|
|
@ -32,6 +34,7 @@ import com.inspect.task.controller.PatrolTaskController; |
|
|
import com.inspect.task.domain.PatrolTask; |
|
|
import com.inspect.task.domain.PatrolTask; |
|
|
import com.inspect.task.domain.SendTask; |
|
|
import com.inspect.task.domain.SendTask; |
|
|
import com.inspect.task.service.IPatrolTaskService; |
|
|
import com.inspect.task.service.IPatrolTaskService; |
|
|
|
|
|
import com.inspect.taskinfo.domain.PatrolTaskInfo; |
|
|
import com.inspect.taskinfo.service.IPatrolTaskInfoService; |
|
|
import com.inspect.taskinfo.service.IPatrolTaskInfoService; |
|
|
import com.inspect.taskstatus.client.FeignJobTaskClient; |
|
|
import com.inspect.taskstatus.client.FeignJobTaskClient; |
|
|
import com.inspect.taskstatus.client.FeignTaskClient; |
|
|
import com.inspect.taskstatus.client.FeignTaskClient; |
|
|
@ -74,6 +77,9 @@ public class PatrolTaskStatusController extends BaseController { |
|
|
@Resource |
|
|
@Resource |
|
|
private TaskCalendarGenerator taskCalendarGenerator; |
|
|
private TaskCalendarGenerator taskCalendarGenerator; |
|
|
|
|
|
|
|
|
|
|
|
@Resource |
|
|
|
|
|
private IMaintainRegionService maintainRegionService; |
|
|
|
|
|
|
|
|
public PatrolTaskStatusController( |
|
|
public PatrolTaskStatusController( |
|
|
PatrolTaskController patrolTaskController, |
|
|
PatrolTaskController patrolTaskController, |
|
|
IPatrolTaskStatusService patrolTaskStatusService, |
|
|
IPatrolTaskStatusService patrolTaskStatusService, |
|
|
@ -793,14 +799,19 @@ public class PatrolTaskStatusController extends BaseController { |
|
|
} |
|
|
} |
|
|
if (StringUtils.isNotEmpty(receiveCode)) { |
|
|
if (StringUtils.isNotEmpty(receiveCode)) { |
|
|
log.info("无人机-机器人任务构建, receiveCode: {}, devType: {}, devNo: {}", receiveCode, patrolTask.getDevType(), patrolTask.getDevNo()); |
|
|
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); |
|
|
|
|
|
|
|
|
// 判断任务点位是否在检修区域内 |
|
|
|
|
|
if (isWithinMaintainRegion(patrolTask.getTaskCode(), patrolTask.getDevNo())) { |
|
|
|
|
|
log.info("该任务点位在检修区域内 taskCode: {},sendCode: {}", patrolTask.getTaskCode(), patrolTask.getDevNo()); |
|
|
|
|
|
} else { |
|
|
|
|
|
SendTask sendTask = new SendTask(); |
|
|
|
|
|
sendTask.setReceiveCode(receiveCode); |
|
|
|
|
|
sendTask.setSendCode(sendCode); |
|
|
|
|
|
sendTask.setCode(patrolTask.getTaskCode()); |
|
|
|
|
|
sendTask.setType("41"); |
|
|
|
|
|
sendTask.setCommand("1"); |
|
|
|
|
|
String pilotTaskCmd = JSONObject.toJSONString(sendTask); |
|
|
|
|
|
pilotTaskCmds.add(pilotTaskCmd); |
|
|
|
|
|
} |
|
|
} else { |
|
|
} else { |
|
|
log.info("可见光任务构建, 第 {} 个, devNo: {}", i + 1, devNos[i]); |
|
|
log.info("可见光任务构建, 第 {} 个, devNo: {}", i + 1, devNos[i]); |
|
|
devTypeList.add(devTypes[i]); |
|
|
devTypeList.add(devTypes[i]); |
|
|
@ -808,8 +819,10 @@ public class PatrolTaskStatusController extends BaseController { |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
String immediatelyExecTaskTime = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS")); |
|
|
|
|
|
redisService.setCacheObjectOfTask(RedisConst.TASK_CURRENT_CODE, patrolTask.getTaskCode(), RedisConst.TASK_CODE + patrolTask.getTaskCode() + StringUtils.AT + immediatelyExecTaskTime, 1L, TimeUnit.HOURS); |
|
|
|
|
|
|
|
|
if (!(pilotTaskCmds.isEmpty() || devTypeList.isEmpty() || devNoList.isEmpty())) { |
|
|
|
|
|
String immediatelyExecTaskTime = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS")); |
|
|
|
|
|
redisService.setCacheObjectOfTask(RedisConst.TASK_CURRENT_CODE, patrolTask.getTaskCode(), RedisConst.TASK_CODE + patrolTask.getTaskCode() + StringUtils.AT + immediatelyExecTaskTime, 1L, TimeUnit.HOURS); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
// 下发无人机任务 |
|
|
// 下发无人机任务 |
|
|
for (String pilotTaskCmd : pilotTaskCmds) { |
|
|
for (String pilotTaskCmd : pilotTaskCmds) { |
|
|
@ -1040,4 +1053,42 @@ public class PatrolTaskStatusController extends BaseController { |
|
|
|
|
|
|
|
|
return AjaxResult.success(); |
|
|
return AjaxResult.success(); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
* 判断任务点位是否在检修区域内 |
|
|
|
|
|
* |
|
|
|
|
|
* @param taskCode |
|
|
|
|
|
* @return |
|
|
|
|
|
*/ |
|
|
|
|
|
public boolean isWithinMaintainRegion(String taskCode, String devNo) { |
|
|
|
|
|
Date currentDate = new Date(); |
|
|
|
|
|
MaintainRegion maintainRegion = MaintainRegion.builder() |
|
|
|
|
|
.startTime(currentDate) |
|
|
|
|
|
.endTime(currentDate) |
|
|
|
|
|
.enable("1") |
|
|
|
|
|
.build(); |
|
|
|
|
|
List<MaintainRegion> maintainRegionList = maintainRegionService.selectMaintainRegionList(maintainRegion); |
|
|
|
|
|
log.info("[TASK] MAINTAIN REGION: {}", maintainRegionList); |
|
|
|
|
|
List<String> maintainIds = maintainRegionList.stream() |
|
|
|
|
|
.map(MaintainRegion::getDeviceList) |
|
|
|
|
|
.flatMap(ids -> Arrays.stream(ids.split(StringUtils.COMMA))) |
|
|
|
|
|
.collect(Collectors.toList()); |
|
|
|
|
|
|
|
|
|
|
|
PatrolTaskInfo patrolTaskInfo = PatrolTaskInfo.builder() |
|
|
|
|
|
.taskMajorId(taskCode) |
|
|
|
|
|
.devNo(devNo) |
|
|
|
|
|
.build(); |
|
|
|
|
|
List<PatrolTaskInfo> patrolTaskInfoList = patrolTaskInfoService.selectPatrolTask(patrolTaskInfo); |
|
|
|
|
|
log.info("[TASK] PATROL TASK INFO: {}", patrolTaskInfoList); |
|
|
|
|
|
boolean isWithin = false; |
|
|
|
|
|
for (PatrolTaskInfo info : patrolTaskInfoList) { |
|
|
|
|
|
final Long areaId = info.getAreaId(); |
|
|
|
|
|
if (maintainIds.contains(String.valueOf(areaId))) { |
|
|
|
|
|
isWithin = true; |
|
|
|
|
|
break; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return isWithin; |
|
|
|
|
|
} |
|
|
} |
|
|
} |