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

feat(telemetry): 新增遥测数据管理功能并扩展数据模型

- 在 TelemetryApplication 中扩展了 MapperScan 和 scanBasePackages 配置
- 为 TelemetryData 实体类新增了 flowSpeed 和 temperature 字段
- 更新了 TelemetryDataMapper.xml 中的结果映射和查询字段
- 新增了完整的遥测数据管理模块包括 Controller、Service、Mapper 层
- 实现了分页查询、统计分析、异常数据监测等功能接口
- 添加了按设备分组统计和趋势分析的数据可视化功能
林仔 2 месяцев назад
Родитель
Сommit
a0c65e869d

+ 157 - 0
pipe-network-service/zksy-admin/src/main/java/com/zksy/web/controller/base/telemetry/TelemetryDataController.java

@@ -0,0 +1,157 @@
+package com.zksy.web.controller.base.telemetry;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.zksy.base.telemetry.domain.TelemetryData;
+import com.zksy.base.telemetry.service.TelemetryDataService;
+import com.zksy.common.annotation.Anonymous;
+import com.zksy.common.core.domain.AjaxResult;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.time.LocalDateTime;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 遥测终端数据分析与监测接口
+ */
+@RestController
+@RequestMapping("/api/telemetry/data")
+@Api(tags = "平升遥测终端消防压力")
+@Anonymous
+public class TelemetryDataController {
+
+    @Autowired
+    private TelemetryDataService telemetryDataService;
+
+    /**
+     * 分页查询遥测终端数据
+     */
+    @GetMapping("/page")
+    @ApiOperation("分页查询遥测终端数据")
+    public AjaxResult queryPage(
+            @RequestParam(defaultValue = "1") Integer pageNum,
+            @RequestParam(defaultValue = "10") Integer pageSize,
+            @RequestParam(required = false) String deviceCode,
+            @RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime startTime,
+            @RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime endTime) {
+
+        try {
+            Page<TelemetryData> page = new Page<>(pageNum, pageSize);
+            IPage<TelemetryData> resultPage = telemetryDataService.queryPage(page, deviceCode, startTime, endTime);
+            return AjaxResult.success("查询成功", resultPage);
+        } catch (Exception e) {
+            return AjaxResult.error("查询失败:" + e.getMessage());
+        }
+    }
+
+    /**
+     * 按设备统计流速/压力/温度等关键指标
+     */
+    @GetMapping("/visualization/stat/device")
+    @ApiOperation("按设备统计流速/压力/温度等关键指标")
+    public AjaxResult statTelemetryByDevice(
+            @RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime startTime,
+            @RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime endTime) {
+
+        try {
+            List<Map<String, Object>> data = telemetryDataService.statTelemetryByDevice(startTime, endTime);
+            return AjaxResult.success("统计成功", data);
+        } catch (Exception e) {
+            return AjaxResult.error("统计失败:" + e.getMessage());
+        }
+    }
+
+    /**
+     * 按小时统计设备流量/压力/温度趋势
+     */
+    @GetMapping("/visualization/stat/trend")
+    @ApiOperation("按小时统计设备流量/压力/温度趋势")
+    public AjaxResult statTelemetryTrendByHour(
+            @RequestParam String deviceCode,
+            @RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime startTime,
+            @RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime endTime) {
+
+        try {
+            List<Map<String, Object>> data = telemetryDataService.statTelemetryTrendByHour(deviceCode, startTime, endTime);
+            return AjaxResult.success("统计成功", data);
+        } catch (Exception e) {
+            return AjaxResult.error("统计失败:" + e.getMessage());
+        }
+    }
+
+    /**
+     * 查询异常数据(压力/温度/流速超过阈值)
+     */
+    @GetMapping("/visualization/abnormal")
+    @ApiOperation("查询异常数据(压力/温度/流速超过阈值)")
+    public AjaxResult queryAbnormalData(
+            @RequestParam Double pressureThreshold,
+            @RequestParam Double tempThreshold,
+            @RequestParam Double speedThreshold,
+            @RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime startTime,
+            @RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime endTime,
+            @RequestParam(defaultValue = "1") Integer pageNum,
+            @RequestParam(defaultValue = "10") Integer pageSize) {
+
+        try {
+            Page<TelemetryData> page = new Page<>(pageNum, pageSize);
+            IPage<TelemetryData> resultPage = telemetryDataService.queryAbnormalData(page, pressureThreshold, tempThreshold, speedThreshold, startTime, endTime);
+            return AjaxResult.success("查询成功", resultPage);
+        } catch (Exception e) {
+            return AjaxResult.error("查询失败:" + e.getMessage());
+        }
+    }
+
+    /**
+     * 获取设备最新监测数据
+     */
+    @GetMapping("/visualization/latest")
+    @ApiOperation("获取设备最新监测数据")
+    public AjaxResult getLatestDataByDevice(@RequestParam String deviceCode) {
+        try {
+            TelemetryData data = telemetryDataService.getLatestDataByDevice(deviceCode);
+            if (data == null) {
+                return AjaxResult.warn("未查询到该设备的最新数据", null);
+            }
+            return AjaxResult.success("查询成功", data);
+        } catch (Exception e) {
+            return AjaxResult.error("查询失败:" + e.getMessage());
+        }
+    }
+
+    /**
+     * 获取所有遥测终端设备编码
+     */
+    @GetMapping("/visualization/devices")
+    @ApiOperation("获取所有遥测终端设备编码")
+    public AjaxResult getAllDeviceCodes() {
+        try {
+            List<String> data = telemetryDataService.getAllDeviceCodes();
+            return AjaxResult.success("查询成功", data);
+        } catch (Exception e) {
+            return AjaxResult.error("查询失败:" + e.getMessage());
+        }
+    }
+
+    /**
+     * 获取所有遥测终端设备分组
+     */
+    @GetMapping("/visualization/groups")
+    @ApiOperation("获取所有遥测终端设备分组")
+    public AjaxResult getDeviceGroup() {
+        try {
+            List<String> data = telemetryDataService.getDeviceGroup();
+            return AjaxResult.success("查询成功", data);
+        } catch (Exception e) {
+            return AjaxResult.error("查询失败:" + e.getMessage());
+        }
+    }
+}

