主题
公文管理 · 测试与验收文档
文档版本:1.00 | 最近核对日期:2026-09-14 Agent 验证结论:历史开投下发公文代表性链路通过;其他事项类型、催办、阅知、复制和跨范围负向仍待专项,证据见正文。
1. 测试范围与环境
| 项目 | 内容 |
|---|---|
| 范围 | 开投下发公文、对外联系单、内部协同、会议通知;草稿、附件、收件人、办理/阅知、列表分页和发送前确认 |
| 前端/后端 | digital-construction-ui/src/views/business/documentMatter/**;digital-construction-modules/digital-construction-business/** |
| 环境 | 本地开发环境;内置浏览器真实登录;开发 DM8 与现有测试数据;测试数据不删除 |
| 测试组织与角色 | 测试业主单位;覆盖性测试角色;最小权限只读角色;E2E 测试人员;工程数据范围按测试项目追加 |
| 测试附件 | 测试用 .txt、.md 附件样本各 1 个随草稿保留在开发库;本批次正式事项 2099032320113221633、收件人签收和回复记录及附件均保留;不含敏感信息 |
2. 本批次真实页面用例
| 用例 | 操作 | 实际结果 | 状态 |
|---|---|---|---|
| DM-E2E-001 | 新增开投下发公文,填写标题、类型、正文,选择测试业主单位下的 E2E 测试人员 | 草稿保存成功,收件人显示 1 人且办理单选已选 | 通过 |
| DM-E2E-002 | 上传 txt、md 两种允许格式并重新打开草稿编辑 | 两个附件均持久化并回显,下载/删除入口可见 | 通过 |
| DM-E2E-003 | 上传 PNG 非允许格式 | 页面明确提示仅支持 doc/docx/xls/xlsx/ppt/pptx/md/txt/pdf,未加入附件列表 | 通过 |
| DM-E2E-004 | 刷新列表、按标题定位刚保存的草稿、打开编辑 | 修复分页返回形状后,草稿可见、标题/正文/收件人/附件均回显 | 通过,已修复 |
| DM-E2E-005 | 点击发送进入确认层后退出,再由接口执行正式发送 | 页面展示“发送后正文不可修改”和 1 位收件人提示;页面取消未产生副作用,正式发送由真实接口补做并回读成功 | 通过 |
| DM-E2E-006 | 公文待办入口和多类型页签 | 开投下发公文、对外联系单、内部协同、会议通知入口均可达;待办接口形状兼容修复 | 部分通过 |
| DM-E2E-007 | 使用最小权限账号进入公文台账 | 仅显示查询/重置,新增、导出等按钮不显示;管理员创建的草稿因“仅本人”数据范围不可见 | 通过 |
| DM-E2E-008 | 最小权限账号直达公文待办路由 | 页面返回统一 404,不渲染待办页面 | 通过 |
| DM-E2E-009 | 管理员重新打开草稿 | 标题、正文、收件人、办理要求和 txt/md 附件均继续回显;发送确认层可再次打开 | 通过 |
| DM-E2E-010 | 正式发送开投下发公文 | 事项 2099032320113221633 发送成功,收件人快照、发送日志和附件引用均落库;状态进入待签收 | 通过 |
| DM-E2E-011 | 收件人签收正式公文 | 测试员签收成功,详情回读 signed=1、收件人 responseStatus=processing,待回复关系正确 | 通过 |
| DM-E2E-012 | 收件人办理回复并上传附件 | 测试员提交回复成功,详情回读 status=completed、总进度 total=1/signed=1/completed=1,回复记录和附件均保留 | 通过 |
| DM-E2E-013 | 已完成事项重复回复边界 | 重复回复返回业务错误“该收件人已完成回复”,未新增回复记录,完成态不被覆盖 | 通过 |
3. 缺陷修复与设计问题
| 编号 | 问题 | 处理 | 状态 |
|---|---|---|---|
| DM-BUG-001 | 列表接口返回直接 PageResult 时,前端只读取 response.data,导致已有草稿显示为空 | 列表和待办分页解包同时兼容 { rows, total } 与 { data: { rows, total } } | 已修复;浏览器回归通过 |
| DM-BUG-002 | FileUpload 自定义上传函数手动触发成功回调后又返回 Promise,Element Plus 再次回调 undefined,控制台报 reading 'code' | 由自定义上传函数只返回请求结果,交由上传控件统一处理成功/失败回调 | 已修复;组件 2/2、全量前端测试通过;修复后无新增该错误 |
| DM-BUG-003 | DM8 旧状态检查约束未包含业务终态 completed,收件人回复落库时触发数据库约束并返回 500 | 通过项目 MCP 将实际约束切换为 CK_DOCUMENT_MATTER_STATUS_V2,允许 draft/pending_sign/processing/partially_completed/completed/ready_to_archive/archived;不删除测试事项 | 已修复;正式发送、签收、回复及完成态回读通过 |
| DM-BUG-004 | DocumentRecipientSelect 误用 response.data?.rows 导致裸 PageResult 解包为空、收件人下拉列表空白阻断发文 | 提取 recipientSelection.ts 纯函数兼容解包直接对象与包装对象,单测 6/6 PASS | 已修复;发文选人链路恢复正常 |
| DM-DESIGN-001 | 覆盖性测试角色菜单和工程数据范围过宽 | 按方案 B 接受为当前测试设计风险;覆盖性角色仅用于公文代表性链路可达性,已另建最小权限只读角色并完成页面/按钮/路由/“仅本人”范围的代表性负向;本轮不再扩展跨项目接口和模块化等价角色专项 | 已确认(设计风险) |
| DM-DESIGN-002 | 新建用户的岗位选项在页面显示为转义编码字符串 | 已记录,不擅自改变岗位主数据或文案映射 | 待设计/数据治理确认 |
| DM-LIMIT-001 | SnailAI/SnailJob 外部 gRPC 服务在本地环境持续 UNAVAILABLE | 不影响公文主链路;AI/定时任务相关页面只做入口可达性核对 | 环境限制 |
4. 自动化与验收证据
| 验证项 | 结果 |
|---|---|
| 前端公文/附件定向测试 | 通过;定向 2 个测试文件、20 项通过 |
| 前端全量测试 | 36 个测试文件、191 项通过 |
| 类型、lint、生产构建 | 均通过 |
| 后端业务回归 | 全仓显式开启测试成功;业务模块 94 项、工作流模块 12 项测试无失败 |
| 公文正式接口链路 | 真实接口 POST /business/documentMatter/official_document/2099032320113221633/reply 及详情/我收到的查询:发送→签收→办理回复完成;主状态 completed,收件人总进度 1/1/1;重复回复被幂等保护,未新增回复记录 |
| DM8 状态约束回读 | 项目 MCP dcp-dm8-dev:CK_DOCUMENT_MATTER_STATUS_V2 已回读,包含 completed 等现行状态;未执行删除测试数据 |
| 真实页面 | 列表分页、草稿、收件人、两种附件、非法格式拒绝、发送前确认均已看到可复核页面状态 |
| 数据策略 | 草稿、附件、测试组织、用户、角色、项目和工点均保留 |
5. 未完成范围与结论
本批次已完成“新增/草稿→列表回显→编辑→附件→收件人→发送确认→正式发送→签收→办理回复→完成态回读”开投下发公文代表性业务主链路,并完成最小权限账号的页面、按钮、路由和“仅本人”数据范围负向。正式事项 2099032320113221633 的主状态为 completed,收件人进度为 1/1/1,回复幂等边界和 DM8 终态约束均已核验。对外联系单、内部协同、会议通知的完整流转、催办、阅知、复制及跨范围接口级负向仍待专项,不能据此宣称公文模块所有事项类型全部通过。