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

3.9 KiB
Raw Blame History

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

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/
  • 新增APIruoyi-ui/src/api/dpcProject.js
  • 新增菜单:项目管理(在系统菜单中添加,注意与数据库中菜单表进行联动修改)

数据库影响

  • 新增表:ccdi_project(项目主表)
  • 新增表:ccdi_project_person(项目人员关联表)

Dependencies

  • 依赖现有用户系统(SysUser)进行人员选择
  • 依赖部门系统(SysDept)进行部门范围选择
  • 依赖文件上传功能项目附件、归档PDF

Open Questions

  1. 项目人员关联方式使用多对多关联表还是JSON字段存储人员列表

    • 建议:使用 ccdi_project_person 关联表,便于查询和扩展
  2. 归档PDF生成使用什么工具生成PDF

    • 建议:使用 iText 或 Apache POI需要后续确认
  3. 重新分析的触发方式:同步还是异步?

    • 建议:异步处理,避免长时间阻塞

Success Criteria

  • 用户可以创建新项目并填写完整信息
  • 用户可以搜索项目(按名称模糊匹配)
  • 项目列表正确显示状态和预警人数
  • 进行中项目可以进入工作台
  • 已完成项目可以查看结果
  • 已完成项目可以归档并生成PDF
  • 已完成项目可以重新分析

References