8.2 KiB
8.2 KiB
Tasks: 项目管理模块开发
本文档列出了实现项目管理模块的具体开发任务,按优先级和依赖关系排序。
阶段1:基础架构搭建
1.1 创建数据库表
- 创建
ccdi_project表 - 创建
ccdi_project_person表 - 创建索引和外键约束
- 准备测试数据
验证:执行SQL脚本,表结构创建成功,可以使用 DESC ccdi_project; 查看表结构
1.2 创建后端模块结构
- 创建
ruoyi-dpc新模块 - 配置模块
pom.xml依赖 - 在根
pom.xml中添加模块引用 - 在
ruoyi-admin的pom.xml中添加对ruoyi-dpc的依赖 - 配置 Spring 扫描
com.ruoyi.dpc.controller包 - 创建包结构:
com.ruoyi.dpc.controller,com.ruoyi.dpc.domain,com.ruoyi.dpc.mapper,com.ruoyi.dpc.service
验证:项目可以正常编译启动
1.3 创建实体类和DTO
- 创建
CcdiProject.java实体类(使用@Data注解,不继承 BaseEntity) - 创建
CcdiProjectPerson.java实体类(使用@Data注解) - 创建
CcdiProjectVO.java视图对象 - 创建
CcdiProjectQueryVO.java查询视图对象 - 创建
CcdiProjectDTO.java数据传输对象(新增/修改) - 创建
CcdiProjectQueryDTO.java查询DTO - 创建
CcdiProjectImportDTO.java导入DTO - 为审计字段添加
@TableField注解配置自动填充
验证:实体类和DTO编译通过,字段注解正确
1.4 创建DTO转换工具类
- 创建
CcdiProjectConverter.java工具类 - 实现
toEntity(CcdiProjectDTO)方法 - 实现
toVO(CcdiProject)方法 - 实现
toVOList(List<CcdiProject>)方法
验证:转换逻辑正确,覆盖所有字段
1.5 配置审计字段自动填充
- 创建
CcdiMetaObjectHandler.java实现MetaObjectHandler接口 - 实现
insertFill方法自动填充create_by和create_time - 实现
updateFill方法自动填充update_by和update_time - 从 Spring Security 上下文获取当前登录用户
- 将处理器注册为 Spring 组件(
@Component)
验证:插入和更新操作时审计字段自动填充
阶段2:数据访问层开发
2.1 创建Mapper接口
- 创建
CcdiProjectMapper.java(使用 MyBatis Plus) - 创建
CcdiProjectPersonMapper.java(使用 MyBatis Plus)
2.2 创建Mapper XML
- 创建
CcdiProjectMapper.xml - 创建
CcdiProjectPersonMapper.xml - 定义基础CRUD SQL(MyBatis Plus 自动生成)
- 定义关联查询SQL(项目+人员)
验证:可以使用MyBatis Log查看SQL执行正确
阶段3:服务层开发
3.1 创建Service接口
- 创建
ICcdiProjectService.java - 定义方法签名:
List<CcdiProject> selectProjectList(CcdiProject project)CcdiProject selectProjectById(Long projectId)int insertProject(CcdiProject project)int updateProject(CcdiProject project)int deleteProjectByIds(Long[] projectIds)boolean checkProjectNameUnique(CcdiProject project)void archiveProject(Long projectId)void reanalyzeProject(Long projectId)
3.2 实现Service
- 创建
CcdiProjectServiceImpl.java - 使用
@Resource注入依赖 - 实现基础CRUD方法
- 实现项目名称唯一性校验
- 实现项目归档逻辑(状态检查、PDF生成)
- 实现重新分析逻辑(异步任务)
验证:单元测试通过,业务逻辑符合需求
阶段4:控制器层开发
4.1 创建Controller
- 创建
CcdiProjectController.java(位于ruoyi-dpc模块的com.ruoyi.dpc.controller包中) - 实现列表查询接口
GET /dpc/project/list - 实现详情查询接口
GET /dpc/project/{id} - 实现新增接口
POST /dpc/project - 实现修改接口
PUT /dpc/project - 实现删除接口
DELETE /dpc/project/{ids} - 实现归档接口
POST /dpc/project/archive/{id} - 实现重新分析接口
POST /dpc/project/reanalyze/{id} - 实现导入历史项目接口
POST /dpc/project/import
4.2 添加权限注解
- 为所有接口添加
@PreAuthorize注解 - 配置权限字符串:
dpc:project:listdpc:project:querydpc:project:adddpc:project:editdpc:project:removedpc:project:archivedpc:project:reanalyze
4.3 添加操作日志
- 为关键操作添加
@Log注解 - 配置业务类型
验证:使用Postman测试所有接口,返回正确
阶段4.5:生成API文档
4.5.1 生成接口文档
- 使用 SpringDoc/Knife4j 生成 API 文档
- 在项目文件目录下导出 API 文档
验证:API 文档生成成功,包含所有接口
阶段5:前端API开发
5.1 创建API文件
- 创建
ruoyi-ui/src/api/dpcProject.js - 封装所有API请求方法:
listProject(query)getProject(projectId)addProject(data)updateProject(data)delProject(projectIds)archiveProject(projectId)reanalyzeProject(projectId)importProject(data)
验证:API方法可以正常调用
阶段6:前端页面开发
6.1 创建项目列表页
- 创建
ruoyi-ui/src/views/dpcProject/index.vue - 实现搜索区域(项目名称输入框、搜索按钮)
- 实现操作按钮(新建、导入历史项目)
- 实现数据表格(项目信息展示)
- 实现状态标签(进行中/已完成/已归档)
- 实现操作列(进入项目、查看结果、重新分析、归档)
6.2 创建新增/编辑弹窗
- 创建
ruoyi-ui/src/views/dpcProject/add-or-edit.vue - 实现项目基本信息表单(项目名称、描述、时间范围)
- 实现人员选择器(多选)
- 实现表单验证
6.3 创建导入历史项目弹窗
- 创建
ruoyi-ui/src/views/dpcProject/import-history.vue - 实现历史项目列表(只显示已完成项目)
- 实现项目详情预览
- 实现新项目配置
验证:页面显示正常,交互流畅
阶段7:菜单与权限配置
7.1 创建系统菜单
- 在系统管理 > 菜单管理中创建"项目管理"菜单
- 配置菜单图标和路由(路径:
dpcProject) - 创建子菜单/按钮权限
7.2 配置角色权限
- 为管理员角色分配项目管理权限
- 为其他角色配置适当权限
验证:登录后可以看到项目管理菜单
阶段8:测试与优化
8.1 功能测试
- 测试项目创建流程
- 测试项目搜索功能
- 测试项目状态流转
- 测试项目归档功能
- 测试重新分析功能
- 测试导入历史项目功能
8.2 边界测试
- 测试必填字段验证
- 测试项目名称唯一性
- 测试状态权限控制
- 测试数据权限
8.3 性能优化
- 优化SQL查询
- 添加必要的数据库索引
- 优化大数据量列表加载
验证:所有测试用例通过,无明显性能问题
阶段9:文档与交付
9.1 代码注释
- 为所有公开方法添加JavaDoc注释
- 为复杂逻辑添加行内注释
9.2 更新系统文档
- 更新数据库设计文档
- 更新API接口文档
- 更新用户操作手册
验证:文档完整、准确
任务依赖关系
阶段1 (基础架构)
↓
阶段2 (数据访问层) → 阶段3 (服务层) → 阶段4 (控制器层) → 阶段4.5 (API文档)
↓
阶段5 (前端API) ← ← ← ← ← ← ← ← ← ← ← ← ← ← ← ← ← ← ← ← ← ← ← ← ←
↓
阶段6 (前端页面)
↓
阶段7 (菜单权限)
↓
阶段8 (测试优化)
↓
阶段9 (文档交付)
可并行开发任务
以下任务可以并行开发:
- 阶段2和阶段3(后端不同层级)
- 阶段5和阶段6的前端页面组件
- 阶段7的菜单配置可以在后端开发完成后进行
预计工作量
| 阶段 | 预计工时 |
|---|---|
| 阶段1 | 0.5天 |
| 阶段2 | 0.5天 |
| 阶段3 | 1天 |
| 阶段4 | 1天 |
| 阶段5 | 0.5天 |
| 阶段6 | 2天 |
| 阶段7 | 0.5天 |
| 阶段8 | 1天 |
| 阶段9 | 0.5天 |
| 总计 | 7.5天 |