Jelajahi Sumber

开发报警记录详情接口

lixing 3 tahun lalu
induk
melakukan
f3ee3cbe55

+ 4 - 4
pom.xml

@@ -99,11 +99,11 @@
         <artifactId>integrated-swagger2-spring-boot-starter</artifactId>
     </dependency>
 
-    <!--jep 公式解析-->
+    <!-- 数学逻辑运算解析库-->
     <dependency>
-        <groupId>org.scijava</groupId>
-        <artifactId>jep</artifactId>
-        <version>2.4.2</version>
+        <groupId>com.googlecode.aviator</groupId>
+        <artifactId>aviator</artifactId>
+        <version>5.2.5</version>
     </dependency>
 
     <dependency>

+ 1 - 0
src/main/java/com/persagy/apm/alarmservice/common/constants/FeignClientNameConstants.java

@@ -8,4 +8,5 @@ package com.persagy.apm.alarmservice.common.constants;
  **/
 public class FeignClientNameConstants {
     public static final String SAAS_WEB = "ems-saas-web";
+    public static final String ENERGY_EQ_RUN_DIAGNOSE = "energy-eq-run-diagnose";
 }

+ 2 - 2
src/main/java/com/persagy/apm/alarmservice/group/alarmrecord/controller/AlarmRecordController.java

@@ -118,7 +118,7 @@ public class AlarmRecordController {
             orders = Lists.newArrayList(sort);
             pageQueryAlarmRecordDTO.setOrders(orders);
         }
-        DmpResult<List<AlarmRecordItem>> query = alarmRecordService.query(queryAlarmRecordDTO);
+        DmpResult<List<AlarmRecordItem>> query = alarmRecordService.query(queryDTO);
         // 报警数据中台查询结果转换为报警业务中台报警记录
         List<AlarmRecordListItem> resultList = alarmRecordWrapper.getAlarmRecordListItems(query);
         // 封装分页结果
@@ -240,7 +240,7 @@ public class AlarmRecordController {
             alarmRecordIdsItem.setIds(recordIds);
         }
         BatchUpdateAlarmRecordDTO batchUpdateAlarmRecordDTO = new BatchUpdateAlarmRecordDTO();
-        batchUpdateAlarmRecordDTO.setAlarmRecords(updateAlarmRecordDTOList);
+        batchUpdateAlarmRecordDTO.setAlarmRecordModels(updateAlarmRecordDTOList);
 
         alarmRecordService.batchUpdate(batchUpdateAlarmRecordDTO);
         return ResultHelper.single(alarmRecordIdsItem);

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

@@ -1,6 +1,7 @@
 package com.persagy.apm.alarmservice.group.monitorindicator.model.vo;
 
 import com.fasterxml.jackson.annotation.JsonInclude;
+import com.persagy.apm.common.model.vo.EnumVO;
 import com.persagy.apm.common.model.vo.GraphItemVO;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -20,8 +21,12 @@ import java.util.List;
 public class MonitorIndicatorRecordInfoItem {
     @ApiModelProperty(value = "监测指标名称")
     private String monitorIndicatorName;
+    @ApiModelProperty(value = "单位")
+    private String unit;
     @ApiModelProperty(value = "监测指标数据记录")
     private List<GraphItemVO> value;
     @ApiModelProperty(value = "监测指标参照值")
     private List<MonitorIndicatorReferenceItem> reference;
+    @ApiModelProperty(value = "监测指标可选字典")
+    private List<EnumVO> dic;
 }

+ 240 - 6
src/main/java/com/persagy/apm/alarmservice/group/monitorindicator/service/impl/MonitorIndicatorServiceImpl.java

@@ -1,10 +1,16 @@
 package com.persagy.apm.alarmservice.group.monitorindicator.service.impl;
 
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.google.common.base.CaseFormat;
+import com.googlecode.aviator.AviatorEvaluator;
+import com.googlecode.aviator.Expression;
+import com.persagy.apm.alarmservice.dependency.eqdiagnose.model.QueryMonitorIndicatorRecordDTO;
+import com.persagy.apm.alarmservice.dependency.eqdiagnose.service.EqDiagnoseServiceImpl;
 import com.persagy.apm.alarmservice.group.alarmrecord.service.AlarmRecordWrapper;
 import com.persagy.apm.alarmservice.group.calculatemethod.model.CalculateMethod;
 import com.persagy.apm.alarmservice.group.calculatemethod.model.dto.QueryCalculateMethodDTO;
