邮轮穿舱件管理系统后台 - 系统概述
目录
系统简介
邮轮穿舱件管理系统是一个专为邮轮制造行业设计的后台管理系统,主要用于管理邮轮建造过程中的穿舱件(防火板)相关信息。系统采用现代化的微服务架构,支持工件的全生命周期管理、图像处理、权限控制和微信小程序集成等功能。
核心目标:为邮轮制造企业提供标准化的穿舱件管理解决方案,实现从设计、生产到维护的全流程数字化管理。
目标用户:邮轮制造企业的工程技术人员、质量管理人员、维护人员等。
技术架构
后端框架
- Web框架:FastAPI - 高性能异步Web框架
- 数据库ORM:Tortoise-ORM - 异步ORM框架
- 文档数据库:MongoDB(通过Beanie ODM)
- 认证授权:JWT令牌认证
- 配置管理:Pydantic Settings + JSON配置文件
- 容器化:Docker支持
核心依赖
# 主要技术栈依赖
FastAPI >= 0.100.0
Tortoise-ORM >= 0.20.0
Pydantic >= 2.0.0
JWT认证
CORS中间件
配置文件结构
系统采用环境分离的配置管理方式:
.config/目录包含不同环境的配置文件- 支持development、staging、production环境
- 配置文件包括:应用配置、数据库配置、微信配置
参考文件:app/core/settings.py
核心功能模块
1. 工件管理模块
功能描述:管理邮轮穿舱件的基本信息,包括创建、查询、更新、删除等操作。
核心组件:
- Workpiece模型(Tortoise ORM)
- WorkpieceInfo模型(MongoDB)
- 工件路由控制器
- 工件服务层
classDiagram
class WorkpieceRouter {
+APIRouter workpiece_unit_router
+api_create_workpiece()
+api_get_workpiece()
+api_delete_workpiece()
+api_update_workpiece_status()
}
class WorkpieceService {
+service_create_workpiece()
+service_get_workpiece_by_id()
+service_get_all_workpieces()
+service_update_workpiece()
+service_delete_workpiece()
}
class WorkpieceModel {
+workpiece_id: IntField
+workpiece_status: IntField
+inspect_reference: IntField
+maintainance_reference: IntField
+created_by: IntField
+updated_by: IntField
+created_at: DatetimeField
+updated_at: DatetimeField
}
WorkpieceRouter --> WorkpieceService : 依赖调用
WorkpieceService --> WorkpieceModel : 数据操作
参考文件:
2. 图像管理模块
功能描述:处理与工件相关的图像数据,支持图像上传、存储、分析和映射。
核心组件:
- Image模型
- ImageMapping模型
- 图像处理服务
- OSS存储集成
3. 用户权限模块
功能描述:管理系统用户、角色和权限,支持JWT认证和细粒度权限控制。
核心组件:
- User模型
- Role模型
- 认证中间件
- 权限验证服务
4. 工单管理模块
功能描述:管理视检和维护工单,支持工单与工件的关联管理。
核心组件:
- Ticket模型
- 工单路由控制器
- 工单服务层
5. 微信小程序集成
功能描述:提供微信小程序API接口,支持移动端访问。
核心组件:
- 微信登录接口
- 小程序API路由
- 微信用户绑定
数据模型设计
关系型数据模型(PostgreSQL)
Workpiece模型
class Workpiece(Model):
workpiece_id = fields.IntField(description="工件ID", primary_key=True)
workpiece_status = fields.IntField(description="工件状态", null=True, default=0)
inspect_reference = fields.IntField(description="视检参考工单ID", null=True, default=0)
maintainance_reference = fields.IntField(description="维护参考工单ID", null=True, default=0)
created_by = fields.IntField(description="创建人", null=True, default=-1)
updated_by = fields.IntField(description="更新人", null=True, default=-1)
created_at = fields.DatetimeField(description="创建时间", null=False, auto_now_add=True)
updated_at = fields.DatetimeField(description="更新时间", null=False, auto_now=True)
文档型数据模型(MongoDB)
WorkpieceInfo模型
class WorkpieceInfo(Document):
wp_id: str
wp_firestop_code: str # 防火板代号
wp_matrial: str # 材料
wp_size: str # 规格
wp_fire_rating: str # 防火等级
wp_watertightness: str # 水密等级
wp_main_vertical_zone: str # 主竖区
wp_installation_location: str # 安装位置
wp_z_coordinate: str # Z坐标
wp_frame_station: str # 肋位
wp_longitudinal_stiffener: str # 纵桁
wp_sap1: str # SAP1
wp_sap2: str # SAP2
wp_standard_drawing_catalogue: str # 图册章节
wp_extra: str # 额外信息
参考文件:app/models/mg_workpiece_info.py
系统架构图
flowchart TD
subgraph 客户端层
A[Web前端]
B[微信小程序]
C[移动应用]
end
subgraph API网关层
D[FastAPI应用]
E[认证中间件]
F[异常处理]
end
subgraph 业务逻辑层
G[工件管理服务]
H[图像处理服务]
I[用户权限服务]
J[工单管理服务]
end
subgraph 数据访问层
K[Tortoise ORM]
L[Beanie ODM]
end
subgraph 数据存储层
M[PostgreSQL]
N[MongoDB]
O[对象存储]
end
A --> D
B --> D
C --> D
D --> E
E --> F
F --> G
F --> H
F --> I
F --> J
G --> K
H --> L
I --> K
J --> K
K --> M
L --> N
H --> O
API接口设计
工件管理API
创建工件
POST /workpiece/
Authorization: Bearer {token}
Content-Type: application/json
响应:
{
"workpiece_id": 1,
"workpiece_status": 0,
"inspect_reference": 0,
"maintainance_reference": 0,
"created_by": -1,
"updated_by": -1,
"created_at": "2024-01-01T00:00:00",
"updated_at": "2024-01-01T00:00:00"
}
获取所有工件
GET /workpiece/all
Authorization: Bearer {token}
响应:
[
{
"workpiece_id": 1,
"workpiece_status": 0,
// ... 其他字段
}
]
更新工件状态
PUT /workpiece/{wp_id}/status
Authorization: Bearer {token}
Content-Type: application/json
{
"status": 1
}
参考文件:app/routers/workpiece_router.py
服务层设计模式
系统采用典型的三层架构模式:
sequenceDiagram
participant Client as 客户端
participant Router as 路由层
participant Service as 服务层
participant Model as 数据模型
participant DB as 数据库
Client->>Router: HTTP请求
Router->>Service: 业务逻辑调用
Service->>Model: 数据操作
Model->>DB: 数据库查询
DB-->>Model: 返回数据
Model-->>Service: 返回模型对象
Service-->>Router: 返回业务结果
Router-->>Client: HTTP响应
部署与配置
数据库迁移
系统使用Aerich进行数据库迁移管理:
# 空数据库初始化
aerich init-db
# 模型更新
aerich migrate
aerich upgrade
参考文件:README.md
环境配置
系统支持多环境部署:
| 环境 | 服务器地址 | 描述 |
|---|---|---|
| 开发环境 | http://localhost:8001 | 本地开发服务器 |
| 测试环境 | https://api-staging.c0726.qualitysafeguard.com | 预发布服务器 |
| 生产环境 | https://api.c0726.qualitysafeguard.com | 生产服务器 |
参考文件:app/main.py
容器化部署
系统提供Dockerfile支持容器化部署,便于在云环境中快速部署和扩展。
索引
邮轮穿舱件管理系统是一个功能完整、架构现代化的专业管理系统,具有以下特点:
技术优势
- 高性能架构:基于FastAPI的异步处理,支持高并发访问
- 混合数据存储:结合关系型数据库和文档数据库的优势
- 完善的权限控制:基于JWT的细粒度权限管理
- 移动端支持:完整的微信小程序集成方案
- 标准化部署:支持多环境配置和容器化部署
行业价值
- 专业化管理:针对邮轮穿舱件的专业字段设计
- 全生命周期管理:从设计到维护的全流程支持
- 质量控制:集成视检和维护工单管理
- 数字化升级:推动传统制造业的数字化转型
扩展性考虑
系统采用模块化设计,便于后续功能扩展:
- 可扩展新的工件类型
- 支持更多的检测标准
- 集成更多的第三方服务
- 支持大数据分析和报表功能
该系统为邮轮制造行业提供了一个可靠、高效的管理平台,具有良好的应用前景和发展潜力。