# rdpm-system **Repository Path**: godofjava/rdpm-system ## Basic Information - **Project Name**: rdpm-system - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-01 - **Last Updated**: 2026-07-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # RDPM - 研发项目管理系统 RDPM(Research & Development Project Management)是面向制造企业的研发项目全生命周期管理系统,支持从立项到样品交付的五个阶段管控,集成友空间(UIP)实现单点登录与消息推送。 ## 技术栈 **后端**:Java 11 / Spring Boot 2.7.14 / Spring Security + JWT / Spring Data JPA / MySQL 8.0 / Redis / RabbitMQ **前端**:React 18 / Ant Design 5 / Ant Design Mobile 5 / React Router 6 / Axios / Recharts **构建与部署**:Maven / Create React App / Nginx 反向代理 ## 项目结构 ``` rdpm-system/ ├── backend/ # Spring Boot 后端应用 │ ├── pom.xml │ └── src/main/java/com/rdpm/ │ ├── config/ # 全局配置(Security、Redis、RabbitMQ、异步线程池) │ ├── constant/ # 公共常量 │ ├── controller/ # REST API 控制器 │ ├── dto/ # 请求/响应数据传输对象 │ ├── entity/ # JPA 实体(9 张数据表) │ ├── repository/ # 数据访问层 │ ├── security/ # JWT 认证与 Spring Security │ ├── service/ # 业务逻辑层 │ ├── uip/ # 友空间 SDK 集成(SSO、同步、消息推送) │ └── util/ # 工具类 ├── frontend/ # React 前端应用 │ ├── package.json │ ├── .env.pc # PC 端环境变量 │ ├── .env.mobile # 移动端环境变量 │ └── src/ │ ├── components/ # 路由守卫组件 │ ├── config/ # 路由配置(按部署模式过滤) │ ├── context/ # 认证上下文 │ ├── pages/ # 页面组件(PC + mobile/) │ └── utils/ # Axios 实例与工具函数 ├── data/ # 本地数据库文件 └── uploads/ # 用户上传文件存储 ``` ## 核心功能 **项目生命周期管理** — 覆盖立项、产品设计开发、过程设计开发、样件试生产、样品交付与服务五个阶段,支持阶段推进与统计概览。 **任务分配与通知** — 按项目阶段创建任务,分配责任人,通过友空间自动推送消息通知。 **文档管理与版本控制** — 项目级文档上传与搜索,同名文件自动递增版本号,支持文档、图片、CAD 等多种格式。 **友空间(UIP)集成** — SSO 单点登录、用户与部门每日定时同步、事件驱动消息推送(基于 RabbitMQ)。 **多端适配** — PC 端部署于内网,移动端部署于云端,共享同一套后端 API,通过环境变量区分构建。 **权限与安全** — JWT 令牌认证(Redis 滑动窗口 7 天有效期)、角色访问控制、图形验证码、多设备登录支持。 ## 快速开始 ### 环境要求 - JDK 11+ - Maven 3.6+ - Node.js 14+ - MySQL 8.0 - Redis - RabbitMQ ### 后端启动 ```bash cd backend # 1. 修改 src/main/resources/application-dev.yml 中的数据库、Redis、RabbitMQ 连接配置 # 2. 启动应用 mvn spring-boot:run ``` 后端默认运行在 `http://localhost:8080`。 ### 前端启动 ```bash cd frontend # 安装依赖 npm install # 启动开发服务器(自动代理 API 请求到 localhost:8080) npm start ``` 前端默认运行在 `http://localhost:3000`。 ### 构建生产版本 ```bash # 后端打包 cd backend mvn clean package -DskipTests # 产物: target/rdpm-backend-1.0.0.jar # 前端 PC 端构建 cd frontend npm run build:pc # 前端移动端构建 npm run build:mobile ``` ## 配置说明 后端通过 `application-{profile}.yml` 管理多环境配置: | 配置项 | 说明 | |--------|------| | `spring.profiles.active` | 激活的配置文件(dev / prod / test) | | `spring.datasource.*` | MySQL 数据库连接 | | `spring.redis.*` | Redis 缓存连接 | | `spring.rabbitmq.*` | RabbitMQ 消息队列连接 | | `jwt.expiration.ms` | JWT 令牌有效期(默认 86400000ms = 24h) | | `uip.app.key/secret` | 友空间应用凭证 | | `spring.servlet.multipart.max-file-size` | 文件上传大小限制(默认 20MB) | 前端通过 `.env.pc` 和 `.env.mobile` 区分部署环境,`REACT_APP_API_URL` 指定后端 API 地址。 ## 数据库设计 系统包含 9 张核心数据表: | 表名 | 说明 | |------|------| | `users` | 系统用户(从友空间同步) | | `departments` | 组织架构(从友空间同步) | | `projects` | 研发项目(含物料试制申请字段) | | `project_members` | 项目-成员关联 | | `stage_tasks` | 阶段任务 | | `documents` | 项目文档(含版本控制) | | `activity_logs` | 操作审计日志 | | `project_feedback` | 项目反馈 | | `user_feedback_view` | 反馈已读/未读状态 | 开发环境使用 `ddl-auto: update` 自动建表,生产环境使用 `ddl-auto: none` 由 DBA 手动管理。 ## API 概览 所有接口以 `/api/` 为前缀,`/api/auth/**` 无需认证,`/api/admin/**` 需要管理员角色,其余接口需携带 JWT 令牌。 | 模块 | 主要接口 | |------|----------| | 认证 | 登录、友空间 SSO 登录、登出、验证码 | | 项目 | CRUD、成员管理、阶段推进、搜索、统计、反馈 | | 任务 | 按项目阶段创建/更新/删除任务 | | 文档 | 上传、下载、按项目查询、全局搜索 | | 用户 | 用户管理、资料修改、密码变更 | | 日志 | 活动日志查询 | ## 部署架构 系统采用 PC / 移动端分离部署方案: - **PC 端** — 部署于内网服务器,通过内网 IP 访问后端 API - **移动端** — 部署于云服务器,通过 Nginx 反向代理转发 API 请求至内网 - **后端** — 运行于内网服务器,同时服务于 PC 和移动端请求 详细部署指南请参阅 [DEPLOYMENT_GUIDE.md](./DEPLOYMENT_GUIDE.md)。 ## 相关文档 - [QUICK_START.md](./QUICK_START.md) — 快速部署参考 - [DEPLOYMENT_GUIDE.md](./DEPLOYMENT_GUIDE.md) — PC/移动端分离部署完整指南 - [TASK_NOTIFICATION_GUIDE.md](./TASK_NOTIFICATION_GUIDE.md) — 任务通知功能说明 - [backend/BUILD_GUIDE.md](./backend/BUILD_GUIDE.md) — Maven 打包说明 - [backend/CONFIG_ENCODING_GUIDE.md](./backend/CONFIG_ENCODING_GUIDE.md) — 配置文件编码说明