+ 212 - 0
pipe-network-service/zksy-system/src/main/java/com/zksy/base/telemetry/domain/TelemetryData.java

@@ -0,0 +1,212 @@
+package com.zksy.base.telemetry.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import lombok.Data;
+
+/**
+ * 平升遥测终端协议数据表
+ * @TableName telemetry_data
+ */
+@TableName(value ="telemetry_data")
+@Data
+public class TelemetryData implements Serializable {
+    /**
+     * 主键
+     */
+    @TableId(value = "id")
+    private String id;
+
+    /**
+     * 系统识别码
+     */
+    @TableField(value = "system_identifier")
+    private String systemIdentifier;
+
+    /**
+     * 整帧长度(字节数)
+     */
+    @TableField(value = "frame_length")
+    private String frameLength;
+
+    /**
+     * 包序号
+     */
+    @TableField(value = "packet_sequence")
+    private String packetSequence;
+
+    /**
+     * 数据类型(0x31=上报,0x34=结束)
+     */
+    @TableField(value = "data_type")
+    private String dataType;
+
+    /**
+     * 源地址(BCD格式)
+     */
+    @TableField(value = "source_addr")
+    private String sourceAddr;
+
+    /**
+     * 目的地址长度
+     */
+    @TableField(value = "dest_addr_length")
+    private String destAddrLength;
+
+    /**
+     * 目的地址(BCD格式)
+     */
+    @TableField(value = "dest_addr")
+    private String destAddr;
+
+    /**
+     * 设备编码
+     */
+    @TableField(value = "device_code")
+    private String deviceCode;
+
+    /**
+     * 功能码
+     */
+    @TableField(value = "function_code")
+    private String functionCode;
+
+    /**
+     * 保留1
+     */
+    @TableField(value = "reserve1")
+    private String reserve1;
+
+    /**
+     * 保留2
+     */
+    @TableField(value = "reserve2")
+    private String reserve2;
+
+    /**
+     * 记录数量
+     */
+    @TableField(value = "record_count")
+    private String recordCount;
+
+    /**
+     * 记录格式(按位判断字段)
+     */
+    @TableField(value = "record_format")
+    private String recordFormat;
+
+    /**
+     * 电源电压(V)
+     */
+    @TableField(value = "power_voltage")
+    private String powerVoltage;
+
+    /**
+     * 现场状态
+     */
+    @TableField(value = "field_status")
+    private String fieldStatus;
+
+    /**
+     * 是否最后一包(现场状态D3位)
+     */
+    @TableField(value = "is_last_packet")
+    private Integer isLastPacket;
+
+    /**
+     * 协议版本
+     */
+    @TableField(value = "protocol_version")
+    private String protocolVersion;
+
+    /**
+     * 参数版本
+     */
+    @TableField(value = "param_version")
+    private String paramVersion;
+
+    /**
+     * 信号质量
+     */
+    @TableField(value = "signal_quality")
+    private String signalQuality;
+
+    /**
+     * 保留3
+     */
+    @TableField(value = "reserve3")
+    private String reserve3;
+
+    /**
+     * 时间戳(2000-1-1开始)
+     */
+    @TableField(value = "timestamp_since")
+    private LocalDateTime timestampSince;
+
+    /**
+     * 表1净累计
+     */
+    @TableField(value = "meter1_net_total")
+    private String meter1NetTotal;
+
+    /**
+     * 表1正累计
+     */
+    @TableField(value = "meter1_positive_total")
+    private String meter1PositiveTotal;
+
+    /**
+     * 表1负累计
+     */
+    @TableField(value = "meter1_negative_total")
+    private String meter1NegativeTotal;
+
+    /**
+     * 表1瞬时流量
+     */
+    @TableField(value = "meter1_instant_flow")
+    private String meter1InstantFlow;
+
+    /**
+     * 流速
+     */
+    @TableField(value = "flow_speed")
+    private String flowSpeed;
+
+    /**
+     * 压力
+     */
+    @TableField(value = "pressure")
+    private String pressure;
+
+    /**
+     * 温度
+     */
+    @TableField(value = "temperature")
+    private String temperature;
+
+    /**
+     * 开关量
+     */
+    @TableField(value = "switch_value")
+    private String switchValue;
+
+    /**
+     * 数据插入时间
+     */
+    @TableField(value = "create_time")
+    private LocalDateTime createTime;
+
+    /**
+     * 历史记录详情(多字段拼接)
+     */
+    @TableField(value = "history_records")
+    private String historyRecords;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+}

