# 19_MultiParam_Temperature_Label_Vue2 **Repository Path**: code1014/MultiParamTemperatureLabelVue2 ## Basic Information - **Project Name**: 19_MultiParam_Temperature_Label_Vue2 - **Description**: 密闭墙多参数 + 光纤测温 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-07 - **Last Updated**: 2026-05-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 密闭墙在线监测系统 ## 项目简介 密闭墙在线监测系统(Multi-Param Temperature Label)是一款面向工业场景的**实时多参数监测与告警平台**,主要应用于煤矿巷道、皮带输送线等密闭空间环境。系统通过TCP网关(Netty)与现场设备(主控器、分控器、喷淋设备、光纤测温等)建立长连接,实时采集温度、气体浓度、压差等参数,并在参数超标时自动触发喷淋、球阀控制等联动动作。 **技术栈**:Spring Boot 2.7.1 + Netty 4.1.31 + MyBatis + PostgreSQL + Vue 2 --- ## 系统架构 ``` ┌──────────────────────────────────────────────────────────────┐ │ 前端 (Vue 2) │ │ http://localhost:5735 (默认) │ └─────────────────────────┬────────────────────────────────────┘ │ HTTP REST API ┌─────────────────────────▼────────────────────────────────────┐ │ 后端 Spring Boot 服务 (5735) │ │ │ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────────┐ │ │ │ Controller │ │ DAO │ │ Quartz 定时 │ │ │ │ 控制层 │ │ 数据访问层 │ │ 任务调度 │ │ │ └──────────────┘ └──────────────┘ └──────────────────┘ │ │ │ │ ┌────────────────────────────────────────────────────────┐ │ │ │ Netty TCP 网关层 (3000 / 5050) │ │ │ │ ┌─────────────────┐ ┌──────────────────────────┐ │ │ │ │ │ 默认协议网关 │ │ 光纤测温协议网关 │ │ │ │ │ │ (Product 0302/ │ │ (Fibre Optical │ │ │ │ │ │ 0603 设备) │ │ DTS 设备) │ │ │ │ │ └─────────────────┘ └──────────────────────────┘ │ │ │ └────────────────────────────────────────────────────────┘ │ └─────────────────────────┬────────────────────────────────────┘ │ TCP 协议 ┌───────────────┼───────────────┐ ▼ ▼ ▼ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ 产品0302 │ │ 产品0603 │ │ 光纤测温 │ │ 主/分控器 │ │ 喷淋设备 │ │ 设备 │ └──────────┘ └──────────┘ └──────────┘ ``` --- ## 核心技术 | 技术 | 版本 | 用途 | | ----------- | -------------- | ------------ | | Spring Boot | 2.7.1 | 后端核心框架 | | Netty | 4.1.31.Final | TCP 网关,长连接通信 | | MyBatis | 1.3.2 | 数据库持久层 | | PostgreSQL | — | 主数据库 | | MySQL | — | 兼容支持 | | FastJSON | 1.2.68 | JSON 解析 | | Quartz | Spring Boot 内置 | 定时任务调度 | | Vue 2 | — | 前端框架 | --- ## 项目结构 ``` MultiParamTemperatureLabelVue2/ │ ├── code/ # 后端源码 │ └── multi_param_temperature_label/ # Spring Boot 项目 │ ├── pom.xml # Maven 依赖配置 │ ├── readme.md # 后端详细说明文档 │ │ │ ├── src/main/ │ │ ├── java/com/ji_an/service/ │ │ │ │ │ │ │ ├── ServiceApplication.java # 程序主入口 │ │ │ │ │ │ │ ├── annotation/ # 自定义注解 │ │ │ │ └── OperationLog.java # 操作日志注解 │ │ │ │ │ │ │ ├── applicationmanager/ # 程序启动管理 │ │ │ │ ├── ApplicationStarter.java # 启动器 │ │ │ │ └── ApplicationStartBusiness.java │ │ │ │ │ │ │ ├── aspect/ # AOP 切面 │ │ │ │ └── OperationLogAspect.java # 操作日志切面 │ │ │ │ │ │ │ ├── configuration/ # 程序配置 │ │ │ │ ├── ApplicationConfig.java │ │ │ │ └── GatewayAnalysisConfig.java │ │ │ │ │ │ │ ├── controller/ # ★ 控制层(Web API) │ │ │ │ ├── Business.java # 通用业务方法 │ │ │ │ ├── WebApiExecute.java # API 执行器 │ │ │ │ ├── confined/ # 0302 密闭墙多参数 │ │ │ │ ├── foe/ # 光纤设备(FO_*) │ │ │ │ ├── infrared_camera/ # 红外相机 │ │ │ │ ├── scene/ # 场景管理(皮带) │ │ │ │ ├── spray/ # 0603 喷淋控制 │ │ │ │ ├── sys/ # 系统管理 │ │ │ │ └── usr/ # 用户管理 │ │ │ │ │ │ │ ├── dao/ # 数据访问层 │ │ │ │ ├── confined/ # 0302 数据访问 │ │ │ │ ├── foe/ # 光纤数据访问 │ │ │ │ ├── infrared_camera/ │ │ │ │ ├── scene/ # 场景绑定数据访问 │ │ │ │ ├── spray/ # 0603 喷淋数据访问 │ │ │ │ ├── sys/ │ │ │ │ └── usr/ │ │ │ │ │ │ │ ├── enums/ # 枚举类 │ │ │ │ ├── MisfirePolicy.java # 定时任务失火策略 │ │ │ │ ├── OperationModule.java # 操作日志模块 │ │ │ │ ├── OperationType.java # 操作日志类型 │ │ │ │ └── TaskStatus.java # 定时任务状态 │ │ │ │ │ │ │ ├── logger/ # 日志工具 │ │ │ │ ├── AppLogger.java │ │ │ │ └── AppLogType.java │ │ │ │ │ │ │ ├── models/ # ★ 实体层 │ │ │ │ ├── enums/ # 模型枚举 │ │ │ │ ├── foe/ # 光纤相关实体 │ │ │ │ │ ├── Fibre_Optical_Channel.java │ │ │ │ │ ├── Fibre_Optical_Eqp.java │ │ │ │ │ ├── Fibre_Optical_Warning.java │ │ │ │ │ └── ... │ │ │ │ ├── gateway/ # 网关协议实体 │ │ │ │ │ ├── analysis/ # 报文解析配置实体 │ │ │ │ │ ├── cache/ # 通道缓存实体 │ │ │ │ │ └── enums/ │ │ │ │ ├── product/ # 产品实体 │ │ │ │ │ ├── Product_0302.java # 主/分控器 │ │ │ │ │ ├── Product_0302_Main_Params.java │ │ │ │ │ ├── Product_0302_Sub_Params.java │ │ │ │ │ ├── Product_0603.java # 喷淋设备 │ │ │ │ │ ├── threshold/ # 阈值配置 │ │ │ │ │ └── ... │ │ │ │ ├── scene/ # 场景绑定实体 │ │ │ │ ├── sys/ │ │ │ │ └── usr/ │ │ │ │ │ │ │ ├── netty/ # ★★ TCP 网关核心 │ │ │ │ ├── NettyServer.java # Netty 服务主类 │ │ │ │ ├── ChannelExceptionHandler.java │ │ │ │ │ │ │ │ │ ├── business/ # 通用工具 │ │ │ │ │ ├── Netty_Business.java │ │ │ │ │ └── Modbus_CRC16.java │ │ │ │ │ │ │ │ │ ├── gateway/ # 网关基础框架 │ │ │ │ │ ├── Gateway.java │ │ │ │ │ ├── Gateway_MessageDecoder.java │ │ │ │ │ ├── Gateway_MessageHandler.java │ │ │ │ │ └── Gateway_Protocol_Handler.java │ │ │ │ │ │ │ │ │ ├── gateway_default/ # ★ 我司产品协议 │ │ │ │ │ ├── Default_Protocol_Handler.java # 协议总处理器 │ │ │ │ │ ├── Default_Protocol_Parameters.java │ │ │ │ │ ├── Default_Protocol_HeartBeat_Cache.java │ │ │ │ │ ├── Default_Product_Online_Cache.java │ │ │ │ │ └── product_analysis/ │ │ │ │ │ ├── Product_Analysis.java # 解析基类 │ │ │ │ │ ├── Product_Analysis_0302.java # ★ 0302 解析 │ │ │ │ │ ├── Product_Analysis_0603.java # ★ 0603 解析 │ │ │ │ │ ├── Product_Analysis_CMD_0302.java # ★ 0302 指令 │ │ │ │ │ ├── Product_Analysis_CMD_0603.java │ │ │ │ │ └── ... │ │ │ │ │ │ │ │ │ └── gateway_fibre_optical/ # ★ 光纤测温协议 │ │ │ │ ├── FO_Protocol_Handler.java │ │ │ │ ├── FO_Temperature_Protocol_Handler.java │ │ │ │ ├── FO_Broken_Protocol_Handler.java │ │ │ │ └── ... │ │ │ │ │ │ │ ├── task/ # Quartz 定时任务 │ │ │ │ ├── config/ │ │ │ │ │ └── QuartzConfig.java │ │ │ │ └── jobs/ │ │ │ │ ├── DatabaseBackupJob.java # 数据库备份 │ │ │ │ ├── DataCleanJob.java # 数据清理 │ │ │ │ ├── DataStatisticsJob.java # 数据统计 │ │ │ │ └── DeviceCheckJob.java # 设备状态检查 │ │ │ │ │ │ │ └── _interface/ │ │ │ └── WebApi_Interface.java # Web API 接口定义 │ │ │ │ │ └── resources/ │ │ ├── application.properties # 主配置文件 │ │ ├── gateway_analysis_config.json # ★ 网关解析配置 │ │ ├── banner.txt # 启动 Banner │ │ ├── db/migration/ # 数据库迁移脚本 │ │ └── mappers/ # MyBatis XML 映射文件 │ │ │ └── target/ # Maven 编译输出 │ ├── ui/ # 前端 Vue 2 项目(待确认) ├── doc/ # 项目文档 │ └── *.md ├── infraredCameraPlugin/ # 红外相机插件 ├── test_folder/ # 测试文件夹 ├── .gitignore ├── LICENSE # Apache License 2.0 └── readme.md # 本文件 ``` --- ## 功能模块 ### 1. 密闭墙多参数监测(Product 0302) 通过主控器 / 分控器实时采集密闭空间的多项环境参数: | 监测类型 | 说明 | | -------- | ----------------------- | | **温度** | 环境温度采集与告警阈值设置 | | **气体浓度** | O₂、CO、CH₄、CO₂ 等多种气体浓度监测 | | **压差** | 密闭墙两侧压差监测 | **核心文件**: - `Product_Analysis_0302.java` — 0302 协议解析 - `Product_Analysis_CMD_0302.java` — 0302 指令下发 - `Product_0302_*.java` — 数据模型 ### 2. 喷淋联动控制(Product 0603) 当监测参数超标时,系统自动或手动触发喷淋动作: - **电磁阀**(EOV)控制:开启 / 关闭 - **球阀**(EOV Ball)控制:电控球阀的开关 - **光纤超温联动**:光纤温度超限自动打开球阀(可配置自动关闭) - **手动 / 自动**双模式控制 **核心文件**: - `Product_Analysis_0603.java` — 0603 协议解析 - `Product_Analysis_CMD_0603.java` — 0603 指令下发 ### 3. 光纤测温监测(Fibre Optical / FO) 接入第三方光纤测温设备(DTS),实现长距离、高精度的温度监测: - 多通道温度数据实时采集 - 断纤检测与告警 - 温度曲线与热力图数据 - 与场景(皮带)绑定,实现分区监测 **核心文件**: - `FO_Protocol_Handler.java` — 光纤协议处理 - `FO_Temperature_Protocol_Handler.java` — 温度数据解析 - `FO_Broken_Protocol_Handler.java` — 断纤检测 ### 4. 红外相机集成(Infrared Camera) 集成红外热像仪设备,支持: - 实时热成像画面获取 - 温度点采集与标注 - 与其他设备数据联动 **核心文件**: - `Infrared_Camera_WebApi.java` - `Infrared_Camera_WebBusiness.java` ### 5. 场景管理(Scene — 皮带) 将光纤通道与皮带设备绑定,实现按场景分区监测与告警: - 皮带场景配置 - 光纤通道与皮带部位绑定 - 喷淋设备与皮带绑定 - 场景数据聚合展示 **核心文件**: - `Belt_Scene_*.java` - `Belt_Bind_FOC_Parts.java` — 光纤与部位绑定 - `Belt_Bind_Spray_Info.java` — 喷淋绑定 ### 6. 系统管理 - **用户管理**:用户增删改查、角色权限 - **菜单管理**:动态菜单配置 - **操作日志**:AOP 切面自动记录关键操作 - **定时任务**:数据库备份、数据清理、设备巡检等 --- ## 通信协议 ### TCP 网关配置 | 参数 | 值 | 说明 | | ------- | ------- | -------------- | | HTTP 端口 | `5735` | Web API 端口 | | 默认网关端口 | `3000` | 0302 / 0603 设备 | | 光纤网关端口 | `5050` | 光纤测温 DTS 设备 | | 通道缓存超时 | `180` 秒 | 设备离线判断 | | 产品在线超时 | `30` 秒 | 心跳超时视为离线 | ### 报文解析 网关通过 `gateway_analysis_config.json` 配置文件动态解析设备报文,无需硬编码协议。配置文件中定义了各产品的产品码、心跳包结构、气体种类编码、字节含义等。 --- ## 定时任务 系统内置以下 Quartz 定时任务: | 任务 | 说明 | | ------------------- | -------- | | `DatabaseBackupJob` | 自动备份数据库 | | `DataCleanJob` | 定期清理过期数据 | | `DataStatisticsJob` | 数据统计分析 | | `DeviceCheckJob` | 检查设备在线状态 | --- ## 快速开始 ### 环境要求 - JDK 8+ - Maven 3.6+ - PostgreSQL 12+(或 MySQL 8+) - Node.js 14+(前端) ### 后端启动 ```bash # 1. 创建数据库 createdb confined_space_multi_params_temperature_db # 2. 修改数据库连接(可选) # 编辑 src/main/resources/application.properties # 3. 编译打包 cd code/multi_param_temperature_label mvn clean package -DskipTests # 4. 运行 java -jar target/belt_fire_prevention_3.0.1.jar ``` 服务启动后,日志中将输出: ``` 网关已启动 # Netty TCP 网关监听 3000 / 5050 服务已启动... # HTTP 服务监听 5735 ``` ### 前端启动 ```bash cd ui npm install npm run serve ``` 访问 `http://localhost:5735` 即可使用系统。 --- ## 配置说明 ### 关键配置项(application.properties) ```properties # HTTP 服务端口 server.port = 5735 # Netty 网关端口 NETTY.PORTS = 3000,5050 # 数据库连接 spring.datasource.url = jdbc:postgresql://localhost:5432/confined_space_multi_params_temperature_db spring.datasource.username = postgres spring.datasource.password = 123abc, # 产品在线超时(秒) PRODUCT.DEFAULT_ONLINE_TIMEOUT = 30 # 心跳数据记录间隔(秒) PRODUCT.HEART_BEAT_DATA_RECORD_STEP = 180 ``` ### 阈值配置 各产品的监测阈值在数据库 `threshold_config` 相关表中配置,支持: - `TemperatureConfig` — 温度阈值 - `GasThresholdConfig` — 气体浓度阈值 - `DifferentialPressureConfig` — 压差阈值 - `SensorConfig` — 通用传感器阈值 --- ## 操作日志 系统使用 AOP 切面自动记录操作日志。关键操作会记录操作人、时间、模块、操作类型和内容。通过 `@OperationLog` 注解在 Controller 方法上标记。 **支持的模块**:`CONFINED_SPACE`、`SPRAY_MANAGEMENT`、`FIBER_OPTICAL`、`INFRARED_CAMERA`、`SCENE_MANAGEMENT`、`USER_MANAGEMENT` 等。 **支持的操作类型**:`QUERY`、`CREATE`、`UPDATE`、`DELETE`、`LOGIN`、`LOGOUT`、`CONTROL`、`CONFIG` 等。 --- ## 数据库 **主数据库**:PostgreSQL **数据库名**:`confined_space_multi_params_temperature_db` 主要数据表: | 模块 | 表名 | | ------- | ------------------------------------------------------------------- | | 系统 | `sys_user`、`sys_roles`、`sys_menu`、`sys_operation_log` | | 0302 产品 | `product_0302`、`product_0302_main_params`、`product_0302_sub_params` | | 0603 喷淋 | `product_0603` | | 光纤 | `fibre_optical_eqp`、`fibre_optical_channel`、`fo_warning` | | 场景 | `belt_scene`、`belt_scene_data`、`belt_bind_foc_parts` | | 红外相机 | `infrared_camera` | --- ## 版本信息 - **当前版本**:3.0.1 - **许可协议**:Apache License 2.0