瀏覽代碼

开发报警记录详情接口

lixing 3 年之前
父節點
當前提交
c869e8c281

+ 35 - 0
src/main/java/com/persagy/apm/alarmservice/dependency/eqdiagnose/client/EqDiagnoseClient.java

@@ -0,0 +1,35 @@
+package com.persagy.apm.alarmservice.dependency.eqdiagnose.client;
+
+import com.persagy.apm.alarmservice.common.constants.FeignClientNameConstants;
+import com.persagy.apm.alarmservice.dependency.eqdiagnose.client.fallback.EqDiagnoseClientFallbackFactory;
+import com.persagy.apm.alarmservice.dependency.eqdiagnose.model.MonitorIndicatorRecordListItemVO;
+import com.persagy.apm.alarmservice.dependency.eqdiagnose.model.QueryMonitorIndicatorRecordDTO;
+import com.persagy.apm.common.response.CommonResult;
+import com.persagy.apm.common.response.PageList;
+import feign.Headers;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+
+/**
+ * 设备运行诊断feign客户端
+ *
+ * @author lixing
+ * @version V1.0 2021/3/22 2:13 下午
+ **/
+@FeignClient(name = FeignClientNameConstants.ENERGY_EQ_RUN_DIAGNOSE, url = "http://192.168.17.57:8080", fallbackFactory = EqDiagnoseClientFallbackFactory.class)
+public interface EqDiagnoseClient {
+
+    /**
+     * 获取监测指标历史采集值
+     *
+     * @param queryMonitorIndicatorRecordDTO 查询条件
+     * @return 监测指标历史采集值列表
+     * @author lixing
+     * @version V1.0 2021/5/19 3:36 下午
+     */
+    @PostMapping("/monitorIndicatorRecords/query")
+    @Headers({"Content-Type: application/json"})
+    CommonResult<PageList<MonitorIndicatorRecordListItemVO>> queryMonitorIndicatorRecord(
+            QueryMonitorIndicatorRecordDTO queryMonitorIndicatorRecordDTO);
+
+}

+ 20 - 0
src/main/java/com/persagy/apm/alarmservice/dependency/eqdiagnose/client/fallback/EqDiagnoseClientFallbackFactory.java

@@ -0,0 +1,20 @@
+package com.persagy.apm.alarmservice.dependency.eqdiagnose.client.fallback;
+
+import com.persagy.apm.alarmservice.dependency.eqdiagnose.client.EqDiagnoseClient;
+import feign.hystrix.FallbackFactory;
+import org.springframework.stereotype.Component;
+
+/**
+ * feign fallback处理
+ *
+ * @author lixing
+ * @version V1.0 2021/5/19 2:21 下午
+ */
+@Component
+public class EqDiagnoseClientFallbackFactory implements FallbackFactory<EqDiagnoseClient> {
+    @Override
+    public EqDiagnoseClient create(Throwable throwable) {
+        System.out.println("fall back");
+        return null;
+    }
+}

+ 45 - 0
src/main/java/com/persagy/apm/alarmservice/dependency/eqdiagnose/model/MonitorIndicatorRecordListItemVO.java

@@ -0,0 +1,45 @@
+package com.persagy.apm.alarmservice.dependency.eqdiagnose.model;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-09-10 00:13:27
+ */
+@Data
+@ApiModel(value = "监测指标历史记录列表返回结果参数")
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class MonitorIndicatorRecordListItemVO {
+    @ApiModelProperty("主键")
+    private String id;
+    
+    @ApiModelProperty("对象id")
+    private String objId;
+    
+    @ApiModelProperty("监测指标id")
+    private String monitorIndicatorId;
+    
+    @ApiModelProperty("时间")
+    private Date date;
+    
+    @ApiModelProperty("值")
+    private String value;
+    
+    @ApiModelProperty("创建人")
+    private String creator;
+    
+    @ApiModelProperty("创建时间")
+    private Date creationTime;
+    
+    @ApiModelProperty("修改人")
+    private String modifier;
+    
+    @ApiModelProperty("修改时间")
+    private Date modifiedTime;
+    
+}

+ 35 - 0
src/main/java/com/persagy/apm/alarmservice/dependency/eqdiagnose/model/QueryMonitorIndicatorRecordDTO.java

