Просмотр исходного кода

Merge branch 'v2.1.0' into v2.1.1

miaolijing 3 лет назад
Родитель
Сommit
c440a94474

+ 1 - 1
src/main/java/com/persagy/apm/diagnose/feign/client/AlarmServiceClient.java

@@ -8,7 +8,7 @@ import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 
 
-//@FeignClient(name = "energy-alarm-service",url = "http://develop.persagy.com/energy-alarm-service")
+//@FeignClient(name = "energy-alarm-service",url = "http://localhost:9977")
 @FeignClient(name = "energy-alarm-service")
 public interface AlarmServiceClient {
 

+ 1 - 1
src/main/java/com/persagy/apm/diagnose/feign/client/CenterMiddlewareClient.java

@@ -15,7 +15,7 @@ import com.alibaba.fastjson.JSONObject;
  * @Description 中间件
  * @createTime 2021/9/24 15:12
  */
-//@FeignClient(name = "CENTER-MIDDLEWARE",url="http://develop2.persagy.com/center-middleware")
+//@FeignClient(name = "CENTER-MIDDLEWARE",url="http://testibmp.scpgroup.com.cn/center-middleware")
 @FeignClient(name = "CENTER-MIDDLEWARE")
 public interface CenterMiddlewareClient {
 

+ 9 - 0
src/main/java/com/persagy/apm/diagnose/indicatorrecord/controller/MonitorIndicatorRecordController.java

@@ -9,6 +9,7 @@ import com.persagy.apm.diagnose.indicatorrecord.model.dto.*;
 import com.persagy.apm.diagnose.indicatorrecord.model.vo.MonitorIndicatorRecordItemVO;
 import com.persagy.apm.diagnose.indicatorrecord.model.vo.MonitorIndicatorRecordListItemVO;
 import com.persagy.apm.diagnose.indicatorrecord.service.IMonitorIndicatorRecordService;
+import com.persagy.apm.diagnose.service.EnergyAlarmServiceImpl;
 import com.persagy.framework.ems.data.pojo.hbase.MonitorIndicatorRecord;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -59,5 +60,13 @@ public class MonitorIndicatorRecordController {
         monitorIndicatorRecordService.cleanAlarmConfigSendTime(cleanAlarmConfigDTO);
         return ResultHelper.success();
     }
+
+    @Autowired
+    EnergyAlarmServiceImpl energyAlarmService;
+
+    @PostMapping("/test")
+    public void test() throws Exception {
+        String methodId = energyAlarmService.queryObjIndicatorMethodId("Pj1101060001", "Eq1101060001297dc3087a254b0abf1e0e49748f368b", "ACATFU_RunStatus");
+    }
 }
 

+ 79 - 10
src/main/java/com/persagy/apm/diagnose/maintenance/service/impl/ProjectDataRecordServiceImpl.java

@@ -105,7 +105,6 @@ public class ProjectDataRecordServiceImpl implements IProjectDataRecordService {
                 // 获取不到锁,略过
                 return new AsyncResult<>("【监测维保数据计算线程】项目:" + projectDTO.getProjectId() + "被占用");
             }
-
             long start = System.currentTimeMillis();
             AsyncResult<String> projectDTOBack = computeProjectMaintenanceData(todayDate, projectDTO);
             if (projectDTOBack != null) {
@@ -604,19 +603,19 @@ public class ProjectDataRecordServiceImpl implements IProjectDataRecordService {
                         return true;
                     }
                 case ">":
-                    if (checkVal >= limitVal) {
+                    if (checkVal > limitVal) {
                         return true;
                     }
                 case "≤":
-                    if (checkVal >= limitVal) {
+                    if (checkVal <= limitVal) {
                         return true;
                     }
                 case "<":
-                    if (checkVal >= limitVal) {
+                    if (checkVal < limitVal) {
                         return true;
                     }
                 case "=":
-                    if (checkVal >= limitVal) {
+                    if (checkVal == limitVal) {
                         return true;
                     }
                 default:
@@ -665,7 +664,7 @@ public class ProjectDataRecordServiceImpl implements IProjectDataRecordService {
         }
         //循环计算日均
         for (Date dayDate = startDate; dayDate.before(endDate); dayDate = DateUtils.addDays(dayDate, 1)) {
-            //计算冷却泵 日均值 并构造实体对象
+            //计算 日均值 并构造实体对象
             Double dayAvg = computeDayAvg(dayDate, dateRunDataMap, dayCoolWaterMainReturnTempMap, dayTwdTempMap);
             //构造实体对象
             MonitorIndicatorRecord monitorIndicatorRecord = new MonitorIndicatorRecord();
@@ -1107,16 +1106,16 @@ public class ProjectDataRecordServiceImpl implements IProjectDataRecordService {
                     List<TimeDataDTO> timeDataDTOList = new ArrayList<>();
                     for (WeatherDTO dto:dtoList) {
                         //根据温度和湿度 计算出湿空气焓值
-                        Double hVal = TwdTempUtil.getHVal(dto.getTemperature(),dto.getHumidity());
+                        Double hVal = getHVal(dto.getTemperature(),dto.getHumidity());
                         //根据允许范围推出Tw值
-                        Double Tw = TwdTempUtil.getTw(dto.getTemperature(),hVal,TwdTemp_Limit);
+                        Double Tw = getTw(dto.getTemperature(),hVal,TwdTemp_Limit);
                         log.info("项目编号为:"+projectDTO.getProjectId()+"日期为:"+dto.getHourTime()+"温度:"+dto.getTemperature()+"湿度:"+dto.getHumidity()+"湿球温度:"+Tw);
                         //小时时间
                         Date hour = dto.getHourTime();
                         Date nextHour = com.persagy.apm.diagnose.utils.DateUtils.addHours(hour,1);
-                        for (Date starthour = hour; starthour.before(nextHour) ; starthour = com.persagy.apm.diagnose.utils.DateUtils.addMinutes(starthour,15)) {
+                        for (Date startHour = hour; startHour.before(nextHour) ; startHour = com.persagy.apm.diagnose.utils.DateUtils.addMinutes(startHour,15)) {
                             TimeDataDTO timeDataDTO = new TimeDataDTO();
-                            timeDataDTO.setTime(com.persagy.apm.diagnose.utils.DateUtils.date2Str(starthour, com.persagy.apm.diagnose.utils.DateUtils.SDFSECOND));
+                            timeDataDTO.setTime(com.persagy.apm.diagnose.utils.DateUtils.date2Str(startHour, com.persagy.apm.diagnose.utils.DateUtils.SDFSECOND));
                             timeDataDTO.setData(Tw);
                             timeDataDTOList.add(timeDataDTO);
                         }
@@ -1161,5 +1160,75 @@ public class ProjectDataRecordServiceImpl implements IProjectDataRecordService {
         return null;
     }
 
+    /**
+     * 根据允许范围推出Tw值
+     */
+    public Double getTw(Double Td, Double hVal, Double limit) throws InterruptedException {
+        Double Tw = Td-3;
+        Double num = 0.0;
+        Boolean isOk = false;
+        Boolean isTrueVal = false;
+        Integer zNum = 0,jNum = 0;
+        while (!isOk){
+            //湿空气焓值
+            Double hwVal = getHwVal(Tw);
+            //两种湿空气焓值  差值
+            Double hc = DataUtils.subtract(hVal,hwVal);
+            //判断范围
+            if (hc<limit && hc > 0.0){
+                isOk = true;
+                isTrueVal = true;
+            }else if (hc > 0){//hw 小于 h  增加湿球温度数据值
+                Tw = Tw + 0.25;
+                zNum++;
+            }else if (hc < 0){//hw 大于 h  减小湿球温度数据值
+                Tw = Tw - 0.25;
+                jNum++;
+            }
+            num++;
+            if (num > 10){
+                isOk = true;
+            }
+        }
+        if (isTrueVal){
+            return Tw;
+        }else {
+            if (zNum > 0 && jNum > 0){
+                return Tw;
+            }else{
+                return getTw(Tw,hVal,limit+0.5);
+            }
+        }
+    }
+
+    /**
+     * 根据湿球温度计算出湿空气焓值
+     */
+    public double getHwVal(Double Tw){
+        Double eVal = (18.678-Tw/234.5)*Tw/(Tw+257.14);
+        Double ev= Math.exp(eVal);
+        Double Pv = 611.2 * ev; //Td时的水蒸汽饱和压力
+        //含湿量
+        Double dw = 0.6219*(Pv/(101326-Pv));
+        //湿空气焓值
+        Double hw = 1.01*Tw + (2500+1.84*Tw)*dw;
+        return hw;
+    }
+
+    /**
+     * 根据温度和湿度 计算出湿空气焓值
+     */
+    public double getHVal(Double Td,Double Hr){
+        Double eVal = (18.678-Td/234.5)*Td/(Td+257.14);
+        Double ev= Math.exp(eVal);
+        Double Pv = 611.2*ev; //Td时的水蒸汽饱和压力
+        Double hrPv = 0.01*Hr*Pv;
+        //含湿量
+        Double d = 0.6219*(hrPv/(101326-hrPv));
+        //湿空气焓值
+        Double h = 1.01*Td + (2500+1.84*Td)*d;
+        return h;
+    }
+
 
 }

+ 8 - 13
src/main/java/com/persagy/apm/diagnose/service/EnergyAlarmServiceImpl.java

@@ -2,12 +2,13 @@ package com.persagy.apm.diagnose.service;
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.persagy.apm.common.model.vo.SimpleObjVO;
 import com.persagy.apm.diagnose.feign.AlarmResult;
 import com.persagy.apm.diagnose.feign.client.AlarmServiceClient;
 import com.persagy.apm.diagnose.indicatorrecord.service.impl.MonitorIndicatorRecordServiceImpl;
-import com.persagy.apm.diagnose.maintenance.constant.EnumAlarmItem;
 import com.persagy.apm.diagnose.maintenance.model.dto.AlarmCondition;
 import com.persagy.apm.diagnose.service.dto.*;
+import com.persagy.apm.diagnose.service.vo.MonitorIndicatorConfigVO;
 import com.persagy.apm.diagnose.utils.AlarmResultUtil;
 import com.persagy.apm.diagnose.utils.RedisUtil;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -128,24 +129,18 @@ public class EnergyAlarmServiceImpl {
     public String queryObjIndicatorMethodId(String projectId,String objId, String indicatorId) throws Exception {
         MonitorIndicatorConfigByEquipDTO build = MonitorIndicatorConfigByEquipDTO.builder().projectId(projectId).objId(objId).monitorIndicatorId(Arrays.asList(indicatorId)).groupCode(systemCode).userId("test").pd("wwwwwwwwww").build();
         AlarmResult<JSONObject> result = alarmServiceClient.query_by_equip(build);
-        JSONObject content = result.getContent();
-        if (content == null) {
-            return null;
-        }
-        JSONArray records = content.getJSONArray("records");
-        if (records == null) {
-            return null;
-        }
-        if(CollectionUtils.isEmpty(records)){
+
+        List<MonitorIndicatorConfigVO> records = AlarmResultUtil.getRecords(result, MonitorIndicatorConfigVO.class);
+        if (CollectionUtils.isEmpty(records)) {
             return null;
         }
-        JSONObject recordObj = (JSONObject)records.get(0);
+        MonitorIndicatorConfigVO recordObj = records.get(0);
 
-        JSONObject calculateMethod = recordObj.getJSONObject("calculateMethod");
+        SimpleObjVO calculateMethod = recordObj.getCalculateMethod();
         if (calculateMethod == null) {
             return null;
         }
-        return calculateMethod.getString("id");
+        return calculateMethod.getId();
     }
 
 

+ 28 - 0
src/main/java/com/persagy/apm/diagnose/service/vo/MonitorIndicatorConfigVO.java

@@ -0,0 +1,28 @@
+package com.persagy.apm.diagnose.service.vo;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.persagy.apm.common.model.vo.SimpleObjVO;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-09-08 22:46:56
+ */
+@Data
+@ApiModel(value = "项目监测指标配置列表返回结果参数")
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class MonitorIndicatorConfigVO {
+    @ApiModelProperty("主键")
+    private String id;
+    
+    @ApiModelProperty("监测对象")
+    private SimpleObjVO obj;
+    
+    @ApiModelProperty("监测指标")
+    private SimpleObjVO monitorIndicator;
+    
+    @ApiModelProperty("计算方式")
+    private SimpleObjVO calculateMethod;
+}

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

@@ -27,6 +27,10 @@ spring:
         reactive:
           connection-timeout: 5000
 
+# 日志管理方式使用集成框架的logback
+logging:
+  config: classpath:logback-spring.xml
+
 EUREKA_CLIENT_DEFAULT_ZONE: http://frame:123456@develop.persagy.com/integrated-eureka/eureka/
 
 mybatis-plus:
@@ -50,3 +54,4 @@ dmp:
     routingKey: routing-dmp-alarm     #报警定义变化路由键
     queue: eq-run-diagnose-alarm-queue              #中控订阅报警定义变化队列
 
+

Разница между файлами не показана из-за своего большого размера
+ 1 - 1
src/main/resources/db/init/table.sql