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 c4e68cc..e22722e 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 @@ -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 totalInfos = getInfosByRecord(taskExecRecord); +// List totalInfos = getInfosByRecord(taskExecRecord); List 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 totalInfos = getInfosByRecord(execRecord); +// List totalInfos = getInfosByRecord(execRecord); List 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 totalInfos = getInfosByRecord(execRecord); +// List totalInfos = getInfosByRecord(execRecord); List 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 taskInfos = new ArrayList<>(); for (PatrolTask task : cameraPatrolTasks) { - List 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 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 getInfosByRecord(final PatrolTaskExecRecord record) { @@ -1052,8 +1056,8 @@ public class JobMainTask { } } - private void prePointExecImmediate(final PatrolTaskExecRecord patrolTaskExecRecord) { - final List patrolTaskInfoList = getInfosByRecord(patrolTaskExecRecord); + private void prePointExecImmediate(final PatrolTaskExecRecord patrolTaskExecRecord, List patrolTaskInfoList) { +// final List 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 patrolTaskList) { log.info("***************************** JobTaskTimer execEveryDayTask with parameters *************************************"); - + List taskInfos = new ArrayList<>(); for (PatrolTask patrolTask : patrolTaskList) { - List 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 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() { 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 08cf2a3..a92aa59 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 @@ -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 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 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 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 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 devTypeList = new ArrayList<>(); + List 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; } diff --git a/inspect-main/inspect-main-task/src/main/java/com/inspect/taskstatus/controller/PatrolTaskStatusController.java b/inspect-main/inspect-main-task/src/main/java/com/inspect/taskstatus/controller/PatrolTaskStatusController.java index 3a09a02..cd38cf0 100644 --- a/inspect-main/inspect-main-task/src/main/java/com/inspect/taskstatus/controller/PatrolTaskStatusController.java +++ b/inspect-main/inspect-main-task/src/main/java/com/inspect/taskstatus/controller/PatrolTaskStatusController.java @@ -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 devTypeList = new ArrayList<>(); + List 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); }