Files
ccdi/doc/plans/2026-02-06-ccdi_purchase_transaction-verification.md
wkc b38c1121e6 docs: 添加采购交易最终验证清单
- 功能测试清单(前端8大功能模块详细检查点)
  - 页面访问、查询、新增、编辑、详情、删除、导出、导入
  - 后端10个接口测试要点
  - 权限测试(菜单权限、按钮权限、数据权限)
- 代码审查清单(后端7个方面、前端6个方面、数据库3个方面)
- 性能测试建议(查询/写入/导入导出/并发/压力测试)
- 部署前检查项(代码/配置/数据/文档/测试/部署)
- 验收标准(7个维度)
- 验收流程(4个阶段)
- Bug分级标准

文件路径: doc/plans/2026-02-06-ccdi_purchase_transaction-verification.md

Task 21: 最终验证清单

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-06 16:52:20 +08:00

22 KiB
Raw Blame History

采购交易信息管理 - 最终验证清单

文档信息

  • 模块名称: 采购交易信息管理
  • 验证时间: 2026-02-06
  • 版本: v1.0.0
  • 状态: 待验证

目录

  1. 功能测试清单
  2. 代码审查清单
  3. 性能测试建议
  4. 部署前检查项
  5. 验收标准

功能测试清单

1. 前端功能测试

1.1 页面访问测试

  • 登录系统后,左侧菜单显示"CCDI管理"
  • "CCDI管理"下显示"采购交易管理"子菜单
  • 点击"采购交易管理",页面正常加载
  • 页面标题显示"采购交易管理"
  • 页面布局完整,无错位、无空白
  • 响应式布局在不同分辨率下正常

1.2 查询功能测试

基础查询

  • 项目名称模糊查询功能正常
  • 标的物名称模糊查询功能正常
  • 申请人姓名模糊查询功能正常
  • 搜索按钮功能正常
  • 重置按钮清空所有查询条件
  • 重置后恢复全部数据

日期范围查询

  • 日期选择器正常显示
  • 选择日期范围后查询结果正确
  • 只选开始日期,查询结果正确
  • 只选结束日期,查询结果正确
  • 开始日期大于结束日期时提示错误

分页查询

  • 分页组件正常显示
  • 总条数显示正确
  • 当前页码显示正确
  • 点击页码切换正常
  • 修改每页显示条数正常10/20/50/100
  • 分页数据正确,无重复或遗漏

表格显示

  • 表头显示正确
  • 数据行显示完整
  • 金额字段格式化显示(千分位)
  • 日期字段格式化显示yyyy-MM-dd
  • 文本超长时显示省略号和tooltip
  • 空数据时显示"暂无数据"
  • 加载时显示loading动画

1.3 新增功能测试

打开新增对话框

  • 点击"新增"按钮,对话框正常打开
  • 对话框标题显示"添加采购交易"
  • 采购事项ID输入框可编辑
  • 表单验证规则提示正确

表单填写

  • 所有字段输入框正常显示
  • 日期选择器功能正常
  • 数字输入框可以输入小数
  • 文本域可以输入多行文本
  • 字段分组(分隔线)显示正确

表单验证

  • 采购事项ID为必填项不填提示错误
  • 采购事项ID长度限制32字符
  • 项目名称长度限制200字符
  • 标的物名称长度限制200字符
  • 标的物描述长度限制500字符
  • 采购方式长度限制50字符
  • 供应商名称长度限制200字符
  • 供应商统一信用代码长度限制18字符
  • 供应商联系人长度限制50字符
  • 供应商联系电话长度限制20字符
  • 供应商银行账户长度限制50字符
  • 申请人姓名长度限制50字符
  • 申请人工号长度限制20字符
  • 申请部门长度限制100字符
  • 采购负责人姓名长度限制50字符
  • 采购负责人工号长度限制20字符
  • 采购部门长度限制100字符

提交保存

  • 填写完整信息后点击"确定",保存成功
  • 成功提示显示"新增成功"
  • 对话框自动关闭
  • 列表自动刷新,显示新数据
  • 数据保存到数据库

取消操作

  • 点击"取消"按钮,对话框关闭
  • 表单数据清空
  • 不影响已有数据

1.4 编辑功能测试

打开编辑对话框

  • 点击"编辑"按钮,对话框正常打开
  • 对话框标题显示"修改采购交易"
  • 表单数据回显正确
  • 采购事项ID输入框禁用不可编辑

修改数据

  • 修改字段后保存成功
  • 成功提示显示"修改成功"
  • 对话框自动关闭
  • 列表自动刷新,显示修改后数据
  • 数据库数据正确更新

