跳到主要内容

邮轮穿舱件管理系统后台 - 系统概述

目录

系统简介

邮轮穿舱件管理系统是一个专为邮轮制造行业设计的后台管理系统,主要用于管理邮轮建造过程中的穿舱件(防火板)相关信息。系统采用现代化的微服务架构,支持工件的全生命周期管理、图像处理、权限控制和微信小程序集成等功能。

核心目标:为邮轮制造企业提供标准化的穿舱件管理解决方案,实现从设计、生产到维护的全流程数字化管理。

目标用户:邮轮制造企业的工程技术人员、质量管理人员、维护人员等。

技术架构

后端框架

  • 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)

参考文件:app/models/workpiece.py

文档型数据模型(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支持容器化部署,便于在云环境中快速部署和扩展。

索引

邮轮穿舱件管理系统是一个功能完整、架构现代化的专业管理系统,具有以下特点:

技术优势

  1. 高性能架构:基于FastAPI的异步处理,支持高并发访问
  2. 混合数据存储:结合关系型数据库和文档数据库的优势
  3. 完善的权限控制:基于JWT的细粒度权限管理
  4. 移动端支持:完整的微信小程序集成方案
  5. 标准化部署:支持多环境配置和容器化部署

行业价值

  1. 专业化管理:针对邮轮穿舱件的专业字段设计
  2. 全生命周期管理:从设计到维护的全流程支持
  3. 质量控制:集成视检和维护工单管理
  4. 数字化升级:推动传统制造业的数字化转型

扩展性考虑

系统采用模块化设计,便于后续功能扩展:

  • 可扩展新的工件类型
  • 支持更多的检测标准
  • 集成更多的第三方服务
  • 支持大数据分析和报表功能

该系统为邮轮制造行业提供了一个可靠、高效的管理平台,具有良好的应用前景和发展潜力。