@@ -13,20 +19,24 @@ import com.persagy.apm.alarmservice.group.monitorindicator.dao.MonitorIndicatorM
 import com.persagy.apm.alarmservice.group.monitorindicator.model.ConvertMonitorIndicatorTool;
 import com.persagy.apm.alarmservice.group.monitorindicator.model.MonitorIndicator;
 import com.persagy.apm.alarmservice.group.monitorindicator.model.dto.*;
+import com.persagy.apm.alarmservice.group.monitorindicator.model.vo.MonitorIndicatorFormulaItem;
 import com.persagy.apm.alarmservice.group.monitorindicator.model.vo.MonitorIndicatorListItemVO;
 import com.persagy.apm.alarmservice.group.monitorindicator.model.vo.MonitorIndicatorRecordInfoItem;
+import com.persagy.apm.alarmservice.group.monitorindicator.model.vo.MonitorIndicatorReferenceItem;
 import com.persagy.apm.alarmservice.group.monitorindicator.service.IMonitorIndicatorService;
+import com.persagy.apm.common.constant.enums.AttrValueTypeEnum;
 import com.persagy.apm.common.constant.enums.ValidEnum;
 import com.persagy.apm.common.context.AppContext;
 import com.persagy.apm.common.model.dto.Sort;
+import com.persagy.apm.common.model.vo.GraphItemVO;
 import com.persagy.apm.energyalarmstarter.alarmdata.model.vo.AlarmRecordItem;
 import org.apache.commons.lang.StringUtils;
