Browse Source

fix:巡视任务中涉及多个设备的点位时,执行任务时会分多个进度执行

master
wangguangyuan 7 months ago
parent
commit
2b3d32ada3
3 changed files with 182 additions and 147 deletions
  1. +99
    -88
      inspect-job/src/main/java/com/inspect/job/task/JobMainTask.java
  2. +70
    -56
      inspect-main/inspect-main-task-exec/src/main/java/com/inspect/exec/controller/PatrolTaskExecController.java
  3. +13
    -3
      inspect-main/inspect-main-task/src/main/java/com/inspect/taskstatus/controller/PatrolTaskStatusController.java

+ 99
- 88
inspect-job/src/main/java/com/inspect/job/task/JobMainTask.java View File

@ -464,7 +464,7 @@ public class JobMainTask {
String paramFileName = taskPatrolId.split(StringUtils.UNDERLINE)[1] + StringUtils.UNDERLINE
+ taskPatrolId.split(StringUtils.UNDERLINE)[2] + StringUtils.UNDERLINE
+ presetPos.getPatrolPointId() + StringUtils.UNDERLINE
+ taskExecRecord.getDevNo() + ".jpg";
+ patrolTaskInfo.getDevNo() + ".jpg";
String paramFileDir = basePath + "CCD";
log.info("paramUrl: {}, paramFileName: {}, paramFileDir: {}", paramUrl, paramFileName, paramFileDir);
FtpResult ftpResult = saveFile(paramUrl, paramFileName, paramFileDir);
@ -498,12 +498,12 @@ public class JobMainTask {
paramFileName = taskPatrolId.split(StringUtils.UNDERLINE)[1] + StringUtils.UNDERLINE
+ taskPatrolId.split(StringUtils.UNDERLINE)[2] + StringUtils.UNDERLINE
+ presetPos.getPatrolPointId() + StringUtils.UNDERLINE
+ taskExecRecord.getDevNo() + "_" + temperUrlRes + ".jpg";
+ patrolTaskInfo.getDevNo() + "_" + temperUrlRes + ".jpg";
} else {
paramFileName = taskPatrolId.split(StringUtils.UNDERLINE)[1] + StringUtils.UNDERLINE
+ taskPatrolId.split(StringUtils.UNDERLINE)[2] + StringUtils.UNDERLINE
+ presetPos.getPatrolPointId() + StringUtils.UNDERLINE
+ taskExecRecord.getDevNo() + ".jpg";
+ patrolTaskInfo.getDevNo() + ".jpg";
}
String paramUrl = liveIVS_URL + "/api/v1/device/channelsnap?serial=" + presetPos.getVideoNvrCode() + "&realtime=true&code=" + presetPos.getChannelCode();
String paramFileDir = basePath + "CCD";
@ -693,7 +693,7 @@ public class JobMainTask {
}
}
private int addCursorNumber(String taskPatrolId,boolean bOk) {
private int addCursorNumber(String taskPatrolId,boolean bOk,int infoListSize) {
PatrolTaskExecRecord taskExecRecord = taskExecClient.selectPatrolTaskExecRecordByTaskPatrolId(taskPatrolId);
int total = taskExecRecord.getTotalNumber();
@ -715,10 +715,10 @@ public class JobMainTask {
taskExecRecord.setFinishNumber(success);
String taskProgress = decimalFormatNum(success, total);// task_progress=success/total -> patrol_task_exec_record
taskExecRecord.setTaskProgress(taskProgress);
List<PatrolTaskInfo> totalInfos = getInfosByRecord(taskExecRecord);
// List<PatrolTaskInfo> totalInfos = getInfosByRecord(taskExecRecord);
List<PatrolTaskPointExecRecord> finishedInfos = taskExecClient.selectPatrolTaskPointExecRecordList(PatrolTaskPointExecRecord.builder().oldTaskPatrolledId(taskExecRecord.getOldTaskPatrolId()).build());
String totalProgress = decimalFormatNum(finishedInfos.size(), totalInfos.size());// task_progress=finish/total -> patrol_task_status
log.info("totalProgress: {}, finish: {}, total: {}", totalProgress, finishedInfos.size(), totalInfos.size());
String totalProgress = decimalFormatNum(finishedInfos.size(), infoListSize);// task_progress=finish/total -> patrol_task_status
log.info("totalProgress: {}, finish: {}, total: {}", totalProgress, finishedInfos.size(), infoListSize);
callRemoteSendMsgRunMode(
taskExecRecord.getTaskCode(),
taskExecRecord.getTaskName(),
@ -750,7 +750,7 @@ public class JobMainTask {
redisService.deleteObjectOfTask(RedisConst.TASK_CURRENT_CODE, curTaskCode);
}
private void windUpRecord(String taskPatrolId) {
private void windUpRecord(String taskPatrolId,int infoListSize) {
PatrolTaskExecRecord execRecord = taskExecClient.selectPatrolTaskExecRecordByTaskPatrolId(taskPatrolId);
final int total = execRecord.getTotalNumber();
final int cursor = execRecord.getCursorNumber();
@ -764,10 +764,10 @@ public class JobMainTask {
String taskProgress = decimalFormatNum(finish, total);
execRecord.setTaskProgress(taskProgress);
execRecord.setTaskState(TaskStatus.DONE.getCode()); // 子任务在当前轮回中遍历完成标记
List<PatrolTaskInfo> totalInfos = getInfosByRecord(execRecord);
// List<PatrolTaskInfo> totalInfos = getInfosByRecord(execRecord);
List<PatrolTaskPointExecRecord> finishedInfos = taskExecClient.selectPatrolTaskPointExecRecordList(PatrolTaskPointExecRecord.builder().oldTaskPatrolledId(execRecord.getOldTaskPatrolId()).build());
String totalProgress = decimalFormatNum(finishedInfos.size(), totalInfos.size());
log.info("totalProgress: {}, finish: {}, total: {}", totalProgress, finishedInfos.size(), totalInfos.size());
String totalProgress = decimalFormatNum(finishedInfos.size(), infoListSize);
log.info("totalProgress: {}, finish: {}, total: {}", totalProgress, finishedInfos.size(), infoListSize);
callRemoteSendMsgRunMode(
execRecord.getTaskCode(),
execRecord.getTaskName(),
@ -785,10 +785,10 @@ public class JobMainTask {
} else { // 该record下的点没有全部执行成功
//设置本record的执行状态为终止
execRecord.setTaskState(TaskStatus.HALTED.getCode());
List<PatrolTaskInfo> totalInfos = getInfosByRecord(execRecord);
// List<PatrolTaskInfo> totalInfos = getInfosByRecord(execRecord);
List<PatrolTaskPointExecRecord> finishedInfos = taskExecClient.selectPatrolTaskPointExecRecordList(PatrolTaskPointExecRecord.builder().oldTaskPatrolledId(execRecord.getOldTaskPatrolId()).build());
String totalProgress = decimalFormatNum(finishedInfos.size(), totalInfos.size());
log.info("totalProgress: {}, finish: {}, total: {}", totalProgress, finishedInfos.size(), totalInfos.size());
String totalProgress = decimalFormatNum(finishedInfos.size(), infoListSize);
log.info("totalProgress: {}, finish: {}, total: {}", totalProgress, finishedInfos.size(), infoListSize);
callRemoteSendMsgRunMode(
execRecord.getTaskCode(),
execRecord.getTaskName(),
@ -827,7 +827,7 @@ public class JobMainTask {
log.info(Color.CYAN + "**************************addCursorNumber start" + Color.END);
int cursorNumber = 0;
try {
cursorNumber = addCursorNumber(taskExecRecord.getTaskPatrolId(), bOk);
cursorNumber = addCursorNumber(taskExecRecord.getTaskPatrolId(), bOk, infoListSize);
} catch (Exception e) {
log.error("error", e);
}
@ -835,7 +835,7 @@ public class JobMainTask {
if (cursorNumber == infoListSize) {// devNo下对应的点执行完毕
log.info(Color.CYAN + "**************************windUpRecord start" + Color.END);
windUpRecord(taskExecRecord.getTaskPatrolId());
windUpRecord(taskExecRecord.getTaskPatrolId(),infoListSize);
log.info(Color.CYAN + "**************************windUpRecord end" + Color.END);
}
@ -934,41 +934,45 @@ public class JobMainTask {
redisService.setCacheObjectOfTask(RedisConst.IMMEDIATELY_EXEC_TASK_TIME, patrolTask.getTaskCode(), immediatelyExecTaskTime);
redisService.setCacheObjectOfTask(RedisConst.TASK_CURRENT_CODE, patrolTask.getTaskCode(), RedisConst.TASK_CODE + patrolTask.getTaskCode() + StringUtils.AT + immediatelyExecTaskTime, 5L, TimeUnit.MINUTES);
resetRecordCounter(patrolTask.getTaskCode());
log.info("TASK REC CNT: {}", cameraPatrolTasks.size());//TASK REC CNT: 1
log.info("TASK REC CNT: {}", cameraPatrolTasks.size());//devType是2的设备数
setRedisRecordCount(patrolTask.getTaskCode(), cameraPatrolTasks.size());
List<PatrolTaskInfo> taskInfos = new ArrayList<>();
for (PatrolTask task : cameraPatrolTasks) {
List<PatrolTaskInfo> taskInfos = getInfosByRecord(PatrolTaskExecRecord.builder().devNo(task.getDevNo()).taskId(task.getTaskId()).build());
PatrolTaskExecRecord patrolTaskExecRecord = new PatrolTaskExecRecord();
Date time = task.getFixedStartTime();
String timeStr = time == null ? immediatelyExecTaskTime : DateUtils.parseDateToStr(DateUtils.yyyyMMddHHmmss, time);
patrolTaskExecRecord.setTaskPatrolId(task.getDevNo() + "_" + task.getTaskCode() + "_" + immediatelyExecTaskTime);
patrolTaskExecRecord.setOldTaskPatrolId(task.getTaskCode() + "_" + timeStr + "_" + immediatelyExecTaskTime);
patrolTaskExecRecord.setTaskName(task.getTaskName());
patrolTaskExecRecord.setTaskCode(task.getTaskCode());
patrolTaskExecRecord.setTaskState(TaskStatus.RUNNING.getCode());
patrolTaskExecRecord.setPlanStartTime(task.getCycleStartTime());
patrolTaskExecRecord.setStartTime(new Date());
patrolTaskExecRecord.setTaskProgress("0");
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());
patrolTaskExecRecord.setDeviceId("0");
patrolTaskExecRecord.setExecPointId(0L);
patrolTaskExecRecord.setTotalNumber(taskInfos.isEmpty() ? 1 : taskInfos.size());
log.info("taskName: {}, taskCode: {}, taskPatrolledId: {}",
patrolTaskExecRecord.getTaskName(), patrolTaskExecRecord.getTaskCode(), patrolTaskExecRecord.getTaskPatrolId());
taskExecClient.addPatrolTaskExecRecord(patrolTaskExecRecord);
patrolTaskInfo.setTaskMajorId(task.getTaskId().toString());
patrolTaskInfo.setDevNo(task.getDevNo());
taskExecClient.selectTaskInfoList(patrolTaskInfo);
taskExecClient.updatePatrolTaskStatus(task);
threadPool.submit(() -> prePointExecImmediate(patrolTaskExecRecord));
List<PatrolTaskInfo> infosByRecord = getInfosByRecord(PatrolTaskExecRecord.builder().devNo(task.getDevNo()).taskId(task.getTaskId()).build());
taskInfos.addAll(infosByRecord);
}
log.info("当前任务{},taskInfos.size: {}", patrolTask.getTaskName(), taskInfos.size());
String[] devNos = patrolTask.getDevNo().split(StringUtils.COMMA);
PatrolTaskExecRecord patrolTaskExecRecord = new PatrolTaskExecRecord();
Date time = patrolTask.getFixedStartTime();
String timeStr = time == null ? immediatelyExecTaskTime : DateUtils.parseDateToStr(DateUtils.yyyyMMddHHmmss, time);
patrolTaskExecRecord.setTaskPatrolId(devNos[0] + "_" + patrolTask.getTaskCode() + "_" + immediatelyExecTaskTime);// 这边暂定devNos[0]
patrolTaskExecRecord.setOldTaskPatrolId(patrolTask.getTaskCode() + "_" + timeStr + "_" + immediatelyExecTaskTime);
patrolTaskExecRecord.setTaskName(patrolTask.getTaskName());
patrolTaskExecRecord.setTaskCode(patrolTask.getTaskCode());
patrolTaskExecRecord.setTaskState(TaskStatus.RUNNING.getCode());
patrolTaskExecRecord.setPlanStartTime(patrolTask.getCycleStartTime());
patrolTaskExecRecord.setStartTime(new Date());
patrolTaskExecRecord.setTaskProgress("0");
patrolTaskExecRecord.setEndTime(patrolTask.getCycleEndTime());
patrolTaskExecRecord.setDescription("");
patrolTaskExecRecord.setDevNo(devNos[0]);
patrolTaskExecRecord.setTaskType(patrolTask.getType());
patrolTaskExecRecord.setTaskPriority(patrolTask.getPriority());
patrolTaskExecRecord.setTaskId(patrolTask.getTaskId());
patrolTaskExecRecord.setStationName(patrolTask.getStationName());
patrolTaskExecRecord.setStationCode(patrolTask.getStationCode());
patrolTaskExecRecord.setDeviceId("0");
patrolTaskExecRecord.setExecPointId(0L);
patrolTaskExecRecord.setTotalNumber(taskInfos.isEmpty() ? 1 : taskInfos.size());
log.info("taskName: {}, taskCode: {}, taskPatrolledId: {}",
patrolTaskExecRecord.getTaskName(), patrolTaskExecRecord.getTaskCode(), patrolTaskExecRecord.getTaskPatrolId());
taskExecClient.addPatrolTaskExecRecord(patrolTaskExecRecord);
// patrolTaskInfo.setTaskMajorId(task.getTaskId().toString());
// patrolTaskInfo.setDevNo(task.getDevNo());
// taskExecClient.selectTaskInfoList(patrolTaskInfo);
taskExecClient.updatePatrolTaskStatus(patrolTask);
threadPool.submit(() -> prePointExecImmediate(patrolTaskExecRecord, taskInfos));
}
private List<PatrolTaskInfo> getInfosByRecord(final PatrolTaskExecRecord record) {
@ -1052,8 +1056,8 @@ public class JobMainTask {
}
}
private void prePointExecImmediate(final PatrolTaskExecRecord patrolTaskExecRecord) {
final List<PatrolTaskInfo> patrolTaskInfoList = getInfosByRecord(patrolTaskExecRecord);
private void prePointExecImmediate(final PatrolTaskExecRecord patrolTaskExecRecord, List<PatrolTaskInfo> patrolTaskInfoList) {
// final List<PatrolTaskInfo> patrolTaskInfoList = getInfosByRecord(patrolTaskExecRecord);
//patrolTaskInfoList size: 12 devNo: camera, taskId: 10032
log.info("EXEC patrolTaskInfoList size: {} devNo: {}, taskId: {}", patrolTaskInfoList.size(), patrolTaskExecRecord.getDevNo(), patrolTaskExecRecord.getTaskId());
for (final PatrolTaskInfo taskInfo : patrolTaskInfoList) {
@ -1541,7 +1545,8 @@ public class JobMainTask {
private String getTaskPatrolId(final PatrolTask patrolTask) {
String time = DateUtils.format(DateUtils.yyyyMMddHHmmss, patrolTask.getFixedStartTime());
return patrolTask.getDevNo() + "_" + patrolTask.getTaskCode() + "_" + time;
String[] devNos = patrolTask.getDevNo().split(StringUtils.COMMA);
return devNos[0] + "_" + patrolTask.getTaskCode() + "_" + time;
}
private String getOldTaskPatrolId(final PatrolTask patrolTask) {
@ -1552,46 +1557,52 @@ public class JobMainTask {
@SuppressWarnings({"unused"})
public void execEveryDayTask(List<PatrolTask> patrolTaskList) {
log.info("***************************** JobTaskTimer execEveryDayTask with parameters *************************************");
List<PatrolTaskInfo> taskInfos = new ArrayList<>();
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.YELLOW + "[JOB] NEW EXEC RECORD: {}, OLD: {}" + Color.END, taskPatrolId, oldTaskPatrolId);
setRedisRecordCount(patrolTask.getTaskCode(), patrolTaskList.size());
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) {
log.error("error", e);
String[] devTypes = patrolTask.getDevType().split(StringUtils.COMMA);
String[] devNos = patrolTask.getDevNo().split(StringUtils.COMMA);
for (int i = 0; i < devNos.length; ++i) {
List<PatrolTaskInfo> infosByRecord = getInfosByRecord(PatrolTaskExecRecord.builder().devNo(devNos[i]).taskId(patrolTask.getTaskId()).build());
taskInfos.addAll(infosByRecord);
}
threadPool.submit(() -> {
log.info(Color.YELLOW + "[JOB] THREAD START devNo: {}, taskId: {}" + Color.END, patrolTaskExecRecord.getDevNo(), patrolTaskExecRecord.getTaskId());
prePointExecImmediate(patrolTaskExecRecord);
log.info(Color.YELLOW + "[JOB] THREAD END devNo: {}, taskId: {}" + Color.END, patrolTaskExecRecord.getDevNo(), patrolTaskExecRecord.getTaskId());
});
}
log.info("patrolTaskList.get(0): {}", patrolTaskList.get(0));
final String taskPatrolId = getTaskPatrolId(patrolTaskList.get(0));
final String oldTaskPatrolId = getOldTaskPatrolId(patrolTaskList.get(0));
log.info(Color.YELLOW + "[JOB] NEW EXEC RECORD: {}, OLD: {}" + Color.END, taskPatrolId, oldTaskPatrolId);
setRedisRecordCount(patrolTaskList.get(0).getTaskCode(), patrolTaskList.size());
PatrolTaskExecRecord patrolTaskExecRecord = PatrolTaskExecRecord.builder()
.taskPatrolId(taskPatrolId)
.oldTaskPatrolId(oldTaskPatrolId)
.taskName(patrolTaskList.get(0).getTaskName())
.taskCode(patrolTaskList.get(0).getTaskCode())
.taskState(TaskStatus.RUNNING.getCode())
.planStartTime(patrolTaskList.get(0).getCycleStartTime())
.startTime(new Date())
.taskProgress("0")
.endTime(patrolTaskList.get(0).getCycleEndTime())
.description("")
.devNo(patrolTaskList.get(0).getDevNo().split(StringUtils.COMMA)[0])
.taskType(patrolTaskList.get(0).getType())
.taskPriority(patrolTaskList.get(0).getPriority())
.taskId(patrolTaskList.get(0).getTaskId())
.stationName(patrolTaskList.get(0).getStationName())
.stationCode(patrolTaskList.get(0).getStationCode())
.deviceId("0")
.execPointId(0L)
.totalNumber(taskInfos.isEmpty() ? 1 : taskInfos.size())
.build();
try {
taskExecClient.addPatrolTaskExecRecord(patrolTaskExecRecord);
taskExecClient.updatePatrolTaskStatus(patrolTaskList.get(0));
} catch (Exception e) {
log.error("error", e);
}
threadPool.submit(() -> {
log.info(Color.YELLOW + "[JOB] THREAD START devNo: {}, taskId: {}" + Color.END, patrolTaskExecRecord.getDevNo(), patrolTaskExecRecord.getTaskId());
prePointExecImmediate(patrolTaskExecRecord, taskInfos);
log.info(Color.YELLOW + "[JOB] THREAD END devNo: {}, taskId: {}" + Color.END, patrolTaskExecRecord.getDevNo(), patrolTaskExecRecord.getTaskId());
});
}
// private void incrementRedisRecordCounter() {


+ 70
- 56
inspect-main/inspect-main-task-exec/src/main/java/com/inspect/exec/controller/PatrolTaskExecController.java View File

@ -480,7 +480,7 @@ public class PatrolTaskExecController extends BaseController {
if (StringUtils.isEmpty(task.getDevType())) {
continue;
}
// 定期执行
if (isFixedTask(task)) {
//logger.info("[TASK] REGULAR fixedDay: {}", fixedDay);
String fixedDay = DateUtils.format(DateUtils.yyyyMMdd, task.getFixedStartTime());
@ -488,7 +488,8 @@ public class PatrolTaskExecController extends BaseController {
log.debug("[GABRIEL] break the out while");
List<PatrolTask> patrolTasks = getPatrolTasks(task);
for (PatrolTask patrolTask : patrolTasks) {
PatrolTaskExecRecord taskExecRecord = patrolTaskExecRecordService.selectPatrolTaskExecRecordByTaskPatrolId(patrolTask.getDevNo() + "_" + task.getTaskCode() + "_" + DateUtils.format(DateUtils.yyyyMMddHHmmss, task.getFixedStartTime()));
String[] devNos = patrolTask.getDevNo().split(StringUtils.COMMA);
PatrolTaskExecRecord taskExecRecord = patrolTaskExecRecordService.selectPatrolTaskExecRecordByTaskPatrolId(devNos[0] + "_" + task.getTaskCode() + "_" + DateUtils.format(DateUtils.yyyyMMddHHmmss, task.getFixedStartTime()));
String key = RedisConst.TASK_CODE + task.getTaskCode() + StringUtils.AT + DateUtils.format(DateUtils.yyyyMMddHHmmss2, task.getFixedStartTime());
//log.info("[GABRIEL] key6: {}", key);
String redisValue = redisService.getCacheObject(key);
@ -498,6 +499,7 @@ public class PatrolTaskExecController extends BaseController {
}
}
} else if (isCycleTask(task)) {
// 周期执行
if (isCycleTaskByWeek(task)) {
String[] weekList = task.getCycleWeek().split(StringUtils.COMMA);
String[] cycleTimes = task.getCycleExecuteTime().split(StringUtils.COMMA);
@ -526,6 +528,7 @@ public class PatrolTaskExecController extends BaseController {
}
}
} else if (isInterTask(task)) {
// 间隔执行
String[] intervalExecuteTime = task.getIntervalExecuteTime().split(StringUtils.COLON);
if (isInterTaskByHour(task)) {
int intervalNumber = task.getIntervalNumber();
@ -563,19 +566,24 @@ public class PatrolTaskExecController extends BaseController {
private void parseTaskToRedis(final String taskType, PatrolTask task) {
if (StringUtils.isNotEmpty(task.getDevNo())) {
String[] devNos = task.getDevNo().split(StringUtils.COMMA);
for (String devNo : devNos) {
String key = RedisConst.TASK_CODE + task.getTaskCode() + StringUtils.AT + DateUtils.format(DateUtils.yyyyMMddHHmmss2, task.getFixedStartTime());
String taskPatrolledId = devNo + "_" + task.getTaskCode() + "_" + DateUtils.format(DateUtils.yyyyMMddHHmmss, task.getFixedStartTime());
log.debug(Color.GREEN + "[TASK] TYPE: {}, DETACH PATROLLED ID: {}" + Color.END, taskType, taskPatrolledId);
PatrolTaskExecRecord taskExecRecord
= patrolTaskExecRecordService.selectPatrolTaskExecRecordByTaskPatrolId(taskPatrolledId);
String redisValue = redisService.getCacheObject(key);
if (taskExecRecord == null && StringUtils.isEmpty(redisValue)) {
List<PatrolTask> patrolTasks = getPatrolTasks(task);
if (!patrolTasks.isEmpty()) {
logger.info(Color.GREEN + "[TASK] TYPE: {}, CYCLE BY WEEK key: {}, patrolId: {}" + Color.END, taskType, key, taskPatrolledId);
redisService.setCacheObject(key, JSONArray.toJSONString(patrolTasks));
}
List<String> devNoList = new ArrayList<>();
String[] devTypes = task.getDevType().split(StringUtils.COMMA);
for (int i = 0; i < devTypes.length; ++i) {
if ("2".equals(devTypes[i])) {
devNoList.add(devNos[i]);
}
}
String key = RedisConst.TASK_CODE + task.getTaskCode() + StringUtils.AT + DateUtils.format(DateUtils.yyyyMMddHHmmss2, task.getFixedStartTime());
String taskPatrolledId = devNoList.get(0) + "_" + task.getTaskCode() + "_" + DateUtils.format(DateUtils.yyyyMMddHHmmss, task.getFixedStartTime());
log.debug(Color.GREEN + "[TASK] TYPE: {}, DETACH PATROLLED ID: {}" + Color.END, taskType, taskPatrolledId);
PatrolTaskExecRecord taskExecRecord
= patrolTaskExecRecordService.selectPatrolTaskExecRecordByTaskPatrolId(taskPatrolledId);
String redisValue = redisService.getCacheObject(key);
if (taskExecRecord == null && StringUtils.isEmpty(redisValue)) {
List<PatrolTask> patrolTasks = getPatrolTasks(task);
if (!patrolTasks.isEmpty()) {
logger.info(Color.GREEN + "[TASK] TYPE: {}, CYCLE BY WEEK key: {}, patrolId: {}" + Color.END, taskType, key, taskPatrolledId);
redisService.setCacheObject(key, JSONArray.toJSONString(patrolTasks));
}
}
} else {
@ -661,53 +669,59 @@ public class PatrolTaskExecController extends BaseController {
log.warn("[TASK] devNos length != devTypes.length: {}, {}", devNos.length, devTypes.length);
return patrolTaskList;
}
List<String> devTypeList = new ArrayList<>();
List<String> devNoList = new ArrayList<>();
for (int i = 0; i < devTypes.length; ++i) {
if (!"2".equals(devTypes[i])) {
continue;
}
devTypeList.add(devTypes[i]);
devNoList.add(devNos[i]);
PatrolTask patrolTask = PatrolTask.builder()
.taskId(task.getTaskId())
.stationName(task.getStationName())
.stationCode(task.getStationCode())
.type(task.getType())
.taskCode(task.getTaskCode())
.taskName(task.getTaskName())
.priority(task.getPriority())
.deviceLevel(task.getDeviceLevel())
.deviceList(task.getDeviceList())
.fixedStartTime(task.getFixedStartTime())
.cycleMonth(task.getCycleMonth())
.cycleWeek(task.getCycleWeek())
.cycleExecuteTime(task.getCycleExecuteTime())
.cycleStartTime(task.getCycleStartTime())
.cycleEndTime(task.getCycleEndTime())
.intervalNumber(task.getIntervalNumber())
.intervalType(task.getIntervalType())
.intervalExecuteTime(task.getIntervalExecuteTime())
.intervalStartTime(task.getIntervalStartTime())
.intervalEndTime(task.getIntervalEndTime())
.invalidStartTime(task.getInvalidStartTime())
.invalidEndTime(task.getInvalidEndTime())
.isEnable(task.getIsEnable())
.linkageState(task.getLinkageState())
.devType("2")
.drafter(task.getDrafter())
.fileStatus(task.getFileStatus())
.taskCycle(task.getTaskCycle())
.devNo(devNos[i])
.taskProgress(task.getTaskProgress())
.taskState(task.getTaskState())
.executionMode(task.getExecutionMode())
.beginTime(task.getBeginTime())
.endTime(task.getEndTime())
.areaId(task.getAreaId())
.areaName(task.getAreaName())
.build();
patrolTaskList.add(patrolTask);
}
String devNoListStr = StringUtils.join(devNoList, StringUtils.COMMA);
String devTypeListStr = StringUtils.join(devTypeList, StringUtils.COMMA);
log.info("[TASK] devNoListStr: {}", devNoListStr);
log.info("[TASK] devTypeListStr: {}", devTypeListStr);
PatrolTask patrolTask = PatrolTask.builder()
.taskId(task.getTaskId())
.stationName(task.getStationName())
.stationCode(task.getStationCode())
.type(task.getType())
.taskCode(task.getTaskCode())
.taskName(task.getTaskName())
.priority(task.getPriority())
.deviceLevel(task.getDeviceLevel())
.deviceList(task.getDeviceList())
.fixedStartTime(task.getFixedStartTime())
.cycleMonth(task.getCycleMonth())
.cycleWeek(task.getCycleWeek())
.cycleExecuteTime(task.getCycleExecuteTime())
.cycleStartTime(task.getCycleStartTime())
.cycleEndTime(task.getCycleEndTime())
.intervalNumber(task.getIntervalNumber())
.intervalType(task.getIntervalType())
.intervalExecuteTime(task.getIntervalExecuteTime())
.intervalStartTime(task.getIntervalStartTime())
.intervalEndTime(task.getIntervalEndTime())
.invalidStartTime(task.getInvalidStartTime())
.invalidEndTime(task.getInvalidEndTime())
.isEnable(task.getIsEnable())
.linkageState(task.getLinkageState())
.devType(devTypeListStr)
.drafter(task.getDrafter())
.fileStatus(task.getFileStatus())
.taskCycle(task.getTaskCycle())
.devNo(devNoListStr)
.taskProgress(task.getTaskProgress())
.taskState(task.getTaskState())
.executionMode(task.getExecutionMode())
.beginTime(task.getBeginTime())
.endTime(task.getEndTime())
.areaId(task.getAreaId())
.areaName(task.getAreaName())
.build();
patrolTaskList.add(patrolTask);
return patrolTaskList;
}


+ 13
- 3
inspect-main/inspect-main-task/src/main/java/com/inspect/taskstatus/controller/PatrolTaskStatusController.java View File

@ -648,6 +648,8 @@ public class PatrolTaskStatusController extends BaseController {
if (StringUtils.isNotEmpty(patrolTask.getDevNo())) {
String[] devTypes = patrolTask.getDevType().split(StringUtils.COMMA);
String[] devNos = patrolTask.getDevNo().split(StringUtils.COMMA);
List<String> devTypeList = new ArrayList<>();
List<String> devNoList = new ArrayList<>();
for (int i = 0; i < devNos.length; i++) {
log.info("第{}个devNo------------issueToRobot", i + 1);
BasedataEqpBookMoMain basedataEqpbookMomain = new BasedataEqpBookMoMain();
@ -673,12 +675,20 @@ public class PatrolTaskStatusController extends BaseController {
// } else {
// 手动任务执行
log.info("第{}个devNo{}", i + 1, devNos[i]);
patrolTask.setDevType(devTypes[i]);
patrolTask.setDevNo(devNos[i]);
sendTaskToVideo(patrolTask);
devTypeList.add(devTypes[i]);
devNoList.add(devNos[i]);
// patrolTask.setDevType(devTypes[i]);
// patrolTask.setDevNo(devNos[i]);
// sendTaskToVideo(patrolTask);
// }
}
}
if (devTypeList.size() > 0 && devNoList.size() > 0) {
patrolTask.setDevType(StringUtils.join(devTypeList, ","));
patrolTask.setDevNo(StringUtils.join(devNoList, ","));
log.info("手动执行任务,devType:{}, devNo:{}", patrolTask.getDevType(), patrolTask.getDevNo());
sendTaskToVideo(patrolTask);
}
}
return toAjax(1);
}


Loading…
Cancel
Save