Browse Source

Recover Timer

master
lijiuwei 8 months ago
parent
commit
c3e0e931b6
5 changed files with 507 additions and 11 deletions
  1. +1
    -0
      inspect-base/inspect-base-core/src/main/java/com/inspect/base/core/constant/RedisConst.java
  2. +494
    -0
      inspect-job/src/main/java/com/inspect/job/task/JobMainTask.java
  3. +2
    -2
      inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/controller/ResultAnalysisController.java
  4. +9
    -9
      inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/controller/PatrolResultController.java
  5. +1
    -0
      inspect-main/inspect-main-task/src/main/java/com/inspect/taskstatus/controller/PatrolTaskStatusController.java

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

@ -5,6 +5,7 @@ public class RedisConst {
public static final String TASK_CODE = "TASK_CODE@";//已经和taskcode关联
public static final String REQUEST_UUID = "REQUEST_UUID@";//已经和uuid关联
public static final String TASK_PATROL_ID_EX = "TASK+PATROL+ID@";//已经和taskcode关联
public static final String TASK_PATROL_ID = "TASK_PATROL_ID";//应该没用到
public static final String TASK_PATROL_STATE = "TASK_PATROL_STATE";//应该没用到


+ 494
- 0
inspect-job/src/main/java/com/inspect/job/task/JobMainTask.java View File

@ -1115,4 +1115,498 @@ public class JobMainTask {
PatrolTaskExecRecord record = taskExecClient.selectPatrolTaskExecRecordByTaskPatrolId(patrolId);
return record != null && TaskStatus.RUNNING.getCode().equals(record.getTaskState());
}
@SuppressWarnings({"unused"})
public void generalTask() {
log.info("***************************** JobTaskTimer generalTask *************************************");
if (shaoXinBigModel.isSwitchStatus()) {
log.info("[GABRIEL][BIG-MODEL] gathering temporary handling, need to close nacos bigSwitch");
redisService.redisTemplate.opsForValue().set(this.BIG_FILE_POINT, -1);
}
boolean isCycle = false;
boolean isInterval = false;
String[] cycleExecuteTime = new String[3];
String currentWeek = getWeekOfDate(new Date());
Calendar now = Calendar.getInstance();
int day = DateUtils.getDayInt();
int hour = DateUtils.getHourInt();
int minute = DateUtils.getMinuteInt();
Date d = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
try {
List<PatrolTask> patrolTaskList = taskExecClient.selectTaskList(PatrolTask.builder().isEnable(TASK_ENABLE).build());
log.info(Color.GREEN + "[GABRIEL] {inspect-main} selectTaskList task count: {}" + Color.END, patrolTaskList.size());
for (PatrolTask task : patrolTaskList) {
if (TASK_TYPE_SILENCE.equals(task.getType()) || TASK_TYPE_LINKAGE.equals(task.getType())) {
continue;
}
List<PatrolTaskExecRecord> patrolTaskExecRecordList =
taskExecClient.selectCameraPatrolTaskExecRecordList(task.getDevNo(), Collections.singletonList(TaskStatus.RUNNING.getCode()));
if (!patrolTaskExecRecordList.isEmpty()) {
String time = "";
String[] intervalExecuteTime;
if (isCycle) {
int i;
String[] cycleExecuteTimes;
String week;
if (StringUtils.isNotEmpty(task.getCycleMonth())) {
intervalExecuteTime = task.getCycleMonth().split(StringUtils.COMMA);
cycleExecuteTimes = task.getCycleMonth().split(StringUtils.COMMA);
for (i = 0; i < intervalExecuteTime.length; ++i) {
week = intervalExecuteTime[i];
time = cycleExecuteTimes[i].replaceAll(StringUtils.COLON, StringUtils.EMPTY);
if (day == Integer.parseInt(week) && task.getCycleExecuteTime() != null) {
redisService.setCacheObject(RedisConst.TASK_PATROL_ID_EX + task.getDevNo() + "_" + task.getTaskCode() + "_" + sdf.format(d) + time, task);
}
}
} else if (StringUtils.isNotEmpty(task.getCycleWeek())) {
intervalExecuteTime = task.getCycleWeek().split(StringUtils.COMMA);
cycleExecuteTimes = task.getCycleExecuteTime().split(StringUtils.COMMA);
for (i = 0; i < intervalExecuteTime.length; ++i) {
week = intervalExecuteTime[i];
time = cycleExecuteTimes[i].replaceAll(StringUtils.COLON, StringUtils.EMPTY);
if (currentWeek.equals(week)) {
redisService.setCacheObject(RedisConst.TASK_PATROL_ID_EX + task.getDevNo() + "_" + task.getTaskCode() + "_" + sdf.format(d) + time, task);
}
}
}
} else if (isInterval) {
intervalExecuteTime = task.getIntervalExecuteTime().split(StringUtils.COLON);
int j;
if ("1".equals(task.getIntervalType())) {
for (j = 0; j < task.getIntervalNumber(); ++j) {
if (j != 0) {
intervalExecuteTime[0] = String.valueOf(Integer.parseInt(intervalExecuteTime[0]) + 1);
}
time = hour + minute + cycleExecuteTime[2];
redisService.setCacheObject(RedisConst.TASK_PATROL_ID_EX + task.getDevNo() + "_" + task.getTaskCode() + "_" + sdf.format(d) + time, task);
}
} else if ("2".equals(task.getIntervalType())) {
for (j = 0; j < task.getIntervalNumber(); ++j) {
if (j != 0) {
intervalExecuteTime[0] = String.valueOf(Integer.parseInt(intervalExecuteTime[0]) + 1);
}
redisService.setCacheObject(RedisConst.TASK_PATROL_ID_EX + task.getDevNo() + "_" + task.getTaskCode() + "_" + sdf.format(d) + time, task);
}
}
}
} else {
long current = 0L;
long fixedStart = 1L;
patrolTaskExecRecordList = taskExecClient.selectCameraPatrolTaskExecRecordList(task.getDevNo(), Arrays.asList(TaskStatus.DONE.getCode(), TaskStatus.PAUSED.getCode()));
if (!patrolTaskExecRecordList.isEmpty()) {
PatrolTaskExecRecord patrolTaskExecRecord = patrolTaskExecRecordList.get(patrolTaskExecRecordList.size() - 1);
current = TimeUnit.MILLISECONDS.toMinutes(System.currentTimeMillis());
fixedStart = TimeUnit.MILLISECONDS.toMinutes(patrolTaskExecRecord.getStartTime().getTime());
}
if (current != fixedStart) {
PatrolPresetPos patrolPresetPos = new PatrolPresetPos();
PatrolPresetAction patrolPresetAction = new PatrolPresetAction();
PatrolTaskInfo patrolTaskInfo = new PatrolTaskInfo();
patrolTaskInfo.setTaskMajorId(String.valueOf(task.getTaskId()));
patrolTaskInfo.setDevNo(task.getDevNo());
if (task.getFixedStartTime() != null
&& ExecStatus.REGULAR.getCode().equals(task.getExecutionStatus())) {
isCycle = false;
isInterval = false;
long currentMinutes = TimeUnit.MILLISECONDS.toMinutes(System.currentTimeMillis());
long fixedStartMinutes = TimeUnit.MILLISECONDS.toMinutes(task.getFixedStartTime().getTime());
if (currentMinutes == fixedStartMinutes) {
try {
Thread.sleep(200L);
} catch (InterruptedException interruptedException) {
interruptedException.printStackTrace();
}
startThread(patrolTaskInfo, patrolPresetPos, patrolPresetAction, task);
}
} else {
String[] intervalExecuteTime;
if (StringUtils.isNotEmpty(task.getCycleExecuteTime())
&& task.getCycleStartTime() != null
&& Integer.parseInt(sdf.format(d)) >= Integer.parseInt(sdf.format(task.getCycleStartTime()))
&& Integer.parseInt(sdf.format(d)) <= Integer.parseInt(sdf.format(task.getCycleEndTime()))
&& ExecStatus.PERIODIC.getCode().equals(task.getExecutionStatus())) {
isCycle = true;
isInterval = false;
int i;
String month;
String[] cycleExecuteTimes;
if (StringUtils.isNotEmpty(task.getCycleWeek())) {
intervalExecuteTime = task.getCycleWeek().split(StringUtils.COMMA);
cycleExecuteTimes = task.getCycleExecuteTime().split(StringUtils.COMMA);
for (i = 0; i < intervalExecuteTime.length; ++i) {
month = intervalExecuteTime[i];
if (currentWeek.equals(month)) {
cycleExecuteTime = cycleExecuteTimes[i].split(StringUtils.COLON);
startThread(patrolTaskInfo,
patrolPresetPos,
patrolPresetAction,
hour,
minute,
task,
cycleExecuteTime,
true);
}
}
} else if (StringUtils.isNotEmpty(task.getCycleMonth())) {
intervalExecuteTime = task.getCycleMonth().split(StringUtils.COMMA);
cycleExecuteTimes = task.getCycleExecuteTime().split(StringUtils.COMMA);
for (i = 0; i < intervalExecuteTime.length; ++i) {
month = intervalExecuteTime[i];
if (day == Integer.parseInt(month) && task.getCycleExecuteTime() != null) {
cycleExecuteTime = cycleExecuteTimes[i].split(StringUtils.COLON);
startThread(patrolTaskInfo,
patrolPresetPos,
patrolPresetAction,
hour,
minute,
task,
cycleExecuteTime,
true);
}
}
}
} else if (StringUtils.isNotEmpty(task.getIntervalExecuteTime())
&& task.getIntervalStartTime() != null
&& Integer.parseInt(sdf.format(d)) >= Integer.parseInt(sdf.format(task.getIntervalStartTime()))
&& Integer.parseInt(sdf.format(d)) <= Integer.parseInt(sdf.format(task.getIntervalEndTime()))
&& ExecStatus.INTERVAL.getCode().equals(task.getExecutionStatus())) {
isCycle = false;
isInterval = true;
intervalExecuteTime = task.getIntervalExecuteTime().split(StringUtils.COLON);
if ("1".equals(task.getIntervalType())) {
for (int j = 0; j < task.getIntervalNumber(); ++j) {
if (j != 0) {
intervalExecuteTime[0] = String.valueOf(Integer.parseInt(intervalExecuteTime[0]) + 1);
}
startThread(patrolTaskInfo, patrolPresetPos, patrolPresetAction, hour, minute, task, intervalExecuteTime, false);
}
} else if ("2".equals(task.getIntervalType())) {
for (int j = 0; j < task.getIntervalNumber(); ++j) {
if (j != 0) {
intervalExecuteTime[0] = String.valueOf(Integer.parseInt(intervalExecuteTime[0]) + 1);
}
startThread(patrolTaskInfo,
patrolPresetPos,
patrolPresetAction,
hour,
minute,
task,
intervalExecuteTime,
false);
}
}
}
}
}
}
}
} catch (Exception e) {
if (e instanceof RetryableException)
log.warn(Color.YELLOW + "[GABRIEL] {inspect-main} selectTaskList is not online!" + Color.END);
else
e.printStackTrace();
}
}
@SuppressWarnings({"unused"})
public void continueTask() {
log.info("***************************** JobTaskTimer continueTask *************************************");
try {
/**
* select from patrol_task_exec_record where task_state=2(running)
*/
List<PatrolTaskExecRecord> execRecords
= taskExecClient.selectAbeyancePatrolTaskExecRecordList(PatrolTaskExecRecord.builder().build());
for (PatrolTaskExecRecord execRecord : execRecords) {
threadPool.submit(() -> {
final String deviceId = execRecord.getDeviceId();
if (!StringUtils.isEmpty(deviceId)) {
log.info(Color.GREEN + "[JOB] RESUME devNo: {}, taskId: {}, deviceId: {}" + Color.END, execRecord.getDevNo(), execRecord.getTaskId(), deviceId);
prePointContinueExec(execRecord);
}
});
}
} catch (Exception e) {
if (e instanceof RetryableException) {
log.warn(Color.YELLOW + "[GABRIEL] inspect-main is not online!" + Color.END);
} else {
log.warn(Color.YELLOW + "[GABRIEL] other exception!" + Color.END);
}
}
}
private void prePointContinueExec(PatrolTaskExecRecord patrolTaskExecRecord) {
PatrolTaskInfo patrolTaskInfo = PatrolTaskInfo.builder()
.devNo(patrolTaskExecRecord.getDevNo())
.taskMajorId(patrolTaskExecRecord.getTaskCode())
.build();
List<PatrolTaskInfo> patrolTaskInfoList = taskExecClient.selectTaskInfoList(patrolTaskInfo);
/**
* 从当前正在维修表maintain_region表中查询当前正在维修的点位
* 并把这些点位排除出巡检任务
*/
List<PatrolTaskInfo> patrolTaskInfoListTemp = patrolTaskInfoMaintainAreaRemove(patrolTaskInfoList);
boolean bContinue = false;
int size = patrolTaskInfoListTemp.size();
/**
* 该任务下面的patrol_task_info中的设备点一个都没有执行(patrol_task_point_exec_record查不到任何该任务点的执行记录)
* 这种情况下当前点一定要执行prePointExec否则就会遗漏该点
*/
for (PatrolTaskInfo taskInfo : patrolTaskInfoListTemp) {
final String deviceIdOfInfo = taskInfo.getDeviceId();
if (!bContinue) {
final String deviceIdOfRecord = patrolTaskExecRecord.getDeviceId();
//log.info("[JOB] devId: {}, devId2: {}", deviceIdOfRecord, deviceIdOfInfo);
if (deviceIdOfInfo.equals(deviceIdOfRecord)) {
Long execPointId = patrolTaskExecRecord.getExecPointId();
log.info("[JOB] TASK RESUMED, LOCK IT! {}", "POINT=" + execPointId + ", NAME=" + patrolTaskExecRecord.getTaskName() + ", ID=" + patrolTaskExecRecord.getTaskPatrolId());
patrolTaskExecRecord.setDeviceId("-1");
patrolTaskExecRecord.setExecPointId(-1L);
taskExecClient.updatePatrolTaskExecRecord(patrolTaskExecRecord);
bContinue = true;
/**
* 该任务下面的patrol_task_info中的设备点一个都没有执行(patrol_task_point_exec_record查不到任何该任务点的执行记录)
* 这种情况下当前点一定要执行prePointExec否则就会遗漏该点
*/
if (execPointId == 0L) {
prePointExec(patrolTaskExecRecord, taskInfo, size);
}
}
} else {
prePointExec(patrolTaskExecRecord, taskInfo, size);
}
}
}
@SuppressWarnings({"unused"})
public void silenceTask() {
log.info("***************************** JobTaskTimer silenceTask *************************************");
PatrolTask patrolTask = new PatrolTask();
patrolTask.setType(TASK_TYPE_SILENCE);
patrolTask.setIsEnable(TASK_ENABLE);
Set<String> noRunDevices = new HashSet();
List<PatrolTask> patrolTaskList = taskExecClient.selectTaskList(patrolTask);
List<String> taskStates = new ArrayList<>();
taskStates.add(TASK_STATUS_RUN);
taskStates.add(TASK_STATUS_STOP);
Iterator<PatrolTask> iterator = patrolTaskList.iterator();
while (iterator.hasNext()) {
PatrolTask task = iterator.next();
List<PatrolTaskExecRecord> patrolTaskExecRecordList = taskExecClient.selectCameraPatrolTaskExecRecordList(task.getDevNo(), taskStates);
String key = REDIS_TASK_SILENCE_DEVICE + task.getDevNo();
if (patrolTaskExecRecordList.isEmpty()) {
if (!redisService.hasKey(key)) {
log.info("[GABRIEL] key1: {}", key);
redisService.setCacheObject(key, new Date());
} else {
Date deviceStopTime = this.redisService.getCacheObject(key);
if (CalendarUtil.expire(deviceStopTime, task.getIntervalNumber())) {
redisService.deleteObject(key);
this.log.info("silenceTask 静默任务开始执行 任务编号 :{}", task.getTaskCode());
PatrolTaskInfo patrolTaskInfo = new PatrolTaskInfo();
patrolTaskInfo.setTaskMajorId(task.getTaskId().toString());
patrolTaskInfo.setDevNo(task.getDevNo());
this.startThread(patrolTaskInfo, new PatrolPresetPos(), new PatrolPresetAction(), task);
}
}
} else if (!TASK_TYPE_SILENCE.equals((patrolTaskExecRecordList.get(0)).getTaskType())) {
noRunDevices.add(task.getDevNo());
}
}
if (!noRunDevices.isEmpty()) {
noRunDevices.forEach((devNo) -> {
redisService.deleteObject(REDIS_TASK_SILENCE_DEVICE + devNo);
});
}
}
@SuppressWarnings({"unused"})
public void linkageTask() {
log.info("***************************** JobTaskTimer linkageTask *************************************");
PatrolTask patrolTask = new PatrolTask();
patrolTask.setType(TASK_TYPE_LINKAGE);
patrolTask.setLinkageState("1");
PatrolTaskInfo patrolTaskInfo = new PatrolTaskInfo();
PatrolPresetPos patrolPresetPos = new PatrolPresetPos();
PatrolPresetAction patrolPresetAction = new PatrolPresetAction();
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
List<PatrolTask> patrolTaskList = taskExecClient.selectTaskList(patrolTask);
for (PatrolTask task : patrolTaskList) {
Date d = new Date();
PatrolTaskExecRecord patrolTaskExecRecord = new PatrolTaskExecRecord();
patrolTaskExecRecord.setTaskPatrolId(task.getDevNo() + "_" + task.getTaskCode() + "_" + sdf.format(d));
patrolTaskExecRecord.setOldTaskPatrolId(task.getTaskCode() + "_" + sdf.format(d));
patrolTaskExecRecord.setTaskName(task.getTaskName());
patrolTaskExecRecord.setTaskCode(task.getTaskCode());
patrolTaskExecRecord.setTaskState(TASK_STATUS_RUN);
patrolTaskExecRecord.setPlanStartTime(task.getCycleStartTime());
patrolTaskExecRecord.setStartTime(new Date());
patrolTaskExecRecord.setTaskProgress("");
patrolTaskExecRecord.setEndTime(task.getCycleEndTime());
patrolTaskExecRecord.setDescription("");
patrolTaskExecRecord.setDevNo(task.getDevNo());
patrolTaskExecRecord.setTaskType(task.getType());
patrolTaskExecRecord.setTaskPriority(task.getPriority());
patrolTaskExecRecord.setTaskId(task.getTaskId());
patrolTaskExecRecord.setStationName(task.getStationName());
patrolTaskExecRecord.setStationCode(task.getStationCode());
log.info("linkageTask 联动任务执行 任务编号 :{}", task.getTaskCode());
taskExecClient.addPatrolTaskExecRecord(patrolTaskExecRecord);
log.info("添加 联动任务执行 主表信息 完成 :{}", "任务执行id TaskPatrolledId :" + patrolTaskExecRecord.getTaskPatrolId());
patrolTaskInfo.setTaskMajorId(task.getTaskId().toString());
patrolTaskInfo.setDevNo(task.getDevNo());
List<PatrolTaskInfo> patrolTaskInfoList = taskExecClient.selectTaskInfoList(patrolTaskInfo);
linkagePrePointExceControl(patrolTaskExecRecord, patrolPresetPos, patrolPresetAction, patrolTaskInfoList);
task.setLinkageState("2");
taskExecClient.updatePatrolTask(task);
}
}
private void linkagePrePointExceControl(PatrolTaskExecRecord patrolTaskExecRecord, PatrolPresetPos patrolPresetPos, PatrolPresetAction patrolPresetAction, List<PatrolTaskInfo> patrolTaskInfoList) {
PatrolTaskExecRecord taskExecRecord = this.taskExecClient.selectPatrolTaskExecRecordByTaskPatrolId(patrolTaskExecRecord.getTaskPatrolId());
if (taskExecRecord != null && TASK_STATUS_RUN.equals(taskExecRecord.getTaskState())) {
boolean continueExce = true;
int patrolTaskInfoListSize = patrolTaskInfoList.size();
for (int ii = 0; ii < patrolTaskInfoListSize; ++ii) {
PatrolTaskInfo taskInfo = patrolTaskInfoList.get(ii);
taskExecRecord = this.taskExecClient.selectPatrolTaskExecRecordByTaskPatrolId(patrolTaskExecRecord.getTaskPatrolId());
if (taskExecRecord != null && (TASK_STATUS_STOP.equals(taskExecRecord.getTaskState()) || "4".equals(taskExecRecord.getTaskState()))) {
continueExce = false;
}
log.info("联动任务执行预置位 信息 :{}", "DeviceId :" + taskInfo.getDeviceId() + ",DevNo:" + taskInfo.getDevNo());
prePointExec(taskExecRecord, taskInfo, patrolTaskInfoListSize);
}
}
}
@SuppressWarnings({"unused"})
public void makeEveryDayTask() {
log.info("***************************** JobTaskTimer makeEveryDayTask *************************************");
try {
taskExecClient.makeCurrentDayTask();
} catch (Exception e) {
log.info("[JOB] makeCurrentDayTask: {}", e.getMessage());
}
}
// private String getTaskPatrolId(final PatrolTask patrolTask) {
// String time = DateUtils.format(DateUtils.yyyyMMddHHmmss, patrolTask.getFixedStartTime());
// return patrolTask.getDevNo() + "_" + patrolTask.getTaskCode() + "_" + time;
// }
//
// private String getOldTaskPatrolId(final PatrolTask patrolTask) {
// String time = DateUtils.format(DateUtils.yyyyMMddHHmmss, patrolTask.getFixedStartTime());
// return patrolTask.getTaskCode() + "_" + time + "_" + time;
// }
@SuppressWarnings({"unused"})
public void execEveryDayTask(List<PatrolTask> patrolTaskList) {
log.info("***************************** JobTaskTimer execEveryDayTask *************************************");
// setRedisRecordCount(patrolTaskList.size());
// for (PatrolTask patrolTask : patrolTaskList) {
// List<PatrolTaskInfo> taskInfos = getInfosByRecord(PatrolTaskExecRecord.builder().devNo(patrolTask.getDevNo()).taskId(patrolTask.getTaskId()).build());
// final String taskPatrolId = getTaskPatrolId(patrolTask);
// final String oldTaskPatrolId = getOldTaskPatrolId(patrolTask);
// log.info(Color.GREEN + "[JOB] NEW EXEC RECORD: {}, OLD: {}" + Color.END, taskPatrolId, oldTaskPatrolId);
// PatrolTaskExecRecord patrolTaskExecRecord = PatrolTaskExecRecord.builder()
// .taskPatrolId(taskPatrolId)
// .oldTaskPatrolId(oldTaskPatrolId)
// .taskName(patrolTask.getTaskName())
// .taskCode(patrolTask.getTaskCode())
// .taskState(TaskStatus.RUNNING.getCode())
// .planStartTime(patrolTask.getCycleStartTime())
// .startTime(new Date())
// .taskProgress("0")
// .endTime(patrolTask.getCycleEndTime())
// .description("")
// .devNo(patrolTask.getDevNo())
// .taskType(patrolTask.getType())
// .taskPriority(patrolTask.getPriority())
// .taskId(patrolTask.getTaskId())
// .stationName(patrolTask.getStationName())
// .stationCode(patrolTask.getStationCode())
// .deviceId("0")
// .execPointId(0L)
// .totalNumber(taskInfos.isEmpty() ? 1 : taskInfos.size())
// .build();
// try {
// taskExecClient.addPatrolTaskExecRecord(patrolTaskExecRecord);
// taskExecClient.updatePatrolTaskStatus(patrolTask);
// } catch (Exception e) {
// e.printStackTrace();
// }
// threadPool.submit(() -> {
// log.info(Color.MAGENTA + "[JOB] THREAD START devNo: {}, taskId: {}" + Color.END, patrolTaskExecRecord.getDevNo(), patrolTaskExecRecord.getTaskId());
// prePointExecImmediate(patrolTaskExecRecord);
// log.info(Color.MAGENTA + "[JOB] THREAD END devNo: {}, taskId: {}" + Color.END, patrolTaskExecRecord.getDevNo(), patrolTaskExecRecord.getTaskId());
// });
// }
}
// private void incrementRedisRecordCounter() {
// Integer redisRecCnt = redisService.getCacheObject(RedisConst.TASK_RECORD_CNT);
// if (redisRecCnt == null) {
// redisRecCnt = 1;
// redisService.setCacheObject(RedisConst.TASK_RECORD_CNT, redisRecCnt);
// } else {
// redisRecCnt++;
// redisService.setCacheObject(RedisConst.TASK_RECORD_CNT, redisRecCnt);
// }
//
// log.info(Color.GREEN + "[JOB] redisRecCnt: {}" + Color.END, redisRecCnt);
// }
@SuppressWarnings({"unused"})
public void execRepeatDayTask(List<PatrolTask> patrolTaskList) {
log.info("***************************** JobTaskTimer execRepeatDayTask *************************************");
// for (PatrolTask patrolTask : patrolTaskList) {
// final String taskPatrolId = getTaskPatrolId(patrolTask);
// final String oldTaskPatrolId = getOldTaskPatrolId(patrolTask);
// log.info(Color.GREEN + "[JOB] REPEAT EXEC RECORD: {}, OLD: {}" + Color.END, taskPatrolId, oldTaskPatrolId);
// List<PatrolTaskExecRecord> taskExecRecords =
// taskExecClient.selectPatrolTaskExecRecordList(PatrolTaskExecRecord.builder()
// .taskPatrolId(taskPatrolId)
// .oldTaskPatrolId(oldTaskPatrolId)
// .build());
// if (taskExecRecords.isEmpty()) continue;
//
// PatrolTaskExecRecord execRecord = taskExecRecords.get(0);//理论上来说只能有一条
// int finish = execRecord.getFinishNumber();
// int total = execRecord.getTotalNumber();
// int times = execRecord.getRebootTimes();
// if (finish < total) {
// log.info(Color.GREEN + "[JOB] REPEAT EXEC RECORD: id: {}, finish: {}, total: {}, times: {}, progress: {}" + Color.END, execRecord.getTaskPatrolId(), finish, total, times, execRecord.getTaskProgress());
// incrementRedisRecordCounter();
// threadPool.submit(() -> {
// log.info(Color.MAGENTA + "[JOB] REPEAT START devNo: {}, taskId: {}" + Color.END, execRecord.getDevNo(), execRecord.getTaskId());
// prePointExecImmediate(execRecord);
// log.info(Color.MAGENTA + "[JOB] REPEAT END devNo: {}, taskId: {}" + Color.END, execRecord.getDevNo(), execRecord.getTaskId());
// });
// }
// }
}
}