+import org.assertj.core.util.Lists;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
-import java.util.ArrayList;
-import java.util.List;
+import java.util.*;
 
 /**
  * 监测指标(MonitorIndicator) service层
@@ -41,6 +51,10 @@ public class MonitorIndicatorServiceImpl extends ServiceImpl<MonitorIndicatorMap
     ICalculateMethodService calculateMethodService;
     @Autowired
     AlarmRecordWrapper alarmRecordWrapper;
+    @Autowired
+    EqDiagnoseServiceImpl eqDiagnoseService;
+    @Autowired
+    MonitorIndicatorServiceImpl monitorIndicatorService;
 
     /**
      * 创建监测指标
@@ -67,8 +81,6 @@ public class MonitorIndicatorServiceImpl extends ServiceImpl<MonitorIndicatorMap
      */
     private void setDefaultValue(MonitorIndicator monitorIndicator) {
         monitorIndicator.setCreator(AppContext.getContext().getAccountId());
-        // todo 其他默认的属性
-
     }
 
     /**
@@ -231,9 +243,231 @@ public class MonitorIndicatorServiceImpl extends ServiceImpl<MonitorIndicatorMap
     @Override
     public List<MonitorIndicatorRecordInfoItem> monitorIndicatorRecordInfo(
             QueryMonitorIndicatorRecordInfoDTO queryMonitorIndicatorRecordInfoDTO) throws Exception {
-        // 获取报警记录关联的指标
+        // 获取报警记录关联的指标和指标关联的公式
         String alarmRecordId = queryMonitorIndicatorRecordInfoDTO.getAlarmRecordId();
         AlarmRecordItem alarmRecord = alarmRecordWrapper.getAlarmRecord(alarmRecordId);
-        return null;
+        JSONObject condition = alarmRecord.getCondition();
+        JSONArray infoCodeArray = condition.getJSONArray("infoCode");
+        JSONArray conditionArray = condition.getJSONArray("configs");
+        if (CollectionUtils.isEmpty(infoCodeArray) || CollectionUtils.isEmpty(conditionArray)) {
+            return new ArrayList<>();
+        }
+
+        // 获取监测指标的历史采集值 monitorId -> (time -> value)
+        List<String> infoCodeList = infoCodeArray.toJavaList(String.class);
+        Map<String, Map<Date, String>> monitorValuesMap = getIndicatorHistoryValues(
+                infoCodeList, queryMonitorIndicatorRecordInfoDTO.getStartTime(),
+                queryMonitorIndicatorRecordInfoDTO.getEndTime());
+
+        // indicatorId -> list<formula> 监测指标和与监测指标关联的公式的映射
+        Map<String, List<MonitorIndicatorFormulaItem>> indicatorFormulaMap = getIndicatorFormulaMap(conditionArray);
+
+        // 遍历监测指标和与监测指标关联的公式的映射,获取监测指标和公式的取值,转换为返回结果
+        List<MonitorIndicatorRecordInfoItem> result = new ArrayList<>();
+        for (String indicatorId : indicatorFormulaMap.keySet()) {
+            MonitorIndicatorRecordInfoItem monitorIndicatorRecordInfoItem = new MonitorIndicatorRecordInfoItem();
+            // 查询监测指标基本信息
+            MonitorIndicator monitorIndicator = monitorIndicatorService.queryMonitorIndicatorDetail(indicatorId);
+            monitorIndicatorRecordInfoItem.setMonitorIndicatorName(monitorIndicator.getName());
+            monitorIndicatorRecordInfoItem.setUnit(monitorIndicator.getUnit());
+            // 获取监测指标历史采集值
+            Map<Date, String> indicatorRecordMap = monitorValuesMap.get(indicatorId);
+            List<GraphItemVO> values = getIndicatorRecordGraphData(monitorIndicator, indicatorRecordMap);
+            monitorIndicatorRecordInfoItem.setValue(values);
+            // 如果监测指标的取值不是枚举数据,获取监测指标参照值
+            if (monitorIndicator.getDic() != null) {
+                monitorIndicatorRecordInfoItem.setDic(monitorIndicator.getDic());
+            } else {
+                List<MonitorIndicatorReferenceItem> reference = getMonitorIndicatorReferenceItems(
+                        monitorValuesMap, indicatorFormulaMap, monitorIndicator);
+                monitorIndicatorRecordInfoItem.setReference(reference);
+            }
+            result.add(monitorIndicatorRecordInfoItem);
+        }
+        return result;
+    }
+
+    /**
+     * 获取监测指标的参照值列表
+     *
+     * @param monitorValuesMap    所有相关监测指标的历史采集值 indicatorId -> (date -> value)
+     * @param indicatorFormulaMap 所有监测指标关联的公式 indicatorId -> 公式列表
+     * @param monitorIndicator    监测指标对象
+     * @return 监测指标的参照值列表
+     * @author lixing
+     * @version V1.0 2021/9/27 4:23 下午
+     */
+    private List<MonitorIndicatorReferenceItem> getMonitorIndicatorReferenceItems(
+            Map<String, Map<Date, String>> monitorValuesMap,
+            Map<String, List<MonitorIndicatorFormulaItem>> indicatorFormulaMap, MonitorIndicator monitorIndicator) {
+        List<MonitorIndicatorReferenceItem> reference = new ArrayList<>();
+        List<MonitorIndicatorFormulaItem> monitorIndicatorFormulaItems = indicatorFormulaMap.get(monitorIndicator.getId());
+        for (MonitorIndicatorFormulaItem monitorIndicatorFormulaItem : monitorIndicatorFormulaItems) {
+            MonitorIndicatorReferenceItem monitorIndicatorReferenceItem = new MonitorIndicatorReferenceItem();
+            monitorIndicatorReferenceItem.setUnit(monitorIndicator.getUnit());
+            monitorIndicatorReferenceItem.setOperator(monitorIndicatorFormulaItem.getOperator());
+            // 解析公式,得到公式计算结果
+            String formula = monitorIndicatorFormulaItem.getFormula();
+            List<GraphItemVO> referenceValueList = new ArrayList<>();
+            Map<Date, String> indicatorRecordMap = monitorValuesMap.get(monitorIndicator.getId());
+            for (Date date : indicatorRecordMap.keySet()) {
+                HashMap<String, Object> paramMap = getParamMap(monitorValuesMap, date);
+                Double formulaResult = calculateFormula(formula, paramMap);
+                GraphItemVO graphItemVO = new GraphItemVO(
+                        String.valueOf(date.getTime()), formulaResult,
+                        AttrValueTypeEnum.number_2, monitorIndicator.getUnit());
+                referenceValueList.add(graphItemVO);
+            }
+            monitorIndicatorReferenceItem.setValue(referenceValueList);
+            reference.add(monitorIndicatorReferenceItem);
+        }
+        return reference;
+    }
+
+    /**
+     * 获取监测指标历史采集值图表数据
+     *
+     * @param monitorIndicator   监测指标对象
+     * @param indicatorRecordMap 监测指标历史采集值 date->value
+     * @return 监测指标历史采集值图表数据
+     * @author lixing
+     * @version V1.0 2021/9/27 4:20 下午
+     */
+    private List<GraphItemVO> getIndicatorRecordGraphData(
+            MonitorIndicator monitorIndicator, Map<Date, String> indicatorRecordMap) {
+        List<GraphItemVO> values = new ArrayList<>();
+        for (Date date : indicatorRecordMap.keySet()) {
+            if (date == null) {
+                continue;
+            }
+            String valueStr = indicatorRecordMap.get(date);
+            Double value = StringUtils.isBlank(valueStr) ? null : Double.valueOf(valueStr);
+            GraphItemVO graphItemVO = new GraphItemVO(
+                    String.valueOf(date.getTime()), value, AttrValueTypeEnum.number, monitorIndicator.getUnit());
+            values.add(graphItemVO);
+        }
+        return values;
+    }
+
+    /**
+     * 将给定时间各个指标的取值转换为公式参数map
+     *
+     * @param monitorValuesMap 监测指标的历史采集值 monitorId -> (time -> value)
+     * @param date             给定时间
+     * @return 公式参数map
+     * @author lixing
+     * @version V1.0 2021/9/27 4:00 下午
+     */
+    private HashMap<String, Object> getParamMap(Map<String, Map<Date, String>> monitorValuesMap, Date date) {
+        if (CollectionUtils.isEmpty(monitorValuesMap)) {
+            return new HashMap<>();
+        }
+
+        HashMap<String, Object> paramMap = new HashMap<>();
+        for (String indicatorId : monitorValuesMap.keySet()) {
+            Map<Date, String> recordMap = monitorValuesMap.get(indicatorId);
+            if (CollectionUtils.isEmpty(recordMap)) {
+                continue;
+            }
+            if (recordMap.get(date) != null) {
+                paramMap.put(indicatorId, Double.valueOf(recordMap.get(date)));
+            }
+        }
+        return paramMap;
+    }
+
+    /**
+     * 计算公式,获取计算结果
+     *
+     * @param formula  公式
+     * @param paramMap 参数
+     * @return 结果
+     * @author lixing
+     * @version V1.0 2021/9/27 3:59 下午
+     */
+    private Double calculateFormula(String formula, HashMap<String, Object> paramMap) {
+        Expression triggerExp = AviatorEvaluator.compile(formula, true);
+        Object resultObj = triggerExp.execute(paramMap);
+        if (resultObj == null) {
+            return null;
+        }
+        return Double.valueOf(resultObj.toString());
+    }
+
+    /**
+     * 获取监测指标和与监测指标关联的公式的映射
+     *
+     * @param conditionArray 报警条件数组
+     * @return 监测指标和与监测指标关联的公式的映射
+     * @author lixing
+     * @version V1.0 2021/9/27 2:42 下午
+     */
+    private Map<String, List<MonitorIndicatorFormulaItem>> getIndicatorFormulaMap(JSONArray conditionArray) {
+        Map<String, List<MonitorIndicatorFormulaItem>> indicatorFormulaMap = new HashMap<>();
+        // conditionArray: [condition], condition: [rule], rule: indicator, formula, operator
+        for (Object conditionObj : conditionArray) {
+            JSONArray ruleArray = (JSONArray) conditionObj;
+            if (CollectionUtils.isEmpty(ruleArray)) {
+                continue;
+            }
+            for (Object ruleObj : ruleArray) {
+                JSONObject rule = (JSONObject) ruleObj;
+                String monitorIndicatorId = rule.getString("monitorIndicatorId");
+                if (StringUtils.isBlank(monitorIndicatorId)) {
+                    continue;
+                }
+                String tempFormula = rule.getString("tempFormula");
+                String operator = rule.getString("operator");
+                if (indicatorFormulaMap.containsKey(monitorIndicatorId)) {
+                    List<MonitorIndicatorFormulaItem> monitorIndicatorFormulaItems = indicatorFormulaMap.get(monitorIndicatorId);
+                    monitorIndicatorFormulaItems.add(new MonitorIndicatorFormulaItem(operator, tempFormula));
+                } else {
+                    indicatorFormulaMap.put(monitorIndicatorId,
+                            Lists.newArrayList(new MonitorIndicatorFormulaItem(operator, tempFormula)));
+                }
+            }
+        }
+        return indicatorFormulaMap;
+    }
+
+    /**
+     * 获取监测指标的历史采集值
+     *
+     * @param infoCodeList [equipId-monitorId]
+     * @param startTime    开始时间
+     * @param endTime      结束时间
+     * @return 监测指标的历史采集值 monitorId -> (time -> value)
+     * @author lixing
+     * @version V1.0 2021/9/27 2:35 下午
+     */
+    private Map<String, Map<Date, String>> getIndicatorHistoryValues(
+            List<String> infoCodeList, Date startTime, Date endTime) {
+        // monitorId -> (time -> value)
+        Map<String, Map<Date, String>> monitorValuesMap = new HashMap<>();
+        // infoCodeList:[equipId-monitorId]
+        for (String infoCode : infoCodeList) {
+            String objId;
+            String indicatorId;
+            try {
+                objId = infoCode.substring(0, infoCode.indexOf("_"));
+                indicatorId = infoCode.substring(infoCode.indexOf("_") + 1);
+            } catch (Exception e) {
+                throw new IllegalArgumentException("报警记录数据有误,无法正确获取到报警条件中的信息点");
+            }
+            if (StringUtils.isBlank(objId) || StringUtils.isBlank(indicatorId)) {
+                throw new IllegalArgumentException("报警记录数据有误,无法正确获取到报警条件中的信息点");
+            }
+            // 查询设备监测指标取值
+            QueryMonitorIndicatorRecordDTO queryMonitorIndicatorRecordDTO = new QueryMonitorIndicatorRecordDTO();
+            queryMonitorIndicatorRecordDTO.setObjId(objId);
+            queryMonitorIndicatorRecordDTO.setMonitorIndicatorId(indicatorId);
+            queryMonitorIndicatorRecordDTO.setTimeFrom(startTime == null ? null : startTime.getTime());
+            queryMonitorIndicatorRecordDTO.setTimeTo(endTime == null ? null : endTime.getTime());
+            Map<Date, String> indicatorRecordMap = eqDiagnoseService.
+                    queryMonitorIndicatorRecord(queryMonitorIndicatorRecordDTO);
+            monitorValuesMap.put(indicatorId, indicatorRecordMap);
+        }
+
+        return monitorValuesMap;
     }
 }