并发编辑

  • 多人同时编辑同一条记录时,后提交的覆盖前面的
  • 提示用户数据可能已被修改(如有乐观锁)

1.5 详情功能测试

打开详情对话框

  • 点击"详情"按钮,详情对话框正常打开
  • 对话框标题显示"采购交易详情"
  • 所有字段正确显示
  • 空字段显示"-"

详情分组显示

  • 基本信息分组显示正确
  • 数量与金额分组显示正确
  • 供应商信息分组显示正确
  • 重要日期分组显示正确
  • 申请人信息分组显示正确
  • 采购负责人信息分组显示正确
  • 审计信息分组显示正确

数据格式化

  • 金额显示千分位格式500,000.00
  • 日期显示yyyy-MM-dd格式
  • 时间显示yyyy-MM-dd HH:mm:ss格式
  • 描述文本换行显示

关闭详情

  • 点击"关闭"按钮,对话框关闭
  • 点击对话框外部,对话框关闭

1.6 删除功能测试

单条删除

  • 点击"删除"按钮,确认对话框显示
  • 确认对话框显示正确的purchaseId
  • 点击"确定",删除成功
  • 成功提示显示"删除成功"
  • 列表自动刷新,数据已删除
  • 数据库数据已删除

批量删除

  • 勾选多条记录,"删除"按钮可点击
  • 点击"删除",确认对话框显示
  • 确认对话框显示所有选中的purchaseId
  • 点击"确定",批量删除成功
  • 列表自动刷新,数据已删除
  • 数据库数据已删除

删除取消

  • 点击"取消",不删除数据
  • 对话框关闭
  • 数据保持不变

1.7 导出功能测试

全部导出

  • 点击"导出"按钮
  • 浏览器下载Excel文件
  • 文件名格式采购交易_时间戳.xlsx
  • 文件可以正常打开

条件导出

  • 设置查询条件后点击"导出"
  • 只导出符合条件的数据
  • 导出数据数量正确

