# 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/)
