# ship-schedule **Repository Path**: wchg71/ship-schedule ## Basic Information - **Project Name**: ship-schedule - **Description**: 船舶资源计划智能排程系统 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-05-27 - **Last Updated**: 2026-07-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 船舶资源计划智能排程系统 > Ship Resource Planning & Intelligent Scheduling System ## 项目简介 船舶资源计划智能排程系统是一款面向船舶行业的 Web 端资源计划管理工具,帮助项目经理统筹管理船舶资源需求、智能编排生产计划、以横道图直观展示排程结果,并支持版本管理、变更审批和执行跟踪。 **核心价值:** 将排程从"人工经验判断"升级为"算法智能推荐",减少资源冲突,提升计划可达率。 --- ## 解决的核心痛点 船舶资源计划智能排程系统,针对资源管理工作的痛点和难点,提供以下解决方案: | 序号 | 痛点 | 解决方案 | |:---:|------|---------| | 1 | 传统手工绘制横道图工作量大、易出错、修改困难 | ✅ **自动绘制横道图**:系统按计划自动生成横道图,支持自由拖拽调整,告别繁琐的手工绘图 | | 2 | 横道图与资源计划数据分离,维护两份数据一致性问题 | ✅ **数据一体化**:横道图前端调整,资源计划后端自动更新,数据同步无需分头维护 | | 3 | 计划讨论中变化多,人工调整横道图效率低、反馈慢 | ✅ **智能排程**:横道图展示定制化、可视化、灵活化,计划方案讨论中的变化即时呈现 | | 4 | 多部门协同录入数据,数据安全和权限管理困难 | ✅ **多人协作与数据隔离**:线上协作机制配合数据软隔离,年度资源计划的编制和沟通轻松完成 | --- ## 功能模块 | 模块 | 说明 | |------|------| | **资源需求维护** | 录入、编辑、删除资源需求(人员/设备/船舶),支持按项目/类型筛选 | | **资源库维护** | 维护资源台账(基本信息、库存、可用状态),支持日历视图 | | **智能排程** | 一键执行排程引擎,生成横道图计划,支持人工调整和局部重排 | | **版本与变更** | 多次排程保存版本,变更需审批,支持历史版本对比 | | **计划跟踪** | 录入实际执行进度,分析计划与执行偏差,实时掌控项目状态 | --- ## 技术栈 | 层次 | 技术 | |------|------| | 前端 | Vue 3 + TypeScript + Element Plus + Pinia + Vite | | 后端 | Node.js + Express(`ship-schedule-node-backend`) | | 数据库 | JSON 文件存储(开发)/ MySQL 8.0(生产) | | 图表 | 自研 SVG 横道图组件 | | 认证 | JWT Token(基于 HMAC-SHA256) | | 部署 | 支持 Docker / Nginx / Railway | --- ## 项目结构 ``` ship-pm/ # 项目根目录 ├── ship-schedule-frontend/ # 前端(Vue 3) │ ├── src/ │ │ ├── views/ # 页面组件 │ │ │ ├── dashboard/ # 工作台/首页 │ │ │ ├── login/ # 登录页 │ │ │ ├── resource-demand/ # 资源需求维护 │ │ │ ├── resource-library/ # 资源库维护 │ │ │ ├── schedule/ # 智能排程(横道图) │ │ │ ├── tracking/ # 计划跟踪 │ │ │ └── version/ # 版本与变更 │ │ ├── router/ # 路由配置 │ │ ├── types/ # TypeScript 类型定义 │ │ ├── utils/ # 工具函数(request.ts 等) │ │ └── styles/ # 全局样式 │ └── package.json ├── ship-schedule-node-backend/ # 后端(Node.js) │ ├── src/ │ │ ├── routes/ # API 路由 │ │ ├── models/ # 数据模型 │ │ ├── middleware/ # 中间件 │ │ ├── database.ts # 数据库初始化 │ │ ├── auth.ts # 认证逻辑 │ │ └── app.ts # 应用主文件 │ ├── db.json # JSON 数据库文件 │ └── server.js # 入口文件 ├── sql/ # SQL 脚本 │ ├── 01_init_schema.sql # 初始化表结构 │ ├── 02_version_tracking.sql # 版本跟踪相关 │ └── 03_demo_data.sql # 演示数据 ├── docs/ # 文档目录 │ └── API.md # API 接口文档 └── README.md ``` --- ## 快速开始 ### 环境要求 - Node.js 18+ - npm 9+ - Git ### 安装 ```bash # 克隆代码 git clone cd ship-schedule # 安装前端依赖 cd ship-schedule-frontend npm install # 安装后端依赖 cd ../ship-schedule-node-backend npm install ``` ### 启动 ```bash # 终端1:启动后端 cd ship-schedule-node-backend node server.js # 终端2:启动前端 cd ship-schedule-frontend npm run dev ``` ### 访问 - 前端地址:http://localhost:5173 - 后端 API:http://localhost:3001/api - 健康检查:http://localhost:3001/api/health ### 演示账号 | 角色 | 用户名 | 密码 | 权限说明 | |------|--------|------|----------| | 管理员 | admin | admin123 | 全部数据查看/编辑,用户管理 | | 项目经理 | pm01 | pm123 | 全部计划查看/编辑,审批变更 | | 普通用户 | user01 | user123 | 仅查看/编辑本人录入的数据 | --- ## 数据库初始化 ```bash # 连接 MySQL 后执行 mysql -u root -p < sql/01_init_schema.sql mysql -u root -p < sql/02_version_tracking.sql mysql -u root -p < sql/03_demo_data.sql ``` --- ## 部署 ### Docker 部署(推荐) ```bash # 构建前端 cd ship-schedule-frontend npm run build # 使用 Docker Compose 启动 docker-compose up -d ``` ### 手动部署 1. 前端构建:`npm run build`,产物部署到 Nginx 2. 后端部署:Node.js 环境运行 `node server.js` 3. 环境变量配置 `.env` 详细部署说明请参考 [cloud-deployment-guide.md](./cloud-deployment-guide.md)。 --- ## API 文档 完整的 API 接口文档请查看 [docs/API.md](./docs/API.md)。 --- ## 排程算法说明 智能排程引擎采用**贪心 + 约束检查**的启发式算法,优先级目标: 1. **最大化满足需求** — 优先分配资源给优先级高的需求 2. **资源无冲突** — 同一资源同一时间段不能被重复分配 3. **中断最少** — 在满足前两者前提下,最小化资源空闲时间 --- ## 开发计划 | 阶段 | 内容 | 周期 | |------|------|------| | Phase 1 | 需求确认 + 数据库设计 + 项目初始化 | 1周 | | Phase 2 | 资源需求 + 资源库(增删改查) | 1周 | | Phase 3 | 智能排程引擎 + 横道图展示 | 2周 | | Phase 4 | 版本管理 + 审批流程 + 打印/PDF | 1周 | | Phase 5 | 计划跟踪 + 执行分析 + 权限控制 | 1周 | | Phase 6 | 联调测试 + Bug修复 + 文档 | 1周 | **总计约:7周** --- ## 许可证 Private Project - All Rights Reserved