+ 2
- 2
inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/controller/ResultAnalysisController.java View File

@ -403,9 +403,9 @@ public class ResultAnalysisController extends BaseController {
analysis.setResStatus(patrolTaskInfo.getStatus());
analysis.setSuggestion(patrolTaskInfo.getSuggestion());
if ("1".equals(patrolTaskInfo.getStatus())) {
analysis.setResultType("0");
analysis.setResultType("0");//告警
} else if ("2".equals(patrolTaskInfo.getStatus())) {
analysis.setResultType("1");
analysis.setResultType("1");//结果正常
}
resultAnalysisService.updateResultAnalysis(analysis);


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

@ -700,8 +700,8 @@ public class PatrolResultController extends BaseController {
PatrolTaskFtp ftp = patrolTaskFtpService.selectPatrolTaskFtpByLineId(2L);
String ANALYSIS_URL = patrolTaskService.selectConfigByKey("ANALYSIS_URL");
String BIG_ANALYSIS_URL = patrolTaskService.selectConfigByKey("BIG_ANALYSIS_URL");
String MAJOR_URL = patrolTaskService.selectConfigByKey("MAJOR_URL");
String TASK_PORT = patrolTaskService.selectConfigByKey("TASK_PORT");
String MAJOR_URL = patrolTaskService.selectConfigByKey("MAJOR_URL");//requestHostIp 分析结果反馈ip地址
String TASK_PORT = patrolTaskService.selectConfigByKey("TASK_PORT");//requestHostPort 分析结果反馈端口
logger.info("callRemoteAlgorithm ftpInfo: {}, ANALYSIS_URL: {}, BIG_ANALYSIS_URL: {}, MAJOR_URL: {}, TASK_PORT: {}",
ftp, ANALYSIS_URL, BIG_ANALYSIS_URL, MAJOR_URL, TASK_PORT);
@ -709,9 +709,9 @@ public class PatrolResultController extends BaseController {
String ids = "";
for (PatrolResult patrolResult : patrolResultList) {
List<AnalyseReqItem> filterList = new ArrayList<>(); //初筛
List<AnalyseReqItem> bigModelList = new ArrayList<>(); //大模型
List<AnalyseReqItem> infraredList = new ArrayList<>();//红外 根据最新做法红外要归到大模型里面由大模型来调用需要调整如下逻辑-20250423
List<AnalyseReqItem> filterList = new ArrayList<>(); //初筛算法列表
List<AnalyseReqItem> bigModelList = new ArrayList<>(); //大模型算法列表
List<AnalyseReqItem> infraredList = new ArrayList<>();//红外摄像机算法列表 根据最新做法红外要归到大模型里面由大模型来调用需要调整如下逻辑-20250423
String image = patrolResult.getFilePath().replace(ftp.getFtpPath() + "/", StringUtils.EMPTY);
String imageType = patrolResult.getFileType();
AnalyseReqItem analyseReqItem = new AnalyseReqItem();
@ -800,13 +800,13 @@ public class PatrolResultController extends BaseController {
}
Map<String, String> judgeMap = resultAnalysisService.selectPointInfoById(patrolResult.getDeviceId());
logger.info("callRemoteAlgorithm judgeMap: {}", judgeMap.toString());
logger.info("callRemoteAlgorithm judgeMap: {}", judgeMap.toString());//basedata_patrolpoint field->value map
String filePanpath = "";
if (StringUtils.isNotEmpty(judgeMap.get("dis_ref_picture_path"))) {
if (StringUtils.isNotEmpty(judgeMap.get("dis_ref_picture_path"))) {//basedata_patrolpoint里该字段的意思是判别基准图片路径
filePanpath = judgeMap.get("dis_ref_picture_path");
}
analyseReqItem.setImageNormalUrlPath(filePanpath);
analyseReqItem.setImageNormalUrlPath(filePanpath);//总是为空
List<AlgInfo> judgeList = algInfoList.stream().filter((item) -> {
return item.getAlgName().contains("判别");
}).collect(Collectors.toList());
@ -849,7 +849,7 @@ public class PatrolResultController extends BaseController {
}
}
logger.info("callRemoteAlgorithm infraredList.isEmpty(): {}", infraredList.isEmpty());
logger.info("callRemoteAlgorithm infraredList.isEmpty(): {}", infraredList.isEmpty());//永远为true
if (!infraredList.isEmpty() && "true".equals(pictureFrame)) {
String uuid = UUID.randomUUID().toString().trim().replaceAll(StringUtils.DASH, StringUtils.EMPTY);
redisService.setCacheObject(RedisConst.REQUEST_UUID + uuid, patrolResultList.get(0).getTaskPatrolledId(), 1L, TimeUnit.DAYS);


+ 1
- 0
inspect-main/inspect-main-task/src/main/java/com/inspect/taskstatus/controller/PatrolTaskStatusController.java View File

@ -609,6 +609,7 @@ public class PatrolTaskStatusController extends BaseController {
}
//有何作用?
private void extracted(PatrolTask patrolTask) throws InterruptedException {
Thread.sleep(20000L);
String taskCode = redisService.getCacheObjectOfTask(RedisConst.TASK_CURRENT_CODE, String.valueOf(patrolTask.getTaskId()));


Loading…
Cancel
Save