Browse Source

/*算法端进度功能开发*/

master
htjcAdmin 5 months ago
parent
commit
9130ed1371
10 changed files with 62 additions and 15 deletions
  1. +2
    -0
      inspect-job/src/main/java/com/inspect/job/client/TaskExecClient.java
  2. +1
    -0
      inspect-job/src/main/java/com/inspect/job/domain/task/PatrolTaskExecRecord.java
  3. +31
    -12
      inspect-job/src/main/java/com/inspect/job/task/JobMainTask.java
  4. +5
    -0
      inspect-main/inspect-main-task-exec/src/main/java/com/inspect/exec/controller/PatrolTaskExecController.java
  5. +7
    -1
      inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/service/impl/AnalysisServiceImpl.java
  6. +2
    -2
      inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/controller/PatrolResultController.java
  7. +2
    -0
      inspect-main/inspect-main-task/src/main/java/com/inspect/taskinfo/mapper/PatrolTaskInfoMapper.java
  8. +2
    -0
      inspect-main/inspect-main-task/src/main/java/com/inspect/taskinfo/service/IPatrolTaskInfoService.java
  9. +4
    -0
      inspect-main/inspect-main-task/src/main/java/com/inspect/taskinfo/service/impl/PatrolTaskInfoServiceImpl.java
  10. +6
    -0
      inspect-main/inspect-main-task/src/main/resources/mapper/task/PatrolTaskInfoMapper.xml

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

@ -110,4 +110,6 @@ public interface TaskExecClient {
@PostMapping({"/exec/getAlgTypeListByPatrolPointId"}) @PostMapping({"/exec/getAlgTypeListByPatrolPointId"})
Map<String, String> getAlgTypeListByPatrolPointId(final String patrolPointId); Map<String, String> getAlgTypeListByPatrolPointId(final String patrolPointId);
@PostMapping({"/exec/getAlgSubtypeIdsByPatrolPointId"})
String getAlgSubtypeIdsByPatrolPointId(final String patrolPointId);
} }

+ 1
- 0
inspect-job/src/main/java/com/inspect/job/domain/task/PatrolTaskExecRecord.java View File

