diff --git a/inspect-ivs/src/main/java/com/inspect/ivs/controller/IvsControlController.java b/inspect-ivs/src/main/java/com/inspect/ivs/controller/IvsControlController.java index c4e6cf7..94aec86 100644 --- a/inspect-ivs/src/main/java/com/inspect/ivs/controller/IvsControlController.java +++ b/inspect-ivs/src/main/java/com/inspect/ivs/controller/IvsControlController.java @@ -118,8 +118,12 @@ public class IvsControlController { @GetMapping({"presetList"}) public IvsPresetListView presetList(IvsVo ivsVo) { - log.debug("[IVS] PRESET LIST: {}", ivsVo); - IvsPresetListView ivsPresetListView = ivsCommonService.get(ivsResourceRetryableDelegate.getLabel(), UriUtils.parseForReplace(IvsConst.URI_PRESET_LIST, ivsVo), IvsPresetListView.class); + log.info("GET_PRESET_LIST PARAM: {}", ivsVo); + IvsPresetListView ivsPresetListView = + ivsCommonService.get(ivsResourceRetryableDelegate.getLabel(), + ivsVo.getIvsAddress(), + UriUtils.parseForReplace(IvsConst.URI_PRESET_LIST, ivsVo), + IvsPresetListView.class); log.debug("[IVS] END"); return ivsPresetListView; } diff --git a/inspect-ivs/src/main/java/com/inspect/ivs/controller/IvsDeviceController.java b/inspect-ivs/src/main/java/com/inspect/ivs/controller/IvsDeviceController.java index 3d37894..a918e14 100644 --- a/inspect-ivs/src/main/java/com/inspect/ivs/controller/IvsDeviceController.java +++ b/inspect-ivs/src/main/java/com/inspect/ivs/controller/IvsDeviceController.java @@ -335,7 +335,9 @@ public class IvsDeviceController { } } else { try { - String uuid = ivsResourceRetryableDelegate.getLabel(); + final String presetName = ivsDevChanSnapVo.getPresetName(); + final String patrolPointId = ivsDevChanSnapVo.getPatrolPointId(); + final String uuid = ivsResourceRetryableDelegate.getLabel(); log.info(com.inspect.base.core.constant.Color.MAGENTA + "[IVS] CHANNEL_SNAPSHOT: {}" + com.inspect.base.core.constant.Color.END, ivsDevChanSnapVo.getCameraCode()); IvsSnapshotView ivsSnapshotView; try { @@ -358,6 +360,8 @@ public class IvsDeviceController { try { IvsChanSnapVo ivsChanSnapVo = new IvsChanSnapVo(); ivsChanSnapVo.setUUID(uuid); + ivsChanSnapVo.setPresetName(presetName); + ivsChanSnapVo.setPatrolPointId(patrolPointId); ivsChanSnapVo.setCameraCode(ivsDevChanSnapVo.getCameraCode()); ivsChanSnapVo.setDomainCode(ivsDevChanSnapVo.getDomainCode()); ivsChanSnapVo.setTaskID(ivsSnapshotView.getTaskID()); diff --git a/inspect-ivs/src/main/java/com/inspect/ivs/service/IvsCommonService.java b/inspect-ivs/src/main/java/com/inspect/ivs/service/IvsCommonService.java index 4587ac5..9fea61c 100644 --- a/inspect-ivs/src/main/java/com/inspect/ivs/service/IvsCommonService.java +++ b/inspect-ivs/src/main/java/com/inspect/ivs/service/IvsCommonService.java @@ -73,6 +73,17 @@ public class IvsCommonService { return checkResultCodeAndConvertResult(label, uri, JSONObject.parseObject(res), clazz); } + public T get(final String label, final String address, String uri, Class clazz) { + String cookie = this.getCookie(); + final String url = StringUtils.isEmpty(address) ? getAddress().concat(uri) : address.concat(uri); + String res = HttpUtil.createGet(url) + .cookie(IvsConst.HTTP_JSESSIONID_SESSION_NAME.concat("=").concat(cookie)) + .execute() + .body(); + log.info("[IVS] GET ADDRESS: {} URI: {}, RES: {}", address, uri, res); + return checkResultCodeAndConvertResult(label, uri, JSONObject.parseObject(res), clazz); + } + public T getJson(String label, String uri, Class clazz) { String cookie = this.getCookie(); String res = HttpUtil.createGet(getAddress().concat(uri)) @@ -168,7 +179,12 @@ public class IvsCommonService { public T postJson(String label, Object requestParam, String uri, Class clazz) { String cookie = this.getCookie(); - JSONObject t = (JSONObject) ((RequestBodySpec) this.http(HttpMethod.POST, uri).contentType(MediaType.APPLICATION_JSON).cookie("JSESSIONID", cookie)).bodyValue(requestParam).retrieve().bodyToMono(JSONObject.class).block(); + JSONObject t = this.http(HttpMethod.POST, uri) + .contentType(MediaType.APPLICATION_JSON) + .cookie("JSESSIONID", cookie) + .bodyValue(requestParam).retrieve() + .bodyToMono(JSONObject.class) + .block(); log.info("[CALL IVS] POST, Parameter:{}", JSONObject.toJSONString(requestParam)); log.info("[CALL IVS] POST, Response:{}", t.toJSONString()); return this.checkResultCodeAndConvertResult(label, uri, t, clazz); diff --git a/inspect-ivs/src/main/java/com/inspect/ivs/service/IvsResourceRetryableDelegate.java b/inspect-ivs/src/main/java/com/inspect/ivs/service/IvsResourceRetryableDelegate.java index eec11b4..8dbfcb8 100644 --- a/inspect-ivs/src/main/java/com/inspect/ivs/service/IvsResourceRetryableDelegate.java +++ b/inspect-ivs/src/main/java/com/inspect/ivs/service/IvsResourceRetryableDelegate.java @@ -17,6 +17,8 @@ import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.InputStreamResource; import org.springframework.http.ResponseEntity; import org.springframework.retry.annotation.Backoff; @@ -24,6 +26,7 @@ import org.springframework.retry.annotation.Recover; import org.springframework.retry.annotation.Retryable; import org.springframework.retry.support.RetrySynchronizationManager; import org.springframework.stereotype.Component; +import org.springframework.util.StreamUtils; import javax.annotation.Resource; import javax.imageio.ImageIO; @@ -33,6 +36,8 @@ import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; +import java.util.HashSet; +import java.util.Set; import java.util.UUID; @Component @@ -43,6 +48,9 @@ public class IvsResourceRetryableDelegate { private static final int RETRYABLE_MAX = 20; + @Value("${task.test-mode:false}") + private boolean testMode; + @Resource private IvsCommonService ivsCommonService; @@ -50,11 +58,16 @@ public class IvsResourceRetryableDelegate { value = IOException.class, maxAttempts = RETRYABLE_MAX, backoff = @Backoff(delay = 2000)) // 每次重试间隔 2 秒 - public Response gotoSnapshotPresetRetryable(String version, IvsPresetVo ivsPresetVo) throws IOException{ + public Response gotoSnapshotPresetRetryable(String version, IvsPresetVo ivsPresetVo) throws IOException { int retryCount = RetrySynchronizationManager.getContext() != null ? RetrySynchronizationManager.getContext().getRetryCount() + 1 : 1; - log.info("URI_PTZ_CONTROL GOTO: retryCount: {}, UUID: {}", retryCount, ivsPresetVo.getUUID()); + log.info("URI_PTZ_CONTROL GOTO: retryCount: {}, UUID: {}, CODE: {}, ID: {}, NAME: {}", + retryCount, + ivsPresetVo.getUUID(), + ivsPresetVo.getCameraCode(), + ivsPresetVo.getPatrolPointId(), + ivsPresetVo.getPresetName()); JSONObject paramJson = new JSONObject(); paramJson.put("cameraCode", ivsPresetVo.getCameraCode()); log.debug("URI_PTZ_CONTROL GOTO: IVS VERSION: {}", version); @@ -89,10 +102,21 @@ public class IvsResourceRetryableDelegate { int retryCount = RetrySynchronizationManager.getContext() != null ? RetrySynchronizationManager.getContext().getRetryCount() + 1 : 1; - log.info("URI_PLATFORM_SNAPSHOT retryCount: {}, UUID: {}", retryCount, ivsDevChanSnapVo.getUUID()); + log.info("URI_PLATFORM_SNAPSHOT retryCount: {}, UUID: {}, ID: {}, NAME: {}", + retryCount, + ivsDevChanSnapVo.getUUID(), + ivsDevChanSnapVo.getPatrolPointId(), + ivsDevChanSnapVo.getPresetName()); IvsSnapshotView ivsSnapshotView; try { - ivsSnapshotView = ivsCommonService.get(ivsDevChanSnapVo.getUUID(), UriUtils.parse(IvsConst.URI_PLATFORM_SNAPSHOT, ivsDevChanSnapVo), IvsSnapshotView.class); + Set ignoredKeys = new HashSet<>(); + ignoredKeys.add("uUID"); + ignoredKeys.add("presetName"); + ignoredKeys.add("patrolPointId"); + final String uri = UriUtils.parseIgnored(IvsConst.URI_PLATFORM_SNAPSHOT, ivsDevChanSnapVo, ignoredKeys); + //ivsSnapshotView = ivsCommonService.get(ivsDevChanSnapVo.getUUID(), UriUtils.parse(IvsConst.URI_PLATFORM_SNAPSHOT, ivsDevChanSnapVo), IvsSnapshotView.class); + log.info("URI_PLATFORM_SNAPSHOT retryCount: {}, UUID: {}, URI: {}", retryCount, ivsDevChanSnapVo.getUUID(), uri); + ivsSnapshotView = ivsCommonService.get(ivsDevChanSnapVo.getUUID(), uri, IvsSnapshotView.class); log.info("URI_PLATFORM_SNAPSHOT SUCCESS retryCount: {}, UUID: {}", retryCount, ivsDevChanSnapVo.getUUID()); } catch (Exception e) { log.info("URI_PLATFORM_SNAPSHOT FAIL retryCount: {}, UUID: {}", retryCount, ivsDevChanSnapVo.getUUID()); @@ -117,10 +141,21 @@ public class IvsResourceRetryableDelegate { int retryCount = RetrySynchronizationManager.getContext() != null ? RetrySynchronizationManager.getContext().getRetryCount() + 1 : 1; - log.info("URI_SNAPSHOT_LIST retryCount: {}, UUID: {}", retryCount, ivsChanSnapVo.getUUID()); + log.info("URI_SNAPSHOT_LIST retryCount: {}, UUID: {}, ID: {}, NAME: {}", + retryCount, + ivsChanSnapVo.getUUID(), + ivsChanSnapVo.getPatrolPointId(), + ivsChanSnapVo.getPresetName()); IvsPlatformSnapshotView snapShotView; try { - snapShotView = ivsCommonService.postJson(ivsChanSnapVo.getUUID(), ivsChanSnapVo, IvsConst.URI_SNAPSHOT_LIST, IvsPlatformSnapshotView.class); + ivsChanSnapVo.setUUID(null); + ivsChanSnapVo.setPresetName(null); + ivsChanSnapVo.setPatrolPointId(null); + snapShotView = ivsCommonService.postJson( + ivsChanSnapVo.getUUID(), + ivsChanSnapVo, + IvsConst.URI_SNAPSHOT_LIST, + IvsPlatformSnapshotView.class); log.info("URI_SNAPSHOT_LIST SUCCESS retryCount: {}, UUID: {}", retryCount, ivsChanSnapVo.getUUID()); } catch (Exception e) { log.info("URI_SNAPSHOT_LIST FAIL retryCount: {}, UUID: {}", retryCount, ivsChanSnapVo.getUUID()); @@ -197,12 +232,25 @@ public class IvsResourceRetryableDelegate { try { ByteArrayOutputStream os = new ByteArrayOutputStream(); ImageIO.write(bufferedImage, "png", os); - return new ByteArrayInputStream(os.toByteArray()); + byte[] bytes; + if (testMode) { + bytes = loadDefaultImage(); + } else { + bytes = os.toByteArray(); + } + return new ByteArrayInputStream(bytes); } catch (IOException e) { throw new RuntimeException("生成错误图片失败", e); } } + + public byte[] loadDefaultImage() throws IOException { + ClassPathResource imgFile = new ClassPathResource("images/ivs_default.jpg"); + return StreamUtils.copyToByteArray(imgFile.getInputStream()); + } + + public String getLabel() { return UUID.randomUUID().toString().trim().replaceAll(StringUtils.DASH, StringUtils.EMPTY); } diff --git a/inspect-ivs/src/main/java/com/inspect/ivs/util/UriUtils.java b/inspect-ivs/src/main/java/com/inspect/ivs/util/UriUtils.java index a62bed2..8910553 100644 --- a/inspect-ivs/src/main/java/com/inspect/ivs/util/UriUtils.java +++ b/inspect-ivs/src/main/java/com/inspect/ivs/util/UriUtils.java @@ -1,7 +1,12 @@ package com.inspect.ivs.util; import com.alibaba.fastjson.JSONObject; +import com.inspect.ivs.constant.IvsConst; +import com.inspect.ivs.vo.IvsDevChanSnapVo; + +import java.util.HashSet; import java.util.Iterator; +import java.util.Set; public class UriUtils { public static String parse(String uri, Object params) { @@ -21,7 +26,35 @@ public class UriUtils { return newUri; } - public static String parseForReplace(String uri, Object params) { + public static String parseIgnored(String uri, Object params, Set ignoredKeys) { + JSONObject json = JSONObject.parseObject(JSONObject.toJSONString(params)); + StringBuilder sb = new StringBuilder("?"); + + + String key; + for (String s : json.keySet()) { + key = s; + // 如果 URI 模板中包含 {key},替换它 + if (uri.contains("{" + key + "}")) { + uri = uri.replace("{" + key + "}", json.getString(key)); + } + // 如果是需要忽略的 key,则跳过后续拼接 + else if (!ignoredKeys.contains(key)) { + sb.append(key).append("=").append(json.get(key)).append("&"); + } + } + + // 如果没有 query 参数,则直接返回替换后的 uri + if (sb.length() == 1) { + return uri; + } + + String newUri = uri + sb.substring(0, sb.length() - 1); // 去掉末尾的 "&" + return newUri; + } + + + public static String parseForReplace(String uri, Object params) { JSONObject json = JSONObject.parseObject(JSONObject.toJSONString(params)); StringBuilder sb = new StringBuilder("?"); for (String key : json.keySet()) { @@ -34,4 +67,27 @@ public class UriUtils { //System.out.println("================uri:" + newUri); return newUri; } + + public static void main(String[] args) { + + IvsDevChanSnapVo ivsDevChanSnapVo = new IvsDevChanSnapVo(); + ivsDevChanSnapVo.setPatrolPointId("123456"); + ivsDevChanSnapVo.setPresetName("ssssss"); + ivsDevChanSnapVo.setUUID("d9a1cad491f94756877cc2d3088c0138"); + ivsDevChanSnapVo.setCameraCode("01969538356559120106"); + ivsDevChanSnapVo.setDomainCode("425b88eb55ab4bcfae2c4efe1bd6df88"); + ivsDevChanSnapVo.setRealtime(true); + ivsDevChanSnapVo.setCode("01969538356559120106#425b88eb55ab4bcfae2c4efe1bd6df88"); + ivsDevChanSnapVo.setSerial("c5486fffb1b64e53978bd6d82d96109f"); + ivsDevChanSnapVo.setTimeout(false); + ivsDevChanSnapVo.setCheck_outputs(false); + + Set ignoredKeys = new HashSet<>(); + ignoredKeys.add("UUID"); + ignoredKeys.add("uUID"); + ignoredKeys.add("presetName"); + ignoredKeys.add("patrolPointId"); + final String uri = UriUtils.parseIgnored(IvsConst.URI_PLATFORM_SNAPSHOT, ivsDevChanSnapVo, ignoredKeys); + System.out.println("uri: " + uri); + } } diff --git a/inspect-ivs/src/main/java/com/inspect/ivs/vo/IvsChanSnapVo.java b/inspect-ivs/src/main/java/com/inspect/ivs/vo/IvsChanSnapVo.java index 6b76ec4..e832818 100644 --- a/inspect-ivs/src/main/java/com/inspect/ivs/vo/IvsChanSnapVo.java +++ b/inspect-ivs/src/main/java/com/inspect/ivs/vo/IvsChanSnapVo.java @@ -7,6 +7,8 @@ public class IvsChanSnapVo implements Serializable { private String domainCode; private String taskID; private String UUID; + private String presetName; + private String patrolPointId; public String getCameraCode() { return this.cameraCode; @@ -40,6 +42,22 @@ public class IvsChanSnapVo implements Serializable { this.UUID = UUID; } + public String getPresetName() { + return presetName; + } + + public void setPresetName(String presetName) { + this.presetName = presetName; + } + + public String getPatrolPointId() { + return patrolPointId; + } + + public void setPatrolPointId(String patrolPointId) { + this.patrolPointId = patrolPointId; + } + public boolean equals(Object o) { if(o == this) { return true; diff --git a/inspect-ivs/src/main/java/com/inspect/ivs/vo/IvsDevChanSnapVo.java b/inspect-ivs/src/main/java/com/inspect/ivs/vo/IvsDevChanSnapVo.java index ba2b056..0e2312b 100644 --- a/inspect-ivs/src/main/java/com/inspect/ivs/vo/IvsDevChanSnapVo.java +++ b/inspect-ivs/src/main/java/com/inspect/ivs/vo/IvsDevChanSnapVo.java @@ -7,6 +7,8 @@ public class IvsDevChanSnapVo extends IvsVo { private boolean check_outputs; private boolean timeout; private String UUID; + private String presetName; + private String patrolPointId; public String getSerial() { return this.serial; @@ -56,6 +58,22 @@ public class IvsDevChanSnapVo extends IvsVo { this.UUID = UUID; } + public String getPresetName() { + return presetName; + } + + public void setPresetName(String presetName) { + this.presetName = presetName; + } + + public String getPatrolPointId() { + return patrolPointId; + } + + public void setPatrolPointId(String patrolPointId) { + this.patrolPointId = patrolPointId; + } + public boolean equals(Object o) { if(o == this) { return true; diff --git a/inspect-ivs/src/main/java/com/inspect/ivs/vo/IvsPresetVo.java b/inspect-ivs/src/main/java/com/inspect/ivs/vo/IvsPresetVo.java index 8daa291..1f39dde 100644 --- a/inspect-ivs/src/main/java/com/inspect/ivs/vo/IvsPresetVo.java +++ b/inspect-ivs/src/main/java/com/inspect/ivs/vo/IvsPresetVo.java @@ -11,6 +11,7 @@ public class IvsPresetVo implements Serializable { private String preset; private String name; private String cameraCode; + private String patrolPointId; private String presetName; private int focusSwitch = 0; private String UUID; @@ -87,6 +88,14 @@ public class IvsPresetVo implements Serializable { this.focusSwitch = focusSwitch; } + public String getPatrolPointId() { + return patrolPointId; + } + + public void setPatrolPointId(String patrolPointId) { + this.patrolPointId = patrolPointId; + } + public String getUUID() { return UUID; } diff --git a/inspect-ivs/src/main/java/com/inspect/ivs/vo/IvsVo.java b/inspect-ivs/src/main/java/com/inspect/ivs/vo/IvsVo.java index 41d80e9..3fa6582 100644 --- a/inspect-ivs/src/main/java/com/inspect/ivs/vo/IvsVo.java +++ b/inspect-ivs/src/main/java/com/inspect/ivs/vo/IvsVo.java @@ -9,6 +9,9 @@ public class IvsVo implements Serializable { private String code; private String cameraCode; private String domainCode; + private String ivsAddress; + private String ivsUsername; + private String ivsPassword; public void setCode(String code) { if(!StringUtils.isEmpty(code)) { @@ -39,6 +42,30 @@ public class IvsVo implements Serializable { this.domainCode = domainCode; } + public String getIvsAddress() { + return ivsAddress; + } + + public void setIvsAddress(String ivsAddress) { + this.ivsAddress = ivsAddress; + } + + public String getIvsUsername() { + return ivsUsername; + } + + public void setIvsUsername(String ivsUsername) { + this.ivsUsername = ivsUsername; + } + + public String getIvsPassword() { + return ivsPassword; + } + + public void setIvsPassword(String ivsPassword) { + this.ivsPassword = ivsPassword; + } + public boolean equals(Object o) { if(o == this) { return true; diff --git a/inspect-ivs/src/main/resources/images/ivs_default.jpg b/inspect-ivs/src/main/resources/images/ivs_default.jpg new file mode 100644 index 0000000..eabd6f4 Binary files /dev/null and b/inspect-ivs/src/main/resources/images/ivs_default.jpg differ diff --git a/inspect-job/src/main/java/com/inspect/job/task/CameraOperateRetryableDelegate.java b/inspect-job/src/main/java/com/inspect/job/task/CameraOperateRetryableDelegate.java index 8244b7e..b5a5bb2 100644 --- a/inspect-job/src/main/java/com/inspect/job/task/CameraOperateRetryableDelegate.java +++ b/inspect-job/src/main/java/com/inspect/job/task/CameraOperateRetryableDelegate.java @@ -7,6 +7,7 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; import org.springframework.retry.RetryContext; import org.springframework.retry.annotation.Backoff; +import org.springframework.retry.annotation.Recover; import org.springframework.retry.annotation.Retryable; import org.springframework.retry.support.RetrySynchronizationManager; import org.springframework.stereotype.Component; @@ -31,8 +32,12 @@ public class CameraOperateRetryableDelegate { RetryContext retryContext = RetrySynchronizationManager.getContext(); int retryCount = retryContext != null ? retryContext.getRetryCount() : 0; final String url = liveIVS_URL + API_CONTROL_PRESET; - final String param = "serial=" + presetPos.getVideoNvrCode() + "&command=goto&preset=" + presetPos.getPresetPosCode() + "&code=" + presetPos.getChannelCode(); - log.info("sendCameraPresetRequest retryCount: {}, param: {}, request: {}", + final String param = "serial=" + presetPos.getVideoNvrCode() + + "&command=goto&preset=" + presetPos.getPresetPosCode() + + "&code=" + presetPos.getChannelCode() + + "&presetName=" + presetPos.getPresetPosName() + + "&patrolPointId=" + presetPos.getPatrolPointId(); + log.info("API_CONTROL_PRESET retryCount: {}, param: {}, request: {}", retryCount, presetPos.getPatrolPointId() + "-" + presetPos.getPresetPosName(), url + "?" + param); @@ -40,7 +45,15 @@ public class CameraOperateRetryableDelegate { return true; } catch (Exception e) { log.info("error: {}", e.getMessage()); - throw new IOException("设置失败: " + e.getMessage()); + throw new IOException("API_CONTROL_PRESET FAIL: " + e.getMessage()); } } + + @SuppressWarnings("unused") + @Recover + public boolean recover(IOException e, PatrolPresetPos presetPos) { + log.info("API_CONTROL_PRESET RECOVER MSG: {}", e.getMessage()); + return false; + } + } 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 2146386..50de6b9 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 @@ -473,7 +473,7 @@ public class JobMainTask { PatrolPresetPos presetPos = !presetPosList.isEmpty() ? presetPosList.get(0) - : PatrolPresetPos.builder().presetPosId("99999999").channelType("vl").channelCode("00000000000000000000#ffffffffffffffffffffffffffffffff").videoNvrCode("ffffffffffffffffffffffffffffffff").build(); + : PatrolPresetPos.builder().presetPosId("99999999").channelType("vl").channelCode("ffffffffffffffffff#ffffffffffffffffffffffffffffffff").videoNvrCode("ffffffffffffffffffffffffffffffff").build(); String taskPatrolId = taskExecRecord.getTaskPatrolId(); /*摄像头转到预置位*/ @@ -519,7 +519,11 @@ public class JobMainTask { try { log.info("PHOTO PresetType uuid: {}, chanType: {}, videoNvrCode: {}, channelCode: {}, patrolPointId: {}", uuid, chanType, presetPos.getVideoNvrCode(), presetPos.getChannelCode(), presetPos.getPatrolPointId()); if ("vl".equals(chanType)) { - String paramUrl = liveIVS_URL + "/api/v1/device/channelsnap?serial=" + presetPos.getVideoNvrCode() + "&realtime=true&code=" + presetPos.getChannelCode(); + String paramUrl = liveIVS_URL + "/api/v1/device/channelsnap?serial=" + + presetPos.getVideoNvrCode() + + "&realtime=true&code=" + presetPos.getChannelCode() + + "&presetName=" + presetPos.getPresetPosName() + + "&patrolPointId=" + presetPos.getPatrolPointId(); String paramFileName = taskPatrolId.split(StringUtils.UNDERLINE)[1] + StringUtils.UNDERLINE + taskPatrolId.split(StringUtils.UNDERLINE)[2] + StringUtils.UNDERLINE + presetPos.getPatrolPointId() + StringUtils.UNDERLINE @@ -1082,14 +1086,14 @@ public class JobMainTask { PatrolPresetPos presetPos = !presetPosList.isEmpty() ? presetPosList.get(0) : PatrolPresetPos.builder().presetPosId("1") .presetPosCode("1") - .channelCode("00000000000000000000#ffffffffffffffffffffffffffffffff") + .channelCode("ffffffffffffffffff#ffffffffffffffffffffffffffffffff") .channelId("999999") .patrolPointId(1234567890L) .channelType("vl") .isEnable("1") .eqpBookId("1") .build(); - String deviceCode = "00000000000000000000"; + String deviceCode = "ffffffffffffffffff"; try { String[] channelCodeList = presetPos.getChannelCode().split(StringUtils.HASHTAG); deviceCode = channelCodeList[0]; diff --git a/inspect-main/inspect-main-video/src/main/java/com/inspect/patrol/controller/PatrolPresetPosController.java b/inspect-main/inspect-main-video/src/main/java/com/inspect/patrol/controller/PatrolPresetPosController.java index 742f985..4cf33ca 100644 --- a/inspect-main/inspect-main-video/src/main/java/com/inspect/patrol/controller/PatrolPresetPosController.java +++ b/inspect-main/inspect-main-video/src/main/java/com/inspect/patrol/controller/PatrolPresetPosController.java @@ -372,9 +372,24 @@ public class PatrolPresetPosController extends BaseController { @RequestParam("patroldeviceCode") String patrolDeviceCode, @RequestParam("channelCode") String channelCode ) throws Exception { + AjaxResult ajaxResult = basedataChannelService.queryEqpBookChannelByChannelCode(channelCode); + JSONObject jsonObject = JSONObject.parseObject(JSONObject.toJSONString(ajaxResult)).getJSONObject(("data")); + if (jsonObject == null) { + return ajaxResult; + } + String host = jsonObject.getString(("host")); + String port = jsonObject.getString(("port")); + String address = jsonObject.getString(("address")); + String username = jsonObject.getString(("username")); + String password = jsonObject.getString(("password")); + String ivsAddress = host + ":" + port; + List presetPoints = new ArrayList<>(); - String params = "code=" + channelCode; - String result = HttpClientUtils.get(this.deviceUrl + AccessApiConstant.PTZ_LIST, params); + String params = "code=" + channelCode + + "&ivsAddress=" + ivsAddress + + "&username=" + username + + "&password=" + password; + String result = HttpClientUtils.get((this.deviceUrl + AccessApiConstant.PTZ_LIST), params); JSONObject ivsPresetInfo = JSONObject.parseObject(result); String resultCode = ivsPresetInfo.getString("resultCode"); if (null != resultCode && resultCode.equals("0")) { diff --git a/inspect-main/inspect-main-video/src/main/java/com/inspect/patrol/service/BasedataChannelService.java b/inspect-main/inspect-main-video/src/main/java/com/inspect/patrol/service/BasedataChannelService.java index 732aef6..d6d113a 100644 --- a/inspect-main/inspect-main-video/src/main/java/com/inspect/patrol/service/BasedataChannelService.java +++ b/inspect-main/inspect-main-video/src/main/java/com/inspect/patrol/service/BasedataChannelService.java @@ -13,6 +13,10 @@ public interface BasedataChannelService { @GetMapping({"/eqpbook/channel/{channelId}"}) AjaxResult queryById(@PathVariable("channelId") String channelId); + + @GetMapping({"/eqpbook/channel/channelCode/{channelCode}"}) + AjaxResult queryEqpBookChannelByChannelCode(@PathVariable("channelCode") String channelCode); + @GetMapping({"/eqpbook/channel/list"}) TableDataInfo queryChannelList(@RequestParam("basedataEqpbookChannel") JSONObject jsonObject); } diff --git a/inspect-metadata/src/main/java/com/inspect/metadata/eqpbook/controller/BasedataEqpBookChannelController.java b/inspect-metadata/src/main/java/com/inspect/metadata/eqpbook/controller/BasedataEqpBookChannelController.java index 3bb9854..dc1616a 100644 --- a/inspect-metadata/src/main/java/com/inspect/metadata/eqpbook/controller/BasedataEqpBookChannelController.java +++ b/inspect-metadata/src/main/java/com/inspect/metadata/eqpbook/controller/BasedataEqpBookChannelController.java @@ -70,6 +70,12 @@ public class BasedataEqpBookChannelController extends BaseController { return AjaxResult.success(this.basedataEqpBookChannelService.selectBasedataEqpBookChannelByChannelId(channelId)); } + @RequiresPermissions({"basedata:channel:query"}) + @GetMapping({"/channelCode/{channelCode}"}) + public AjaxResult getEqpBookChannelByChannelCode(@PathVariable("channelCode") String channelCode) { + return AjaxResult.success(this.basedataEqpBookChannelService.selectBasedataEqpBookChannelByChannelCode(channelCode)); + } + @RequiresPermissions({"basedata:channel:add"}) @Log( title = "设备通道", diff --git a/inspect-metadata/src/main/java/com/inspect/metadata/eqpbook/mapper/BasedataEqpBookChannelMapper.java b/inspect-metadata/src/main/java/com/inspect/metadata/eqpbook/mapper/BasedataEqpBookChannelMapper.java index b4a1905..17947c5 100644 --- a/inspect-metadata/src/main/java/com/inspect/metadata/eqpbook/mapper/BasedataEqpBookChannelMapper.java +++ b/inspect-metadata/src/main/java/com/inspect/metadata/eqpbook/mapper/BasedataEqpBookChannelMapper.java @@ -11,6 +11,8 @@ import java.util.List; public interface BasedataEqpBookChannelMapper { BasedataEqpBookChannel selectBasedataEqpBookChannelByChannelId(Long channelId); + BasedataEqpBookChannel selectBasedataEqpBookChannelByChannelCode(String channelCode); + List selectBasedataEqpBookChannelList(BasedataEqpBookChannel channel); int insertBasedataEqpBookChannel(BasedataEqpBookChannel channel); diff --git a/inspect-metadata/src/main/java/com/inspect/metadata/eqpbook/service/IBasedataEqpBookChannelService.java b/inspect-metadata/src/main/java/com/inspect/metadata/eqpbook/service/IBasedataEqpBookChannelService.java index fc61927..13a132e 100644 --- a/inspect-metadata/src/main/java/com/inspect/metadata/eqpbook/service/IBasedataEqpBookChannelService.java +++ b/inspect-metadata/src/main/java/com/inspect/metadata/eqpbook/service/IBasedataEqpBookChannelService.java @@ -8,6 +8,8 @@ import java.util.List; public interface IBasedataEqpBookChannelService { BasedataEqpBookChannel selectBasedataEqpBookChannelByChannelId(Long channelId); + BasedataEqpBookChannel selectBasedataEqpBookChannelByChannelCode(String channelICode); + List selectBasedataEqpBookChannelList(BasedataEqpBookChannel channel); int insertBasedataEqpBookChannel(BasedataEqpBookChannel channel); diff --git a/inspect-metadata/src/main/java/com/inspect/metadata/eqpbook/service/impl/BasedataEqpBookChannelServiceImpl.java b/inspect-metadata/src/main/java/com/inspect/metadata/eqpbook/service/impl/BasedataEqpBookChannelServiceImpl.java index 89bb929..6c1320a 100644 --- a/inspect-metadata/src/main/java/com/inspect/metadata/eqpbook/service/impl/BasedataEqpBookChannelServiceImpl.java +++ b/inspect-metadata/src/main/java/com/inspect/metadata/eqpbook/service/impl/BasedataEqpBookChannelServiceImpl.java @@ -18,6 +18,10 @@ public class BasedataEqpBookChannelServiceImpl implements IBasedataEqpBookChanne return this.basedataEqpbookChannelMapper.selectBasedataEqpBookChannelByChannelId(channelId); } + public BasedataEqpBookChannel selectBasedataEqpBookChannelByChannelCode(String channelCode) { + return this.basedataEqpbookChannelMapper.selectBasedataEqpBookChannelByChannelCode(channelCode); + } + public List selectBasedataEqpBookChannelList(BasedataEqpBookChannel basedataEqpbookChannel) { return this.basedataEqpbookChannelMapper.selectBasedataEqpBookChannelList(basedataEqpbookChannel); } diff --git a/inspect-metadata/src/main/resources/mapper/eqpbook/BasedataEqpBookChannelMapper.xml b/inspect-metadata/src/main/resources/mapper/eqpbook/BasedataEqpBookChannelMapper.xml index b5479fe..3bf7f5f 100644 --- a/inspect-metadata/src/main/resources/mapper/eqpbook/BasedataEqpBookChannelMapper.xml +++ b/inspect-metadata/src/main/resources/mapper/eqpbook/BasedataEqpBookChannelMapper.xml @@ -84,6 +84,11 @@ where channel_id = #{channelId} + + insert into basedata_eqpbook_channel