From 3df5c71cbae95f5d76177edb119a1cbfcf7dd7c4 Mon Sep 17 00:00:00 2001
From: DYL <Dn1332079466>
Date: 星期六, 08 二月 2025 14:59:01 +0800
Subject: [PATCH] 获取模型节点关联采集指标
---
zhitan-system/src/main/java/com/zhitan/realtimedata/domain/vo/EquipmentMeasuringPointParameters.java | 30 +++++++
zhitan-system/src/main/resources/mapper/realtimedata/SvgTrendMapper.xml | 37 +++++++++
zhitan-admin/src/main/java/com/zhitan/web/controller/realtimedata/RealtimeTrendController.java | 73 +++++++++++++++--
zhitan-system/src/main/java/com/zhitan/realtimedata/mapper/SvgTrendMapper.java | 16 ++++
zhitan-system/src/main/java/com/zhitan/realtimedata/service/impl/SvgTrendServicelmpl.java | 26 ++++++
zhitan-system/src/main/java/com/zhitan/realtimedata/service/ISvgTrendService.java | 15 +++
6 files changed, 187 insertions(+), 10 deletions(-)
diff --git a/zhitan-admin/src/main/java/com/zhitan/web/controller/realtimedata/RealtimeTrendController.java b/zhitan-admin/src/main/java/com/zhitan/web/controller/realtimedata/RealtimeTrendController.java
index 9acf65f..43cb400 100644
--- a/zhitan-admin/src/main/java/com/zhitan/web/controller/realtimedata/RealtimeTrendController.java
+++ b/zhitan-admin/src/main/java/com/zhitan/web/controller/realtimedata/RealtimeTrendController.java
@@ -5,9 +5,14 @@
import com.zhitan.common.core.domain.AjaxResult;
import com.zhitan.common.enums.BusinessType;
import com.zhitan.common.utils.poi.ExcelUtil;
+import com.zhitan.model.domain.EnergyIndex;
+import com.zhitan.realtimedata.domain.TagValue;
import com.zhitan.realtimedata.domain.dto.EnergyIndexMonitorDTO;
+import com.zhitan.realtimedata.domain.vo.EquipmentMeasuringPointParameters;
import com.zhitan.realtimedata.domain.vo.EquipmentPointParametersExcel;
import com.zhitan.realtimedata.domain.vo.ExportrealtimeTrendVO;
+import com.zhitan.realtimedata.service.ISvgTrendService;
+import com.zhitan.realtimedata.service.RealtimeDatabaseService;
import com.zhitan.realtimedata.service.RealtimeTrendService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -15,14 +20,18 @@
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
+import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.util.Collections;
import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+import java.util.stream.Collectors;
/**
- * @Description 瀹炴椂鐩戞祴鎺у埗绫�
- *
- * @Author zhoubg
- * @date 2024-10-15
+ * 瀹炴椂鐩戞祴鎺у埗绫�
**/
@RestController
@RequestMapping("rtdb/realtimeTrend")
@@ -31,11 +40,13 @@
@Autowired
private RealtimeTrendService realtimeTrendService;
+ @Resource
+ private ISvgTrendService svgTrendService;
+ @Resource
+ private RealtimeDatabaseService realtimeDatabaseService;
/**
* 鑾峰彇妯″瀷鑺傜偣鍏宠仈閲囬泦鎸囨爣
- *
- * @return
*/
@GetMapping("/list")
@ApiOperation(value = "鑾峰彇妯″瀷鑺傜偣鍏宠仈閲囬泦鎸囨爣")
@@ -45,9 +56,6 @@
/**
* 鑾峰彇鍘嗗彶妯″瀷鑺傜偣鍏宠仈閲囬泦鎸囨爣鏁版嵁
- * @param tagCode
- * @param dataTime
- * @return
*/
@Log(title = "鑾峰彇鍘嗗彶妯″瀷鑺傜偣鍏宠仈閲囬泦鎸囨爣鏁版嵁", businessType = BusinessType.UPDATE)
@GetMapping("/chartByDay")
@@ -58,7 +66,6 @@
/**
* 瀵煎嚭瀹炴椂鐩戞祴Excel淇℃伅
- * @return
*/
@Log(title = "瀵煎嚭瀹炴椂鐩戞祴Excel淇℃伅", businessType = BusinessType.EXPORT)
@PostMapping("/export")
@@ -69,4 +76,50 @@
util.exportExcel(response,list, "瀹炴椂鐩戞祴");
}
+ /**
+ * 鑾峰彇妯″瀷鑺傜偣鍏宠仈閲囬泦鎸囨爣
+ */
+ @Log(title = "鑾峰彇妯″瀷鑺傜偣鍏宠仈閲囬泦鎸囨爣", businessType = BusinessType.UPDATE)
+ @GetMapping("/svgTrendView/energyIndex/list")
+ @ApiOperation(value = "鑾峰彇妯″瀷鑺傜偣鍏宠仈閲囬泦鎸囨爣")
+ public AjaxResult getSvgTrendViewSettingIndex(EnergyIndex energyIndex) {
+ try {
+ List<EnergyIndex> infoList = svgTrendService.selectSvgList(energyIndex);
+ if (infoList == null || infoList.isEmpty()){
+ return AjaxResult.success(Collections.emptyList());
+ }
+ List<String> codeList = infoList.stream().map(EnergyIndex::getCode).collect(Collectors.toList());
+
+ List<TagValue> valList = realtimeDatabaseService.retrieve(codeList);
+ if (valList == null || valList.isEmpty()) {
+ return AjaxResult.success(Collections.emptyList());
+ }
+
+ Map<String, List<TagValue>> tagValueMap = valList.stream().collect(Collectors.groupingBy(TagValue::getTagCode));
+
+ List<EquipmentMeasuringPointParameters> resultList = infoList.stream().map(index -> {
+ EquipmentMeasuringPointParameters item = new EquipmentMeasuringPointParameters();
+ item.setCode(index.getCode());
+ item.setIndexName(index.getName());
+ item.setIndexUnit(index.getUnitId());
+ item.setMeteName(index.getMeterName());
+ item.setyValue("y0");
+
+ List<TagValue> tagValueList = tagValueMap.getOrDefault(index.getCode(), Collections.emptyList());
+ if (!tagValueList.isEmpty()){
+ Optional<Double> sumOptional = tagValueList.stream()
+ .map(TagValue::getValue)
+ .reduce(Double::sum);
+ sumOptional.ifPresent(sum -> item.setValue(BigDecimal.valueOf(sum)
+ .setScale(2, RoundingMode.HALF_UP).doubleValue()));
+ }
+ return item;
+ }).collect(Collectors.toList());
+
+ return AjaxResult.success(resultList);
+ } catch (Exception ex) {
+ logger.error("鑾峰彇鍏宠仈閲囬泦鎸囨爣鍑洪敊锛�", ex);
+ return AjaxResult.error("鑾峰彇鍏宠仈鎸囨爣鍑洪敊!");
+ }
+ }
}
diff --git a/zhitan-system/src/main/java/com/zhitan/realtimedata/domain/vo/EquipmentMeasuringPointParameters.java b/zhitan-system/src/main/java/com/zhitan/realtimedata/domain/vo/EquipmentMeasuringPointParameters.java
new file mode 100644
index 0000000..c899288
--- /dev/null
+++ b/zhitan-system/src/main/java/com/zhitan/realtimedata/domain/vo/EquipmentMeasuringPointParameters.java
@@ -0,0 +1,30 @@
+package com.zhitan.realtimedata.domain.vo;
+
+import lombok.Data;
+
+/**
+ * 璁惧鐩戞祴鍙傛暟鍒楄〃瀵硅薄
+ */
+@Data
+public class EquipmentMeasuringPointParameters {
+
+ private String code;
+
+ private String indexName;
+
+ private String indexUnit;
+
+ private Double value;
+
+ private String yValue;
+
+ private String meteName;
+
+ public String getyValue() {
+ return yValue;
+ }
+
+ public void setyValue(String yValue) {
+ this.yValue = yValue;
+ }
+}
diff --git a/zhitan-system/src/main/java/com/zhitan/realtimedata/mapper/SvgTrendMapper.java b/zhitan-system/src/main/java/com/zhitan/realtimedata/mapper/SvgTrendMapper.java
new file mode 100644
index 0000000..e3fc7b8
--- /dev/null
+++ b/zhitan-system/src/main/java/com/zhitan/realtimedata/mapper/SvgTrendMapper.java
@@ -0,0 +1,16 @@
+package com.zhitan.realtimedata.mapper;
+
+
+import com.zhitan.model.domain.EnergyIndex;
+
+import java.util.List;
+
+public interface SvgTrendMapper {
+ /**
+ * 瀹炴椂妫�娴� 鍔熻兘 鐨勫 sheet椤� 灞曠ず 缁勬�佸浘 娴嬬偣 鎶ヨ淇℃伅
+ *
+ * @param energyIndex
+ * @return
+ */
+ List<EnergyIndex> selectSvgTrendList(EnergyIndex energyIndex);
+}
diff --git a/zhitan-system/src/main/java/com/zhitan/realtimedata/service/ISvgTrendService.java b/zhitan-system/src/main/java/com/zhitan/realtimedata/service/ISvgTrendService.java
new file mode 100644
index 0000000..cb34eda
--- /dev/null
+++ b/zhitan-system/src/main/java/com/zhitan/realtimedata/service/ISvgTrendService.java
@@ -0,0 +1,15 @@
+package com.zhitan.realtimedata.service;
+
+import com.zhitan.model.domain.EnergyIndex;
+
+import java.util.List;
+
+public interface ISvgTrendService {
+
+ /**
+ * 瀹炴椂妫�娴� 鍔熻兘 鐨勫 sheet椤� 灞曠ず瓒嬪娍鍥�
+ * @param energyIndex
+ * @return
+ */
+ List<EnergyIndex> selectSvgList(EnergyIndex energyIndex);
+}
diff --git a/zhitan-system/src/main/java/com/zhitan/realtimedata/service/impl/SvgTrendServicelmpl.java b/zhitan-system/src/main/java/com/zhitan/realtimedata/service/impl/SvgTrendServicelmpl.java
new file mode 100644
index 0000000..2c848ba
--- /dev/null
+++ b/zhitan-system/src/main/java/com/zhitan/realtimedata/service/impl/SvgTrendServicelmpl.java
@@ -0,0 +1,26 @@
+package com.zhitan.realtimedata.service.impl;
+
+import com.zhitan.model.domain.EnergyIndex;
+import com.zhitan.realtimedata.mapper.SvgTrendMapper;
+import com.zhitan.realtimedata.service.ISvgTrendService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+public class SvgTrendServicelmpl implements ISvgTrendService {
+
+ @Autowired
+ private SvgTrendMapper svgTrendMapper;
+ /**
+ * 鏌ヨ鎸囨爣淇℃伅
+ *
+ * @param energyIndex 鎸囨爣淇℃伅ID
+ * @return 鎸囨爣淇℃伅
+ */
+ @Override
+ public List<EnergyIndex> selectSvgList(EnergyIndex energyIndex) {
+ return svgTrendMapper.selectSvgTrendList(energyIndex);
+ }
+}
diff --git a/zhitan-system/src/main/resources/mapper/realtimedata/SvgTrendMapper.xml b/zhitan-system/src/main/resources/mapper/realtimedata/SvgTrendMapper.xml
new file mode 100644
index 0000000..699f573
--- /dev/null
+++ b/zhitan-system/src/main/resources/mapper/realtimedata/SvgTrendMapper.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.zhitan.realtimedata.mapper.SvgTrendMapper">
+ <resultMap type="com.zhitan.model.domain.EnergyIndex" id="EnergyIndexResult">
+ <result property="indexId" column="index_id"/>
+ <result property="name" column="name"/>
+ <result property="code" column="code"/>
+ <result property="indexType" column="index_type"/>
+ <result property="indexCategory" column="index_category"/>
+ <result property="remark" column="remark"/>
+ <result property="unitId" column="unit_id"/>
+ <result property="meterId" column="meter_id"/>
+ <result property="meterName" column="meter_name"/>
+ </resultMap>
+
+ <select id="selectSvgTrendList" parameterType="com.zhitan.model.domain.EnergyIndex" resultMap="EnergyIndexResult">
+ select ei.index_id, name, ei.code, index_type, ei.remark, ei.unit_id, index_category,meter_name
+ from
+ energy_index ei,
+ sys_svg_info svg,
+ meter_implement as me
+ <where>
+ ei.code = svg.tag
+ and ei.meter_id = me.id
+ <if test="name != null and name != ''">and name like concat('%', #{name}, '%')</if>
+ <if test="code != null and code != ''">and ei.code like concat('%', #{code}, '%')</if>
+ <if test="indexType != null">and index_type = #{indexType}</if>
+ <if test="nodeId != null and nodeId != ''">and svg.node_id = #{nodeId}</if>
+ <if test="indexCategory != null and indexCategory != ''">and index_category =
+ #{indexCategory}
+ </if>
+ </where>
+ </select>
+
+</mapper>
--
Gitblit v1.9.3