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"})
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 oldTaskPatrolId;
private Integer totalNumber;
private Integer totalAlgorithmNumber;
private Integer finishNumber;
private Integer cursorNumber;
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[] 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<PatrolTaskPointExecRecord> 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<PatrolTaskInfo> totalInfos = getInfosByRecord(execRecord);
List<PatrolTaskPointExecRecord> 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<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) {
Map<String, List<PatrolTaskInfo>> 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<PatrolTaskInfo> currentGroup = new ArrayList<>();
List<CompletableFuture<Void>> 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) {


+ 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);
}
@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<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.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) {


+ 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)) {
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())) {


+ 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);
String selectAlgSubtypeIdsByPatrolPointId(String patrolPointId);
Map<String, String> selectVideoPosByPointId(String pointId);
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);
String selectAlgSubtypeIdsByPatrolPointId(String patrolPointId);
Map<String, String> selectVideoPosByPointId(String pointId);
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);
}
public String selectAlgSubtypeIdsByPatrolPointId(String patrolPointId) {
return this.patrolTaskInfoMapper.selectAlgSubtypeIdsByPatrolPointId(patrolPointId);
}
public Map<String, String> selectVideoPosByPointId(String 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}
</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 a.*
from basedata_eqpbook a


Loading…
Cancel
Save