项目功能设计
这篇解决什么
项目怎么分层:立项是申请单,通过后才有台账;任务、里程碑、文档挂在台账上。变更和工时周报才再走审批。读完先对模块边界和表,再进工作台、详情、任务等功能篇。
默认端口 48080,前缀 /admin-api。工程启动见 快速开始。审批接入见 业务表单开发。
业务流程及架构
项目自己不算流程引擎。立项、变更、工时周报在 yudao-module-project,实现 FlowBillService。任务本身不走审批。
示意图:左客户端。中间项目读部门和用户,立项 / 变更 / 周报走 Flowable。
| 名称 | 说明 | 仓库路径 |
|---|---|---|
| 工作台 / 立项 / 台账 | 汇总读台账;立项通过后 id 沿用 | 工作台与项目管理 |
| 详情 / 迭代 | 台账详情、里程碑 | 项目详情与迭代 |
| 任务 | 无流程 key | 工作项与协作 |
| 文档 | 项目文档中心 | 知识库管理、文档与协作 |
| 移动 | 立项、任务 | 移动端 PMS |
不要用目录名当流程 key
立项是 project_create,不是 project_info。全部 key 以 ProjectBillTypeEnum 为准。
数据表 ER
主干表按 DO 画出。评论、活动流、模板任务树不进这张图。
示意图:台账 id 沿用立项单。任务不挂 processInstanceId。
前后端代码
| 名称 | 说明 | 仓库路径 |
|---|---|---|
| 模块 | api 枚举 + server 实现 | ruoyi-office/yudao-module-project/ |
| 单体引入 | yudao-module-project-server | ruoyi-office/yudao-server/pom.xml |
| 单据枚举 | 601 / 602 / 603 | yudao-module-project-api/.../ProjectBillTypeEnum.java |
| 逾期 / 里程碑 Job | projectOverdueNotifyJob、projectMilestoneNotifyJob | .../job/ |
| 管理端 | 项目目录 | ruoyi-office-vben/apps/web-antd/src/views/project/ |
官方菜单:5430 项目(/project)。工作台 7611,立项 7252,台账 5431,任务 5439。看不到菜单先查角色。

本系统截图:项目 → 项目工作台。模块和菜单已经在跑。

本系统截图:审批通过后的运营资产。不要在立项表上改暂停 / 完成。
功能开启
单体 -P boot 时已经依赖项目实现,没有单独的「项目开关」页。启动 YudaoServerApplication 即可。
客户默认包 ruoyi-office-db/dump/latest/:先 schema_*.sql 再 static_data_*.sql,带 project_* 表、菜单、字典和立项 / 变更 / 工时周报模型。以后改表走 ruoyi-office-db/update/。
| 名称 | 说明 | 仓库路径 |
|---|---|---|
601 立项 | project_create | /project/project-apply-detail |
602 变更 | project_change | 变更 info |
603 工时周报 | project_worktime_report | 周报 info |
先对模型再改页面
自定义路径对立项 project-apply-detail。任务页不要挂 project_create。
PROJECT_CREATE("601", "项目立项审批", "project_create"),
PROJECT_CHANGE("602", "项目变更审批", "project_change"),
PROJECT_WORKTIME_REPORT("603", "项目工时周报审批", "project_worktime_report"),摘自 ProjectBillTypeEnum。第三段才是 Flowable 的 KEY_。
示意图:三个流程没发布,立项提交会失败。Job 没挂,逾期通知不会发。
旧文 项目功能开启 已并入本页,请收藏本篇。
