|
|
@@ -1,50 +1,53 @@
|
|
|
package cn.iocoder.yudao.module.pms.controller.admin.hikvision;
|
|
|
|
|
|
-import cn.hutool.core.util.StrUtil;
|
|
|
-import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
|
|
-import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
|
|
|
-import cn.iocoder.yudao.module.pms.controller.admin.hikvision.vo.HikvisionPtzControlReqVO;
|
|
|
-import cn.iocoder.yudao.module.pms.controller.admin.hikvision.vo.HikvisionTreeNodeRespVO;
|
|
|
-import cn.iocoder.yudao.module.system.api.dept.DeptApi;
|
|
|
-import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO;
|
|
|
-import cn.iocoder.yudao.module.system.api.permission.PermissionApi;
|
|
|
-import cn.iocoder.yudao.module.system.enums.permission.RoleCodeEnum;
|
|
|
-import com.alibaba.fastjson.JSON;
|
|
|
-import com.alibaba.fastjson.JSONArray;
|
|
|
-import com.alibaba.fastjson.JSONObject;
|
|
|
-import com.hikvision.artemis.sdk.ArtemisHttpUtil;
|
|
|
-import com.hikvision.artemis.sdk.config.ArtemisConfig;
|
|
|
-import io.swagger.v3.oas.annotations.Operation;
|
|
|
-import io.swagger.v3.oas.annotations.Parameter;
|
|
|
-import io.swagger.v3.oas.annotations.tags.Tag;
|
|
|
-import lombok.RequiredArgsConstructor;
|
|
|
-import lombok.extern.slf4j.Slf4j;
|
|
|
-import org.springframework.validation.annotation.Validated;
|
|
|
-import org.springframework.web.bind.annotation.GetMapping;
|
|
|
-import org.springframework.web.bind.annotation.PostMapping;
|
|
|
-import org.springframework.web.bind.annotation.RequestBody;
|
|
|
-import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
-import org.springframework.web.bind.annotation.RequestParam;
|
|
|
-import org.springframework.web.bind.annotation.RestController;
|
|
|
+import static cn.iocoder.yudao.framework.common.pojo.CommonResult.error;
|
|
|
+import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
|
|
|
|
|
+import java.nio.charset.StandardCharsets;
|
|
|
import java.util.ArrayDeque;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.Collections;
|
|
|
import java.util.Deque;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.HashSet;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Locale;
|
|
|
import java.util.LinkedHashMap;
|
|
|
import java.util.LinkedHashSet;
|
|
|
-import java.nio.charset.StandardCharsets;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Locale;
|
|
|
import java.util.Map;
|
|
|
import java.util.Set;
|
|
|
+
|
|
|
import javax.validation.Valid;
|
|
|
import javax.validation.constraints.NotBlank;
|
|
|
|
|
|
-import static cn.iocoder.yudao.framework.common.pojo.CommonResult.error;
|
|
|
-import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
|
|
+import org.springframework.validation.annotation.Validated;
|
|
|
+import org.springframework.web.bind.annotation.GetMapping;
|
|
|
+import org.springframework.web.bind.annotation.PostMapping;
|
|
|
+import org.springframework.web.bind.annotation.RequestBody;
|
|
|
+import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
+import org.springframework.web.bind.annotation.RequestParam;
|
|
|
+import org.springframework.web.bind.annotation.RestController;
|
|
|
+
|
|
|
+import com.alibaba.fastjson.JSON;
|
|
|
+import com.alibaba.fastjson.JSONArray;
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
+import com.hikvision.artemis.sdk.ArtemisHttpUtil;
|
|
|
+import com.hikvision.artemis.sdk.config.ArtemisConfig;
|
|
|
+
|
|
|
+import cn.hutool.core.util.StrUtil;
|
|
|
+import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
|
|
+import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
|
|
|
+import cn.iocoder.yudao.module.pms.controller.admin.hikvision.vo.HikvisionPtzControlReqVO;
|
|
|
+import cn.iocoder.yudao.module.pms.controller.admin.hikvision.vo.HikvisionTreeNodeRespVO;
|
|
|
+import cn.iocoder.yudao.module.system.api.dept.DeptApi;
|
|
|
+import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO;
|
|
|
+import cn.iocoder.yudao.module.system.api.permission.PermissionApi;
|
|
|
+import cn.iocoder.yudao.module.system.enums.permission.RoleCodeEnum;
|
|
|
+import io.swagger.v3.oas.annotations.Operation;
|
|
|
+import io.swagger.v3.oas.annotations.Parameter;
|
|
|
+import io.swagger.v3.oas.annotations.tags.Tag;
|
|
|
+import lombok.RequiredArgsConstructor;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
|
/**
|
|
|
* 海康 Artemis 区域和监控点接口。
|
|
|
@@ -155,8 +158,7 @@ public class HikvisionController {
|
|
|
@GetMapping("/tree/search")
|
|
|
@Operation(summary = "按监控点名称搜索并返回所属目录树")
|
|
|
public CommonResult<List<HikvisionTreeNodeRespVO>> searchTree(
|
|
|
- @Parameter(description = "监控点名称,模糊匹配,最多32个UTF-8字节;空值恢复初始树")
|
|
|
- @RequestParam(value = "keyword", required = false) String keyword) {
|
|
|
+ @Parameter(description = "监控点名称,模糊匹配,最多32个UTF-8字节;空值恢复初始树") @RequestParam(value = "keyword", required = false) String keyword) {
|
|
|
String name = StrUtil.trim(keyword);
|
|
|
if (StrUtil.isBlank(name)) {
|
|
|
return treeChildren("-1");
|
|
|
@@ -190,7 +192,7 @@ public class HikvisionController {
|
|
|
|
|
|
/** 批量补齐祖先区域,并仅挂载最终能追溯到授权根节点的匹配监控点。 */
|
|
|
private List<HikvisionTreeNodeRespVO> buildSearchTree(HikvisionTreeNodeRespVO root,
|
|
|
- List<JSONObject> cameras) throws Exception {
|
|
|
+ List<JSONObject> cameras) throws Exception {
|
|
|
Map<String, HikvisionTreeNodeRespVO> regions = new LinkedHashMap<>();
|
|
|
root.setChildren(new ArrayList<>());
|
|
|
regions.put(root.getIndexCode(), root);
|
|
|
@@ -401,7 +403,12 @@ public class HikvisionController {
|
|
|
}
|
|
|
if ("1".equals(dept.getType())) {
|
|
|
String companyName = dept.getName();
|
|
|
- if (!"四川瑞都".equals(companyName) && !"瑞恒兴域".equals(companyName)) {
|
|
|
+ String allowedCompanyName;
|
|
|
+ if (companyName != null && companyName.contains("四川瑞都")) {
|
|
|
+ allowedCompanyName = "四川瑞都";
|
|
|
+ } else if (companyName != null && companyName.contains("瑞恒兴域")) {
|
|
|
+ allowedCompanyName = "瑞恒兴域";
|
|
|
+ } else {
|
|
|
return null;
|
|
|
}
|
|
|
JSONObject root = parseArtemisData(invokeArtemis(ROOT_ADDRESS, Collections.emptyMap()));
|
|
|
@@ -410,7 +417,7 @@ public class HikvisionController {
|
|
|
throw new IllegalStateException("海康根区域响应缺少 indexCode");
|
|
|
}
|
|
|
for (HikvisionTreeNodeRespVO region : querySubRegions(rootCode)) {
|
|
|
- if (companyName.equals(region.getName()) && StrUtil.isNotBlank(region.getIndexCode())) {
|
|
|
+ if (allowedCompanyName.equals(region.getName()) && StrUtil.isNotBlank(region.getIndexCode())) {
|
|
|
return region;
|
|
|
}
|
|
|
}
|