+ 77 - 0
pipe-network-service/zksy-system/src/main/java/com/zksy/base/telemetry/mapper/TelemetryDataMapper.java

@@ -0,0 +1,77 @@
+package com.zksy.base.telemetry.mapper;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.zksy.base.telemetry.domain.TelemetryData;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+
+import java.time.LocalDateTime;
+import java.util.List;
+import java.util.Map;
+
+/**
+* @author Administrator
+* @description 针对表【telemetry_data(平升遥测终端协议数据表)】的数据库操作Mapper
+* @createDate 2026-01-16 15:43:42
+* @Entity com.zksy.base.telemetry.domain.TelemetryData
+*/
+public interface TelemetryDataMapper extends BaseMapper<TelemetryData> {
+    /**
+     * 按设备分组统计关键指标(平均流速、压力、温度、瞬时流量)
+     */
+    @Select("SELECT device_code, " +
+            "AVG(CAST(flow_speed AS DECIMAL(10,2))) as avg_flow_speed, " +
+            "AVG(CAST(pressure AS DECIMAL(10,2))) as avg_pressure, " +
+            "AVG(CAST(temperature AS DECIMAL(10,2))) as avg_temperature, " +
+            "AVG(CAST(meter1_instant_flow AS DECIMAL(10,2))) as avg_instant_flow, " +
+            "COUNT(*) as data_count " +
+            "FROM telemetry_data " +
+            "WHERE create_time BETWEEN #{startTime} AND #{endTime} " +
+            "GROUP BY device_code")
+    List<Map<String, Object>> statTelemetryByDevice(@Param("startTime") LocalDateTime startTime,
+                                                    @Param("endTime") LocalDateTime endTime);
+
+    /**
+     * 按小时统计设备流量/压力/温度趋势
+     */
+    @Select("SELECT DATE_FORMAT(create_time, '%Y-%m-%d %H:00:00') as hour_time, " +
+            "AVG(CAST(meter1_instant_flow AS DECIMAL(10,2))) as avg_instant_flow, " +
+            "AVG(CAST(pressure AS DECIMAL(10,2))) as avg_pressure, " +
+            "AVG(CAST(temperature AS DECIMAL(10,2))) as avg_temperature " +
+            "FROM telemetry_data " +
+            "WHERE device_code = #{deviceCode} AND create_time BETWEEN #{startTime} AND #{endTime} " +
+            "GROUP BY hour_time ORDER BY hour_time")
+    List<Map<String, Object>> statTelemetryTrendByHour(@Param("deviceCode") String deviceCode,
+                                                       @Param("startTime") LocalDateTime startTime,
+                                                       @Param("endTime") LocalDateTime endTime);
+
+    /**
+     * 查询异常数据(压力/温度/流速超过阈值)
+     */
+    @Select("SELECT * FROM telemetry_data " +
+            "WHERE (CAST(pressure AS DECIMAL(10,2)) > #{pressureThreshold} " +
+            "OR CAST(temperature AS DECIMAL(10,2)) > #{tempThreshold} " +
+            "OR CAST(flow_speed AS DECIMAL(10,2)) > #{speedThreshold}) " +
+            "AND create_time BETWEEN #{startTime} AND #{endTime} " +
+            "ORDER BY create_time DESC")
+    IPage<TelemetryData> queryAbnormalData(Page<TelemetryData> page,
+                                           @Param("pressureThreshold") Double pressureThreshold,
+                                           @Param("tempThreshold") Double tempThreshold,
+                                           @Param("speedThreshold") Double speedThreshold,
+                                           @Param("startTime") LocalDateTime startTime,
+                                           @Param("endTime") LocalDateTime endTime);
+
+    /**
+     * 获取设备最新数据
+     */
+    @Select("SELECT * FROM telemetry_data " +
+            "WHERE device_code = #{deviceCode} " +
+            "ORDER BY create_time DESC LIMIT 1")
+    TelemetryData getLatestDataByDevice(@Param("deviceCode") String deviceCode);
+}
+
+
+
+

