Parcourir la source

Merge branch 'v1.0.0' of http://39.106.8.246:3003/apm/energy-alarm-service into v1.0.0

lixing il y a 3 ans
Parent
commit
5a0474846a

+ 2 - 3
pom.xml

@@ -97,9 +97,8 @@
 
     <!-- https://mvnrepository.com/artifact/org.springframework.data/spring-data-elasticsearch -->
     <dependency>
-        <groupId>org.springframework.data</groupId>
-        <artifactId>spring-data-elasticsearch</artifactId>
-        <version>3.2.13.RELEASE</version>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
     </dependency>
 
     <dependency>

+ 24 - 0
src/main/java/com/persagy/apm/configuration/ElasticSearchConfig.java

@@ -0,0 +1,24 @@
+package com.persagy.apm.configuration;
+
+import org.apache.http.HttpHost;
+import org.elasticsearch.client.RestClient;
+import org.elasticsearch.client.RestHighLevelClient;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * @author 易涛
+ * @version 1.0
+ * @date 2021/9/7 18:05
+ */
+@Configuration
+public class ElasticSearchConfig {
+    @Bean
+    public RestHighLevelClient restHighLevelClient() {
+        return new RestHighLevelClient(
+                RestClient.builder(
+                        new HttpHost("172.16.1.186", 9200, "http")
+                )
+        );
+    }
+}

+ 94 - 0
src/main/java/com/persagy/apm/controller/GroupManagementController.java

@@ -0,0 +1,94 @@
+package com.persagy.apm.controller;
+
+import com.alibaba.fastjson.JSONArray;
+import com.persagy.apm.common.response.CommonResult;
+import com.persagy.apm.common.utils.ResultHelper;
+import com.persagy.apm.model.vo.GroupTreeDetailVO;
+import com.persagy.apm.model.vo.GroupTreeVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.io.IOUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.BeanUtils;
+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.RestController;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.nio.charset.StandardCharsets;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * @author 易涛
+ * @version 1.0
+ * @date 2021/9/7 18:09
+ */
+@Api(tags = "分组管理")
+@RestController
+@RequestMapping("group-management")
+public class GroupManagementController {
+
+    @ApiOperation(value = "获取分组树")
+    @PostMapping("/queryGroupTree")
+    public CommonResult<List<GroupTreeVO>> queryGroupTree(){
+        return ResultHelper.single(getGroupTree());
+    }
+    
+    /**
+     * 获取分组树 
+     * @author 易涛
+     * @date 2021/9/8 14:44 
+     * @return java.util.List<com.persagy.apm.model.vo.GroupTreeVO>
+     */
+    private List<GroupTreeVO> getGroupTree(){
+        InputStream inputStream = this.getClass().getClassLoader()
+                .getResourceAsStream(File.separator+"json"+File.separator+"GroupTree.json");
+        if(inputStream==null){
+            return null;
+        }
+        try{
+            String str = IOUtils.toString(inputStream, StandardCharsets.UTF_8);
+            return JSONArray.parseArray(str,GroupTreeVO.class);
+        }catch (IOException ioe){
+            throw new RuntimeException("json文件有误",ioe);
+        }
+    }
+    
+    @ApiOperation(value = "根据id获取分组详情信息")
+    @PostMapping("/queryTreeById")
+    public CommonResult<GroupTreeDetailVO> queryTreeById(@RequestBody String id){
+        List<GroupTreeVO> groupTreeVOList = getGroupTree();
+        GroupTreeDetailVO groupTreeDetailVO = new GroupTreeDetailVO();
+        queryById(groupTreeVOList,groupTreeDetailVO,id);
+        return ResultHelper.single(groupTreeDetailVO);
+    }
+    
+    /**
+     * 递归匹配符合条件的分组对象
+     * @param groupTreeVOList
+     * @param id
+     * @author 易涛
+     * @date 2021/9/8 14:50 
+     * @return com.persagy.apm.model.vo.GroupTreeVO
+     */
+    private GroupTreeDetailVO queryById(List<GroupTreeVO> groupTreeVOList,GroupTreeDetailVO groupTreeDetailVO,String id){
+        for(GroupTreeVO groupTreeVO:groupTreeVOList){
+            if(StringUtils.isNotEmpty(groupTreeDetailVO.getId())){
+                return groupTreeDetailVO;
+            }
+            if(Objects.equals(groupTreeVO.getId(),id)){
+                BeanUtils.copyProperties(groupTreeVO,groupTreeDetailVO);
+                return groupTreeDetailVO;
+            }
+            if(CollectionUtils.isNotEmpty(groupTreeVO.getChildren())){
+                queryById(groupTreeVO.getChildren(),groupTreeDetailVO,id);
+            }
+        }
+        return groupTreeDetailVO;
+    }
+}

+ 14 - 0
src/main/java/com/persagy/apm/dao/GroupManagementMapper.java

@@ -0,0 +1,14 @@
+package com.persagy.apm.dao;
+
+import com.persagy.apm.model.GroupManagement;
+import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
+import org.springframework.stereotype.Repository;
+
+/**
+ * @author 易涛
+ * @version 1.0
+ * @date 2021/9/7 18:10
+ */
+@Repository
+public interface GroupManagementMapper extends ElasticsearchRepository<GroupManagement,String> {
+}

