From 9130ed1371826cf023accd1d8628a6fdbaffd8a2 Mon Sep 17 00:00:00 2001 From: htjcAdmin Date: Mon, 30 Jun 2025 17:38:19 +0800 Subject: [PATCH] =?UTF-8?q?/*=E7=AE=97=E6=B3=95=E7=AB=AF=E8=BF=9B=E5=BA=A6?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=E5=BC=80=E5=8F=91*/?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../inspect/job/client/TaskExecClient.java | 2 + .../job/domain/task/PatrolTaskExecRecord.java | 1 + .../com/inspect/job/task/JobMainTask.java | 43 +++++++++++++------ .../controller/PatrolTaskExecController.java | 5 +++ .../service/impl/AnalysisServiceImpl.java | 8 +++- .../controller/PatrolResultController.java | 4 +- .../taskinfo/mapper/PatrolTaskInfoMapper.java | 2 + .../service/IPatrolTaskInfoService.java | 2 + .../impl/PatrolTaskInfoServiceImpl.java | 4 ++ .../mapper/task/PatrolTaskInfoMapper.xml | 6 +++ 10 files changed, 62 insertions(+), 15 deletions(-) diff --git a/inspect-job/src/main/java/com/inspect/job/client/TaskExecClient.java b/inspect-job/src/main/java/com/inspect/job/client/TaskExecClient.java index 7f3639d..707f7b3 100644 --- a/inspect-job/src/main/java/com/inspect/job/client/TaskExecClient.java +++ b/inspect-job/src/main/java/com/inspect/job/client/TaskExecClient.java @@ -110,4 +110,6 @@ public interface TaskExecClient { @PostMapping({"/exec/getAlgTypeListByPatrolPointId"}) Map getAlgTypeListByPatrolPointId(final String patrolPointId); + @PostMapping({"/exec/getAlgSubtypeIdsByPatrolPointId"}) + String getAlgSubtypeIdsByPatrolPointId(final String patrolPointId); } diff --git a/inspect-job/src/main/java/com/inspect/job/domain/task/PatrolTaskExecRecord.java b/inspect-job/src/main/java/com/inspect/job/domain/task/PatrolTaskExecRecord.java index d8d07e8..76c2ace 100644 --- a/inspect-job/src/main/java/com/inspect/job/domain/task/PatrolTaskExecRecord.java +++ b/inspect-job/src/main/java/com/inspect/job/domain/task/PatrolTaskExecRecord.java @@ -48,6 +48,7 @@ public class PatrolTaskExecRecord extends BaseEntity { private String manualPauseState; private String oldTaskPatrolId; private Integer totalNumber; + private Integer totalAlgorithmNumber; private Integer finishNumber; private Integer cursorNumber; private Integer rebootTimes; diff --git a/inspect-job/src/main/java/com/inspect/job/task/JobMainTask.java b/inspect-job/src/main/java/com/inspect/job/task/JobMainTask.java index 41b0c76..6146bfb 100644 --- a/inspect-job/src/main/java/com/inspect/job/task/JobMainTask.java +++ b/inspect-job/src/main/java/com/inspect/job/task/JobMainTask.java @@ -648,7 +648,7 @@ public class JobMainTask { String patrolId = taskExecRecord.getTaskPatrolId(); String[] ids = patrolId.split(StringUtils.UNDERLINE); String taskPatrolIdRemote = ids[1] + "_" + ids[2]; - callRemoteSendMsgCtrlMode(taskPatrolIdRemote, taskExecRecord.getTotalNumber(), pointExecRecord);/*上报巡视结果*/ + callRemoteSendMsgCtrlMode(taskPatrolIdRemote, taskExecRecord.getTotalAlgorithmNumber(), pointExecRecord);/*上报巡视结果*/ } } @@ -795,13 +795,13 @@ public class JobMainTask { List finishedInfos = taskExecClient.selectPatrolTaskPointExecRecordList(PatrolTaskPointExecRecord.builder().oldTaskPatrolledId(execRecord.getOldTaskPatrolId()).build()); String totalProgress = decimalFormatNum(finishedInfos.size(), infoListSize); log.info("totalProgress: {}, finish: {}, total: {}", totalProgress, finishedInfos.size(), infoListSize); - callRemoteSendMsgRunMode( - execRecord.getTaskCode(), - execRecord.getTaskName(), - execRecord.getTaskPatrolId(), - totalProgress, - TaskStatus.DONE.getCode()/*点位全部执行成功,上报进度100%*/ - ); +// callRemoteSendMsgRunMode( +// execRecord.getTaskCode(), +// execRecord.getTaskName(), +// execRecord.getTaskPatrolId(), +// totalProgress, +// TaskStatus.DONE.getCode()/*点位全部执行成功,上报进度100%*/ +// ); final Integer redisRecCnt = redisService.getCacheObjectOfTask(RedisConst.TASK_RECORD_CNT, execRecord.getTaskCode()); log.info("execRecordCounter: {}, redisRecCnt: {}", execRecordCounter, redisRecCnt); if (execRecordCounter == redisRecCnt) { // 最后一个record @@ -815,7 +815,7 @@ public class JobMainTask { // List totalInfos = getInfosByRecord(execRecord); List finishedInfos = taskExecClient.selectPatrolTaskPointExecRecordList(PatrolTaskPointExecRecord.builder().oldTaskPatrolledId(execRecord.getOldTaskPatrolId()).build()); String totalProgress = decimalFormatNum(finishedInfos.size(), infoListSize); - log.info("totalProgress: {}, finish: {}, total: {}", totalProgress, finishedInfos.size(), infoListSize); + log.info("finish not equal total totalProgress: {}, finish: {}, total: {}", totalProgress, finishedInfos.size(), infoListSize); callRemoteSendMsgRunMode( execRecord.getTaskCode(), execRecord.getTaskName(), @@ -824,7 +824,7 @@ public class JobMainTask { TaskStatus.DONE.getCode()/*点位全部执行成功,上报进度100%*/ ); final int redisRecCnt = redisService.getCacheObjectOfTask(RedisConst.TASK_RECORD_CNT, execRecord.getTaskCode()); - log.info("execRecordCounter: {}, redisRecCnt: {}", execRecordCounter, redisRecCnt); + log.info("finish not equal total execRecordCounter: {}, redisRecCnt: {}", execRecordCounter, redisRecCnt); if (execRecordCounter == redisRecCnt) { resetRecordCounter(execRecord.getTaskCode()); resetRedisCurrentCode(execRecord.getTaskCode()); @@ -1160,16 +1160,31 @@ public class JobMainTask { // } // } + private int calcTaskAlgorithmTotalNumber(List patrolTaskInfoList) { + int totalAlgorithmNumber = 0; + for(PatrolTaskInfo patrolTaskInfo : patrolTaskInfoList) { + String result = taskExecClient.getAlgSubtypeIdsByPatrolPointId(patrolTaskInfo.getDeviceId()); + if(StringUtils.isNotEmpty(result)) { + String[] algSubtypeIds = result.split(StringUtils.COMMA); + totalAlgorithmNumber += algSubtypeIds.length; + } + } + + return totalAlgorithmNumber; + } private void prePointExecImmediate(final PatrolTaskExecRecord patrolTaskExecRecord, List patrolTaskInfoList) { Map> deviceMap = new HashMap<>(); for (PatrolTaskInfo patrolTaskInfo : patrolTaskInfoList) { deviceMap.computeIfAbsent(patrolTaskInfo.getDeviceCode(), k -> new ArrayList<>()).add(patrolTaskInfo); } + int totalAlgorithmNumber = calcTaskAlgorithmTotalNumber(patrolTaskInfoList); + patrolTaskExecRecord.setTotalAlgorithmNumber(totalAlgorithmNumber); + asyncTaskPatrolPointCnt.set(0); int batchSize = taskBatchSize; int total = patrolTaskInfoList.size(); - log.info(Color.CYAN + "threadId: {}, batchSize: {}, total: {}" + Color.END, Thread.currentThread().getId(), batchSize, total); + log.info(Color.CYAN + "threadId: {}, batchSize: {}, total: {}, totalAlgorithmNumber: {}" + Color.END, Thread.currentThread().getId(), batchSize, total, totalAlgorithmNumber); List currentGroup = new ArrayList<>(); List> futures = new ArrayList<>(); int index = 1; @@ -1337,7 +1352,11 @@ public class JobMainTask { } private String decimalFormatNum(int current, int all) { - DecimalFormat nf = new DecimalFormat("#"); + if (all == 0) { + return "0.0"; // 防止除以0 + } + + DecimalFormat nf = new DecimalFormat("0.0"); nf.setMaximumIntegerDigits(3); float decimalFormatNum = (float) (current) / (float) all; if (decimalFormatNum > 1) { diff --git a/inspect-main/inspect-main-task-exec/src/main/java/com/inspect/exec/controller/PatrolTaskExecController.java b/inspect-main/inspect-main-task-exec/src/main/java/com/inspect/exec/controller/PatrolTaskExecController.java index 042b265..3e24c96 100644 --- a/inspect-main/inspect-main-task-exec/src/main/java/com/inspect/exec/controller/PatrolTaskExecController.java +++ b/inspect-main/inspect-main-task-exec/src/main/java/com/inspect/exec/controller/PatrolTaskExecController.java @@ -884,6 +884,11 @@ public class PatrolTaskExecController extends BaseController { return patrolResultService.selectAlgorithmType(patrolPointId); } + @PostMapping({"/getAlgSubtypeIdsByPatrolPointId"}) + public String getAlgSubtypeIdsByPatrolPointId(@RequestBody String patrolPointId) { + return patrolTaskInfoService.selectAlgSubtypeIdsByPatrolPointId(patrolPointId); + } + public static void main(String[] args) throws ParseException { // PatrolTaskExecController patrolTaskExecController = new PatrolTaskExecController(null, null, null, null,null, null, null,null,null,null,null, null, null, null,null); //// List execTimes = patrolTaskExecController.getExecTimes("09:00:00","2025-06-12 00:00:00","2025-06-12 16:00:00", 1); diff --git a/inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/service/impl/AnalysisServiceImpl.java b/inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/service/impl/AnalysisServiceImpl.java index 4ed24e5..1e26102 100644 --- a/inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/service/impl/AnalysisServiceImpl.java +++ b/inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/service/impl/AnalysisServiceImpl.java @@ -14,6 +14,7 @@ import com.inspect.base.core.constant.AlgConstants; import com.inspect.base.core.constant.Color; import com.inspect.base.core.constant.RedisConst; import com.inspect.base.core.constant.Tags; +import com.inspect.base.core.enums.TaskStatus; import com.inspect.base.core.utils.DateUtils; import com.inspect.base.core.utils.StringUtils; import com.inspect.base.redis.service.RedisService; @@ -902,12 +903,17 @@ public class AnalysisServiceImpl implements IAnalysisService { if(!patrolTaskStatusList.isEmpty()) { patrolTaskStatus = patrolTaskStatusList.get(0); patrolTaskStatus.setTaskEstimatedTime(algorithmProgress); + patrolTaskStatus.setTaskState("100.0".equals(algorithmProgress) ? TaskStatus.DONE.getCode() : TaskStatus.RUNNING.getCode()); patrolTaskStatusService.updatePatrolTaskStatus(patrolTaskStatus); } } private String decimalFormatNum(int current, int all) { - DecimalFormat nf = new DecimalFormat("#"); + if (all == 0) { + return "0.0"; // 防止除以0 + } + + DecimalFormat nf = new DecimalFormat("0.0"); nf.setMaximumIntegerDigits(3); float decimalFormatNum = (float) (current) / (float) all; if (decimalFormatNum > 1) { diff --git a/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/controller/PatrolResultController.java b/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/controller/PatrolResultController.java index 97a5b79..b0d4585 100644 --- a/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/controller/PatrolResultController.java +++ b/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/controller/PatrolResultController.java @@ -1147,8 +1147,8 @@ public class PatrolResultController extends BaseController { if (patrolTaskStatusItem.getTaskName().contains("联合") && !patrolTaskStatusItem.getTaskName().startsWith(sendCode)) { patrolTaskStatusItem.setTaskName(sendCode + "-" + patrolTaskStatusItem.getTaskName()); } - logger.info(Color.CYAN + "patrol_task_status taskPatrolledId: {}, progress: {}" + Color.END, - patrolTaskStatusItem.getTaskPatrolledId(), patrolTaskStatusItem.getTaskProgress()); + logger.info(Color.CYAN + "updating patrol_task_status taskPatrolledId: {}, progress: {}, taskState: {}" + Color.END, + patrolTaskStatusItem.getTaskPatrolledId(), patrolTaskStatusItem.getTaskProgress(), patrolTaskStatusItem.getTaskState()); i = iPatrolTaskStatusService.updatePatrolTaskStatus(patrolTaskStatusItem); if ("E100-001".equals(sendCode)) { if ("100".equals(patrolTaskStatusItem.getTaskProgress())) { diff --git a/inspect-main/inspect-main-task/src/main/java/com/inspect/taskinfo/mapper/PatrolTaskInfoMapper.java b/inspect-main/inspect-main-task/src/main/java/com/inspect/taskinfo/mapper/PatrolTaskInfoMapper.java index d11d965..5919bdf 100644 --- a/inspect-main/inspect-main-task/src/main/java/com/inspect/taskinfo/mapper/PatrolTaskInfoMapper.java +++ b/inspect-main/inspect-main-task/src/main/java/com/inspect/taskinfo/mapper/PatrolTaskInfoMapper.java @@ -14,6 +14,8 @@ public interface PatrolTaskInfoMapper { PatrolTaskInfo selectTaskInfoByBaseId(String baseId); + String selectAlgSubtypeIdsByPatrolPointId(String patrolPointId); + Map selectVideoPosByPointId(String pointId); Map selectPoseInfo(@Param("devId") String devId, @Param("eqbookId") String eqBookId); diff --git a/inspect-main/inspect-main-task/src/main/java/com/inspect/taskinfo/service/IPatrolTaskInfoService.java b/inspect-main/inspect-main-task/src/main/java/com/inspect/taskinfo/service/IPatrolTaskInfoService.java index c87a232..1b684f9 100644 --- a/inspect-main/inspect-main-task/src/main/java/com/inspect/taskinfo/service/IPatrolTaskInfoService.java +++ b/inspect-main/inspect-main-task/src/main/java/com/inspect/taskinfo/service/IPatrolTaskInfoService.java @@ -11,6 +11,8 @@ public interface IPatrolTaskInfoService { PatrolTaskInfo selectTaskInfoByBaseId(String baseId); + String selectAlgSubtypeIdsByPatrolPointId(String patrolPointId); + Map selectVideoPosByPointId(String pointId); Map selectPoseInfo(String key, String key2); diff --git a/inspect-main/inspect-main-task/src/main/java/com/inspect/taskinfo/service/impl/PatrolTaskInfoServiceImpl.java b/inspect-main/inspect-main-task/src/main/java/com/inspect/taskinfo/service/impl/PatrolTaskInfoServiceImpl.java index 841152c..ca51c9f 100644 --- a/inspect-main/inspect-main-task/src/main/java/com/inspect/taskinfo/service/impl/PatrolTaskInfoServiceImpl.java +++ b/inspect-main/inspect-main-task/src/main/java/com/inspect/taskinfo/service/impl/PatrolTaskInfoServiceImpl.java @@ -29,6 +29,10 @@ public class PatrolTaskInfoServiceImpl implements IPatrolTaskInfoService { return this.patrolTaskInfoMapper.selectTaskInfoByBaseId(lineId); } + public String selectAlgSubtypeIdsByPatrolPointId(String patrolPointId) { + return this.patrolTaskInfoMapper.selectAlgSubtypeIdsByPatrolPointId(patrolPointId); + } + public Map selectVideoPosByPointId(String lineId) { return this.patrolTaskInfoMapper.selectVideoPosByPointId(lineId); } diff --git a/inspect-main/inspect-main-task/src/main/resources/mapper/task/PatrolTaskInfoMapper.xml b/inspect-main/inspect-main-task/src/main/resources/mapper/task/PatrolTaskInfoMapper.xml index 5e0f175..7bb71fd 100644 --- a/inspect-main/inspect-main-task/src/main/resources/mapper/task/PatrolTaskInfoMapper.xml +++ b/inspect-main/inspect-main-task/src/main/resources/mapper/task/PatrolTaskInfoMapper.xml @@ -147,6 +147,12 @@ where a.patrol_point_id = #{lineId} + +