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 73584f8..0e50846 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 @@ -384,20 +384,17 @@ public class JobMainTask { log.info(Color.CYAN + "************************** executing patrolPoint, patrolPointId: {}, patrolPresetPos: {}" + Color.END, patrolTaskInfo.getDeviceId(), JSONObject.toJSONString(presetPosList, true)); PatrolPresetPos presetPos = !presetPosList.isEmpty() ? presetPosList.get(0) : PatrolPresetPos.builder().presetPosId("0").build(); - boolean bPointFinished = isPointFinished(patrolTaskInfo, taskExecRecord); String taskPatrolId = taskExecRecord.getTaskPatrolId(); - log.info("taskPatrolId: {}, bPointFinished: {}", taskPatrolId, bPointFinished); - - if (!bPointFinished) { - /*摄像头转到预置位*/ - boolean noError = setCameraToPreset(presetPos); - if ("prod".equals(activeProfile) && noError) { - log.info("setCameraToPreset no error, delay 20 seconds"); - myDelay(20000); - } else { - log.info("setCameraToPreset has error, delay 2 seconds"); - myDelay(2000); - } + log.info("taskPatrolId: {}", taskPatrolId); + + /*摄像头转到预置位*/ + boolean noError = setCameraToPreset(presetPos); + if ("prod".equals(activeProfile) && noError) { + log.info("setCameraToPreset no error, delay 20 seconds"); + myDelay(20000); + } else { + log.info("setCameraToPreset has error, delay 2 seconds"); + myDelay(2000); } StringBuffer fileTypes = new StringBuffer(); @@ -421,45 +418,45 @@ public class JobMainTask { int delayMilliSeconds = presetAction.getPhotoGap() * 1000; final long photoCount = presetAction.getPhotoCount(); boolean bOk = false; - if (!bPointFinished) { - try { - log.info("PHOTO PresetType chanType: {}, videoNvrCode: {}, channelCode: {}", chanType, presetPos.getVideoNvrCode(), presetPos.getChannelCode()); - if ("vl".equals(chanType)) { - String paramUrl = liveIVS_URL + "/api/v1/device/channelsnap?serial=" + presetPos.getVideoNvrCode() + "&realtime=true&code=" + presetPos.getChannelCode(); - String paramFileName = taskPatrolId.split(StringUtils.UNDERLINE)[1] + StringUtils.UNDERLINE - + taskPatrolId.split(StringUtils.UNDERLINE)[2] + StringUtils.UNDERLINE - + presetPos.getPatrolPointId() + StringUtils.UNDERLINE - + taskExecRecord.getDevNo() + ".jpg"; - String paramFileDir = basePath + "CCD"; - log.info("paramUrl: {}, paramFileName: {}, paramFileDir: {}", paramUrl, paramFileName, paramFileDir); - FtpResult ftpResult = saveFile(paramUrl, paramFileName, paramFileDir); - if (ftpResult != null && StringUtils.isNotEmpty(ftpResult.getFilepath())) { - log.info("filePath: {}", ftpResult.getFilepath()); - bOk = ftpResult.isOk(); - filePaths.append("/" + ftpResult.getFilepath()); - } - } else if ("ir".equals(chanType)) { - InfraredModel infraredModel = new InfraredModel(); - infraredModel.setChannelSerial(presetPos.getChannelCode()); - infraredModel.setPresetId(Integer.parseInt(presetPos.getPresetPosCode())); - EqpBook eqpbook = new EqpBook(); - eqpbook.setPatrolDeviceCode(presetPos.getPatrolDeviceCode()); - List eqpBookListList = taskExecClient.selectBasedataEqpBookList(eqpbook); - if (!eqpBookListList.isEmpty()) { - Response ir_gen = remoteInvokeService.invoke("IR_GEN", presetPos.getPatrolDeviceCode().split("#")[0], new HashMap<>()); - log.info("ir_gen: {}", JSONObject.toJSONString(ir_gen)); - Object data = ir_gen.getData(); - String path = JSONObject.parseObject(JSONObject.toJSONString(data)).getString("filePath"); - path = path.split("33333")[1]; - filePaths.append(path).append(","); - log.info("INFRA:{}", taskExecRecord.getTaskName() + " path : " + path); - } + + try { + log.info("PHOTO PresetType chanType: {}, videoNvrCode: {}, channelCode: {}", chanType, presetPos.getVideoNvrCode(), presetPos.getChannelCode()); + if ("vl".equals(chanType)) { + String paramUrl = liveIVS_URL + "/api/v1/device/channelsnap?serial=" + presetPos.getVideoNvrCode() + "&realtime=true&code=" + presetPos.getChannelCode(); + String paramFileName = taskPatrolId.split(StringUtils.UNDERLINE)[1] + StringUtils.UNDERLINE + + taskPatrolId.split(StringUtils.UNDERLINE)[2] + StringUtils.UNDERLINE + + presetPos.getPatrolPointId() + StringUtils.UNDERLINE + + taskExecRecord.getDevNo() + ".jpg"; + String paramFileDir = basePath + "CCD"; + log.info("paramUrl: {}, paramFileName: {}, paramFileDir: {}", paramUrl, paramFileName, paramFileDir); + FtpResult ftpResult = saveFile(paramUrl, paramFileName, paramFileDir); + if (ftpResult != null && StringUtils.isNotEmpty(ftpResult.getFilepath())) { + log.info("filePath: {}", ftpResult.getFilepath()); + bOk = ftpResult.isOk(); + filePaths.append("/" + ftpResult.getFilepath()); + } + } else if ("ir".equals(chanType)) { + InfraredModel infraredModel = new InfraredModel(); + infraredModel.setChannelSerial(presetPos.getChannelCode()); + infraredModel.setPresetId(Integer.parseInt(presetPos.getPresetPosCode())); + EqpBook eqpbook = new EqpBook(); + eqpbook.setPatrolDeviceCode(presetPos.getPatrolDeviceCode()); + List eqpBookListList = taskExecClient.selectBasedataEqpBookList(eqpbook); + if (!eqpBookListList.isEmpty()) { + Response ir_gen = remoteInvokeService.invoke("IR_GEN", presetPos.getPatrolDeviceCode().split("#")[0], new HashMap<>()); + log.info("ir_gen: {}", JSONObject.toJSONString(ir_gen)); + Object data = ir_gen.getData(); + String path = JSONObject.parseObject(JSONObject.toJSONString(data)).getString("filePath"); + path = path.split("33333")[1]; + filePaths.append(path).append(","); + log.info("INFRA:{}", taskExecRecord.getTaskName() + " path : " + path); } - } catch (Exception e) { - log.error("error", e); } + } catch (Exception e) { + log.error("error", e); } - recordPersist(bOk, bPointFinished, taskExecRecord, infoListSize, patrolTaskInfo, presetPos, fileTypes, filePaths); + + recordPersist(bOk, taskExecRecord, infoListSize, patrolTaskInfo, presetPos, fileTypes, filePaths); } else if (PresetAction.VIDEO.getCode().equals(presetAction.getActionType())) { log.info("VIDEO PresetType videoNvrCode: {}, channelCode: {}", presetPos.getVideoNvrCode(), presetPos.getChannelCode()); fileTypes.append(4).append(","); @@ -522,11 +519,9 @@ public class JobMainTask { String rectangle = getRectangle(presetPos.getPresetPosId()); String taskPatrolId = getTaskPatrolledId(taskInfo.getDevNo(), taskExecRecord.getTaskPatrolId()); final String deviceId = taskInfo.getDeviceId(); - log.info("taskPatrolId: {}, deviceId: {}", taskPatrolId, deviceId); - List pointExecRecords = taskExecClient.selectPatrolTaskPointExecRecordList(PatrolTaskPointExecRecord.builder().taskPatrolledId(taskPatrolId).deviceId(deviceId).build()); - PatrolTaskPointExecRecord pointExecRecord; - if (pointExecRecords.isEmpty()) { - pointExecRecord = PatrolTaskPointExecRecord + log.info("pointExecRecord crud add taskPatrolId: {}, deviceId: {}", taskPatrolId, deviceId); + + PatrolTaskPointExecRecord pointExecRecord = PatrolTaskPointExecRecord .builder() .patrolDeviceName(taskInfo.getEbookName()) .patrolDeviceCode(taskInfo.getDevNo()) @@ -544,19 +539,7 @@ public class JobMainTask { .time(new Date()) .isOk(bOk ? 1 : 0) .build(); - taskExecClient.addPatrolTaskPointExecRecord(pointExecRecord); - } else { - log.info("update record, pointExecRecords size: {}", pointExecRecords.size()); - pointExecRecord = pointExecRecords.get(0); - int isOk = pointExecRecord.getIsOk(); - if (isOk == 0) { // 上一次未成功的才更新 - pointExecRecord.setIsOk(bOk ? 1 : 0); - int tries = pointExecRecord.getTries(); - pointExecRecord.setTries(tries + 1); - pointExecRecord.setTime(new Date()); - taskExecClient.updatePatrolTaskPointExecRecord(pointExecRecord); - } - } + taskExecClient.addPatrolTaskPointExecRecord(pointExecRecord); if (bOk) { String patrolId = taskExecRecord.getTaskPatrolId(); @@ -628,32 +611,31 @@ public class JobMainTask { } } - private int addCursorNumber(String taskPatrolId, boolean bPointFinished, boolean bOk) { + private int addCursorNumber(String taskPatrolId,boolean bOk) { PatrolTaskExecRecord taskExecRecord = taskExecClient.selectPatrolTaskExecRecordByTaskPatrolId(taskPatrolId); + int total = taskExecRecord.getTotalNumber(); + int success = taskExecRecord.getFinishNumber(); int cursor; if (taskExecRecord.getCursorNumber() == null) { cursor = 1; } else { - int total = taskExecRecord.getTotalNumber(); cursor = taskExecRecord.getCursorNumber(); - if (cursor < total) + if (cursor < total) { cursor = taskExecRecord.getCursorNumber() + 1; + } } - log.info("addCursorNumber cursor: {}", cursor); taskExecRecord.setCursorNumber(cursor); - if (!bPointFinished && bOk) { - int finish = taskExecRecord.getFinishNumber(); - int total = taskExecRecord.getTotalNumber(); - int value = finish + 1; - log.info("addFinishNumber finish: {}, total: {}", value, total); - taskExecRecord.setFinishNumber(value); - String taskProgress = decimalFormatNum(finish, total); + if (bOk) { + success++; + log.info("execute point success, cursor: {}, success: {}, total: {}", cursor, success, total); + taskExecRecord.setFinishNumber(success); + String taskProgress = decimalFormatNum(success, total);// task_progress=success/total -> patrol_task_exec_record taskExecRecord.setTaskProgress(taskProgress); - List totalInfos = getInfosByTaskCode(taskExecRecord); + List totalInfos = getInfosByRecord(taskExecRecord); List finishedInfos = taskExecClient.selectPatrolTaskPointExecRecordList(PatrolTaskPointExecRecord.builder().oldTaskPatrolledId(taskExecRecord.getOldTaskPatrolId()).build()); - String totalProgress = decimalFormatNum(finishedInfos.size(), totalInfos.size()); + String totalProgress = decimalFormatNum(finishedInfos.size(), totalInfos.size());// task_progress=finish/total -> patrol_task_status log.info("totalProgress: {}, finish: {}, total: {}", totalProgress, finishedInfos.size(), totalInfos.size()); callRemoteSendMsgRunMode( taskExecRecord.getTaskCode(), @@ -662,6 +644,8 @@ public class JobMainTask { totalProgress, TaskStatus.RUNNING.getCode()/*运行中百分比上报*/ ); + } else { + log.info("execute point fail, cursor: {}, success: {}, total: {}", cursor, success, total); } taskExecClient.updatePatrolTaskExecRecord(taskExecRecord); return cursor; @@ -698,7 +682,7 @@ public class JobMainTask { String taskProgress = decimalFormatNum(finish, total); execRecord.setTaskProgress(taskProgress); execRecord.setTaskState(TaskStatus.DONE.getCode()); // 子任务在当前轮回中遍历完成标记 - List totalInfos = getInfosByTaskCode(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()); @@ -719,7 +703,7 @@ public class JobMainTask { } else { // 该record下的点没有全部执行成功 //设置本record的执行状态为终止 execRecord.setTaskState(TaskStatus.HALTED.getCode()); - List totalInfos = getInfosByTaskCode(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()); @@ -743,31 +727,29 @@ public class JobMainTask { } synchronized private PatrolTaskExecRecord recordPersist(boolean bOk, - boolean bPointFinished, PatrolTaskExecRecord taskExecRecord, int infoListSize, PatrolTaskInfo taskInfo, PatrolPresetPos presetPos, StringBuffer fileTypes, StringBuffer filePaths) { - if (!bPointFinished) { - log.info(Color.CYAN + "**************************addPointRecord start" + Color.END); - try { - addPointRecord(bOk, taskExecRecord, taskInfo, presetPos, fileTypes, filePaths); - } catch (Exception e) { - log.error("error", e); - } - log.info(Color.CYAN + "**************************addPointRecord end" + Color.END); + + log.info(Color.CYAN + "**************************addPointRecord start" + Color.END); + try { + addPointRecord(bOk, taskExecRecord, taskInfo, presetPos, fileTypes, filePaths); + } catch (Exception e) { + log.error("error", e); } + log.info(Color.CYAN + "**************************addPointRecord end" + Color.END); log.info(Color.CYAN + "**************************addCursorNumber start" + Color.END); int cursorNumber = 0; try { - cursorNumber = addCursorNumber(taskExecRecord.getTaskPatrolId(), bPointFinished, bOk); + cursorNumber = addCursorNumber(taskExecRecord.getTaskPatrolId(), bOk); } catch (Exception e) { log.error("error", e); } - log.info(Color.CYAN + "**************************addCursorNumber end, CUR:{},DEV:{},OK:{},FIN:{},CAM:{},ID:{}" + Color.END, cursorNumber, taskExecRecord.getTaskPatrolId(), bOk, bPointFinished, presetPos.getChannelCode(), presetPos.getPatrolPointId()); + log.info(Color.CYAN + "**************************addCursorNumber end" + Color.END); if (cursorNumber == infoListSize) {// devNo下对应的点执行完毕 log.info(Color.CYAN + "**************************windUpRecord start" + Color.END); @@ -906,20 +888,6 @@ public class JobMainTask { } } - private List getInfosByTaskCode(final PatrolTaskExecRecord record) { - List patrolTaskInfoList = new ArrayList<>(); - try { - patrolTaskInfoList = taskExecClient.selectTaskInfoList(PatrolTaskInfo.builder() - .taskMajorId(record.getTaskId().toString()) - .devType("2") - .build()); - return patrolTaskInfoMaintainAreaRemove(patrolTaskInfoList); - } catch (Exception e) { - log.error("error", e); - return patrolTaskInfoList; - } - } - private List getInfosByRecord(final PatrolTaskExecRecord record) { List patrolTaskInfoList = new ArrayList<>(); try { @@ -1006,7 +974,7 @@ public class JobMainTask { //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) { - log.info("EXEC Immediate Progress: {}, id: {}, taskInfo: {}", patrolTaskExecRecord.getTaskProgress(), patrolTaskExecRecord.getTaskPatrolId() + "@@@" + patrolTaskExecRecord.getTaskPatrolId(), "deviceId:" + taskInfo.getDeviceId() + " LineId=" + taskInfo.getLineId()); + log.info("EXEC Immediate taskPatrolId: {}, deviceId: {}, lineId: {}", patrolTaskExecRecord.getTaskPatrolId(), taskInfo.getDeviceId(), taskInfo.getLineId()); prePointExec(patrolTaskExecRecord, taskInfo, patrolTaskInfoList.size()); } }