基于现代技术栈构建的船舶机舱智能监控与管理平台,实现设备实时监测、智能告警、健康评估和数据管理功能。
本系统为货船机舱提供全方位的智能化管理解决方案,通过实时数据采集、智能分析和可视化展示,帮助船员和管理人员及时掌握船舶设备运行状态,预防故障发生,提高运营安全性和效率。
- 实时监测 - 多系统设备数据实时采集与展示
- 智能告警 - 多级告警机制,支持实时和历史告警管理
- 健康评估 - 基于监测数据的设备健康度自动评估
- 数据管理 - 历史数据查询、导入导出功能
- 视情维护 - 基于设备状态的智能维护建议
- 辅助决策 - 数据分析驱动的决策支持
系统首页仪表盘,集中展示:
- 核心监测点实时数据
- 实时告警状态概览
- 船舶整体健康度评分
监控左右推进装置的运行状态:
- 电机电压、电流
- 电机转速、功率
- 绕组温度、轴承温度
- 油压、油温
电池系统全方位监测:
- 总电压、单体电压
- 电池温度、环境温度
- SOC/SOH 状态
- 绝缘电阻、故障状态
1#/2#日用逆变器实时监测:
- 直流输入电压、交流输出电压
- 输出功率、电抗器温度
直流配电板状态监控:
- 直流母线电压、电流、功率
- 绝缘电阻、电池电量
舱底水系统和冷却水泵系统监测:
- 集水井水位
- 冷却水温度、压力、流量
- 泵运行状态
统一管理实时告警和历史告警:
- 实时告警 - WebSocket 自动推送,无需手动刷新
- 历史告警 - 完整告警记录查询与追溯
- 分级管理 - 待处理、严重、紧急三级分类
多维度设备数据查询:
- 设备选择(推进、电池、逆变器、配电、辅助)
- 监控参数筛选(电压、电流、温度、转速、SOC、压力、功率、效率)
- 时间范围选择
- 数据导出功能
支持批量数据导入:
- 文件格式:CSV、Excel(.xls、.xlsx)
- 最大文件大小:50MB
- 导入进度实时显示
- 导入历史记录管理
各系统健康度综合评估:
- 电池系统健康度
- 推进系统健康度
- 逆变器系统健康度
- 配电系统健康度
- 辅助系统健康度
基于历史监测数据自动生成健康报告,提供维护建议。
设备信息集中管理:
- 设备编码、名称、类型
- 安装位置、运行状态
- 创建时间追踪
系统用户权限管理:
- 用户名、姓名、邮箱
- 角色分配(系统管理员、船长、轮机长、维护工程师等)
- 账户状态管理
- 最近登录时间
告警阈值配置:
- 监测指标配置
- 多级阈值设置(上限、下限)
- 告警等级定义
- 规则状态管理
个人信息管理:
- 基本信息查看与修改
- 密码修改
- 账户状态
| 技术 | 版本 | 用途 |
|---|---|---|
| React | 18.3.1 | UI 框架 |
| TypeScript | 5.9.3 | 类型安全 |
| Vite | 6.3.5 | 构建工具 |
| Tailwind CSS | - | 样式框架 |
| Radix UI | - | 组件库 |
| Recharts | 2.15.2 | 数据可视化 |
| Socket.io-client | 4.8.1 | 实时通信 |
| Zustand | 4.4.7 | 状态管理 |
| React Router | 7.9.6 | 路由管理 |
| 技术 | 版本 | 用途 |
|---|---|---|
| NestJS | 11.x | 后端框架 |
| TypeScript | 5.7.3 | 开发语言 |
| TypeORM | 0.3.27 | ORM 框架 |
| MySQL | 8.0+ | 数据库 |
| Socket.io | 4.8.1 | WebSocket 服务 |
| JWT | - | 身份认证 |
| Swagger | - | API 文档 |
cargo-ship-manage/
├── cargo-ship-frontend/ # 前端项目
│ ├── src/
│ │ ├── components/ # 公共组件
│ │ ├── pages/ # 页面组件
│ │ ├── services/ # API 服务
│ │ ├── store/ # 状态管理
│ │ ├── hooks/ # 自定义 Hooks
│ │ ├── utils/ # 工具函数
│ │ └── styles/ # 样式文件
│ ├── docs/data/ # API 文档
│ └── package.json
│
├── cargo-ship-backend/ # 后端项目
│ ├── src/
│ │ ├── modules/ # 功能模块
│ │ │ ├── auth/ # 认证模块
│ │ │ ├── users/ # 用户模块
│ │ │ ├── equipment/ # 设备模块
│ │ │ ├── monitoring/ # 监测模块
│ │ │ ├── alarm/ # 告警模块
│ │ │ └── health/ # 健康评估模块
│ │ ├── database/ # 数据库实体
│ │ ├── common/ # 公共工具
│ │ └── config/ # 配置文件
│ ├── docs/ # 项目文档
│ └── package.json
│
└── snapshots/ # 界面截图
- Node.js 18.x 或更高版本
- MySQL 8.0 或更高版本
- npm 8.x 或更高版本
# 进入后端目录
cd cargo-ship-backend
# 安装依赖
npm install
# 配置环境变量
cp .env.example .env
# 编辑 .env 文件,配置数据库连接信息
# 创建数据库
mysql -u root -p
CREATE DATABASE cargo_ship_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
# 运行数据库迁移
npm run migration:run
# 启动开发服务器
npm run start:dev后端服务默认运行在 http://localhost:3000
# 进入前端目录
cd cargo-ship-frontend
# 安装依赖
npm install
# 启动开发服务器
npm run dev前端服务默认运行在 http://localhost:5173
# 填充客户规则(告警阈值)
cd cargo-ship-backend
npm run seed:customer-rules
# 填充监测点数据
npm run seed:monitoring-points启动后端服务后,访问 Swagger UI 查看完整 API 文档:
http://localhost:3000/api/docs
系统使用 WebSocket 实现实时数据推送:
- 告警推送 - 实时告警信息自动推送到前端
- 状态更新 - 设备状态变更实时同步
- 房间机制 - 基于权限的消息定向广播
# 生成 API 客户端(根据后端 Swagger 文档)
npm run generate:api
# 构建生产版本
npm run build# 生成数据库迁移
npm run migration:generate -- -n MigrationName
# 创建空迁移
npm run migration:create -- MigrationName
# 运行测试
npm run test
# 代码格式化
npm run format
npm run lint采用现代化的深色 UI 设计,适合船舶机舱环境长时间使用,减少视觉疲劳。
适配不同尺寸的显示设备,支持桌面、平板等多种终端。
使用卡片式布局展示监测数据,异常数据高亮显示,直观清晰。
支持 1级/2级/3级 多级告警,不同级别采用不同颜色标识:
- 🟢 正常 - 绿色
- 🟡 一般 - 黄色
- 🟠 严重 - 橙色
- 🔴 紧急 - 红色
私有项目 - 未经许可不得复制或使用
如有问题或建议,请联系开发团队。