Excel格式验证

  • 表头正确(使用@Excel注解定义的名称
  • 金额列格式为数字保留2位小数
  • 日期列格式为yyyy-MM-dd
  • 字典列显示字典标签而非值
  • 数据完整,无遗漏
  • 数据顺序与列表一致

大数据量导出

  • 导出1000条数据时间<5秒
  • 导出10000条数据时间<30秒
  • 导出过程不卡顿

1.8 导入功能测试

下载模板

  • 点击"导入"按钮,导入对话框打开
  • 点击"下载模板"链接
  • 浏览器下载模板文件
  • 文件名格式采购交易导入模板_时间戳.xlsx
  • 模板包含所有字段
  • 字典字段包含下拉框(使用@DictDropdown

填写模板

  • 使用下拉框选择字典值
  • 填写各种类型的测试数据
  • 日期格式正确
  • 金额格式正确
  • 文本长度符合要求

导入数据

  • 上传Excel文件
  • 文件格式验证(.xlsx或.xls
  • 显示上传进度
  • 提交导入任务
  • 提示"导入任务已提交"
  • 返回taskId

异步导入

  • 导入不阻塞界面
  • 显示"正在导入数据,请稍候..."提示
  • 提示不会自动关闭

导入状态轮询

  • 每2秒查询一次导入状态
  • 状态变化pending -> running -> completed
  • 导入完成后提示自动关闭
  • 显示导入结果对话框

导入结果显示

  • 显示"导入完成!"标题
  • 显示成功数量
  • 显示失败数量
  • 失败记录显示行号
  • 失败记录显示错误信息
  • 失败记录列表可滚动
  • 列表自动刷新

导入成功验证

  • 数据导入到数据库
  • 数据内容正确
  • 字典值正确
  • 日期格式正确
  • 金额数值正确

导入失败验证

  • 必填字段缺失,导入失败
  • 字段长度超限,导入失败
  • 数据格式错误,导入失败
  • purchaseId重复按updateSupport参数处理
  • 失败原因准确描述

更新已有数据

  • 勾选"是否更新"选项
  • purchaseId重复时更新数据
  • 不勾选时跳过重复数据

批量导入性能

  • 导入100条数据 < 2秒
  • 导入1000条数据 < 10秒
  • 导入5000条数据 < 60秒

2. 后端接口测试

2.1 查询接口测试

GET /ccdi/purchaseTransaction/list

  • 无参数调用返回第一页10条数据
  • 传入pageNum和pageSize分页正确
  • 传入projectName模糊查询正确
  • 传入subjectName模糊查询正确
  • 传入applicantName模糊查询正确
  • 传入日期范围,过滤正确
  • 组合多个条件,查询正确
  • 无数据时,返回空列表
  • 返回total数量正确
  • 响应时间 < 500ms

2.2 详情接口测试

GET /ccdi/purchaseTransaction/{purchaseId}

  • 传入存在的purchaseId返回正确数据
  • 所有字段都有值
  • 日期格式正确
  • 金额精度正确
  • 传入不存在的purchaseId返回null或提示
  • purchaseId为null或空返回错误
  • 响应时间 < 200ms

2.3 新增接口测试

POST /ccdi/purchaseTransaction

  • 传入完整数据,保存成功
  • 必填字段验证生效
  • 字段长度验证生效
  • 数据类型验证生效
  • purchaseId重复保存失败
  • 审计字段自动填充
  • 返回正确的响应码
  • 响应时间 < 200ms

2.4 修改接口测试

PUT /ccdi/purchaseTransaction

  • 传入完整数据,更新成功
  • purchaseId必填验证生效
  • purchaseId不存在更新失败
  • 只修改部分字段,其他字段不变
  • 更新时间自动更新
  • 更新人自动填充
  • 返回正确的响应码
  • 响应时间 < 200ms

2.5 删除接口测试

DELETE /ccdi/purchaseTransaction/{purchaseIds}

  • 删除单条数据,成功
  • 删除多条数据(逗号分隔),成功
  • 删除不存在的数据,不影响存在的数据
  • purchaseId为空返回错误
  • 数据库数据已删除
  • 返回正确的响应码
  • 响应时间 < 200ms

2.6 导出接口测试

POST /ccdi/purchaseTransaction/export

  • 无条件导出,导出所有数据
  • 有条件导出,导出符合条件的数据
  • 返回Excel文件流
  • Content-Type正确
  • 文件名正确
  • 响应时间 < 2000ms1000条

2.7 导入模板接口测试

POST /ccdi/purchaseTransaction/importTemplate

  • 返回Excel文件流
  • 文件包含所有字段
  • 字典字段包含下拉框
  • 下拉框选项正确
  • 表头格式正确

2.8 导入数据接口测试

POST /ccdi/purchaseTransaction/importData

  • 上传正确的Excel文件导入成功
  • 返回taskId
  • updateSupport=false重复数据跳过
  • updateSupport=true重复数据更新
  • 文件格式错误,返回错误
  • 数据验证失败,记录失败原因
  • 异步执行,不阻塞
  • 响应时间 < 500ms提交任务

2.9 导入状态接口测试

GET /ccdi/purchaseTransaction/importStatus/{taskId}

  • 返回任务状态
  • 状态包括pending/running/completed/failed
  • 返回total/successCount/failureCount
  • taskId不存在返回错误
  • 响应时间 < 100ms

2.10 导入失败记录接口测试

GET /ccdi/purchaseTransaction/importFailures/{taskId}

  • 返回失败记录列表
  • 每条记录包含purchaseId/rowNum/errorMessage
  • 错误信息准确描述失败原因
  • 无失败记录时返回空列表
  • 响应时间 < 200ms

3. 权限测试

3.1 菜单权限

  • 有权限的用户可以看到菜单
  • 无权限的用户看不到菜单
  • 分配权限后,刷新立即生效

3.2 按钮权限

  • 有list权限可以查询
  • 有query权限可以查看详情
  • 有add权限可以新增
  • 有edit权限可以编辑
  • 有remove权限可以删除
  • 有export权限可以导出
  • 有import权限可以导入
  • 无权限时,按钮不显示
  • 直接访问接口返回403

3.3 数据权限

  • 本部门数据权限
  • 本部门及以下数据权限
  • 仅本人数据权限
  • 自定义数据权限
  • 全部数据权限

代码审查清单

1. 后端代码审查

1.1 Controller层

  • 所有接口都有Swagger注解
  • 接口描述清晰准确
  • 参数说明完整
  • 权限注解正确(@PreAuthorize
  • 日志注解正确(@Log
  • 参数验证注解正确(@Validated
  • 异常处理正确
  • 响应格式统一AjaxResult
  • 代码格式规范
  • 注释清晰完整

1.2 Service层

  • 使用@Resource注解而非@Autowired
  • 方法命名规范select/insert/update/delete
  • 业务逻辑清晰
  • 事务处理正确
  • 异常处理正确
  • 代码复用性高
  • 方法单一职责

1.3 Mapper层

  • 继承BaseMapper
  • 使用MyBatis Plus注解
  • 复杂查询使用XML配置
  • SQL语句优化
  • 使用预编译语句

1.4 Entity层

  • 使用@Data注解
  • 不继承BaseEntity
  • 审计字段使用@TableField(fill = FieldFill.INSERT/INSERT_UPDATE)
  • 主键使用@TableId(type = IdType.INPUT)
  • 字段类型正确
  • 字段长度合理
  • 序列化支持

1.5 DTO/VO层

  • DTO用于接口参数
  • VO用于返回数据
  • 不与Entity混用
  • 验证注解完整
  • 字段说明完整

1.6 Excel导入导出

  • 使用@Excel注解定义导出
  • 使用@DictDropdown注解添加下拉框
  • 日期格式正确
  • 金额格式正确
  • 字典转换正确
  • 数据验证正确

1.7 异步导入

  • 使用@Async注解
  • 线程池配置合理
  • 任务ID生成唯一
  • 状态管理正确
  • 失败记录保存完整
  • 异常处理完善

2. 前端代码审查

2.1 API文件

  • 接口定义完整
  • 请求方法正确
  • 参数传递正确
  • 错误处理正确
  • Token自动添加

2.2 页面组件

  • 组件结构清晰
  • 数据流向清晰
  • 方法命名规范
  • 事件处理正确
  • 生命周期钩子使用正确

2.3 表单验证

  • 验证规则完整
  • 验证提示清晰
  • 必填项验证
  • 长度验证
  • 格式验证

2.4 权限控制

  • 使用v-hasPermi指令
  • 权限标识正确
  • 按钮显隐控制
  • 接口权限验证

2.5 用户体验

  • Loading提示
  • 成功提示
  • 错误提示
  • 确认对话框
  • 操作反馈及时

2.6 代码规范

  • 缩进一致
  • 命名规范
  • 注释清晰
  • 无重复代码
  • 组件复用

3. 数据库设计审查

3.1 表结构

  • 表名符合规范ccdi_开头
  • 主键设计合理
  • 字段类型正确
  • 字段长度合理
  • 默认值合理
  • 非空约束合理
  • 索引设计合理

3.2 审计字段

  • create_time自动填充
  • update_time自动更新
  • created_by自动填充
  • updated_by自动填充

3.3 数据字典

  • 字典类型定义
  • 字典数据完整
  • 字典排序正确

性能测试建议

1. 查询性能测试

1.1 分页查询

  • 1000条数据查询时间 < 200ms
  • 10000条数据查询时间 < 500ms
  • 100000条数据查询时间 < 1000ms
  • 复杂条件查询 < 500ms

1.2 详情查询

  • 单条详情查询 < 100ms
  • 并发查询100次平均响应 < 200ms

2. 写入性能测试

2.1 单条插入

  • 单条插入 < 100ms
  • 单条更新 < 100ms
  • 单条删除 < 100ms

2.2 批量插入

  • 批量插入100条 < 500ms
  • 批量插入1000条 < 2000ms
  • 批量插入5000条 < 10000ms

3. 导入导出性能测试

3.1 导出性能

  • 导出100条 < 1秒
  • 导出1000条 < 5秒
  • 导出10000条 < 30秒
  • 导出50000条 < 120秒

3.2 导入性能

  • 导入100条 < 2秒
  • 导入1000条 < 10秒
  • 导入5000条 < 60秒
  • 导入10000条 < 120秒

4. 并发性能测试

4.1 查询并发

  • 100个并发用户查询列表平均响应 < 500ms
  • 100个并发用户查询详情平均响应 < 200ms

4.2 写入并发

  • 10个并发用户同时新增成功率 > 95%
  • 10个并发用户同时修改成功率 > 95%
  • 无数据冲突

4.3 导入导出并发

  • 10个并发用户同时导出全部成功
  • 10个并发用户同时导入全部成功
  • 服务器稳定,无内存泄漏

5. 压力测试

5.1 持续压力

  • 持续运行1小时无内存泄漏
  • 持续运行1小时响应时间稳定
  • 持续运行1小时错误率 < 0.1%

5.2 峰值压力

  • 500个并发用户系统稳定
  • 1000个并发用户系统不崩溃
  • 峰值过后,性能恢复正常

部署前检查项

1. 代码检查

1.1 代码质量

  • 无编译错误
  • 无警告信息
  • 代码格式规范
  • 无调试代码
  • 无TODO未完成项

1.2 代码安全

  • 无SQL注入风险
  • 无XSS漏洞
  • 无CSRF漏洞
  • 敏感信息加密
  • 权限控制完善

1.3 代码优化

  • 无重复代码
  • 算法优化
  • 查询优化
  • 缓存使用

2. 配置检查

2.1 数据库配置

  • 连接池配置合理
  • 字符集配置正确UTF-8
  • 时区配置正确
  • 索引创建完成

2.2 应用配置

  • 端口配置正确
  • 上下文路径正确
  • 文件上传配置
  • 文件大小限制

2.3 日志配置

  • 日志级别正确
  • 日志文件路径
  • 日志滚动策略
  • 敏感信息过滤

3. 数据检查

3.1 数据字典

  • 字典类型创建
  • 字典数据导入
  • 字典排序正确

3.2 菜单权限

  • 菜单SQL执行
  • 菜单显示正确
  • 权限分配正确
  • 角色关联正确

3.3 测试数据

  • 准备测试数据
  • 数据多样性
  • 边界情况数据

4. 文档检查

4.1 API文档

  • Swagger注解完整
  • 接口文档生成
  • 参数说明完整
  • 响应示例完整

4.2 用户文档

  • 功能说明文档
  • 操作手册
  • 常见问题
  • 测试说明

4.3 开发文档

  • 设计文档
  • 数据库设计
  • 接口文档
  • 部署文档

5. 测试检查

5.1 功能测试

  • 所有功能测试通过
  • 测试用例覆盖率 > 80%
  • Bug全部修复

5.2 性能测试

  • 性能指标达标
  • 无性能瓶颈
  • 压力测试通过

5.3 安全测试

  • 权限测试通过
  • 注入测试通过
  • 越权测试通过

6. 部署检查

6.1 环境准备

  • JDK版本正确
  • 数据库版本正确
  • 依赖安装完整
  • 端口未被占用

6.2 配置文件

  • application.yml配置正确
  • 数据库连接配置
  • Redis配置如使用
  • 日志配置

6.3 部署步骤

  • 编译打包成功
  • 文件上传完整
  • 数据库脚本执行
  • 服务启动成功
  • 健康检查通过

验收标准

1. 功能完整性

  • 所有需求功能已实现
  • 所有接口测试通过
  • 所有前端功能测试通过
  • 无P0级Bug
  • P1级Bug < 3个

2. 数据正确性

  • 数据保存完整
  • 数据查询准确
  • 数据更新成功
  • 数据删除正确
  • 数据导入导出正确

3. 性能要求

  • 分页查询 < 500ms
  • 单条CRUD < 200ms
  • 导入1000条 < 10秒
  • 导出1000条 < 5秒
  • 并发100用户响应 < 500ms

4. 用户体验

  • 界面美观大方
  • 操作简单直观
  • 响应及时流畅
  • 提示清晰准确
  • 错误处理友好

5. 安全性

  • 权限控制严格
  • 数据传输加密
  • 敏感信息保护
  • 日志记录完整
  • 异常处理完善

6. 稳定性

  • 系统运行稳定
  • 无内存泄漏
  • 无死锁
  • 异常恢复正常
  • 长期运行稳定

7. 可维护性

  • 代码规范统一
  • 注释清晰完整
  • 结构清晰合理
  • 文档完整详细
  • 易于扩展

8. 兼容性

  • 浏览器兼容Chrome、Firefox、Edge
  • 分辨率兼容1920x1080、1366x768
  • 数据库兼容MySQL 8.0+
  • JDK兼容JDK 17+

验收流程

1. 开发团队自测

  • 功能测试完成
  • 性能测试完成
  • Bug修复完成
  • 代码审查完成

2. 测试团队测试

  • 功能测试通过
  • 性能测试通过
  • 安全测试通过
  • 兼容性测试通过

3. 业务团队验收

  • 功能验收通过
  • 用户体验验收通过
  • 数据准确性验收通过

4. 上线准备

  • 部署文档完成
  • 操作手册完成
  • 培训材料完成
  • 应急预案完成

验收签字

角色 姓名 签字 日期
开发负责人
测试负责人
业务负责人
项目经理

附录

A. Bug分级标准

P0级致命:

  • 系统崩溃
  • 数据丢失
  • 安全漏洞

P1级严重:

  • 主要功能无法使用
  • 数据错误
  • 性能严重下降

P2级一般:

  • 次要功能异常
  • 用户体验差
  • 界面问题

P3级轻微:

  • 文字错误
  • 样式问题
  • 建议性改进

B. 测试环境

开发环境:

测试环境:

预生产环境:

C. 联系方式

角色 姓名 邮箱 电话
开发负责人
测试负责人
业务负责人
运维负责人

文档版本: v1.0.0 最后更新: 2026-02-06 更新人员: ruoyi