Browse Source

/*金华站跑任务过程中发现如下问题:任务中有一个点配置成了ir红外,但是算法配置成了jsxs;有两个点位在patrol_task_info中

有记录,但是在patrol_preset_pos表中没有对应的预置位记录,会导致程序异常无法闭环。修补该漏洞,让流程能够继续进行。*/
master
htjcAdmin 5 months ago
parent
commit
c1138d8dab
1 changed files with 39 additions and 7 deletions
  1. +39
    -7
      inspect-job/src/main/java/com/inspect/job/task/JobMainTask.java

+ 39
- 7
inspect-job/src/main/java/com/inspect/job/task/JobMainTask.java View File

@ -459,8 +459,10 @@ public class JobMainTask {
if (presetPosSlim == null) {
presetPosSlim = PatrolPresetPosSlim.builder()
.presetPosId("99999999")
.presetPosId(patrolPointId)
.channelType("vl")
.patrolPointId(Long.valueOf(patrolPointId))
.presetPosName("EMPTY_POS_V_INFO_DEVICE_ID_" + patrolPointId)
.channelCode("ffffffffffffffffff#ffffffffffffffffffffffffffffffff")
.videoNvrCode("ffffffffffffffffffffffffffffffff")
.build();
@ -503,7 +505,12 @@ public class JobMainTask {
fileTypes.append("ir".equals(chanType) ? "1" : "vl".equals(chanType) ? "2" : "").append(",");
//boolean bOk = false;
try {
log.info("PHOTO PresetType uuid: {}, chanType: {}, videoNvrCode: {}, channelCode: {}, patrolPointId: {}", uuid, chanType, presetPos.getVideoNvrCode(), presetPos.getChannelCode(), presetPos.getPatrolPointId());
log.info("PHOTO_PRESET_TYPE uuid: {}, chanType: {}, patrolPointId: {}, channelCode: {}, videoNvrCode: {}",
uuid,
chanType,
presetPos.getPatrolPointId(),
presetPos.getChannelCode(),
presetPos.getVideoNvrCode());
if ("vl".equals(chanType)) {
String paramUrl = liveIVS_URL + "/api/v1/device/channelsnap?serial="
+ presetPos.getVideoNvrCode()
@ -522,6 +529,8 @@ public class JobMainTask {
//bOk = ftpResult.isOk();
filePaths.append("/" + ftpResult.getFilepath());
}
recordPersist(taskExecRecord, infoListSize, patrolTaskInfo, presetPos, fileTypes, filePaths);
} else if ("ir".equals(chanType)) {
Map<String, String> algSubtypeIdMap = taskExecClient.getAlgTypeListByPatrolPointId(String.valueOf(presetPos.getPatrolPointId()));
String paramUrl = liveIVS_URL
@ -561,6 +570,14 @@ public class JobMainTask {
+ "&password=" + presetPos.getPassword()
+ "&address=" + presetPos.getAddress();
log.info("INFRARED_PROC INFRA_CAMERA prePointExec paramUrl: {}", paramUrl);
} else if (algSubtypeCode.contains(AlgConstants.INFRA_CAMERA_REVERSE)) {
paramUrl = paramUrl
+ "&host=" + presetPos.getHost()
+ "&port=" + presetPos.getPort()
+ "&username=" + presetPos.getUsername()
+ "&password=" + presetPos.getPassword()
+ "&address=" + presetPos.getAddress();
log.info("INFRARED_PROC INFRA_CAMERA_REVERSE prePointExec paramUrl: {}", paramUrl);
}
String paramFileDir = basePath + "CCD";
@ -570,7 +587,12 @@ public class JobMainTask {
log.info("INFRARED_PROC: filePath: {}", ftpResult.getFilepath());
filePaths.append("/" + ftpResult.getFilepath());
}
recordPersist(taskExecRecord, infoListSize, patrolTaskInfo, presetPos, fileTypes, filePaths);
} else { // 古老的红外处理流程保留勿删除
log.info("INFRARED_PROC_OLD Failed to Cover id: {}, patrolPointId: {}: cameraCode: {}",
presetPos.getPresetPosId(),
presetPos.getPatrolPointId(),
presetPos.getChannelCode());
InfraredModel infraredModel = new InfraredModel();
infraredModel.setChannelSerial(presetPos.getChannelCode());
infraredModel.setPresetId(Integer.parseInt(presetPos.getPresetPosCode()));
@ -587,26 +609,36 @@ public class JobMainTask {
log.info("INFRA:{}", taskExecRecord.getTaskName() + " path : " + path);
}
}
} else {
log.error("PATROL_POINT_NO_CHAN_TYPE id: {}, patrolPointId: {}: cameraCode: {}",
presetPos.getPresetPosId(),
presetPos.getPatrolPointId(),
presetPos.getChannelCode());
}
} catch (Exception e) {
log.error("error", e);
}
recordPersist(taskExecRecord, infoListSize, patrolTaskInfo, presetPos, fileTypes, filePaths);
// recordPersist(taskExecRecord, infoListSize, patrolTaskInfo, presetPos, fileTypes, filePaths);
} else if (PresetAction.VIDEO.getCode().equals(presetAction.getActionType())) {
log.info("VIDEO PresetType videoNvrCode: {}, channelCode: {}", presetPos.getVideoNvrCode(), presetPos.getChannelCode());
log.info("VIDEO_PRESET_TYPE uuid: {}, chanType: {}, patrolPointId: {}, channelCode: {}, videoNvrCode: {}",
uuid,
presetPos.getChannelType(),
presetPos.getPatrolPointId(),
presetPos.getChannelCode(),
presetPos.getVideoNvrCode());
fileTypes.append(4).append(",");
String jsonStr = HttpClientUtil.getHttpResultJson(liveIVS_URL + "/api/v1/stream/start?serial=" + presetPos.getVideoNvrCode() + "&code=" + presetPos.getChannelCode());
log.info("先调用直播开始,获取流对象:/api/v1/stream/start?serial= :{} ", presetPos.getVideoNvrCode() + "&code=" + presetPos.getChannelCode());
log.info("先调用直播开始, 获取流对象: /api/v1/stream/start?serial= :{} ", presetPos.getVideoNvrCode() + "&code=" + presetPos.getChannelCode());
log.info("/api/v1/stream/start 返回 json 字符串{} ", jsonStr);
JSONObject UserInfoReturn = JSON.parseObject(jsonStr);
Stream stream = JSON.toJavaObject(UserInfoReturn, Stream.class);
try {
String rel = HttpClientUtils.get(liveIVS_URL + "/api/v1/record/start", "streamid=" + stream.getStreamID() + "&code=" + presetPos.getChannelCode());
log.info("视频录像开始/api/v1/record/start streamid={} ", stream.getStreamID() + ",code=" + presetPos.getChannelCode() + ", 调用 /api/v1/record/start 返回值=" + rel);
log.info("视频录像开始: /api/v1/record/start streamid={} ", stream.getStreamID() + ",code=" + presetPos.getChannelCode() + ", 调用 /api/v1/record/start 返回值=" + rel);
if (rel.isEmpty()) {
rel = HttpClientUtils.get(liveIVS_URL + "/api/v1/record/start", "streamid=" + stream.getStreamID() + "&code=" + presetPos.getChannelCode());
log.info("一次调用失败,第二次调用 视频录像开始/api/v1/record/start streamid={} ", stream.getStreamID() + ",code=" + presetPos.getChannelCode() + ", 调用 /api/v1/record/start 返回值=" + rel);
log.info("一次调用失败,第二次调用 视频录像开始: /api/v1/record/start streamid={} ", stream.getStreamID() + ",code=" + presetPos.getChannelCode() + ", 调用 /api/v1/record/start 返回值=" + rel);
}
} catch (Exception e) {
log.error("error", e);


Loading…
Cancel
Save