Files
ccdi/openspec/changes/add-project-management/proposal.md
2026-01-30 14:15:21 +08:00

113 lines
3.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Proposal: 添加项目管理模块
## Change ID
`add-project-management`
## Summary
添加项目管理模块,实现初核项目的创建、查询、状态管理、归档等核心功能。该模块是系统的首页和入口,用于管理所有历史创建的核查项目。
## Motivation
目前系统缺少项目管理的核心功能模块。用户需要:
1. 统一管理所有初核项目
2. 快速查找和定位项目
3. 跟踪项目状态(进行中/已完成)
4. 监控预警人数变化
5. 对已完成项目进行归档管理
## Scope
本提案实现以下功能(不包括快捷入口区):
### 包含的功能
- **1.1 导航与搜索区**
- 项目搜索(模糊搜索项目名称)
- 新建项目(标准表单创建)
- 导入历史项目(复制历史配置快速创建)
- **1.2 项目列表区**
- 项目信息展示(名称、描述、创建日期、状态、目标人数、预警人数)
- 项目状态标识(进行中/已完成)
- 预警人数动态更新
- 查看结果(已完成项目跳转结果页)
- 重新分析(已完成项目重新运行风险模型)
- 归档项目生成PDF导出
- 进入项目(进行中项目跳转工作台)
### 明确排除
- **1.3 快捷入口区**(创建季度初核、创建新员工排查等快捷功能)
## Proposed Design
详见 [design.md](./design.md)
## Alternatives Considered
### 选项1使用若依代码生成器
**优点**
- 快速生成标准CRUD代码
- 符合项目规范
**缺点**
- 需要手动调整业务逻辑
- 缺少复杂的业务规则处理
**决定**:不采用。项目管理模块包含复杂的业务逻辑(状态流转、归档、重新分析等),需要自定义实现。
### 选项2完全自定义开发
**优点**
- 完全控制实现细节
- 灵活应对业务需求变化
**缺点**
- 开发周期较长
- 需要确保代码规范一致
**决定**:采用。参考现有系统模块的代码模式,确保与项目风格一致。
## Impact
### 后端影响
- 新建 `ruoyi-dpc` 模块,与若依框架代码分离(包含 Controller、Service、Mapper、Domain 层)
- 新增表:`ccdi_project`(项目主表)、`ccdi_project_person`(项目人员关联表)
- 新增权限:`dpc:project:list`, `dpc:project:query`, `dpc:project:add`, `dpc:project:edit`, `dpc:project:remove`, `dpc:project:archive`, `dpc:project:reanalyze`
- Controller层`ruoyi-dpc/src/main/java/com/ruoyi/dpc/controller/CcdiProjectController.java`
### 前端影响
- 新增视图:`ruoyi-ui/src/views/dpcProject/`
- 新增API`ruoyi-ui/src/api/dpcProject.js`
- 新增菜单:项目管理(在系统菜单中添加,注意与数据库中菜单表进行联动修改)
### 数据库影响
- 新增表:`ccdi_project`(项目主表)
- 新增表:`ccdi_project_person`(项目人员关联表)
## Dependencies
- 依赖现有用户系统(`SysUser`)进行人员选择
- 依赖部门系统(`SysDept`)进行部门范围选择
- 依赖文件上传功能项目附件、归档PDF
## Related Changes
## Open Questions
1. **项目人员关联方式**使用多对多关联表还是JSON字段存储人员列表
- 建议:使用 `ccdi_project_person` 关联表,便于查询和扩展
2. **归档PDF生成**使用什么工具生成PDF
- 建议:使用 iText 或 Apache POI需要后续确认
3. **重新分析的触发方式**:同步还是异步?
- 建议:异步处理,避免长时间阻塞
## Success Criteria
- [ ] 用户可以创建新项目并填写完整信息
- [ ] 用户可以搜索项目(按名称模糊匹配)
- [ ] 项目列表正确显示状态和预警人数
- [ ] 进行中项目可以进入工作台
- [ ] 已完成项目可以查看结果
- [ ] 已完成项目可以归档并生成PDF
- [ ] 已完成项目可以重新分析
## References
- [模块设计文档](../../doc/modules/01-项目管理模块.md)
- [若依开发文档](https://doc.ruoyi.vip/)