+ 9 - 0
src/main/java/com/persagy/apm/alarmservice/project/monitorindicatorconfig/controller/ProjectMonitorIndicatorConfigController.java

@@ -99,5 +99,14 @@ public class ProjectMonitorIndicatorConfigController {
                 pageQueryProjectMonitorIndicatorConfig(pageQueryProjectMonitorIndicatorConfigDTO);
         return ResultHelper.multi(pagedList);
     }
+
+    @ApiOperation(value = "设备监测指标配置")
+    @PostMapping("/query_by_equip")
+    public CommonResult<PageList<ProjectMonitorIndicatorConfigListItemVO>> queryProjectMonitorIndicatorConfigByEquip(
+            @Valid @RequestBody QueryProjectMonitorIndicatorConfigByEquipDTO queryProjectMonitorIndicatorConfigByEquipDTO) {
+        IPage<ProjectMonitorIndicatorConfigListItemVO> pagedList = projectMonitorIndicatorConfigService.
+                queryProjectMonitorIndicatorConfigByEquip(queryProjectMonitorIndicatorConfigByEquipDTO);
+        return ResultHelper.multi(pagedList);
+    }
 }
 

+ 11 - 0
src/main/java/com/persagy/apm/alarmservice/project/monitorindicatorconfig/service/IProjectMonitorIndicatorConfigService.java

