|
@@ -0,0 +1,76 @@
|
|
|
+package com.persagy.apm.dmpalarm.service.impl;
|
|
|
+
|
|
|
+import com.fasterxml.jackson.databind.node.ObjectNode;
|
|
|
+import com.google.common.collect.Sets;
|
|
|
+import com.persagy.apm.dmpalarm.client.PhysicalWorldClient;
|
|
|
+import com.persagy.apm.dmpalarm.criteria.JsonCriteria;
|
|
|
+import com.persagy.apm.dmpalarm.service.IPhysicalWorldService;
|
|
|
+import com.persagy.apm.dmpalarm.web.PagedResponse;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+
|
|
|
+import javax.annotation.Resource;
|
|
|
+import javax.validation.constraints.NotNull;
|
|
|
+import java.util.*;
|
|
|
+
|
|
|
+@Service
|
|
|
+@Slf4j
|
|
|
+public class PhysicalWorldServiceImpl implements IPhysicalWorldService {
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private PhysicalWorldClient physicalWorldClient;
|
|
|
+
|
|
|
+
|
|
|
+ public Set<String> queryObjectIdListByClassCode(
|
|
|
+ @NotNull String projectId,
|
|
|
+ @NotNull String groupCode,
|
|
|
+ @NotNull String classCode) {
|
|
|
+ JsonCriteria criteria=new JsonCriteria();
|
|
|
+ criteria.getCriteria().put("classCode", classCode);
|
|
|
+ criteria.getCriteria().put("valid", 1);
|
|
|
+ PagedResponse<ObjectNode> objectNodePagedResponse = physicalWorldClient.queryObj(projectId, groupCode, criteria);
|
|
|
+ log.info("物理世界查询对象返回值:", objectNodePagedResponse == null ? null : objectNodePagedResponse.toString());
|
|
|
+ List<ObjectNode> data = objectNodePagedResponse.getData();
|
|
|
+ Set<String> objIdList = new HashSet<>();
|
|
|
+ for (ObjectNode obj : data) {
|
|
|
+ String id = obj.get("id").asText();
|
|
|
+ objIdList.add(id);
|
|
|
+ }
|
|
|
+ return objIdList;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @description: 查询设备类型和设备id列表的映射关系
|
|
|
+ * @param: projectId
|
|
|
+ * @param: classCodes
|
|
|
+ * @return: java.util.Map
|
|
|
+ * @exception:
|
|
|
+ * @author: lixing
|
|
|
+ * @company: Persagy Technology Co.,Ltd
|
|
|
+ * @since: 2020/10/21 2:27 下午
|
|
|
+ * @version: V1.0
|
|
|
+ */
|
|
|
+ public Map<String, Set<String>> queryCodeIdListMapByClassCodes(
|
|
|
+ @NotNull String projectId,
|
|
|
+ @NotNull String groupCode,
|
|
|
+ @NotNull List<String> classCodes) {
|
|
|
+ JsonCriteria criteria=new JsonCriteria();
|
|
|
+ criteria.getCriteria().put("classCode", classCodes);
|
|
|
+ criteria.getCriteria().put("valid", 1);
|
|
|
+ PagedResponse<ObjectNode> objectNodePagedResponse = physicalWorldClient.queryObj(projectId, groupCode, criteria);
|
|
|
+ log.info("物理世界查询对象返回值:", objectNodePagedResponse == null ? null : objectNodePagedResponse.toString());
|
|
|
+ List<ObjectNode> data = objectNodePagedResponse.getData();
|
|
|
+ Map<String, Set<String>> resultMap = new HashMap<>();
|
|
|
+ for (ObjectNode obj : data) {
|
|
|
+ String id = obj.get("id").asText();
|
|
|
+ String classCode = obj.get("classCode").asText();
|
|
|
+ if (resultMap.get(classCode) == null) {
|
|
|
+ resultMap.put(classCode, Sets.newHashSet(id));
|
|
|
+ } else {
|
|
|
+ resultMap.get(classCode).add(id);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return resultMap;
|
|
|
+ }
|
|
|
+}
|