+ 49 - 0
pipe-network-service/zksy-system/src/main/java/com/zksy/base/telemetry/service/TelemetryDataService.java

@@ -0,0 +1,49 @@
+package com.zksy.base.telemetry.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.zksy.base.telemetry.domain.TelemetryData;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.time.LocalDateTime;
+import java.util.List;
+import java.util.Map;
+
+/**
+* @author Administrator
+* @description 针对表【telemetry_data(平升遥测终端协议数据表)】的数据库操作Service
+* @createDate 2026-01-16 15:43:42
+*/
+public interface TelemetryDataService extends IService<TelemetryData> {
+    /**
+     * 分页查询遥测终端数据
+     */
+    IPage<TelemetryData> queryPage(Page<TelemetryData> page, String deviceCode, LocalDateTime startTime, LocalDateTime endTime);
+
+    /**
+     * 按设备统计流速/压力/温度等关键指标
+     */
+    List<Map<String, Object>> statTelemetryByDevice(LocalDateTime startTime, LocalDateTime endTime);
+
+    /**
+     * 按小时统计设备流量/压力/温度趋势
+     */
+    List<Map<String, Object>> statTelemetryTrendByHour(String deviceCode, LocalDateTime startTime, LocalDateTime endTime);
+
+    /**
+     * 查询异常数据(压力/温度/流速超阈值)
+     */
+    IPage<TelemetryData> queryAbnormalData(Page<TelemetryData> page, Double pressureThreshold, Double tempThreshold,
+                                           Double speedThreshold, LocalDateTime startTime, LocalDateTime endTime);
+
+    /**
+     * 获取设备最新监测数据
+     */
+    TelemetryData getLatestDataByDevice(String deviceCode);
+
+    /**
+     * 获取所有遥测终端设备编码
+     */
+    List<String> getAllDeviceCodes();
+    List<String> getDeviceGroup();
+}

+ 90 - 0
pipe-network-service/zksy-system/src/main/java/com/zksy/base/telemetry/service/impl/TelemetryDataServiceImpl.java

