113 lines
3.9 KiB
Markdown
113 lines
3.9 KiB
Markdown
# 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/)
|