zhitan-admin/src/main/java/com/zhitan/web/controller/realtimedata/RealtimeTrendController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
zhitan-system/src/main/java/com/zhitan/realtimedata/domain/vo/EquipmentMeasuringPointParameters.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
zhitan-system/src/main/java/com/zhitan/realtimedata/mapper/SvgTrendMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
zhitan-system/src/main/java/com/zhitan/realtimedata/service/ISvgTrendService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
zhitan-system/src/main/java/com/zhitan/realtimedata/service/impl/SvgTrendServicelmpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
zhitan-system/src/main/resources/mapper/realtimedata/SvgTrendMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
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("è·åå ³èææ åºé!"); } } } 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; } } 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); } 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); } 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); } } 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>