# EqualizingThePressureClowedWall **Repository Path**: code1014/equalizing-the-pressure-clowed-wall ## Basic Information - **Project Name**: EqualizingThePressureClowedWall - **Description**: 闭墙均压 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-13 - **Last Updated**: 2026-07-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 智能均压闭墙系统 > 煤矿井下均压闭墙环境多参数智能监测与控制系统 ## 项目概述 **智能均压闭墙系统**是一款面向煤矿井下的工业级监测平台,用于对均压闭墙区域内的多种环境参数进行实时采集、传输、告警与分析。系统由前端可视化界面、后端数据服务与现场网关设备组成,支持主控/分控架构、多类型传感器接入、光纤测温联动及远程指令控制。 --- ## 技术架构 ``` ┌─────────────────────────────────────────────────────────────────┐ │ 前端层 (Frontend) │ │ ┌─────────────────────┐ ┌─────────────────────────┐ │ │ │ ui_vue2 │ │ ui/apps/web-antd │ │ │ │ Vue 2 + AntDV 1.x │ │ Vue 3 + Vben Admin │ │ │ └─────────────────────┘ └─────────────────────────┘ │ └───────────────────────────────┬─────────────────────────────────┘ │ HTTP / WebSocket ┌───────────────────────────────▼─────────────────────────────────┐ │ 后端服务层 (Backend) │ │ ┌─────────────────────────────────────────────────────────┐ │ │ │ Spring Boot 2.7.1 · Java 8 │ │ │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │ │ │ REST API │ │ Netty │ │ MyBatis │ │ Quartz │ │ │ │ │ │ WebController│ Gateway │ │ DAO │ │ Scheduler│ │ │ │ │ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │ │ │ └─────────────────────────────────────────────────────────┘ │ └───────────────────────────────┬─────────────────────────────────┘ │ TCP Socket (自定义协议) ┌───────────────────────────────▼─────────────────────────────────┐ │ 现场设备层 (Device) │ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────────────┐ │ │ │ 主控 (0302) │ │ 分控 (0302) │ │ 光纤测温 (FO) │ │ │ │ ────────── │ │ ────────── │ │ ────────────────── │ │ │ │ · CO/CO2 │ │ · CO/CO2 │ │ · 分布式温度监测 │ │ │ │ · CH4/O2 │ │ · CH4/O2 │ │ · 高温点定位 │ │ │ │ · C2H4/C2H2 │ │ · C2H4/C2H2 │ │ · 多通道支持 │ │ │ │ · 温/湿/压 │ │ · 温/湿/压 │ │ │ │ │ │ · 球阀/电磁阀│ │ · 球阀/电磁阀│ │ │ │ │ │ · 气泵控制 │ │ · 气泵控制 │ │ │ │ │ └──────────────┘ └──────────────┘ └──────────────────────┘ │ └─────────────────────────────────────────────────────────────────┘ ``` ## 技术栈 ### 后端 | 类别 | 技术 | 说明 | |------|------|------| | 框架 | Spring Boot 2.7.1 | Java 8 | | 网关通信 | Netty 4.1.31 | TCP 长连接,自定义二进制协议 | | 数据访问 | MyBatis 1.3.2 | XML Mapper | | 数据库 | PostgreSQL / MySQL | 支持双数据库 | | 定时任务 | Quartz | 数据库自动备份等 | | JSON 处理 | FastJSON 1.2.68 | 协议数据解析 | | 日志 | SLF4J + Logback | 分级日志记录 | ### 前端 (Vue 2 版本 — 稳定版) | 类别 | 技术 | |------|------| | 框架 | Vue 2.6 | | UI 组件库 | Ant Design Vue 1.x | | 图表 | @antv/g2 | | 构建工具 | Vue CLI | | 状态管理 | Vuex | | HTTP | Axios | ### 前端 (Vue 3 版本 — 新版) | 类别 | 技术 | |------|------| | 框架 | Vue 3 | | UI 组件库 | Ant Design Vue 4.x (via Vben Admin) | | 构建工具 | Vite 5 | | 状态管理 | Pinia | | 国际化 | vue-i18n | --- ## 目录结构 ``` e:\A_Project\25_EqualizingThePressureClowedWall\ │ ├── README.md # 项目总览文档 │ ├── code/ │ ├── service/ # ★ 后端服务 (Spring Boot) │ │ ├── src/main/java/com/ji_an/service/ │ │ │ ├── controller/ # 控制层 │ │ │ │ ├── sys/ # 系统管理(菜单、配置、任务) │ │ │ │ ├── confined/ # 闭墙多参数(0302)设备控制 │ │ │ │ └── foe/ # 光纤测温通道管理 │ │ │ ├── dao/ # 数据访问层 │ │ │ │ ├── sys/ │ │ │ │ ├── confined/ │ │ │ │ └── foe/ │ │ │ ├── models/ # 实体模型 │ │ │ │ ├── product/ # 产品实体(0302主控/分控参数) │ │ │ │ ├── foe/ # 光纤通道实体 │ │ │ │ ├── confined/ # 闭墙专用实体 │ │ │ │ ├── sys/ │ │ │ │ └── http/ │ │ │ ├── netty/ # ★ 网关核心 │ │ │ │ ├── NettyServer.java # Netty 服务启动入口 │ │ │ │ ├── gateway/ # 网关通用组件 │ │ │ │ ├── gateway_default/ # 产品协议解析(0302/0603) │ │ │ │ │ └── product_analysis/ │ │ │ │ │ ├── Product_Analysis_0302.java # 产品解析 │ │ │ │ │ ├── Product_Analysis_CMD_0302.java # 指令构造 │ │ │ │ │ └── Analysis_DataType_0302.java # 字节常量 │ │ │ │ └── gateway_fibre_optical/ # 光纤协议解析 │ │ │ ├── task/ # 定时任务 │ │ │ │ └── jobs/ │ │ │ │ └── DatabaseBackupJob.java # 数据库自动备份 │ │ │ ├── applicationmanager/ # 程序启动管理 │ │ │ └── configuration/ # Spring 配置 │ │ │ │ │ ├── src/main/resources/ │ │ │ ├── application.properties # 核心配置 │ │ │ ├── mappers/ # MyBatis XML 映射文件 │ │ │ │ ├── sys/ │ │ │ │ ├── confined/ │ │ │ │ └── foe/ │ │ │ ├── db/migration/ # 数据库迁移脚本 │ │ │ └── gateway_analysis_config.json # 协议解析配置 │ │ │ │ │ ├── logs/ # 运行日志 │ │ │ ├── gateway/ │ │ │ │ ├── DEFAULT/ # 默认网关日志 │ │ │ │ └── log_gateway.txt │ │ │ └── operation/ │ │ │ └── op_*.txt # 操作日志 │ │ ├── backup/database/ # 数据库备份 │ │ │ └── pressure_equalization_sealed_wale_db_*.sql │ │ └── pom.xml # Maven 依赖配置 │ │ │ ├── ui_vue2/ # ★ 前端 (Vue 2 稳定版) │ │ ├── src/ │ │ │ ├── api/ │ │ │ │ ├── request.js # Axios 封装 │ │ │ │ └── multi/ │ │ │ │ └── main_0302.js # 0302 产品所有 API │ │ │ ├── views/ │ │ │ │ └── multi/ # 闭墙多参数核心页面 │ │ │ │ ├── MultiSubController.vue # 分控列表管理 │ │ │ │ ├── Sub_Setting_Command_Form.vue # 分控配置与指令下发 │ │ │ │ ├── MultiMainController.vue # 主控管理 │ │ │ │ ├── MultiAlarmConfig.vue # 报警配置 │ │ │ │ ├── curve_analysis/ │ │ │ │ │ └── CurveAnalysis.vue # 曲线分析 (G2) │ │ │ │ └── data_history/ │ │ │ │ └── DataHistory.vue # 历史数据查询 │ │ │ ├── global/ # 全局混入(权限、字典、异常) │ │ │ ├── store/ # Vuex 状态管理 │ │ │ └── router/ # 路由配置 │ │ └── package.json │ │ │ └── ui/apps/web-antd/ # 前端 (Vue 3 新版) │ ├── src/ │ │ ├── views/ # 页面视图 │ │ ├── api/ # API 接口 │ │ ├── router/ # 路由 │ │ ├── store/ # Pinia 状态 │ │ └── locales/ # 国际化 │ ├── package.json │ └── vite.config.ts │ └── doc/ # 项目文档(待补充) ├── sql/ # SQL 相关 │ └── cmd.txt └── dev/ # 开发资料(待补充) ``` --- ## 核心功能 ### 1. 设备管理 - **主控管理**:管理闭墙多参数主控设备(0302),支持在线状态监测 - **分控管理**:管理分控设备,绑定到指定主控,支持增删改查 - **设备分组**:多级组织结构,支持按区域/用途分组管理 ### 2. 传感器数据监测 实时监测以下参数(分控/主控): | 传感器类型 | 监测指标 | |-----------|---------| | 气体传感器 | 一氧化碳 (CO)、二氧化碳 (CO2)、甲烷 (CH4)、氧气 (O2)、乙烯 (C2H4)、乙炔 (C2H2)、GD8 | | 温度传感器 | 闭墙内温、闭墙表面温、巷道温度 | | 湿度传感器 | 闭墙内湿度、巷道湿度 | | 压力传感器 | 闭墙差压、大气压、闭墙内压 | | 风速传感器 | 巷道风速 | | 光纤测温 | 多通道分布式温度、高温点定位 | ### 3. 远程控制 | 控制类型 | 说明 | |---------|------| | **控制模式切换** | 手动模式 / 自动模式 / 停止 | | **球阀控制** | 开关控制及延时设置 | | **电磁阀控制** | 电磁阀开关状态管理 | | **气泵控制** | 气泵运行状态监测与启停 | | **校时功能** | 设备时间同步校准 | | **阈值设置** | 气体、温度、湿度、压差上/下限及补偿值 | | **气体采集参数** | 采集间隔、持续时间、气路排空时间 | ### 4. 光纤测温联动 - 绑定光纤测温通道到主控设备 - 高温告警触发喷淋设备自动开启 - 支持多通道温度监测与高温点定位 - 告警阈值可配置 ### 5. 报警管理 - 多级阈值报警配置 - 报警条件表达式支持 - 报警记录查询与导出 - 报警规则启用/禁用控制 ### 6. 数据分析 - **曲线分析**:历史趋势曲线(多参数叠加,支持 G2 图表) - **历史数据查询**:按设备名称、时间范围查询完整数据记录 - **数据导出**:支持 Excel 格式导出 ### 7. 系统管理 - **用户权限管理**:角色、菜单、按钮级别的权限控制 - **菜单管理**:动态菜单配置 - **定时任务**:数据库自动备份(每日凌晨 2 点) - **系统配置**:全局参数配置 --- ## 网络通信协议 ### 网关架构 系统通过 **Netty** 构建 TCP 网关,与现场设备建立长连接: | 网关名称 | 端口 | 用途 | |---------|------|------| | 默认网关 | 8090 | 与 0302/0603 产品通信 | | 光纤网关 | 5050 | 与光纤测温设备通信 | ### 协议特点 - **二进制协议**:自定义格式,报文紧凑,适合工业环境 - **协议配置化**:`gateway_analysis_config.json` 定义报文解析规则,支持新增产品类型 - **双向通信**:支持指令下发(上位机→设备)和数据上报(设备→上位机) - **CRC 校验**:确保数据传输可靠性 - **心跳机制**:设备在线状态监测(默认 30 秒超时) --- ## 环境配置 ### 后端配置 (`code/service/src/main/resources/application.properties`) ```properties # 服务端口 server.port = 5735 # Netty 网关端口 NETTY.PORTS = 8090,5050 NETTY.CN_NAMES = 默,光纤 # 数据库 (PostgreSQL) spring.datasource.url = jdbc:postgresql://localhost:5432/pressure_equalization_sealed_wale_db spring.datasource.username = postgres spring.datasource.password = 123abc, # MyBatis mybatis.mapper-locations = classpath:mappers/**/*.xml # 产品在线超时 (秒) PRODUCT.DEFAULT_ONLINE_TIMEOUT = 30 # 心跳数据记录间隔 (秒) PRODUCT.HEART_BEAT_DATA_RECORD_STEP = 180 # 数据库自动备份 PRODUCT.DATA_HAS_ERROR_RECORD_STEP = 10 ``` ### 前端环境变量 | 文件 | 说明 | |------|------| | `.env` | 默认环境变量 | | `.env.development` | 开发环境(API 代理配置) | | `.env.production` | 生产环境 | --- ## 快速启动 ### 前置条件 - JDK 8+ - Node.js 16+ / pnpm - PostgreSQL 12+ / MySQL 8+ - Maven 3.6+ ### 1. 启动后端服务 ```bash cd code/service # 编译项目 mvn clean package # 运行 (确保数据库已创建) java -jar target/pressure_equalization_seaked_wall_3.0.0.jar ``` 或使用 IDE 直接运行 `ApplicationStarter.java`。 ### 2. 启动前端 (Vue 2 版本) ```bash cd code/ui_vue2 # 安装依赖 yarn install # 开发环境运行 yarn run serve # 生产环境构建 yarn run build ``` ### 3. 启动前端 (Vue 3 版本) ```bash cd code/ui/apps/web-antd # 安装依赖 pnpm install # 开发环境运行 pnpm dev # 生产环境构建 pnpm build ``` --- ## 接口说明 所有接口前缀:`/confined/0302/` ### 控制器管理 | 接口 | 方法 | 说明 | |------|------|------| | `/confined/0302/mainControllerList` | GET | 获取所有主控列表 | | `/confined/0302/getSubControllerByParentId` | GET | 按主控 ID 获取分控列表 | | `/confined/0302/getSubControllerByName` | GET | 按名称查询分控 | ### 参数读写 | 接口 | 方法 | 说明 | |------|------|------| | `/confined/0302/getMainConParams` | GET | 读取主控参数 | | `/confined/0302/getSubConParams` | GET | 读取分控参数 | | `/confined/0302/settingMainParams` | POST | 设置主控参数 | | `/confined/0302/settingSubMode` | POST | 设置分控控制模式 | | `/confined/0302/controlBallValve` | POST | 控制球阀开关 | | `/confined/0302/setGasThreshold` | POST | 设置气体阈值 | | `/confined/0302/calibrationDateTime` | POST | 校时 | | `/confined/0302/getCmdExeResult` | GET | 查询指令执行结果 | ### 光纤通道 | 接口 | 方法 | 说明 | |------|------|------| | `/foe/channelList` | GET | 获取所有光纤通道 | | `/foe/getBoundChannelsByMainId` | GET | 获取主控绑定的通道 | | `/foe/bindChannel` | POST | 绑定通道到主控 | | `/foe/unbindChannel` | POST | 解绑通道 | ### 报警配置 | 接口 | 方法 | 说明 | |------|------|------| | `/confined/0302/getAllAlarmConfig` | GET | 获取所有报警配置 | | `/confined/0302/addAlarmConfig` | POST | 新增报警配置 | | `/confined/0302/updateAlarmConfig` | POST | 更新报警配置 | | `/confined/0302/deleteAlarmConfigById` | POST | 删除报警配置 | | `/confined/0302/changeSwitchState` | POST | 启用/禁用报警 | --- ## 数据模型 ### 主控参数 (`Product_0302_Main_Params`) 主控设备的核心运行参数,包含所有连接的传感器数据汇总。 ### 分控参数 (`Product_0302_Sub_Params`) 单个分控设备独立采集的参数,包含气体浓度、温湿度、压力等数据。 ### 传感器数据 (`Sensor`) 通用传感器数据结构,包含传感器名称、编号、当前值、状态等信息。 ### 光纤通道 (`Fibre_Optical_Channel`) 光纤测温通道信息,包含通道 ID、名称、绑定状态、温度数据等。 --- ## 命名缩写约定 | 缩写 | 全称 | 含义 | |------|------|------| | `sub` | sub_controller | 分控 | | `main` | main_controller | 主控 | | `confined` | - | 闭墙多参数设备 | | `fo` | fibre_optical | 光纤 | | `con` | controller | 控制器(主控或分控) | | `eov` | electromagnetic_open_valve | 电磁阀 | | `eov_ball` | - | 球阀 | | `cw` | close_wall | 闭墙 | --- ## 版本信息 - 当前版本:**3.0.0** - 后端框架:Spring Boot 2.7.1 - Netty 版本:4.1.31.Final - 前端 Vue 2 版本:Ant Design Vue 1.x - 前端 Vue 3 版本:Vben Admin 5.7.0