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 7a1db61..d5ac566 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 @@ -472,9 +472,27 @@ public class JobMainTask { return presetPosSlim; } + private String getInfraredAddress(final int index, final PatrolPresetPosSlim presetPosSlim) { + String address = presetPosSlim.getAddress(); + String[] parts = address.split(StringUtils.COLON); + if (index >= 0 && index < parts.length) { + parts[index] = presetPosSlim.getPresetPosCode(); + return String.join(StringUtils.COLON, parts); + } + + log.info("getInfraredAddress invalid infrared address: {}, posId: {}", presetPosSlim.getAddress(), presetPosSlim.getPresetPosId()); + return address; + } + private PatrolTaskExecRecord prePointExec(PatrolTaskExecRecord taskExecRecord, PatrolTaskInfo patrolTaskInfo, int infoListSize) { String uuid = UUID.randomUUID().toString().trim().replaceAll(StringUtils.DASH, StringUtils.EMPTY); final PatrolPresetPosSlim presetPos = queryPatrolPresetPos(uuid, patrolTaskInfo.getDeviceId()); + if(StringUtils.isNotEmpty(presetPos.getAddress())) { + log.info("prePointExec remake infrared address: raw: {}", presetPos.getAddress()); + String infraredAddress = getInfraredAddress(3, presetPos); + presetPos.setAddress(infraredAddress); + log.info("prePointExec remake infrared address: cooked: {}", presetPos.getAddress()); + } boolean noError = ivsOperateRetryableDelegate.setCameraToPreset(uuid, presetPos); if (!testMode && noError) { log.info("setCameraToPreset no error, delay 20 seconds");