Browse Source

/*

1. ivs模块日志优化;
2. ivs默认图片在测试环境生成一个真实的图片。
3. 灵州站红外适配;
*/
master
htjcAdmin 5 months ago
parent
commit
b9eb08248a
19 changed files with 276 additions and 21 deletions
  1. +6
    -2
      inspect-ivs/src/main/java/com/inspect/ivs/controller/IvsControlController.java
  2. +5
    -1
      inspect-ivs/src/main/java/com/inspect/ivs/controller/IvsDeviceController.java
  3. +17
    -1
      inspect-ivs/src/main/java/com/inspect/ivs/service/IvsCommonService.java
  4. +55
    -7
      inspect-ivs/src/main/java/com/inspect/ivs/service/IvsResourceRetryableDelegate.java
  5. +57
    -1
      inspect-ivs/src/main/java/com/inspect/ivs/util/UriUtils.java
  6. +18
    -0
      inspect-ivs/src/main/java/com/inspect/ivs/vo/IvsChanSnapVo.java
  7. +18
    -0
      inspect-ivs/src/main/java/com/inspect/ivs/vo/IvsDevChanSnapVo.java
  8. +9
    -0
      inspect-ivs/src/main/java/com/inspect/ivs/vo/IvsPresetVo.java
  9. +27
    -0
      inspect-ivs/src/main/java/com/inspect/ivs/vo/IvsVo.java
  10. BIN
      inspect-ivs/src/main/resources/images/ivs_default.jpg
  11. +16
    -3
      inspect-job/src/main/java/com/inspect/job/task/CameraOperateRetryableDelegate.java
  12. +8
    -4
      inspect-job/src/main/java/com/inspect/job/task/JobMainTask.java
  13. +17
    -2
      inspect-main/inspect-main-video/src/main/java/com/inspect/patrol/controller/PatrolPresetPosController.java
  14. +4
    -0
      inspect-main/inspect-main-video/src/main/java/com/inspect/patrol/service/BasedataChannelService.java
  15. +6
    -0
      inspect-metadata/src/main/java/com/inspect/metadata/eqpbook/controller/BasedataEqpBookChannelController.java
  16. +2
    -0
      inspect-metadata/src/main/java/com/inspect/metadata/eqpbook/mapper/BasedataEqpBookChannelMapper.java
  17. +2
    -0
      inspect-metadata/src/main/java/com/inspect/metadata/eqpbook/service/IBasedataEqpBookChannelService.java
  18. +4
    -0
      inspect-metadata/src/main/java/com/inspect/metadata/eqpbook/service/impl/BasedataEqpBookChannelServiceImpl.java
  19. +5
    -0
      inspect-metadata/src/main/resources/mapper/eqpbook/BasedataEqpBookChannelMapper.xml

+ 6
- 2
inspect-ivs/src/main/java/com/inspect/ivs/controller/IvsControlController.java View File

@ -118,8 +118,12 @@ public class IvsControlController {
@GetMapping({"presetList"}) @GetMapping({"presetList"})
public IvsPresetListView presetList(IvsVo ivsVo) { 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"); log.debug("[IVS] END");
return ivsPresetListView; return ivsPresetListView;
} }


+ 5
- 1
inspect-ivs/src/main/java/com/inspect/ivs/controller/IvsDeviceController.java View File

