Преглед изворни кода

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

lixing пре 3 година
родитељ
комит
ae7f71fbd2

+ 2 - 2
src/main/java/com/persagy/apm/alarmservice/alarmcondition/model/AlarmCondition.java

@@ -24,10 +24,10 @@ public class AlarmCondition extends AuditableEntity<AlarmCondition> implements S
     private Object infoCodes;
     
     @ApiModelProperty("前端展示")
-    private String frontend;
+    private Object frontend;
     
     @ApiModelProperty("后端使用")
-    private String backend;
+    private Object backend;
     
     @ApiModelProperty("触发时长")
     private Integer triggerUphold;

+ 4 - 0
src/main/java/com/persagy/apm/alarmservice/alarmcondition/model/dto/AddAlarmConditionDTO.java

@@ -23,6 +23,10 @@ public class AddAlarmConditionDTO {
     @ApiModelProperty(value = "报警触发规则", required = true)
     @NotNull(message = "报警触发规则不能为空") // todo 更新校验规则
     private List<List<CalculateMethodDTO>> frontend;
+
+    @ApiModelProperty(value = "后端使用", required = true)
+    @NotNull(message = "后端使用不能为空") // todo 更新校验规则
+    private Object backend;
     
     @ApiModelProperty(value = "触发时长", required = true)
     @NotNull(message = "触发时长不能为空") // todo 更新校验规则

+ 7 - 2
src/main/java/com/persagy/apm/alarmservice/group/management/controller/GroupManagementController.java

@@ -17,6 +17,7 @@ import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -53,8 +54,7 @@ public class GroupManagementController {
     public CommonResult<GroupTreeDetailVO> queryTreeById(@Valid @RequestBody EquipIdDTO equipIdDTO){
         List<GroupTreeVO> groupTreeVOList = getGroupTree();
         GroupTreeDetailVO groupTreeDetailVO = new GroupTreeDetailVO();
-        queryById(groupTreeVOList,groupTreeDetailVO,equipIdDTO.getId());
-        return ResultHelper.single(groupTreeDetailVO);
+        return ResultHelper.single(queryById(groupTreeVOList, groupTreeDetailVO, equipIdDTO.getId()));
     }
     
     /**
@@ -99,4 +99,9 @@ public class GroupManagementController {
     public CommonResult<List<GroupTreeInfoVO>> equipsGroupQuery(@Valid @RequestBody EquipIdListDTO equipIdListDTO){
         return ResultHelper.single(managementService.equipsGroupQuery(equipIdListDTO.getEquipIdList())) ;
     }
+
+    @Scheduled(cron = "0 0 * * * ?")
+    public void batchDelete(){
+       managementService.batchDelete();
+    }
 }

+ 8 - 0
src/main/java/com/persagy/apm/alarmservice/group/management/service/GroupManagementService.java

@@ -41,4 +41,12 @@ public interface GroupManagementService{
      * @return com.persagy.apm.alarmservice.group.management.model.vo.GroupTreeDetailVO
      */
     List<GroupTreeInfoVO> equipsGroupQuery(List<String> ids);
+
+    /**
+     * 定时任务删除valid为0的数据
+     * @author 易涛
+     * @date 2021/9/14 15:55
+     * @return void
+     */
+    void batchDelete();
 }

+ 28 - 2
src/main/java/com/persagy/apm/alarmservice/group/management/service/impl/GroupManagementServiceImpl.java

@@ -8,14 +8,13 @@ import com.persagy.apm.alarmservice.group.management.model.GroupManagement;
 import com.persagy.apm.alarmservice.group.management.model.vo.GroupTreeInfoVO;
 import com.persagy.apm.alarmservice.group.management.model.vo.GroupTreeVO;
 import com.persagy.apm.alarmservice.group.management.service.GroupManagementService;
-import com.persagy.apm.alarmservice.group.management.service.GroupManagementService;
 import com.persagy.apm.common.response.PageList;
 import com.persagy.apm.model.dto.GroupManagementDTO;
 import com.persagy.apm.model.vo.GroupManagementVo;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.lang3.StringUtils;
-import org.checkerframework.checker.units.qual.A;
 import org.elasticsearch.action.get.GetRequest;
 import org.elasticsearch.action.get.GetResponse;
 import org.elasticsearch.action.search.SearchRequest;
@@ -24,6 +23,9 @@ import org.elasticsearch.client.RequestOptions;
 import org.elasticsearch.client.RestHighLevelClient;
 import org.elasticsearch.index.query.BoolQueryBuilder;
 import org.elasticsearch.index.query.QueryBuilders;
+import org.elasticsearch.index.query.TermQueryBuilder;
+import org.elasticsearch.index.reindex.BulkByScrollResponse;
+import org.elasticsearch.index.reindex.DeleteByQueryRequest;
 import org.elasticsearch.rest.RestStatus;
 import org.elasticsearch.search.SearchHit;
 import org.elasticsearch.search.SearchHits;
@@ -53,6 +55,7 @@ import static org.apache.commons.lang3.math.NumberUtils.INTEGER_ZERO;
  * @version 1.0
  * @date 2021/9/8 14:18
  */
+@Slf4j
 @Service
 public class GroupManagementServiceImpl implements GroupManagementService {
 
@@ -65,6 +68,10 @@ public class GroupManagementServiceImpl implements GroupManagementService {
         BoolQueryBuilder queryBuilder = QueryBuilders.boolQuery();
         queryBuilder.must(QueryBuilders.matchQuery("class_code",managementDTO.getClassCode()));
         queryBuilder.must(QueryBuilders.matchPhraseQuery("infos",managementDTO.getCondition()));
+        //新增根据项目id查询设备
+        if(StringUtils.isNotEmpty(managementDTO.getProjectId())){
+            queryBuilder.must(QueryBuilders.termsQuery("project_id",managementDTO.getProjectId()));
+        }
         //模糊查询使用
         if(StringUtils.isNotEmpty(managementDTO.getLocalName())) {
             queryBuilder.must(QueryBuilders.matchQuery("local_name", managementDTO.getLocalName())
@@ -160,6 +167,9 @@ public class GroupManagementServiceImpl implements GroupManagementService {
         List<GroupTreeInfoVO> groupTreeInfoVOList = Lists.newArrayList();
         List<GroupManagement> groupManagementList = findEquipsByIds(ids);
         for(GroupManagement management:groupManagementList) {
+            if(StringUtils.isEmpty(management.getInfos())){
+                return null;
+            }
             String infos = management.getInfos().replace(DELIM_START,"")
                     .replace(DELIM_END,"").replace("\"","")
                     .replace(BACKSLASH,"").replace(" ","")
@@ -192,6 +202,7 @@ public class GroupManagementServiceImpl implements GroupManagementService {
             if(StringUtils.isNotEmpty(infoVO.getId())){
                 return infoVO;
             }
+            //排除掉配置的时候存在不小心放入空格的情况
             if(infoMap.containsKey(groupTreeVO.getCondition().replace(" ",""))){
                 BeanUtils.copyProperties(groupTreeVO,infoVO);
                 infoVO.setEquipId(equipId);
@@ -223,4 +234,19 @@ public class GroupManagementServiceImpl implements GroupManagementService {
             throw new RuntimeException("json文件有误",ioe);
         }
     }
+
+    @Override
+    public void batchDelete() {
+        DeleteByQueryRequest request = new DeleteByQueryRequest(INDEX_NAME);
+        //逻辑删除的数据直接从index中删除掉
+        request.setQuery(new TermQueryBuilder("valid", INTEGER_ZERO));
+        //每次最多删除一万条数据,如果不加这个则处理所有的文档
+        request.setMaxDocs(10000);
+        try {
+            BulkByScrollResponse resp = client.deleteByQuery(request, RequestOptions.DEFAULT);
+            log.info("删除返回的数据为---{}",resp.toString());
+        }catch (IOException e){
+            throw new RuntimeException("删除elasticSearch失败",e);
+        }
+    }
 }

+ 3 - 0
src/main/java/com/persagy/apm/model/dto/GroupManagementDTO.java

@@ -15,6 +15,9 @@ import javax.validation.constraints.NotBlank;
 @Data
 public class GroupManagementDTO{
 
+    @ApiModelProperty("项目id")
+    private String projectId;
+
     @ApiModelProperty("设备名称")
     private String localName;