Files
xsl_node/docs/功能规格说明书.md
2026-01-26 12:29:56 +08:00

534 lines
13 KiB
Markdown

# 项目管理系统功能规格说明书
## 文档信息
- **文档版本**: V1.0
- **创建日期**: 2026-01-26
- **文档类型**: 功能规格说明书 (FSD)
---
## 1. 引言
### 1.1 文档目的
本文档详细描述项目管理系统的各项功能规格,为系统设计和开发提供详细的功能说明。
### 1.2 适用范围
本文档适用于项目管理系统开发团队,包括前端开发、后端开发、测试人员等。
### 1.3 参考文档
- 《项目管理系统产品需求文档》
---
## 2. 用户管理功能规格
### 2.1 用户登录功能
#### 2.1.1 功能描述
用户通过用户名和密码登录系统。
#### 2.1.2 输入参数
- 用户名:字符串,长度3-20字符
- 密码:字符串,长度8-20字符
#### 2.1.3 处理逻辑
1. 验证用户名和密码是否为空
2. 验证用户名是否存在
3. 验证密码是否正确
4. 验证用户状态是否正常
5. 登录成功后创建会话
6. 记录登录日志
#### 2.1.4 输出结果
- 登录成功:跳转到系统首页
- 登录失败:显示错误提示信息
#### 2.1.5 异常处理
- 用户名不存在:提示"用户名或密码错误"
- 密码错误:提示"用户名或密码错误"
- 用户被禁用:提示"账号已被禁用,请联系管理员"
- 系统异常:提示"系统异常,请稍后重试"
### 2.2 用户创建功能
#### 2.2.1 功能描述
管理员创建新用户账号。
#### 2.2.2 输入参数
- 用户名:字符串,长度3-20字符,必填
- 密码:字符串,长度8-20字符,必填
- 确认密码:字符串,必填
- 真实姓名:字符串,长度2-20字符,必填
- 部门:枚举值,必填
- 联系电话:字符串,选填
- 邮箱:字符串,选填
- 角色:枚举值,必填
#### 2.2.3 处理逻辑
1. 验证输入参数的完整性和格式
2. 验证用户名是否已存在
3. 验证密码和确认密码是否一致
4. 验证邮箱格式是否正确
5. 对密码进行加密处理
6. 生成用户ID
7. 保存用户信息到数据库
8. 记录操作日志
#### 2.2.4 输出结果
- 创建成功:提示"用户创建成功",清空表单
- 创建失败:显示错误提示信息
#### 2.2.5 异常处理
- 用户名已存在:提示"用户名已存在"
- 密码不一致:提示"两次输入的密码不一致"
- 邮箱格式错误:提示"邮箱格式不正确"
- 数据库异常:提示"系统异常,请稍后重试"
### 2.3 用户编辑功能
#### 2.3.1 功能描述
管理员编辑用户基本信息。
#### 2.3.2 输入参数
- 用户ID:字符串,必填
- 真实姓名:字符串,必填
- 部门:枚举值,必填
- 联系电话:字符串,选填
- 邮箱:字符串,选填
- 角色:枚举值,必填
#### 2.3.3 处理逻辑
1. 验证输入参数的完整性和格式
2. 验证用户ID是否存在
3. 验证邮箱格式是否正确
4. 更新用户信息到数据库
5. 如果角色发生变化,更新用户权限
6. 记录操作日志
#### 2.3.4 输出结果
- 编辑成功:提示"用户信息更新成功"
- 编辑失败:显示错误提示信息
#### 2.3.5 异常处理
- 用户不存在:提示"用户不存在"
- 邮箱格式错误:提示"邮箱格式不正确"
- 数据库异常:提示"系统异常,请稍后重试"
### 2.4 密码重置功能
#### 2.4.1 功能描述
管理员重置用户密码。
#### 2.4.2 输入参数
- 用户ID:字符串,必填
- 新密码:字符串,长度8-20字符,必填
- 确认密码:字符串,必填
#### 2.4.3 处理逻辑
1. 验证输入参数的完整性
2. 验证用户ID是否存在
3. 验证新密码和确认密码是否一致
4. 对新密码进行加密处理
5. 更新用户密码到数据库
6. 记录操作日志
#### 2.4.4 输出结果
- 重置成功:提示"密码重置成功"
- 重置失败:显示错误提示信息
#### 2.4.5 异常处理
- 用户不存在:提示"用户不存在"
- 密码不一致:提示"两次输入的密码不一致"
- 数据库异常:提示"系统异常,请稍后重试"
### 2.5 用户列表功能
#### 2.5.1 功能描述
展示所有用户列表。
#### 2.5.2 输入参数
- 页码:整数,默认1
- 每页数量:整数,默认10
- 搜索关键词:字符串,选填
#### 2.5.3 处理逻辑
1. 验证分页参数
2. 根据搜索关键词查询用户列表
3. 计算总记录数和总页数
4. 返回用户列表数据
#### 2.5.4 输出结果
- 用户列表数据
- 分页信息
#### 2.5.5 异常处理
- 参数错误:提示"参数错误"
- 数据库异常:提示"系统异常,请稍后重试"
---
## 3. 项目管理功能规格
### 3.1 项目创建功能
#### 3.1.1 功能描述
市场部人员创建新项目。
#### 3.1.2 输入参数
**基本信息**
- 项目名称:字符串,长度2-100字符,必填
- 项目状态:枚举值,默认"未开始"
- 负责人:字符串,必填
- 联系电话:字符串,选填
- 邮箱:字符串,选填
**项目描述**
- 项目背景:字符串,选填
- 项目目标:字符串,选填
- 项目范围:字符串,选填
**项目团队**
- 成员列表:数组,每个成员包含姓名、角色、部门
**项目时间**
- 开始日期:日期,必填
- 预计结束日期:日期,必填
- 实际结束日期:日期,选填
**项目预算**
- 总预算:数字,必填
- 已使用:数字,默认0
- 剩余:数字,自动计算
**项目里程碑**
- 里程碑列表:数组,每个里程碑包含名称、计划日期、实际日期、状态
**项目风险**
- 风险列表:数组,每个风险包含描述、等级、应对措施
**项目备注**
- 备注:字符串,选填
#### 3.1.3 处理逻辑
1. 验证用户是否有创建项目权限
2. 验证必填参数是否完整
3. 验证日期格式是否正确
4. 验证预算数据是否合法
5. 生成项目编号
6. 生成项目ID
7. 计算剩余预算
8. 保存项目信息到数据库
9. 创建项目创建历史记录
10. 记录操作日志
#### 3.1.4 输出结果
- 创建成功:提示"项目创建成功",跳转到项目列表
- 创建失败:显示错误提示信息
#### 3.1.5 异常处理
- 无权限:提示"您没有创建项目的权限"
- 参数错误:提示"请填写必填项"
- 日期错误:提示"日期格式不正确"
- 数据库异常:提示"系统异常,请稍后重试"
### 3.2 项目编辑功能
#### 3.2.1 功能描述
用户编辑项目信息。
#### 3.2.2 输入参数
- 项目ID:字符串,必填
- 项目信息:项目完整信息(同创建参数)
#### 3.2.3 处理逻辑
1. 验证用户是否有编辑项目权限
2. 验证项目ID是否存在
3. 获取项目当前信息
4. 对比修改前后的数据
5. 验证必填参数是否完整
6. 验证日期格式是否正确
7. 验证预算数据是否合法
8. 更新项目信息到数据库
9. 记录修改历史(只记录有变化的字段)
10. 更新最后修改时间和修改人
11. 记录操作日志
#### 3.2.4 输出结果
- 编辑成功:提示"项目信息更新成功"
- 编辑失败:显示错误提示信息
#### 3.2.5 异常处理
- 项目不存在:提示"项目不存在"
- 参数错误:提示"请填写必填项"
- 日期错误:提示"日期格式不正确"
- 数据库异常:提示"系统异常,请稍后重试"
### 3.3 项目查看功能
#### 3.3.1 功能描述
用户查看项目详情。
#### 3.3.2 输入参数
- 项目ID:字符串,必填
#### 3.3.3 处理逻辑
1. 验证项目ID是否存在
2. 查询项目详细信息
3. 查询项目修改历史记录
4. 返回项目详情和历史记录
#### 3.3.4 输出结果
- 项目详细信息
- 项目修改历史记录
#### 3.3.5 异常处理
- 项目不存在:提示"项目不存在"
- 数据库异常:提示"系统异常,请稍后重试"
### 3.4 项目列表功能
#### 3.4.1 功能描述
展示所有项目列表。
#### 3.4.2 输入参数
- 页码:整数,默认1
- 每页数量:整数,默认10
- 搜索关键词:字符串,选填
- 项目状态:枚举值,选填
- 负责人:字符串,选填
#### 3.4.3 处理逻辑
1. 验证分页参数
2. 根据筛选条件查询项目列表
3. 计算总记录数和总页数
4. 返回项目列表数据
#### 3.4.4 输出结果
- 项目列表数据
- 分页信息
#### 3.4.5 异常处理
- 参数错误:提示"参数错误"
- 数据库异常:提示"系统异常,请稍后重试"
---
## 4. 项目历史记录功能规格
### 4.1 历史记录记录功能
#### 4.1.1 功能描述
自动记录项目修改历史。
#### 4.1.2 输入参数
- 项目ID:字符串,必填
- 操作类型:枚举值,必填
- 操作人:字符串,必填
- 修改数据:对象,必填
#### 4.1.3 处理逻辑
1. 生成历史记录ID
2. 记录操作时间
3. 对比修改前后的数据
4. 提取变化的字段
5. 保存历史记录到数据库
#### 4.1.4 输出结果
- 记录成功:无返回
- 记录失败:记录错误日志
#### 4.1.5 异常处理
- 数据库异常:记录错误日志,不影响主流程
### 4.2 历史记录查看功能
#### 4.2.1 功能描述
查看项目修改历史。
#### 4.2.2 输入参数
- 项目ID:字符串,必填
- 页码:整数,默认1
- 每页数量:整数,默认10
- 修改人:字符串,选填
- 开始时间:日期,选填
- 结束时间:日期,选填
#### 4.2.3 处理逻辑
1. 验证项目ID是否存在
2. 根据筛选条件查询历史记录
3. 按时间倒序排列
4. 计算总记录数和总页数
5. 返回历史记录数据
#### 4.2.4 输出结果
- 历史记录列表
- 分页信息
#### 4.2.5 异常处理
- 项目不存在:提示"项目不存在"
- 参数错误:提示"参数错误"
- 数据库异常:提示"系统异常,请稍后重试"
---
## 5. 项目统计功能规格
### 5.1 项目筛选功能
#### 5.1.1 功能描述
管理员通过多种条件筛选项目。
#### 5.1.2 输入参数
- 项目编号:字符串,选填
- 项目名称:字符串,选填
- 项目状态:枚举值,选填
- 负责人:字符串,选填
- 创建开始日期:日期,选填
- 创建结束日期:日期,选填
- 修改开始日期:日期,选填
- 修改结束日期:日期,选填
- 部门:字符串,选填
#### 5.1.3 处理逻辑
1. 验证用户是否有筛选权限
2. 验证日期格式是否正确
3. 构建查询条件
4. 执行查询
5. 返回筛选结果
#### 5.1.4 输出结果
- 筛选后的项目列表
#### 5.1.5 异常处理
- 无权限:提示"您没有筛选项目的权限"
- 参数错误:提示"参数错误"
- 数据库异常:提示"系统异常,请稍后重试"
### 5.2 项目统计功能
#### 5.2.1 功能描述
管理员查看项目统计数据。
#### 5.2.2 输入参数
- 统计维度:枚举值,必填
- 时间范围:开始日期、结束日期,选填
#### 5.2.3 处理逻辑
1. 验证用户是否有统计权限
2. 根据统计维度查询数据
3. 根据时间范围过滤数据
4. 计算统计指标
5. 返回统计结果
#### 5.2.4 输出结果
- 统计数据
- 统计图表数据
#### 5.2.5 异常处理
- 无权限:提示"您没有查看统计的权限"
- 参数错误:提示"参数错误"
- 数据库异常:提示"系统异常,请稍后重试"
---
## 6. 数据验证规则
### 6.1 用户数据验证
- 用户名:3-20字符,只能包含字母、数字、下划线
- 密码:8-20字符,必须包含字母和数字
- 真实姓名:2-20字符
- 邮箱:标准邮箱格式
- 联系电话:11位数字
### 6.2 项目数据验证
- 项目名称:2-100字符
- 项目编号:自动生成,格式PRJ+年份+序号
- 项目状态:枚举值(未开始、进行中、已完成、已暂停、已取消)
- 预算:非负数
- 日期:YYYY-MM-DD格式
---
## 7. 业务流程图
### 7.1 用户创建流程
1. 管理员登录系统
2. 进入用户管理页面
3. 点击"创建用户"按钮
4. 填写用户信息
5. 提交表单
6. 系统验证数据
7. 保存用户信息
8. 提示创建成功
### 7.2 项目创建流程
1. 市场部人员登录系统
2. 进入项目管理页面
3. 点击"创建项目"按钮
4. 填写项目信息
5. 提交表单
6. 系统验证数据
7. 生成项目编号
8. 保存项目信息
9. 记录创建历史
10. 提示创建成功
### 7.3 项目编辑流程
1. 用户登录系统
2. 进入项目列表页面
3. 选择要编辑的项目
4. 点击"编辑"按钮
5. 修改项目信息
6. 提交表单
7. 系统验证数据
8. 对比修改前后的数据
9. 更新项目信息
10. 记录修改历史
11. 提示更新成功
---
## 8. 附录
### 8.1 枚举值定义
#### 用户角色
- ADMIN:管理员
- MARKETING:市场部
- OTHER:其他部门
#### 项目状态
- NOT_STARTED:未开始
- IN_PROGRESS:进行中
- COMPLETED:已完成
- PAUSED:已暂停
- CANCELLED:已取消
#### 操作类型
- CREATE:创建
- UPDATE:更新
- DELETE:删除
#### 部门
- MARKETING:市场部
- TECHNOLOGY:技术部
- DESIGN:设计部
- FINANCE:财务部
- HR:人力资源部
### 8.2 错误码定义
- 1001:用户名或密码错误
- 1002:用户不存在
- 1003:用户名已存在
- 1004:密码不一致
- 2001:项目不存在
- 2002:无权限操作
- 3001:参数错误
- 9999:系统异常
### 8.3 变更记录
| 版本 | 日期 | 修改人 | 修改内容 |
|------|------|--------|----------|
| V1.0 | 2026-01-26 | - | 初始版本创建 |