@@ -84,4 +84,15 @@ public interface IProjectMonitorIndicatorConfigService  {
      * @version V1.0 2021/9/17 2:43 下午
      */
     public ProjectMonitorIndicatorConfig getConfigByObjAndIndicator(String objId, String monitorIndicatorId);
+
+    /**
+     * 查询设备监测指标配置
+     *
+     * @param queryProjectMonitorIndicatorConfigByEquipDTO 查询条件
+     * @return 设备监测指标配置列表
+     * @author lixing
+     * @version V1.0 2021/9/27 11:28 上午
+     */
+    IPage<ProjectMonitorIndicatorConfigListItemVO> queryProjectMonitorIndicatorConfigByEquip(
+            QueryProjectMonitorIndicatorConfigByEquipDTO queryProjectMonitorIndicatorConfigByEquipDTO);
 }

+ 27 - 4
src/main/java/com/persagy/apm/alarmservice/project/monitorindicatorconfig/service/impl/ProjectMonitorIndicatorConfigServiceImpl.java

@@ -17,10 +17,7 @@ import com.persagy.apm.alarmservice.group.monitorindicator.service.IMonitorIndic
 import com.persagy.apm.alarmservice.project.monitorindicatorconfig.dao.ProjectMonitorIndicatorConfigMapper;
 import com.persagy.apm.alarmservice.project.monitorindicatorconfig.model.ConvertProjectMonitorIndicatorConfigTool;
 import com.persagy.apm.alarmservice.project.monitorindicatorconfig.model.ProjectMonitorIndicatorConfig;