@@ -0,0 +1,90 @@
+package com.zksy.base.telemetry.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+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.zksy.base.pressure.domain.FirefightingPressure;
+import com.zksy.base.telemetry.domain.TelemetryData;
+import com.zksy.base.telemetry.service.TelemetryDataService;
+import com.zksy.base.telemetry.mapper.TelemetryDataMapper;
+import com.zksy.common.utils.StringUtils;
+import org.springframework.stereotype.Service;
+
+import java.time.LocalDateTime;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+* @author Administrator
+* @description 针对表【telemetry_data(平升遥测终端协议数据表)】的数据库操作Service实现
+* @createDate 2026-01-16 15:43:42
+*/
+@Service
+public class TelemetryDataServiceImpl extends ServiceImpl<TelemetryDataMapper, TelemetryData>
+    implements TelemetryDataService{
+    @Override
+    public IPage<TelemetryData> queryPage(Page<TelemetryData> page, String deviceCode, LocalDateTime startTime, LocalDateTime endTime) {
+        LambdaQueryWrapper<TelemetryData> queryWrapper = new LambdaQueryWrapper<>();
+        // 设备编码过滤
+        if (StringUtils.hasText(deviceCode)) {
+            queryWrapper.eq(TelemetryData::getDeviceCode, deviceCode);
+        }
+        // 时间范围过滤
+        if (startTime != null && endTime != null) {
+            queryWrapper.between(TelemetryData::getCreateTime, startTime, endTime);
+        }
+        // 按创建时间倒序
+        queryWrapper.orderByDesc(TelemetryData::getCreateTime);
+        return baseMapper.selectPage(page, queryWrapper);
+    }
+
+    @Override
+    public List<Map<String, Object>> statTelemetryByDevice(LocalDateTime startTime, LocalDateTime endTime) {
+        return baseMapper.statTelemetryByDevice(startTime, endTime);
+    }
+
+    @Override
+    public List<Map<String, Object>> statTelemetryTrendByHour(String deviceCode, LocalDateTime startTime, LocalDateTime endTime) {
+        return baseMapper.statTelemetryTrendByHour(deviceCode, startTime, endTime);
+    }
+
+    @Override
+    public IPage<TelemetryData> queryAbnormalData(Page<TelemetryData> page, Double pressureThreshold, Double tempThreshold,
+                                                  Double speedThreshold, LocalDateTime startTime, LocalDateTime endTime) {
+        return baseMapper.queryAbnormalData(page, pressureThreshold, tempThreshold, speedThreshold, startTime, endTime);
+    }
+
+    @Override
+    public TelemetryData getLatestDataByDevice(String deviceCode) {
+        if (!StringUtils.hasText(deviceCode)) {
+            return null;
+        }
+        return baseMapper.getLatestDataByDevice(deviceCode);
+    }
+
+    @Override
+    public List<String> getAllDeviceCodes() {
+        LambdaQueryWrapper<TelemetryData> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.select(TelemetryData::getDeviceCode).groupBy(TelemetryData::getDeviceCode);
+        return baseMapper.selectObjs(queryWrapper).stream()
+                .map(obj -> (String) obj).collect(Collectors.toList());
+    }
+
+    @Override
+    public List<String> getDeviceGroup() {
+        return lambdaQuery()
+                .select(TelemetryData::getDeviceCode)
+                .groupBy(TelemetryData::getDeviceCode)
+                .list()
+                .stream()
+                .map(TelemetryData::getDeviceCode)
+                .map(String::valueOf)
+                .collect(Collectors.toList());
+    }
+}
+
+
+
+

+ 55 - 0
pipe-network-service/zksy-system/src/main/resources/mapper/base/telemetry/TelemetryDataMapper.xml

@@ -0,0 +1,55 @@
+<?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.zksy.base.telemetry.mapper.TelemetryDataMapper">
+
+    <resultMap id="BaseResultMap" type="com.zksy.base.telemetry.domain.TelemetryData">
+            <id property="id" column="id" jdbcType="VARCHAR"/>
+            <result property="systemIdentifier" column="system_identifier" jdbcType="VARCHAR"/>
+            <result property="frameLength" column="frame_length" jdbcType="VARCHAR"/>
+            <result property="packetSequence" column="packet_sequence" jdbcType="VARCHAR"/>
+            <result property="dataType" column="data_type" jdbcType="VARCHAR"/>
+            <result property="sourceAddr" column="source_addr" jdbcType="VARCHAR"/>
+            <result property="destAddrLength" column="dest_addr_length" jdbcType="VARCHAR"/>
+            <result property="destAddr" column="dest_addr" jdbcType="VARCHAR"/>
+            <result property="deviceCode" column="device_code" jdbcType="VARCHAR"/>
+            <result property="functionCode" column="function_code" jdbcType="VARCHAR"/>
+            <result property="reserve1" column="reserve1" jdbcType="VARCHAR"/>
+            <result property="reserve2" column="reserve2" jdbcType="VARCHAR"/>
+            <result property="recordCount" column="record_count" jdbcType="VARCHAR"/>
+            <result property="recordFormat" column="record_format" jdbcType="VARCHAR"/>
+            <result property="powerVoltage" column="power_voltage" jdbcType="VARCHAR"/>
+            <result property="fieldStatus" column="field_status" jdbcType="VARCHAR"/>
+            <result property="isLastPacket" column="is_last_packet" jdbcType="TINYINT"/>
+            <result property="protocolVersion" column="protocol_version" jdbcType="VARCHAR"/>
+            <result property="paramVersion" column="param_version" jdbcType="VARCHAR"/>
+            <result property="signalQuality" column="signal_quality" jdbcType="VARCHAR"/>
+            <result property="reserve3" column="reserve3" jdbcType="VARCHAR"/>
+            <result property="timestampSince" column="timestamp_since" jdbcType="TIMESTAMP"/>
+            <result property="meter1NetTotal" column="meter1_net_total" jdbcType="VARCHAR"/>
+            <result property="meter1PositiveTotal" column="meter1_positive_total" jdbcType="VARCHAR"/>
+            <result property="meter1NegativeTotal" column="meter1_negative_total" jdbcType="VARCHAR"/>
+            <result property="meter1InstantFlow" column="meter1_instant_flow" jdbcType="VARCHAR"/>
+            <result property="flowSpeed" column="flow_speed" jdbcType="VARCHAR"/>
+            <result property="pressure" column="pressure" jdbcType="VARCHAR"/>
+            <result property="temperature" column="temperature" jdbcType="VARCHAR"/>
+            <result property="switchValue" column="switch_value" jdbcType="VARCHAR"/>
+            <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+            <result property="historyRecords" column="history_records" jdbcType="VARCHAR"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,system_identifier,frame_length,
+        packet_sequence,data_type,source_addr,
+        dest_addr_length,dest_addr,device_code,
+        function_code,reserve1,reserve2,
+        record_count,record_format,power_voltage,
+        field_status,is_last_packet,protocol_version,
+        param_version,signal_quality,reserve3,
+        timestamp_since,meter1_net_total,meter1_positive_total,
+        meter1_negative_total,meter1_instant_flow,flow_speed,
+        pressure,temperature,switch_value,
+        create_time,history_records
+    </sql>
+</mapper>