+ 51 - 0
src/main/java/com/persagy/apm/model/GroupManagement.java

@@ -0,0 +1,51 @@
+package com.persagy.apm.model;
+
+import org.springframework.data.annotation.Id;
+import org.springframework.data.elasticsearch.annotations.Document;
+import org.springframework.data.elasticsearch.annotations.Field;
+import org.springframework.data.elasticsearch.annotations.FieldType;
+
+import java.time.LocalDateTime;
+
+/**
+ * @author 易涛
+ * @version 1.0
+ * @date 2021/9/7 18:11
+ */
+@Document(indexName = "rwd_object")
+public class GroupManagement {
+
+    @Id
+    @Field(type = FieldType.Text)
+    private String id;
+
+    @Field(name = "class_code",type = FieldType.Text)
+    private String classCode;
+
+    @Field(type = FieldType.Text)
+    private String infos;
+
+    @Field(name = "local_id",type = FieldType.Text)
+    private String localId;
+
+    @Field(name = "local_name",type = FieldType.Text)
+    private String localName;
+
+    @Field(type = FieldType.Text)
+    private String name;
+
+    @Field(name = "obj_type",type = FieldType.Text)
+    private String objType;
+
+    @Field(name = "project_id",type = FieldType.Text)
+    private String projectId;
+
+    @Field(name = "group_code",type = FieldType.Text)
+    private String groupCode;
+
+    @Field(name = "update_time")
+    private LocalDateTime updateTime;
+
+    private Long valid;
+
+}

+ 29 - 0
src/main/java/com/persagy/apm/model/vo/GroupTreeDetailVO.java

@@ -0,0 +1,29 @@
+package com.persagy.apm.model.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author 易涛
+ * @version 1.0
+ * @date 2021/9/8 11:32
+ */
+@ApiModel(value = "分组树详情")
+@Data
+public class GroupTreeDetailVO {
+
+    @ApiModelProperty("分组id")
+    private String id;
+
+    @ApiModelProperty("分组名称")
+    private String name;
+
+    @ApiModelProperty("对象类编码")
+    private String classCode;
+
+    @ApiModelProperty("条件")
+    private String condition;
+}

+ 31 - 0
src/main/java/com/persagy/apm/model/vo/GroupTreeVO.java

@@ -0,0 +1,31 @@
+package com.persagy.apm.model.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author 易涛
+ * @version 1.0
+ * @date 2021/9/8 11:32
+ */
+@ApiModel(value = "分组树")
+@Data
+public class GroupTreeVO {
+
+    @ApiModelProperty("分组id")
+    private String id;
+
+    @ApiModelProperty("分组名称")
+    private String name;
+
+    @ApiModelProperty("对象类编码")
+    private String classCode;
+
+    @ApiModelProperty("条件")
+    private String condition;
+
+    private List<GroupTreeVO> children;
+}

+ 9 - 0
src/main/java/com/persagy/apm/service/GroupManagementService.java

@@ -0,0 +1,9 @@
+package com.persagy.apm.service;
+
+/**
+ * @author 易涛
+ * @version 1.0
+ * @date 2021/9/8 14:17
+ */
+public interface GroupManagementService{
+}

+ 13 - 0
src/main/java/com/persagy/apm/service/impl/GroupManagementServiceImpl.java

@@ -0,0 +1,13 @@
+package com.persagy.apm.service.impl;
+
+import com.persagy.apm.service.GroupManagementService;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author 易涛
+ * @version 1.0
+ * @date 2021/9/8 14:18
+ */
+@Service
+public class GroupManagementServiceImpl implements GroupManagementService {
+}

+ 8 - 0
src/main/resources/bootstrap.yml

@@ -14,6 +14,14 @@ spring:
           username: ${spring.datasource.username}
           password: ${spring.datasource.password}
           driver-class-name: ${spring.datasource.driver-class-name}
+    name: energy-alarm-service
+  data:
+    elasticsearch:
+      repositories:
+        enabled: true
+      client:
+        reactive:
+          connection-timeout: 5000
 
 EUREKA_CLIENT_DEFAULT_ZONE: http://frame:123456@develop.persagy.com/integrated-eureka/eureka/
 #EUREKA_CLIENT_DEFAULT_ZONE: http://frame:Hv7MpxJ5pBckigB@47.117.93.148/integrated-eureka/eureka/

+ 23 - 0
src/main/resources/json/GroupTree.json

@@ -0,0 +1,23 @@
+[
+  {
+    "id": "1",
+    "name": "组合式空调机组",
+    "classCode": "ACATAH",
+    "condition": "installType: 1",
+    "children": []
+  },
+  {
+    "id": "2",
+    "name": "吊装空调",
+    "classCode": "ACATAH",
+    "condition": "installType: 2",
+    "children": []
+  },
+  {
+    "id": "3",
+    "name": "新风机组",
+    "classCode": "ACATFU",
+    "condition": "",
+    "children": []
+  }
+]