-import com.persagy.apm.alarmservice.project.monitorindicatorconfig.model.dto.AddProjectMonitorIndicatorConfigDTO;
-import com.persagy.apm.alarmservice.project.monitorindicatorconfig.model.dto.PageQueryProjectMonitorIndicatorConfigDTO;
-import com.persagy.apm.alarmservice.project.monitorindicatorconfig.model.dto.QueryProjectMonitorIndicatorConfigDTO;
-import com.persagy.apm.alarmservice.project.monitorindicatorconfig.model.dto.UpdateProjectMonitorIndicatorConfigDTO;
+import com.persagy.apm.alarmservice.project.monitorindicatorconfig.model.dto.*;
 import com.persagy.apm.alarmservice.project.monitorindicatorconfig.model.vo.ProjectMonitorIndicatorConfigListItemVO;
 import com.persagy.apm.alarmservice.project.monitorindicatorconfig.service.IProjectMonitorIndicatorConfigService;
 import com.persagy.apm.common.constant.enums.BoolEnum;
@@ -417,4 +414,30 @@ public class ProjectMonitorIndicatorConfigServiceImpl extends ServiceImpl<Projec
         return new ProjectMonitorIndicatorConfig(
                 objId, monitorIndicatorId, calculateMethodId, projectId);
     }
+
+    @Override
+    public IPage<ProjectMonitorIndicatorConfigListItemVO> queryProjectMonitorIndicatorConfigByEquip(
+            QueryProjectMonitorIndicatorConfigByEquipDTO queryProjectMonitorIndicatorConfigByEquipDTO) {
+        IPage<ProjectMonitorIndicatorConfigListItemVO> result = new Page<>();
+        result.setTotal(0);
+        result.setRecords(new ArrayList<>());
+
+        String objId = queryProjectMonitorIndicatorConfigByEquipDTO.getObjId();
+        List<String> monitorIndicatorIdList = queryProjectMonitorIndicatorConfigByEquipDTO.getMonitorIndicatorId();
+        if (StringUtils.isBlank(objId) || CollectionUtils.isEmpty(monitorIndicatorIdList)) {
+            return result;
+        }
+        EquipItem equipItem = groupManagementService.equipGet(objId);
+        QueryMonitorIndicatorDTO queryMonitorIndicatorDTO = new QueryMonitorIndicatorDTO();
+        queryMonitorIndicatorDTO.setIds(monitorIndicatorIdList);
+        List<MonitorIndicator> monitorIndicators = monitorIndicatorService.queryMonitorIndicatorList(queryMonitorIndicatorDTO);
+        List<ProjectMonitorIndicatorConfigListItemVO> recordList =
+                combineResult(monitorIndicators, Lists.newArrayList(equipItem));
+        // 项目监测指标初始化计算方式
+        recordList.forEach(this::addCalculateMethodInfo);
+
+        result.setRecords(recordList);
+        result.setTotal(recordList.size());
+        return result;
+    }
 }