@ -48,6 +48,7 @@ public class PatrolTaskExecRecord extends BaseEntity {
private String manualPauseState; private String manualPauseState;
private String oldTaskPatrolId; private String oldTaskPatrolId;
private Integer totalNumber; private Integer totalNumber;
private Integer totalAlgorithmNumber;
private Integer finishNumber; private Integer finishNumber;
private Integer cursorNumber; private Integer cursorNumber;
private Integer rebootTimes; private Integer rebootTimes;


+ 31
- 12
inspect-job/src/main/java/com/inspect/job/task/JobMainTask.java View File

@ -648,7 +648,7 @@ public class JobMainTask {
String patrolId = taskExecRecord.getTaskPatrolId(); String patrolId = taskExecRecord.getTaskPatrolId();
String[] ids = patrolId.split(StringUtils.UNDERLINE); String[] ids = patrolId.split(StringUtils.UNDERLINE);
String taskPatrolIdRemote = ids[1] + "_" + ids[2]; String taskPatrolIdRemote = ids[1] + "_" + ids[2];
callRemoteSendMsgCtrlMode(taskPatrolIdRemote, taskExecRecord.getTotalNumber(), pointExecRecord);/*上报巡视结果*/
callRemoteSendMsgCtrlMode(taskPatrolIdRemote, taskExecRecord.getTotalAlgorithmNumber(), pointExecRecord);/*上报巡视结果*/
} }
} }
@ -795,13 +795,13 @@ public class JobMainTask {
List<PatrolTaskPointExecRecord> finishedInfos = taskExecClient.selectPatrolTaskPointExecRecordList(PatrolTaskPointExecRecord.builder().oldTaskPatrolledId(execRecord.getOldTaskPatrolId()).build()); List<PatrolTaskPointExecRecord> finishedInfos = taskExecClient.selectPatrolTaskPointExecRecordList(PatrolTaskPointExecRecord.builder().oldTaskPatrolledId(execRecord.getOldTaskPatrolId()).build());
String totalProgress = decimalFormatNum(finishedInfos.size(), infoListSize); String totalProgress = decimalFormatNum(finishedInfos.size(), infoListSize);
log.info("totalProgress: {}, finish: {}, total: {}", totalProgress, 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()); final Integer redisRecCnt = redisService.getCacheObjectOfTask(RedisConst.TASK_RECORD_CNT, execRecord.getTaskCode());
log.info("execRecordCounter: {}, redisRecCnt: {}", execRecordCounter, redisRecCnt); log.info("execRecordCounter: {}, redisRecCnt: {}", execRecordCounter, redisRecCnt);
if (execRecordCounter == redisRecCnt) { // 最后一个record if (execRecordCounter == redisRecCnt) { // 最后一个record
@ -815,7 +815,7 @@ public class JobMainTask {
// List<PatrolTaskInfo> totalInfos = getInfosByRecord(execRecord); // List<PatrolTaskInfo> totalInfos = getInfosByRecord(execRecord);
List<PatrolTaskPointExecRecord> finishedInfos = taskExecClient.selectPatrolTaskPointExecRecordList(PatrolTaskPointExecRecord.builder().oldTaskPatrolledId(execRecord.getOldTaskPatrolId()).build()); List<PatrolTaskPointExecRecord> finishedInfos = taskExecClient.selectPatrolTaskPointExecRecordList(PatrolTaskPointExecRecord.builder().oldTaskPatrolledId(execRecord.getOldTaskPatrolId()).build());
String totalProgress = decimalFormatNum(finishedInfos.size(), infoListSize); 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( callRemoteSendMsgRunMode(
execRecord.getTaskCode(), execRecord.getTaskCode(),
execRecord.getTaskName(), execRecord.getTaskName(),
@ -824,7 +824,7 @@ public class JobMainTask {
TaskStatus.DONE.getCode()/*点位全部执行成功,上报进度100%*/ TaskStatus.DONE.getCode()/*点位全部执行成功,上报进度100%*/
); );
final int redisRecCnt = redisService.getCacheObjectOfTask(RedisConst.TASK_RECORD_CNT, execRecord.getTaskCode()); 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) { if (execRecordCounter == redisRecCnt) {
resetRecordCounter(execRecord.getTaskCode()); resetRecordCounter(execRecord.getTaskCode());
resetRedisCurrentCode(execRecord.getTaskCode()); resetRedisCurrentCode(execRecord.getTaskCode());
@ -1160,16 +1160,31 @@ public class JobMainTask {
// } // }
// } // }
private int calcTaskAlgorithmTotalNumber(List<PatrolTaskInfo> 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<PatrolTaskInfo> patrolTaskInfoList) { private void prePointExecImmediate(final PatrolTaskExecRecord patrolTaskExecRecord, List<PatrolTaskInfo> patrolTaskInfoList) {
Map<String, List<PatrolTaskInfo>> deviceMap = new HashMap<>(); Map<String, List<PatrolTaskInfo>> deviceMap = new HashMap<>();
for (PatrolTaskInfo patrolTaskInfo : patrolTaskInfoList) { for (PatrolTaskInfo patrolTaskInfo : patrolTaskInfoList) {
deviceMap.computeIfAbsent(patrolTaskInfo.getDeviceCode(), k -> new ArrayList<>()).add(patrolTaskInfo); deviceMap.computeIfAbsent(patrolTaskInfo.getDeviceCode(), k -> new ArrayList<>()).add(patrolTaskInfo);
} }
int totalAlgorithmNumber = calcTaskAlgorithmTotalNumber(patrolTaskInfoList);
patrolTaskExecRecord.setTotalAlgorithmNumber(totalAlgorithmNumber);
asyncTaskPatrolPointCnt.set(0); asyncTaskPatrolPointCnt.set(0);
int batchSize = taskBatchSize; int batchSize = taskBatchSize;
int total = patrolTaskInfoList.size(); 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<PatrolTaskInfo> currentGroup = new ArrayList<>(); List<PatrolTaskInfo> currentGroup = new ArrayList<>();
List<CompletableFuture<Void>> futures = new ArrayList<>(); List<CompletableFuture<Void>> futures = new ArrayList<>();
int index = 1; int index = 1;
@ -1337,7 +1352,11 @@ public class JobMainTask {
} }
private String decimalFormatNum(int current, int all) { 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); nf.setMaximumIntegerDigits(3);
float decimalFormatNum = (float) (current) / (float) all; float decimalFormatNum = (float) (current) / (float) all;
if (decimalFormatNum > 1) { if (decimalFormatNum > 1) {


+ 5
- 0
inspect-main/inspect-main-task-exec/src/main/java/com/inspect/exec/controller/PatrolTaskExecController.java View File

@ -884,6 +884,11 @@ public class PatrolTaskExecController extends BaseController {
return patrolResultService.selectAlgorithmType(patrolPointId); return patrolResultService.selectAlgorithmType(patrolPointId);
} }
@PostMapping({"/getAlgSubtypeIdsByPatrolPointId"})
public String getAlgSubtypeIdsByPatrolPointId(@RequestBody String patrolPointId) {
return patrolTaskInfoService.selectAlgSubtypeIdsByPatrolPointId(patrolPointId);
}
public static void main(String[] args) throws ParseException { 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); // PatrolTaskExecController patrolTaskExecController = new PatrolTaskExecController(null, null, null, null,null, null, null,null,null,null,null, null, null, null,null);
//// List<Date> execTimes = patrolTaskExecController.getExecTimes("09:00:00","2025-06-12 00:00:00","2025-06-12 16:00:00", 1); //// List<Date> execTimes = patrolTaskExecController.getExecTimes("09:00:00","2025-06-12 00:00:00","2025-06-12 16:00:00", 1);


+ 7
- 1
inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/service/impl/AnalysisServiceImpl.java View File

@ -14,6 +14,7 @@ import com.inspect.base.core.constant.AlgConstants;
import com.inspect.base.core.constant.Color; import com.inspect.base.core.constant.Color;
import com.inspect.base.core.constant.RedisConst; import com.inspect.base.core.constant.RedisConst;
import com.inspect.base.core.constant.Tags; 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.DateUtils;
import com.inspect.base.core.utils.StringUtils; import com.inspect.base.core.utils.StringUtils;
import com.inspect.base.redis.service.RedisService; import com.inspect.base.redis.service.RedisService;
@ -902,12 +903,17 @@ public class AnalysisServiceImpl implements IAnalysisService {
if(!patrolTaskStatusList.isEmpty()) { if(!patrolTaskStatusList.isEmpty()) {
patrolTaskStatus = patrolTaskStatusList.get(0); patrolTaskStatus = patrolTaskStatusList.get(0);
patrolTaskStatus.setTaskEstimatedTime(algorithmProgress); patrolTaskStatus.setTaskEstimatedTime(algorithmProgress);
patrolTaskStatus.setTaskState("100.0".equals(algorithmProgress) ? TaskStatus.DONE.getCode() : TaskStatus.RUNNING.getCode());
patrolTaskStatusService.updatePatrolTaskStatus(patrolTaskStatus); patrolTaskStatusService.updatePatrolTaskStatus(patrolTaskStatus);
} }
} }
private String decimalFormatNum(int current, int all) { 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); nf.setMaximumIntegerDigits(3);
float decimalFormatNum = (float) (current) / (float) all; float decimalFormatNum = (float) (current) / (float) all;
if (decimalFormatNum > 1) { if (decimalFormatNum > 1) {


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

@ -1147,8 +1147,8 @@ public class PatrolResultController extends BaseController {
if (patrolTaskStatusItem.getTaskName().contains("联合") && !patrolTaskStatusItem.getTaskName().startsWith(sendCode)) { if (patrolTaskStatusItem.getTaskName().contains("联合") && !patrolTaskStatusItem.getTaskName().startsWith(sendCode)) {
patrolTaskStatusItem.setTaskName(sendCode + "-" + patrolTaskStatusItem.getTaskName()); 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); i = iPatrolTaskStatusService.updatePatrolTaskStatus(patrolTaskStatusItem);
if ("E100-001".equals(sendCode)) { if ("E100-001".equals(sendCode)) {
if ("100".equals(patrolTaskStatusItem.getTaskProgress())) { if ("100".equals(patrolTaskStatusItem.getTaskProgress())) {


+ 2
- 0
inspect-main/inspect-main-task/src/main/java/com/inspect/taskinfo/mapper/PatrolTaskInfoMapper.java View File

@ -14,6 +14,8 @@ public interface PatrolTaskInfoMapper {
PatrolTaskInfo selectTaskInfoByBaseId(String baseId); PatrolTaskInfo selectTaskInfoByBaseId(String baseId);
String selectAlgSubtypeIdsByPatrolPointId(String patrolPointId);
Map<String, String> selectVideoPosByPointId(String pointId); Map<String, String> selectVideoPosByPointId(String pointId);
Map<String, String> selectPoseInfo(@Param("devId") String devId, @Param("eqbookId") String eqBookId); Map<String, String> selectPoseInfo(@Param("devId") String devId, @Param("eqbookId") String eqBookId);


+ 2
- 0
inspect-main/inspect-main-task/src/main/java/com/inspect/taskinfo/service/IPatrolTaskInfoService.java View File

@ -11,6 +11,8 @@ public interface IPatrolTaskInfoService {
PatrolTaskInfo selectTaskInfoByBaseId(String baseId); PatrolTaskInfo selectTaskInfoByBaseId(String baseId);
String selectAlgSubtypeIdsByPatrolPointId(String patrolPointId);
Map<String, String> selectVideoPosByPointId(String pointId); Map<String, String> selectVideoPosByPointId(String pointId);
Map<String, String> selectPoseInfo(String key, String key2); Map<String, String> selectPoseInfo(String key, String key2);


+ 4
- 0
inspect-main/inspect-main-task/src/main/java/com/inspect/taskinfo/service/impl/PatrolTaskInfoServiceImpl.java View File

@ -29,6 +29,10 @@ public class PatrolTaskInfoServiceImpl implements IPatrolTaskInfoService {
return this.patrolTaskInfoMapper.selectTaskInfoByBaseId(lineId); return this.patrolTaskInfoMapper.selectTaskInfoByBaseId(lineId);
} }
public String selectAlgSubtypeIdsByPatrolPointId(String patrolPointId) {
return this.patrolTaskInfoMapper.selectAlgSubtypeIdsByPatrolPointId(patrolPointId);
}
public Map<String, String> selectVideoPosByPointId(String lineId) { public Map<String, String> selectVideoPosByPointId(String lineId) {
return this.patrolTaskInfoMapper.selectVideoPosByPointId(lineId); return this.patrolTaskInfoMapper.selectVideoPosByPointId(lineId);
} }


+ 6
- 0
inspect-main/inspect-main-task/src/main/resources/mapper/task/PatrolTaskInfoMapper.xml View File

@ -147,6 +147,12 @@
where a.patrol_point_id = #{lineId} where a.patrol_point_id = #{lineId}
</select> </select>
<select id="selectAlgSubtypeIdsByPatrolPointId" parameterType="String" resultType="String">
select a.alg_subtype_ids as algSubtypeIds
from basedata_patrolpoint a
where a.patrol_point_id = #{patrolPointId}
</select>
<select id="selectVideoPosByPointId" parameterType="String" resultType="java.util.Map"> <select id="selectVideoPosByPointId" parameterType="String" resultType="java.util.Map">
select a.* select a.*
from basedata_eqpbook a from basedata_eqpbook a


Loading…
Cancel
Save