@ -335,7 +335,9 @@ public class IvsDeviceController {
} }
} else { } else {
try { 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()); log.info(com.inspect.base.core.constant.Color.MAGENTA + "[IVS] CHANNEL_SNAPSHOT: {}" + com.inspect.base.core.constant.Color.END, ivsDevChanSnapVo.getCameraCode());
IvsSnapshotView ivsSnapshotView; IvsSnapshotView ivsSnapshotView;
try { try {
@ -358,6 +360,8 @@ public class IvsDeviceController {
try { try {
IvsChanSnapVo ivsChanSnapVo = new IvsChanSnapVo(); IvsChanSnapVo ivsChanSnapVo = new IvsChanSnapVo();
ivsChanSnapVo.setUUID(uuid); ivsChanSnapVo.setUUID(uuid);
ivsChanSnapVo.setPresetName(presetName);
ivsChanSnapVo.setPatrolPointId(patrolPointId);
ivsChanSnapVo.setCameraCode(ivsDevChanSnapVo.getCameraCode()); ivsChanSnapVo.setCameraCode(ivsDevChanSnapVo.getCameraCode());
ivsChanSnapVo.setDomainCode(ivsDevChanSnapVo.getDomainCode()); ivsChanSnapVo.setDomainCode(ivsDevChanSnapVo.getDomainCode());
ivsChanSnapVo.setTaskID(ivsSnapshotView.getTaskID()); ivsChanSnapVo.setTaskID(ivsSnapshotView.getTaskID());


+ 17
- 1
inspect-ivs/src/main/java/com/inspect/ivs/service/IvsCommonService.java View File

@ -73,6 +73,17 @@ public class IvsCommonService {
return checkResultCodeAndConvertResult(label, uri, JSONObject.parseObject(res), clazz); return checkResultCodeAndConvertResult(label, uri, JSONObject.parseObject(res), clazz);
} }
public <T> T get(final String label, final String address, String uri, Class<T> 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> T getJson(String label, String uri, Class<T> clazz) { public <T> T getJson(String label, String uri, Class<T> clazz) {
String cookie = this.getCookie(); String cookie = this.getCookie();
String res = HttpUtil.createGet(getAddress().concat(uri)) String res = HttpUtil.createGet(getAddress().concat(uri))
@ -168,7 +179,12 @@ public class IvsCommonService {
public <T> T postJson(String label, Object requestParam, String uri, Class<T> clazz) { public <T> T postJson(String label, Object requestParam, String uri, Class<T> clazz) {
String cookie = this.getCookie(); 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, Parameter:{}", JSONObject.toJSONString(requestParam));
log.info("[CALL IVS] POST, Response:{}", t.toJSONString()); log.info("[CALL IVS] POST, Response:{}", t.toJSONString());
return this.checkResultCodeAndConvertResult(label, uri, t, clazz); return this.checkResultCodeAndConvertResult(label, uri, t, clazz);


+ 55
- 7
inspect-ivs/src/main/java/com/inspect/ivs/service/IvsResourceRetryableDelegate.java View File

@ -17,6 +17,8 @@ import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients; import org.apache.http.impl.client.HttpClients;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; 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.core.io.InputStreamResource;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.retry.annotation.Backoff; 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.annotation.Retryable;
import org.springframework.retry.support.RetrySynchronizationManager; import org.springframework.retry.support.RetrySynchronizationManager;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.util.StreamUtils;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.imageio.ImageIO; import javax.imageio.ImageIO;
@ -33,6 +36,8 @@ import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream; import java.io.ByteArrayOutputStream;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.util.HashSet;
import java.util.Set;
import java.util.UUID; import java.util.UUID;
@Component @Component
@ -43,6 +48,9 @@ public class IvsResourceRetryableDelegate {
private static final int RETRYABLE_MAX = 20; private static final int RETRYABLE_MAX = 20;
@Value("${task.test-mode:false}")
private boolean testMode;
@Resource @Resource
private IvsCommonService ivsCommonService; private IvsCommonService ivsCommonService;
@ -50,11 +58,16 @@ public class IvsResourceRetryableDelegate {
value = IOException.class, value = IOException.class,
maxAttempts = RETRYABLE_MAX, maxAttempts = RETRYABLE_MAX,
backoff = @Backoff(delay = 2000)) // 每次重试间隔 2 backoff = @Backoff(delay = 2000)) // 每次重试间隔 2
public Response<Void> gotoSnapshotPresetRetryable(String version, IvsPresetVo ivsPresetVo) throws IOException{
public Response<Void> gotoSnapshotPresetRetryable(String version, IvsPresetVo ivsPresetVo) throws IOException {
int retryCount = RetrySynchronizationManager.getContext() != null int retryCount = RetrySynchronizationManager.getContext() != null
? RetrySynchronizationManager.getContext().getRetryCount() + 1 ? RetrySynchronizationManager.getContext().getRetryCount() + 1
: 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(); JSONObject paramJson = new JSONObject();
paramJson.put("cameraCode", ivsPresetVo.getCameraCode()); paramJson.put("cameraCode", ivsPresetVo.getCameraCode());
log.debug("URI_PTZ_CONTROL GOTO: IVS VERSION: {}", version); log.debug("URI_PTZ_CONTROL GOTO: IVS VERSION: {}", version);
@ -89,10 +102,21 @@ public class IvsResourceRetryableDelegate {
int retryCount = RetrySynchronizationManager.getContext() != null int retryCount = RetrySynchronizationManager.getContext() != null
? RetrySynchronizationManager.getContext().getRetryCount() + 1 ? RetrySynchronizationManager.getContext().getRetryCount() + 1
: 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; IvsSnapshotView ivsSnapshotView;
try { try {
ivsSnapshotView = ivsCommonService.get(ivsDevChanSnapVo.getUUID(), UriUtils.parse(IvsConst.URI_PLATFORM_SNAPSHOT, ivsDevChanSnapVo), IvsSnapshotView.class);
Set<String> 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()); log.info("URI_PLATFORM_SNAPSHOT SUCCESS retryCount: {}, UUID: {}", retryCount, ivsDevChanSnapVo.getUUID());
} catch (Exception e) { } catch (Exception e) {
log.info("URI_PLATFORM_SNAPSHOT FAIL retryCount: {}, UUID: {}", retryCount, ivsDevChanSnapVo.getUUID()); log.info("URI_PLATFORM_SNAPSHOT FAIL retryCount: {}, UUID: {}", retryCount, ivsDevChanSnapVo.getUUID());
@ -117,10 +141,21 @@ public class IvsResourceRetryableDelegate {
int retryCount = RetrySynchronizationManager.getContext() != null int retryCount = RetrySynchronizationManager.getContext() != null
? RetrySynchronizationManager.getContext().getRetryCount() + 1 ? RetrySynchronizationManager.getContext().getRetryCount() + 1
: 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; IvsPlatformSnapshotView snapShotView;
try { 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()); log.info("URI_SNAPSHOT_LIST SUCCESS retryCount: {}, UUID: {}", retryCount, ivsChanSnapVo.getUUID());
} catch (Exception e) { } catch (Exception e) {
log.info("URI_SNAPSHOT_LIST FAIL retryCount: {}, UUID: {}", retryCount, ivsChanSnapVo.getUUID()); log.info("URI_SNAPSHOT_LIST FAIL retryCount: {}, UUID: {}", retryCount, ivsChanSnapVo.getUUID());
@ -197,12 +232,25 @@ public class IvsResourceRetryableDelegate {
try { try {
ByteArrayOutputStream os = new ByteArrayOutputStream(); ByteArrayOutputStream os = new ByteArrayOutputStream();
ImageIO.write(bufferedImage, "png", os); 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) { } catch (IOException e) {
throw new RuntimeException("生成错误图片失败", 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() { public String getLabel() {
return UUID.randomUUID().toString().trim().replaceAll(StringUtils.DASH, StringUtils.EMPTY); return UUID.randomUUID().toString().trim().replaceAll(StringUtils.DASH, StringUtils.EMPTY);
} }


+ 57
- 1
inspect-ivs/src/main/java/com/inspect/ivs/util/UriUtils.java View File

@ -1,7 +1,12 @@
package com.inspect.ivs.util; package com.inspect.ivs.util;
import com.alibaba.fastjson.JSONObject; 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.Iterator;
import java.util.Set;
public class UriUtils { public class UriUtils {
public static String parse(String uri, Object params) { public static String parse(String uri, Object params) {
@ -21,7 +26,35 @@ public class UriUtils {
return newUri; return newUri;
} }
public static String parseForReplace(String uri, Object params) {
public static String parseIgnored(String uri, Object params, Set<String> 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)); JSONObject json = JSONObject.parseObject(JSONObject.toJSONString(params));
StringBuilder sb = new StringBuilder("?"); StringBuilder sb = new StringBuilder("?");
for (String key : json.keySet()) { for (String key : json.keySet()) {
@ -34,4 +67,27 @@ public class UriUtils {
//System.out.println("================uri:" + newUri); //System.out.println("================uri:" + newUri);
return 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<String> 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);
}
} }

+ 18
- 0
inspect-ivs/src/main/java/com/inspect/ivs/vo/IvsChanSnapVo.java View File

@ -7,6 +7,8 @@ public class IvsChanSnapVo implements Serializable {
private String domainCode; private String domainCode;
private String taskID; private String taskID;
private String UUID; private String UUID;
private String presetName;
private String patrolPointId;
public String getCameraCode() { public String getCameraCode() {
return this.cameraCode; return this.cameraCode;
@ -40,6 +42,22 @@ public class IvsChanSnapVo implements Serializable {
this.UUID = UUID; 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) { public boolean equals(Object o) {
if(o == this) { if(o == this) {
return true; return true;


+ 18
- 0
inspect-ivs/src/main/java/com/inspect/ivs/vo/IvsDevChanSnapVo.java View File

@ -7,6 +7,8 @@ public class IvsDevChanSnapVo extends IvsVo {
private boolean check_outputs; private boolean check_outputs;
private boolean timeout; private boolean timeout;
private String UUID; private String UUID;
private String presetName;
private String patrolPointId;
public String getSerial() { public String getSerial() {
return this.serial; return this.serial;
@ -56,6 +58,22 @@ public class IvsDevChanSnapVo extends IvsVo {
this.UUID = UUID; 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) { public boolean equals(Object o) {
if(o == this) { if(o == this) {
return true; return true;


+ 9
- 0
inspect-ivs/src/main/java/com/inspect/ivs/vo/IvsPresetVo.java View File

@ -11,6 +11,7 @@ public class IvsPresetVo implements Serializable {
private String preset; private String preset;
private String name; private String name;
private String cameraCode; private String cameraCode;
private String patrolPointId;
private String presetName; private String presetName;
private int focusSwitch = 0; private int focusSwitch = 0;
private String UUID; private String UUID;
@ -87,6 +88,14 @@ public class IvsPresetVo implements Serializable {
this.focusSwitch = focusSwitch; this.focusSwitch = focusSwitch;
} }
public String getPatrolPointId() {
return patrolPointId;
}
public void setPatrolPointId(String patrolPointId) {
this.patrolPointId = patrolPointId;
}
public String getUUID() { public String getUUID() {
return UUID; return UUID;
} }


+ 27
- 0
inspect-ivs/src/main/java/com/inspect/ivs/vo/IvsVo.java View File

@ -9,6 +9,9 @@ public class IvsVo implements Serializable {
private String code; private String code;
private String cameraCode; private String cameraCode;
private String domainCode; private String domainCode;
private String ivsAddress;
private String ivsUsername;
private String ivsPassword;
public void setCode(String code) { public void setCode(String code) {
if(!StringUtils.isEmpty(code)) { if(!StringUtils.isEmpty(code)) {
@ -39,6 +42,30 @@ public class IvsVo implements Serializable {
this.domainCode = domainCode; 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) { public boolean equals(Object o) {
if(o == this) { if(o == this) {
return true; return true;


BIN
inspect-ivs/src/main/resources/images/ivs_default.jpg View File

Before After
Width: 1920  |  Height: 1080  |  Size: 508 KiB

+ 16
- 3
inspect-job/src/main/java/com/inspect/job/task/CameraOperateRetryableDelegate.java View File

@ -7,6 +7,7 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.retry.RetryContext; import org.springframework.retry.RetryContext;
import org.springframework.retry.annotation.Backoff; import org.springframework.retry.annotation.Backoff;
import org.springframework.retry.annotation.Recover;
import org.springframework.retry.annotation.Retryable; import org.springframework.retry.annotation.Retryable;
import org.springframework.retry.support.RetrySynchronizationManager; import org.springframework.retry.support.RetrySynchronizationManager;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@ -31,8 +32,12 @@ public class CameraOperateRetryableDelegate {
RetryContext retryContext = RetrySynchronizationManager.getContext(); RetryContext retryContext = RetrySynchronizationManager.getContext();
int retryCount = retryContext != null ? retryContext.getRetryCount() : 0; int retryCount = retryContext != null ? retryContext.getRetryCount() : 0;
final String url = liveIVS_URL + API_CONTROL_PRESET; 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, retryCount,
presetPos.getPatrolPointId() + "-" + presetPos.getPresetPosName(), presetPos.getPatrolPointId() + "-" + presetPos.getPresetPosName(),
url + "?" + param); url + "?" + param);
@ -40,7 +45,15 @@ public class CameraOperateRetryableDelegate {
return true; return true;
} catch (Exception e) { } catch (Exception e) {
log.info("error: {}", e.getMessage()); 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;
}
} }

+ 8
- 4
inspect-job/src/main/java/com/inspect/job/task/JobMainTask.java View File

@ -473,7 +473,7 @@ public class JobMainTask {
PatrolPresetPos presetPos = !presetPosList.isEmpty() PatrolPresetPos presetPos = !presetPosList.isEmpty()
? presetPosList.get(0) ? 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(); String taskPatrolId = taskExecRecord.getTaskPatrolId();
/*摄像头转到预置位*/ /*摄像头转到预置位*/
@ -519,7 +519,11 @@ public class JobMainTask {
try { try {
log.info("PHOTO PresetType uuid: {}, chanType: {}, videoNvrCode: {}, channelCode: {}, patrolPointId: {}", uuid, chanType, presetPos.getVideoNvrCode(), presetPos.getChannelCode(), presetPos.getPatrolPointId()); log.info("PHOTO PresetType uuid: {}, chanType: {}, videoNvrCode: {}, channelCode: {}, patrolPointId: {}", uuid, chanType, presetPos.getVideoNvrCode(), presetPos.getChannelCode(), presetPos.getPatrolPointId());
if ("vl".equals(chanType)) { 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 String paramFileName = taskPatrolId.split(StringUtils.UNDERLINE)[1] + StringUtils.UNDERLINE
+ taskPatrolId.split(StringUtils.UNDERLINE)[2] + StringUtils.UNDERLINE + taskPatrolId.split(StringUtils.UNDERLINE)[2] + StringUtils.UNDERLINE
+ presetPos.getPatrolPointId() + StringUtils.UNDERLINE + presetPos.getPatrolPointId() + StringUtils.UNDERLINE
@ -1082,14 +1086,14 @@ public class JobMainTask {
PatrolPresetPos presetPos = !presetPosList.isEmpty() ? presetPosList.get(0) : PatrolPresetPos presetPos = !presetPosList.isEmpty() ? presetPosList.get(0) :
PatrolPresetPos.builder().presetPosId("1") PatrolPresetPos.builder().presetPosId("1")
.presetPosCode("1") .presetPosCode("1")
.channelCode("00000000000000000000#ffffffffffffffffffffffffffffffff")
.channelCode("ffffffffffffffffff#ffffffffffffffffffffffffffffffff")
.channelId("999999") .channelId("999999")
.patrolPointId(1234567890L) .patrolPointId(1234567890L)
.channelType("vl") .channelType("vl")
.isEnable("1") .isEnable("1")
.eqpBookId("1") .eqpBookId("1")
.build(); .build();
String deviceCode = "00000000000000000000";
String deviceCode = "ffffffffffffffffff";
try { try {
String[] channelCodeList = presetPos.getChannelCode().split(StringUtils.HASHTAG); String[] channelCodeList = presetPos.getChannelCode().split(StringUtils.HASHTAG);
deviceCode = channelCodeList[0]; deviceCode = channelCodeList[0];


+ 17
- 2
inspect-main/inspect-main-video/src/main/java/com/inspect/patrol/controller/PatrolPresetPosController.java View File

@ -372,9 +372,24 @@ public class PatrolPresetPosController extends BaseController {
@RequestParam("patroldeviceCode") String patrolDeviceCode, @RequestParam("patroldeviceCode") String patrolDeviceCode,
@RequestParam("channelCode") String channelCode @RequestParam("channelCode") String channelCode
) throws Exception { ) 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<SysDictData> presetPoints = new ArrayList<>(); List<SysDictData> 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); JSONObject ivsPresetInfo = JSONObject.parseObject(result);
String resultCode = ivsPresetInfo.getString("resultCode"); String resultCode = ivsPresetInfo.getString("resultCode");
if (null != resultCode && resultCode.equals("0")) { if (null != resultCode && resultCode.equals("0")) {


+ 4
- 0
inspect-main/inspect-main-video/src/main/java/com/inspect/patrol/service/BasedataChannelService.java View File

@ -13,6 +13,10 @@ public interface BasedataChannelService {
@GetMapping({"/eqpbook/channel/{channelId}"}) @GetMapping({"/eqpbook/channel/{channelId}"})
AjaxResult queryById(@PathVariable("channelId") String channelId); AjaxResult queryById(@PathVariable("channelId") String channelId);
@GetMapping({"/eqpbook/channel/channelCode/{channelCode}"})
AjaxResult queryEqpBookChannelByChannelCode(@PathVariable("channelCode") String channelCode);
@GetMapping({"/eqpbook/channel/list"}) @GetMapping({"/eqpbook/channel/list"})
TableDataInfo queryChannelList(@RequestParam("basedataEqpbookChannel") JSONObject jsonObject); TableDataInfo queryChannelList(@RequestParam("basedataEqpbookChannel") JSONObject jsonObject);
} }

+ 6
- 0
inspect-metadata/src/main/java/com/inspect/metadata/eqpbook/controller/BasedataEqpBookChannelController.java View File

@ -70,6 +70,12 @@ public class BasedataEqpBookChannelController extends BaseController {
return AjaxResult.success(this.basedataEqpBookChannelService.selectBasedataEqpBookChannelByChannelId(channelId)); 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"}) @RequiresPermissions({"basedata:channel:add"})
@Log( @Log(
title = "设备通道", title = "设备通道",


+ 2
- 0
inspect-metadata/src/main/java/com/inspect/metadata/eqpbook/mapper/BasedataEqpBookChannelMapper.java View File

@ -11,6 +11,8 @@ import java.util.List;
public interface BasedataEqpBookChannelMapper { public interface BasedataEqpBookChannelMapper {
BasedataEqpBookChannel selectBasedataEqpBookChannelByChannelId(Long channelId); BasedataEqpBookChannel selectBasedataEqpBookChannelByChannelId(Long channelId);
BasedataEqpBookChannel selectBasedataEqpBookChannelByChannelCode(String channelCode);
List<BasedataEqpBookChannel> selectBasedataEqpBookChannelList(BasedataEqpBookChannel channel); List<BasedataEqpBookChannel> selectBasedataEqpBookChannelList(BasedataEqpBookChannel channel);
int insertBasedataEqpBookChannel(BasedataEqpBookChannel channel); int insertBasedataEqpBookChannel(BasedataEqpBookChannel channel);


+ 2
- 0
inspect-metadata/src/main/java/com/inspect/metadata/eqpbook/service/IBasedataEqpBookChannelService.java View File

@ -8,6 +8,8 @@ import java.util.List;
public interface IBasedataEqpBookChannelService { public interface IBasedataEqpBookChannelService {
BasedataEqpBookChannel selectBasedataEqpBookChannelByChannelId(Long channelId); BasedataEqpBookChannel selectBasedataEqpBookChannelByChannelId(Long channelId);
BasedataEqpBookChannel selectBasedataEqpBookChannelByChannelCode(String channelICode);
List<BasedataEqpBookChannel> selectBasedataEqpBookChannelList(BasedataEqpBookChannel channel); List<BasedataEqpBookChannel> selectBasedataEqpBookChannelList(BasedataEqpBookChannel channel);
int insertBasedataEqpBookChannel(BasedataEqpBookChannel channel); int insertBasedataEqpBookChannel(BasedataEqpBookChannel channel);


+ 4
- 0
inspect-metadata/src/main/java/com/inspect/metadata/eqpbook/service/impl/BasedataEqpBookChannelServiceImpl.java View File

@ -18,6 +18,10 @@ public class BasedataEqpBookChannelServiceImpl implements IBasedataEqpBookChanne
return this.basedataEqpbookChannelMapper.selectBasedataEqpBookChannelByChannelId(channelId); return this.basedataEqpbookChannelMapper.selectBasedataEqpBookChannelByChannelId(channelId);
} }
public BasedataEqpBookChannel selectBasedataEqpBookChannelByChannelCode(String channelCode) {
return this.basedataEqpbookChannelMapper.selectBasedataEqpBookChannelByChannelCode(channelCode);
}
public List<BasedataEqpBookChannel> selectBasedataEqpBookChannelList(BasedataEqpBookChannel basedataEqpbookChannel) { public List<BasedataEqpBookChannel> selectBasedataEqpBookChannelList(BasedataEqpBookChannel basedataEqpbookChannel) {
return this.basedataEqpbookChannelMapper.selectBasedataEqpBookChannelList(basedataEqpbookChannel); return this.basedataEqpbookChannelMapper.selectBasedataEqpBookChannelList(basedataEqpbookChannel);
} }


+ 5
- 0
inspect-metadata/src/main/resources/mapper/eqpbook/BasedataEqpBookChannelMapper.xml View File

@ -84,6 +84,11 @@
where channel_id = #{channelId} where channel_id = #{channelId}
</select> </select>
<select id="selectBasedataEqpBookChannelByChannelCode" parameterType="String" resultMap="BasedataEqpBookChannelResult">
<include refid="selectBasedataEqpBookChannelVo"/>
where channel_code = #{channelCode}
</select>
<insert id="insertBasedataEqpBookChannel" parameterType="BasedataEqpBookChannel" useGeneratedKeys="true" <insert id="insertBasedataEqpBookChannel" parameterType="BasedataEqpBookChannel" useGeneratedKeys="true"
keyProperty="channelId"> keyProperty="channelId">
insert into basedata_eqpbook_channel insert into basedata_eqpbook_channel


Loading…
Cancel
Save