+ 13 - 2
telemetry-service/src/main/java/com/zksy/telemetry/TelemetryApplication.java

@@ -5,8 +5,19 @@ import org.mybatis.spring.annotation.MapperScan;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 
-@MapperScan(basePackages = "com.zksy.telemetry.mapper")
-@SpringBootApplication(scanBasePackages = {"com.zksy.telemetry","com.zksy.api"})
+@MapperScan({
+        "com.zksy.telemetry.mapper",
+        "com.zksy.base.mapper",
+        "com.zksy.system.mapper"
+})
+@SpringBootApplication(scanBasePackages = {
+        "com.zksy.telemetry",
+        "com.zksy.api",
+        "com.zksy.base.service",
+        "com.zksy.system.service",
+        "com.zksy.common",
+        "com.zksy.utils"
+})
 public class TelemetryApplication {
     public static void main(String[] args) {
         SpringApplication.run(TelemetryApplication.class, args);

+ 10 - 0
telemetry-service/src/main/java/com/zksy/telemetry/domain/TelemetryData.java

@@ -179,12 +179,22 @@ public class TelemetryData implements Serializable {
      */
     @TableField(value = "meter1_instant_flow")
     private String meter1InstantFlow;
+    /**
+     * 流速
+     */
+    @TableField(value = "flow_speed")
+    private String flowSpeed;
 
     /**
      * 压力
      */
     @TableField(value = "pressure")
     private String pressure;
+    /**
+     * 温度
+     */
+    @TableField(value = "temperature")
+    private String temperature;
 
     /**
      * 开关量

+ 3 - 1
telemetry-service/src/main/resources/mapper/TelemetryDataMapper.xml

@@ -32,7 +32,9 @@
         <result property="meter1PositiveTotal" column="meter1_positive_total" jdbcType="VARCHAR"/>
         <result property="meter1NegativeTotal" column="meter1_negative_total" jdbcType="VARCHAR"/>
         <result property="meter1InstantFlow" column="meter1_instant_flow" jdbcType="VARCHAR"/>
+        <result property="flowSpeed" column="flow_speed" jdbcType="VARCHAR"/>
         <result property="pressure" column="pressure" jdbcType="VARCHAR"/>
+        <result property="temperature" column="temperature" jdbcType="VARCHAR"/>
         <result property="switchValue" column="switch_value" jdbcType="VARCHAR"/>
         <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
     </resultMap>
@@ -46,7 +48,7 @@
         protocol_version, param_version, signal_quality,
         reserve3, timestamp_since, history_records,
         meter1_net_total, meter1_positive_total, meter1_negative_total,
-        meter1_instant_flow, pressure, switch_value,
+        meter1_instant_flow, flow_speed, pressure, temperature, switch_value,
         create_time
     </sql>
 </mapper>