Browse Source

feat: 新增华软无人机表计算法gis_meter2调用逻辑

master
yinhuaiwei 4 weeks ago
parent
commit
06787c647c
5 changed files with 62 additions and 14 deletions
  1. +1
    -0
      inspect-base/inspect-base-core/src/main/java/com/inspect/base/core/constant/AlgConstants.java
  2. +1
    -0
      inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/constant/AnalyseConstants.java
  3. +26
    -3
      inspect-main/inspect-main-task/src/main/java/com/inspect/calender/service/TaskCalendarGenerator.java
  4. +2
    -2
      inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/controller/PatrolResultController.java
  5. +32
    -9
      inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/service/AnalyseRequestServiceImpl.java

+ 1
- 0
inspect-base/inspect-base-core/src/main/java/com/inspect/base/core/constant/AlgConstants.java View File

@ -2,6 +2,7 @@ package com.inspect.base.core.constant;
public class AlgConstants {
public static final String METER = "meter";
public static final String GIS_METER_2 = "gis_meter2";
public static final String INFRA_1800 = "infra_1800";
public static final String INFRA_YU3 = "infra_yu3";
public static final String INFRA_CAMERA = "infra_camera";


+ 1
- 0
inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/constant/AnalyseConstants.java View File

@ -39,6 +39,7 @@ public class AnalyseConstants {
public static final String ANALYSIS_BIG_URL = "ANALYSIS_BIG_URL";
public static final String ANALYSIS_BIG_URL_INFRARED = "ANALYSIS_BIG_URL_INFRARED";
public static final String ANALYSIS_BIG_URL_METER = "ANALYSIS_BIG_URL_METER";
public static final String ANALYSIS_BIG_URL_GIS_METER_2 = "ANALYSIS_BIG_URL_GIS_METER_2";
public static final String MAX_NUM = "MAX_NUM";
public static final String ANALYSE_LOG_TYPE_SEND = "0";


+ 26
- 3
inspect-main/inspect-main-task/src/main/java/com/inspect/calender/service/TaskCalendarGenerator.java View File

@ -23,7 +23,7 @@ import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
/**
* 未来任务生成
* 任务执行日历处理
*/
@Service
@Slf4j
@ -43,7 +43,9 @@ public class TaskCalendarGenerator {
@Resource
private PatrolTaskStatusMapper patrolTaskStatusMapper;
// 定时任务每天凌晨或任务变更后主动刷新缓存
/**
* 定时任务每天凌晨或任务变更后主动刷新缓存
*/
@Scheduled(cron = "0 50 0 * * ?")
public void refreshCalendarCache() {
log.info("[任务执行日历]定时刷新未来任务日历缓存");
@ -59,6 +61,12 @@ public class TaskCalendarGenerator {
futureCalendarCache.invalidateAll();
}
/**
* 获取指定年的任务统计信息已执行执行中未执行
*
* @param year
* @return
*/
public List<MonthlyTaskStatsDTO> getMonthlyStatsByYear(int year) {
List<MonthlyTaskStatsDTO> existingStats = patrolTaskStatusMapper.countMonthlyStatsByYear(year);
// 获取未来预生成的计划任务缓存
@ -102,10 +110,25 @@ public class TaskCalendarGenerator {
return existingStats;
}
/**
* 获取指定年月的完整日历包含已生成的任务和未来生成的任务
*
* @param year
* @param month
* @return 日历列表
*/
public List<DailyTaskStatsDTO> getFullCalendar(int year, int month) {
return getFullCalendar(year, month, 0);
}
/**
* 获取指定年月日的完整日历包含已生成的任务和未来生成的任务
*
* @param year
* @param month
* @param day
* @return
*/
public List<DailyTaskStatsDTO> getFullCalendar(int year, int month, int day) {
List<DailyTaskStatsDTO> existingList;
if (day == 0) {
@ -139,7 +162,7 @@ public class TaskCalendarGenerator {
// 将未来计划任务添加到当前日期的任务列表中如果该任务尚未存在
for (DailyTaskStatsDTO futureTask : futureTasks) {
if (date.equals(currentDate)) {
// 获取 startTime 最晚的任务
// 检查在当前时间之前的任务舍弃不添加
if (currentTime.isBefore(futureTask.getStartTime())) {
existingTasks.add(futureTask);
}


+ 2
- 2
inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/controller/PatrolResultController.java View File

@ -1160,8 +1160,8 @@ public class PatrolResultController extends BaseController {
logger.info("GET_INFO_41 ROBOT_TASK_STATUS patrolTaskStatusList: {}", patrolTaskStatusList);
if (!patrolTaskStatusList.isEmpty()) {
PatrolTaskStatus patrolTaskStatusOfDb = patrolTaskStatusList.get(0);
// 除了上报完成状态当db状态与上报状态不一致时更新db状态
if(!patrolTaskStatusItem.getTaskState().equals(TaskStatus.DONE.getCode()) && !patrolTaskStatusOfDb.getTaskState().equals(patrolTaskStatusItem.getTaskState())) {
// 除了完成和终止状态当db状态与上报状态不一致时更新db状态
if(!Arrays.asList(TaskStatus.DONE, TaskStatus.HALTED).contains(patrolTaskStatusItem.getTaskState()) && !patrolTaskStatusOfDb.getTaskState().equals(patrolTaskStatusItem.getTaskState())) {
logger.info("GET_INFO_41 UPDATE TASK_STATE old: {} TO new: {}", patrolTaskStatusOfDb.getTaskState(), patrolTaskStatusItem.getTaskState());
patrolTaskStatusOfDb.setTaskState(patrolTaskStatusItem.getTaskState());
// 如果上报状态为终止或超期限制状态时需更新终止时间


+ 32
- 9
inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/service/AnalyseRequestServiceImpl.java View File

@ -46,6 +46,9 @@ public class AnalyseRequestServiceImpl implements IAnalyseRequestService {
private static final Set<String> METER_TYPES = new HashSet<>(Arrays.asList(
AlgConstants.METER
));
private static final Set<String> GIS_METER_TYPES = new HashSet<>(Arrays.asList(
AlgConstants.GIS_METER_2
));
@Resource
private RedisService redisService;
@Value("${task.test-mode:false}")
@ -115,6 +118,18 @@ public class AnalyseRequestServiceImpl implements IAnalyseRequestService {
return false;
}
public static boolean checkGisMeter2Type(String[] typeList) {
if (typeList == null) {
return false;
}
for (String type : typeList) {
if (GIS_METER_TYPES.contains(type)) {
return true;
}
}
return false;
}
public static void main(String[] args) {
try {
ObjectMapper mapper = new ObjectMapper();
@ -142,7 +157,7 @@ public class AnalyseRequestServiceImpl implements IAnalyseRequestService {
analyseReq.getRequestId() : UUID.randomUUID().toString().trim().replaceAll(StringUtils.DASH, StringUtils.EMPTY);
String taskPatrolId = analyseReq.getTaskPatrolId();
redisService.setCacheObject(RedisConst.REQUEST_UUID + requestId, taskPatrolId, requestTimeout, TimeUnit.DAYS);
//log.info("CALL_REMOTE_ANALYZE isFilter: {}, requestId: {}, taskPatrolId: {}", isFilter, requestId, taskPatrolId);
log.info("CALL_REMOTE_ANALYZE isFilter: {}, requestId: {}, typeList: {}", isFilter, requestId, typeList);
analyseReq.setRequestId(requestId);
String taskSetKey = AnalyseConstants.ANALYSE_TASK_REQUEST + taskPatrolId;
@ -191,6 +206,10 @@ public class AnalyseRequestServiceImpl implements IAnalyseRequestService {
log.info("ANALYSE_FILTER_URL requestId: {}, requestUrl: {}", requestId, requestUrl);
}
// 初筛读取无机人图片XMP位姿信息
if (droneXmpEnabled) {
readDroneImageXmpInfo(analyseReq);
}
} else {
// 不再使用这个redis键值
// analyseReq.getObjectList().forEach((item) -> {
@ -199,14 +218,23 @@ public class AnalyseRequestServiceImpl implements IAnalyseRequestService {
// redisService.redisTemplate.opsForSet().add(requestSetKey, item.toResultValue(type));
// }
// });
// 红外分析路径
if (checkInfraredType(typeList)) {
requestUrl = patrolTaskService.selectConfigByKey(AnalyseConstants.ANALYSIS_BIG_URL_INFRARED);
log.info("ANALYSIS_BIG_URL_INFRARED requestId: {}, requestUrl: {}", requestId, requestUrl);
} else if (checkMeterType(typeList)) {
}
// 表计读数分析路径
else if (checkMeterType(typeList)) {
requestUrl = patrolTaskService.selectConfigByKey(AnalyseConstants.ANALYSIS_BIG_URL_METER);
log.info("ANALYSIS_BIG_URL_METER requestId: {}, requestUrl: {}", requestId, requestUrl);
} else {
}
// 无人机gis_meter2读数分析路径
else if (checkGisMeter2Type(typeList)) {
requestUrl = patrolTaskService.selectConfigByKey(AnalyseConstants.ANALYSIS_BIG_URL_GIS_METER_2);
log.info("ANALYSIS_BIG_URL_GIS_METER_2 requestId: {}, requestUrl: {}", requestId, requestUrl);
}
// 默认大模型分析路径
else {
requestUrl = patrolTaskService.selectConfigByKey(AnalyseConstants.ANALYSIS_BIG_URL);
log.info("DEFAULT ANALYSIS_BIG_URL requestId: {}, requestUrl: {}", requestId, requestUrl);
}
@ -233,11 +261,6 @@ public class AnalyseRequestServiceImpl implements IAnalyseRequestService {
delayQueueService.submitRequest(AnalyseConstants.ALGORITHM_REQUEST_DELAY_QUEUE, analyseReq.getRequestId(), requestTimeout, TimeUnit.DAYS);
}
// 读取无机人图片XMP位姿信息
if (droneXmpEnabled) {
readDroneImageXmpInfo(analyseReq);
}
if (retryDelegate.callRemoteAnalyseService(analyseReq)) {
log.info("CALL_REMOTE_ANALYSE SUCCESS, taskPatrolId: {}, requestId: {}",
analyseReq.getTaskPatrolId(),


Loading…
Cancel
Save