@@ -0,0 +1,35 @@
+package com.persagy.apm.alarmservice.dependency.eqdiagnose.model;
+
+import com.persagy.apm.common.model.dto.FeignBaseDTO;
+import com.persagy.apm.common.model.dto.PoemsFeignBaseDTO;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-09-10 00:13:27
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+@ApiModel(value = "查询监测指标历史记录入参")
+public class QueryMonitorIndicatorRecordDTO extends FeignBaseDTO {
+    @ApiModelProperty(value = "对象id", required = true)
+    private String objId;
+    
+    @ApiModelProperty(value = "监测指标id", required = true)
+    private String monitorIndicatorId;
+
+    @ApiModelProperty(value = "开始时间", required = true)
+    private Long timeFrom;
+
+    @ApiModelProperty(value = "结束时间", required = true)
+    private Long timeTo;
+
+    public QueryMonitorIndicatorRecordDTO() {
+        super.setDefaultValue();
+    }
+}

+ 63 - 0
src/main/java/com/persagy/apm/alarmservice/dependency/eqdiagnose/service/EqDiagnoseServiceImpl.java

@@ -0,0 +1,63 @@
+package com.persagy.apm.alarmservice.dependency.eqdiagnose.service;
+
+import com.persagy.apm.alarmservice.dependency.eqdiagnose.client.EqDiagnoseClient;
+import com.persagy.apm.alarmservice.dependency.eqdiagnose.model.MonitorIndicatorRecordListItemVO;
+import com.persagy.apm.alarmservice.dependency.eqdiagnose.model.QueryMonitorIndicatorRecordDTO;
+import com.persagy.apm.common.response.CommonResult;
+import com.persagy.apm.common.response.PageList;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * 设备运行诊断服务层
+ *
+ * @author lixing
+ * @version V1.0 2021/9/27 3:03 下午
+ **/
+@Service
+public class EqDiagnoseServiceImpl {
+    @Autowired
+    private EqDiagnoseClient eqDiagnoseClient;
+
+    /**
+     * 获取监测指标历史采集值
+     *
+     * @param queryMonitorIndicatorRecordDTO 查询条件
+     * @return 监测指标历史采集值 date -> value
+     * @author lixing
+     * @version V1.0 2021/5/19 3:36 下午
+     */
+    public Map<Date, String> queryMonitorIndicatorRecord(
+            QueryMonitorIndicatorRecordDTO queryMonitorIndicatorRecordDTO) {
+        // feign查询
+        CommonResult<PageList<MonitorIndicatorRecordListItemVO>> pageListCommonResult =
+                eqDiagnoseClient.queryMonitorIndicatorRecord(queryMonitorIndicatorRecordDTO);
+
+        // 处理查询结果
+        if (pageListCommonResult == null) {
+            return new HashMap<>(0);
+        }
+        PageList<MonitorIndicatorRecordListItemVO> content = pageListCommonResult.getContent();
+        if (content == null) {
+            return new HashMap<>(0);
+        }
+        List<MonitorIndicatorRecordListItemVO> records = content.getRecords();
+        if (CollectionUtils.isEmpty(records)) {
+            return new HashMap<>(0);
+        }
+        return records.stream().collect(
+                Collectors.toMap(
+                        MonitorIndicatorRecordListItemVO::getDate,
+                        MonitorIndicatorRecordListItemVO::getValue
+                )
+        );
+
+    }
+}

+ 29 - 0
src/main/java/com/persagy/apm/alarmservice/group/monitorindicator/model/vo/MonitorIndicatorFormulaItem.java

@@ -0,0 +1,29 @@
+package com.persagy.apm.alarmservice.group.monitorindicator.model.vo;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.persagy.apm.common.model.vo.GraphItemVO;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+/**
+ * 监测指标公式
+ *
+ * @author lixing
+ * @version V1.0 2021-09-08 22:44:38
+ */
+@Data
+@ApiModel()
+@NoArgsConstructor
+@AllArgsConstructor
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class MonitorIndicatorFormulaItem {
+    @ApiModelProperty(value = "操作符")
+    private String operator;
+    @ApiModelProperty(value = "公式")
+    private String formula;
+}

+ 27 - 0
src/main/java/com/persagy/apm/alarmservice/project/monitorindicatorconfig/model/dto/QueryProjectMonitorIndicatorConfigByEquipDTO.java

@@ -0,0 +1,27 @@
+package com.persagy.apm.alarmservice.project.monitorindicatorconfig.model.dto;
+
+import com.persagy.apm.common.model.dto.PageDTO;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-09-08 22:46:56
+ */
+@Data
+@ApiModel("查询设备的监测指标配置")
+public class QueryProjectMonitorIndicatorConfigByEquipDTO {
+    @ApiModelProperty(value = "监测对象id", required = true)
+    @NotBlank(message = "监测对象id不可为空")
+    private String objId;
+    
+    @ApiModelProperty(value = "监测指标id列表", required = true)
+    @NotNull(message = "监测指标id列表不可为空")
+    private List<String> monitorIndicatorId;
+}