Files
ccdi/openspec/changes/add-project-management/specs/project-management/spec.md
2026-01-27 17:09:32 +08:00

7.0 KiB
Raw Blame History

Spec: 项目管理能力

概述

本规范定义了项目管理模块的核心能力,包括项目的创建、查询、状态管理和归档功能。


ADDED Requirements

Requirement: 项目列表查询

系统 MUST 允许用户查询所有项目列表,支持按项目名称进行模糊搜索。

Scenario: 查询所有项目

Given 用户已登录系统并具有项目查看权限 When 用户进入项目管理页面 Then 系统显示所有项目列表,包括项目名称、描述、创建时间、状态、目标人数、预警人数

Scenario: 按名称搜索项目

Given 用户在项目管理页面 When 用户在搜索框输入"Q1初核"并点击搜索 Then 系统显示所有包含"Q1初核"的项目

Scenario: 项目状态标识

Given 项目列表中有多个不同状态的项目 When 用户查看项目列表 Then 进行中的项目显示蓝色标签,已完成的项目显示绿色标签,已归档的项目显示灰色标签

Scenario: 预警人数动态更新

Given 存在状态为"进行中"的项目 When 用户刷新项目列表 Then 预警人数显示最新的统计值


Requirement: 创建新项目

系统 MUST 允许用户创建新的初核项目,填写项目基本信息并选择参与人员。

Scenario: 创建标准项目

Given 用户在项目管理页面 When 用户点击"新建项目"按钮 Then 系统打开新增项目弹窗,包含项目名称、项目描述、时间范围、人员选择字段

Scenario: 必填字段验证

Given 用户新增项目时未填写项目名称 When 用户点击"确定"按钮 Then 系统提示"项目名称不能为空"

Scenario: 至少选择一名人员

Given 用户新增项目时未选择任何人员 When 用户点击"确定"按钮 Then 系统提示"请至少选择一名参与人员"

Scenario: 创建成功

Given 用户填写了完整的项目信息 When 用户点击"确定"按钮 Then 系统创建项目并提示"新增成功",项目列表刷新显示新项目


Requirement: 导入历史项目

系统 MUST 允许用户从已完成的历史项目导入配置,快速创建新项目。

Scenario: 查看历史项目列表

Given 用户点击"导入历史项目"按钮 When 系统打开导入历史项目弹窗 Then 系统显示所有已完成状态的历史项目列表

Scenario: 选择历史项目

Given 用户在导入历史项目弹窗中 When 用户选择一个历史项目 Then 系统显示该项目的详细信息(人员范围、配置等)

Scenario: 复制配置创建新项目

Given 用户选择了历史项目并填写了新项目名称 When 用户点击"确定"按钮 Then 系统创建新项目,复制原项目的人员和配置,状态为"进行中"


Requirement: 项目状态管理

系统 MUST 支持项目状态的流转和管理。

Scenario: 进入进行中的项目

Given 存在状态为"进行中"的项目 When 用户点击"进入项目"按钮 Then 系统跳转到该项目的工作台页面

Scenario: 查看已完成项目结果

Given 存在状态为"已完成"的项目 When 用户点击"查看结果"按钮 Then 系统跳转到该项目的初核结果总览页面

Scenario: 重新分析已完成项目

Given 存在状态为"已完成"的项目 When 用户点击"重新分析"按钮 Then 系统基于原有数据重新运行风险模型,更新预警人数和结果

Scenario: 重新分析权限控制

Given 用户没有重新分析的权限 When 用户查看项目列表 Then 不显示"重新分析"按钮


Requirement: 项目归档

系统 MUST 允许用户将已结束的项目归档并生成PDF归档文件。

Scenario: 归档已完成项目

Given 存在状态为"已完成"的项目 When 用户点击"归档"按钮 Then 系统生成PDF归档文件更新项目状态为"已归档"

Scenario: 归档状态校验

Given 存在状态为"进行中"的项目 When 用户尝试归档该项目 Then 系统提示"只能归档已完成的项目"

Scenario: 归档文件下载

Given 存在已归档的项目 When 用户点击"下载归档"按钮 Then 系统下载该项目的PDF归档文件

Scenario: 归档项目不显示在默认列表

Given 存在已归档的项目 When 用户查看项目列表 Then 默认不显示已归档的项目

Scenario: 查看归档项目

Given 用户想查看已归档的项目 When 用户勾选"显示已归档"选项 Then 系统在列表中显示已归档的项目


Requirement: 项目数据模型

系统 MUST 使用正确的数据结构存储项目信息。

Scenario: 项目基础信息存储

Given 创建新项目 When 系统保存项目数据 Then 数据库存储项目ID、项目名称、项目描述、创建时间、状态、目标人数、预警人数

Scenario: 项目人员关联存储

Given 项目包含多名参与人员 When 系统保存项目数据 Then 人员在关联表中存储包含项目ID、人员ID、人员姓名冗余

Scenario: 状态枚举值

Given 项目状态字段 When 系统存储项目状态 Then 状态值为:'0'进行中、'1'已完成、'2'已归档


Requirement: API接口规范

系统 MUST 提供符合RESTful规范的API接口。

Scenario: 查询项目列表API

Given 前端需要获取项目列表 When 调用 GET /dpc/project/list?projectName=xxx&pageNum=1&pageSize=10 Then 返回分页数据包含total、rows、code、msg

Scenario: 创建项目API

Given 前端需要创建新项目 When 调用 POST /dpc/project 并传递项目数据 Then 返回操作结果code为200表示成功

Scenario: 归档项目API

Given 前端需要归档项目 When 调用 POST /dpc/project/archive/{projectId} Then 系统执行归档操作并返回结果

Scenario: 权限校验

Given 用户没有相应的权限 When 调用需要权限的API Then 返回403错误提示无权限访问


Requirement: 前端用户体验

系统 MUST 提供友好的用户交互体验。

Scenario: 响应式布局

Given 用户使用不同分辨率的设备 When 用户访问项目管理页面 Then 页面布局自适应,所有功能可用

Scenario: 操作反馈

Given 用户执行操作 When 操作成功或失败 Then 系统显示明确的成功或错误提示消息

Scenario: 加载状态

Given 数据加载需要时间 When 用户请求数据 Then 系统显示loading加载状态


相关能力

  • 用户管理能力:依赖用户系统获取人员信息
  • 部门管理能力:依赖部门系统进行部门范围选择
  • 文件管理能力依赖文件上传功能处理项目附件和归档PDF
  • 项目工作台能力:进入项目后跳转到工作台(后续实现)
  • 初核结果能力:查看结果跳转到结果页(后续实现)