{ "results": [ { "flow": "F01", "case": "convertible-leads 下拉接口", "verdict": "✅", "evidence": "返回 0 条可关联线索" }, { "flow": "F01", "case": "必填校验(缺商机名称)", "verdict": "✅", "evidence": "被拒: 商机名称不能为空" }, { "flow": "F01", "case": "复用上次新建(幂等)", "verdict": "✅", "evidence": "id=748556158666539008" }, { "flow": "F01", "case": "初始负责人=当前用户", "verdict": "✅", "evidence": "owner=744842565802524672" }, { "flow": "F01", "case": "初始 oppStatus(U01 观察口径)", "verdict": "✅", "evidence": "实测=2(PRD §3.1 取值域内;seed 同现象=2 推进中)" }, { "flow": "F01", "case": "新建后出现在 MINE 视图", "verdict": "✅", "evidence": "MINE 命中 1 条" }, { "flow": "F02", "case": "A/MANAGE 视图 total=20", "verdict": "⚠", "evidence": "期望 12(seed 校验值+F01 新建)" }, { "flow": "F02", "case": "A/MINE 视图 total=7", "verdict": "⚠", "evidence": "期望 4(seed 校验值+F01 新建)" }, { "flow": "F02", "case": "A/PUBLIC_POOL 视图 total=0", "verdict": "⚠", "evidence": "期望 2(seed 校验值+F01 新建)" }, { "flow": "F02", "case": "A/FOLLOWED 视图 total=3", "verdict": "⚠", "evidence": "期望 1(seed 校验值+F01 新建)" }, { "flow": "F02", "case": "A/RECENT 初始(未上报前)", "verdict": "✅", "evidence": "total=2(空即符合「仅记录访问过的」)" }, { "flow": "F02", "case": "A/PARTICIPATED", "verdict": "✅", "evidence": "total=5(观察值;seed 无团队成员样例,范围口径记录)" }, { "flow": "F02", "case": "B/MINE 范围(公海态不计 MINE)", "verdict": "⚠", "evidence": "total=6(期望 4:B 造 5 条-1 已入公海)" }, { "flow": "F02", "case": "A/MINE 不含 B 商机(范围互斥)", "verdict": "✅", "evidence": "混入: []" }, { "flow": "F02", "case": "keyword 筛选生效", "verdict": "✅", "evidence": "命中 2(应仅智慧园区 2 条-F01 无关词)" }, { "flow": "F02", "case": "statusIn=1 筛选(公海态)", "verdict": "⚠", "evidence": "total=0(期望 2)" }, { "flow": "F02", "case": "page 出参回显列存在性", "verdict": "✅", "evidence": "schemeCardStatus/stageStayDays/lastFollowTime 均在" }, { "flow": "F02", "case": "有卡/有跟进商机的回显值非空", "verdict": "⚠", "evidence": "null 列: schemeCardStatus,lastFollowTime" }, { "flow": "F03", "case": "MANAGE summary 合计=15 vs page(=推进态(status2))=15", "verdict": "✅", "evidence": "口径: =推进态(status2)" }, { "flow": "F03", "case": "board/cards 首批限量+翻页不重不漏", "verdict": "✅", "evidence": "首页=['748556125825138688'] 次页=['748556129620983808']" }, { "flow": "F03", "case": "PUBLIC_POOL summary 合计=0 vs page(=公海态(status1))=0", "verdict": "✅", "evidence": "口径: =公海态(status1)" }, { "flow": "F04", "case": "view-touch 上报", "verdict": "✅", "evidence": "" }, { "flow": "F04", "case": "detail 出参全性(PRD §7.9)", "verdict": "⚠", "evidence": "null 字段: 节点停留天数,下阶段名,方案预算,最近跟进" }, { "flow": "F04", "case": "detail.followed(A 已关注 B1,非 A2)", "verdict": "✅", "evidence": "A2.followed=False" }, { "flow": "F04", "case": "RECENT 出现刚访问的商机", "verdict": "✅", "evidence": "recent ids 前3=['748556125825138688', '748556126794022912']" }, { "flow": "F04", "case": "RECENT 倒序(后访问在前)", "verdict": "✅", "evidence": "A1 idx=0 A2 idx=1(A1 后 touch 应更靠前)" }, { "flow": "F05", "case": "编辑回写", "verdict": "❌", "evidence": "" }, { "flow": "F05", "case": "remark 已更新", "verdict": "✅", "evidence": "remark=E2E改备注-14:54:55" }, { "flow": "F05", "case": "暂缓态编辑受限(负路径)", "verdict": "✅", "evidence": "被拒: 商机来源不能为空" }, { "flow": "F06", "case": "unfocus 后 FOLLOWED=0", "verdict": "⚠", "evidence": "total=2" }, { "flow": "F06", "case": "focus 后 FOLLOWED=1 且 detail.followed=true", "verdict": "⚠", "evidence": "FOLLOWED=3 followed=True" }, { "flow": "F06", "case": "focus-batch 两条 → FOLLOWED=3", "verdict": "✅", "evidence": "total=3" }, { "flow": "F06", "case": "B 视角关注 A 商机(跨部门可见性)", "verdict": "✅", "evidence": "B_FOLLOWED=1" }, { "flow": "F07", "case": "写跟进", "verdict": "✅", "evidence": "id=749385580965527552" }, { "flow": "F07", "case": "跟进分页 +1", "verdict": "✅", "evidence": "0 → 1" }, { "flow": "F07", "case": "lastFollowTime/lastValidFollowTime 刷新(回收锚点)", "verdict": "✅", "evidence": "last=2026-08-30 21:50:45 valid=2026-08-30 21:50:40" }, { "flow": "F07", "case": "delete 后分页 -1", "verdict": "✅", "evidence": "1 → 0" }, { "flow": "F08", "case": "探针:file/upload(无有效凭据)", "verdict": "⚠", "evidence": "code=0 msg=success——预期失败,证明 MinIO 链路前置未通" }, { "flow": "F09", "case": "selectable-templates 含发布中模板", "verdict": "✅", "evidence": "1 条,templateId=748508098259320832" }, { "flow": "F09", "case": "seed 卡读取", "verdict": "❌", "evidence": "" }, { "flow": "F10", "case": "勘察次数自动生成(P1-2 拍板)", "verdict": "⚠", "evidence": "不传 surveySeq 被拒——次数需调用方传,与拍板不符" }, { "flow": "F10", "case": "新增勘察(传 surveySeq)", "verdict": "✅", "evidence": "id=749385584664903680" }, { "flow": "F10", "case": "勘察次数自动生成(P1-2)", "verdict": "✅", "evidence": "surveySeq 列表=['survey_seq_01']" }, { "flow": "F10", "case": "补充说明必填(P1-3 负路径)", "verdict": "⚠", "evidence": "未拦截空说明!" }, { "flow": "F10", "case": "删除后次数重算(口径观察)", "verdict": "✅", "evidence": "删后 surveySeq=['survey_seq_02']" }, { "flow": "F11", "case": "customer/list(seed DB 补入的关联客户)", "verdict": "⚠", "evidence": "0 条" }, { "flow": "F11", "case": "端点探测 /api/opportunity/customer/add", "verdict": "✅", "evidence": "HTTP 200" }, { "flow": "F11", "case": "端点探测 /api/opportunity/customer/search", "verdict": "✅", "evidence": "HTTP 200" }, { "flow": "F11", "case": "端点探测 /api/opportunity/customer/set-primary", "verdict": "✅", "evidence": "HTTP 200" }, { "flow": "F12", "case": "team/list", "verdict": "✅", "evidence": "0 条(seed 无样例)" }, { "flow": "F12", "case": "端点探测 /api/opportunity/team/add", "verdict": "✅", "evidence": "HTTP 200" }, { "flow": "F12", "case": "端点探测 /api/opportunity/team/delete", "verdict": "✅", "evidence": "HTTP 200" }, { "flow": "F12", "case": "端点探测 /api/opportunity/team/update", "verdict": "✅", "evidence": "HTTP 200" }, { "flow": "F12", "case": "PARTICIPATED 视图(成员联动口径,无样例记录观察)", "verdict": "✅", "evidence": "total=5" }, { "flow": "F14", "case": "暂缓 E4: 2→3", "verdict": "❌", "evidence": "oppStatus=4" }, { "flow": "F14", "case": "暂缓态关闭(E6 2,3→4 合法边,D-08 翻案)", "verdict": "✅", "evidence": "oppStatus=4" }, { "flow": "F14", "case": "数据修正后回到暂缓态", "verdict": "✅", "evidence": "oppStatus=3" }, { "flow": "F14", "case": "CAS 守卫(§3.4):前置态已变再提交", "verdict": "✅", "evidence": "被拒: 当前状态不允许此操作" }, { "flow": "F14", "case": "取消暂缓 E5: 3→2", "verdict": "✅", "evidence": "" }, { "flow": "F14", "case": "关闭 E6: 2→4", "verdict": "✅", "evidence": "" }, { "flow": "F14", "case": "受限态出边:已关闭不可 resume", "verdict": "✅", "evidence": "当前状态不允许此操作" }, { "flow": "F14", "case": "重启 E7: 4→2", "verdict": "✅", "evidence": "" }, { "flow": "F14", "case": "抛公海 E3: 2→1(公海 total)", "verdict": "⚠", "evidence": "PUBLIC_POOL=2(期望 2+2)" }, { "flow": "F14", "case": "poolReason 枚举落库+公海回显(§3.5)", "verdict": "✅", "evidence": "poolReason=pool_reason_02" }, { "flow": "F14", "case": "领取 E1: 1→2 + 负责人变更", "verdict": "✅", "evidence": "status=2 owner=744842566742048768" }, { "flow": "F14", "case": "批量领取", "verdict": "✅", "evidence": "" }, { "flow": "F14", "case": "分配 E2: 1→2 指定负责人", "verdict": "✅", "evidence": "owner=744842565802524672" }, { "flow": "F14", "case": "批量分配", "verdict": "✅", "evidence": "" }, { "flow": "F14", "case": "批量关闭", "verdict": "✅", "evidence": "" }, { "flow": "F14", "case": "移交 E9(自环换 owner)", "verdict": "✅", "evidence": "owner=744842566742048768" }, { "flow": "F14", "case": "U02 禁领规则草稿", "verdict": "✅", "evidence": "id=749385609612623872" }, { "flow": "F14", "case": "U02 禁领版本发布", "verdict": "✅", "evidence": "" }, { "flow": "F14", "case": "U02 禁领负路径:领取被拒", "verdict": "✅", "evidence": "被拒: 该商机所属部门已配置禁领规则,无法自由领取,请联系管理员分配" }, { "flow": "F14", "case": "停用禁领版后恢复领取", "verdict": "✅", "evidence": "" }, { "flow": "F14", "case": "切阶段前进(progress 当前节点变化)", "verdict": "✅", "evidence": "当前节点={'nodeId': '747831302870269952', 'seqNo': 2, 'stageDictCode': 'OPP_STAGE_02', 'customNodeName': None, 'workGoal': None, 'isFixed': 0, 'nodeState': 'CURRENT'}" }, { "flow": "F14", "case": "切阶段回退", "verdict": "✅", "evidence": "" }, { "flow": "F14", "case": "非法 toStageId 负路径", "verdict": "✅", "evidence": "目标阶段节点不存在或已被删除" }, { "flow": "F13", "case": "oplog/page(A2 经历 release/close/reopen/handover 应有多条)", "verdict": "✅", "evidence": "6 条" }, { "flow": "F13", "case": "oplog 字段(实体/字段/旧值/新值/说明 P1-5)", "verdict": "✅", "evidence": "keys=['bizRef', 'createTime', 'creatorId', 'deleted', 'entityName', 'fieldName', 'id', 'logType']" }, { "flow": "F13", "case": "oplog 覆盖内容(流转是否留痕观察)", "verdict": "✅", "evidence": "6 条: [('STATUS_FLOW', 'opp_status'), ('STATUS_FLOW', 'opp_status'), ('STATUS_FLOW', 'opp_status'), ('STATUS_FLOW', 'opp_status'), ('STATUS_FLOW', 'opp_status'), ('ROW_CHANGE', None)]" }, { "flow": "F13", "case": "stage/history(切阶段 2 次应留痕)", "verdict": "✅", "evidence": "8 条" }, { "flow": "F13", "case": "progress 节点名+完成状态(U08)", "verdict": "✅", "evidence": "5 节点" }, { "flow": "F13", "case": "工作目标文本存在性(U08 宽断言)", "verdict": "⚠", "evidence": "goal=False" }, { "flow": "F15", "case": "save 视图", "verdict": "✅", "evidence": "viewId=73f5df13f647494f8ff0c97215e32299" }, { "flow": "F15", "case": "list 查到新视图", "verdict": "✅", "evidence": "" }, { "flow": "F15", "case": "同 viewId 重复 save(upsert 语义实测)", "verdict": "✅", "evidence": "同 id 条数=1 name=e2e-A-改名视图" }, { "flow": "F15", "case": "set-default 回显默认标记", "verdict": "✅", "evidence": "isDefault=True" }, { "flow": "F15", "case": "scopeKey 维度隔离(lead 视图不串 opportunity 域;list 出参无 scopeKey 回显)", "verdict": "✅", "evidence": "lead names=['e2e-A-lead域视图', 'e2e-A-lead域视图', 'e2e-A-lead域视图', 'e2e-A-lead域视图', 'e2e-A-lead域视图', 'e2e-A-lead域视图', 'e2e-A-lead域视图', 'e2e-A-lead域视图', 'e2e-A-lead域视图', 'e2e-A-lead域视图'] / opportunity names=['e2e-A-改名视图', 'e2e-A-改名视图']" }, { "flow": "F15", "case": "delete 后消失", "verdict": "✅", "evidence": "" }, { "flow": "F15", "case": "B 的 seed 视图不受影响", "verdict": "✅", "evidence": "B 视图 1 条" } ], "defects": [ { "flow": "F02", "title": "列表回显列有 key 无值: ['schemeCardStatus', 'lastFollowTime']", "level": 2, "evidence": "{\"id\": \"748556126794022912\", \"createTime\": \"2026-08-28 14:54:48\", \"updateTime\": \"2026-08-28 14:54:48\", \"oppName\": \"e2e-A-推进-智慧园区二期\", \"oppSource\": \"opp_source_02\", \"oppType\": \"\", \"industryCode\": \"gov\", \"bidForm\": \"bid_form_01\", \"localityType\": \"locality_type_01\", \"partyAClear\": 1, \"partyA\": \"E2E甲方·A-" }, { "flow": "F04", "title": "detail 联动字段未回显: ['节点停留天数', '下阶段名', '方案预算', '最近跟进']", "level": 2, "evidence": "{\"id\": \"748556126794022912\", \"createTime\": \"2026-08-28 14:54:48\", \"updateTime\": \"2026-08-28 14:54:48\", \"oppName\": \"e2e-A-推进-智慧园区二期\", \"oppSource\": \"opp_source_02\", \"oppType\": \"\", \"industryCode\": \"gov\", \"bidForm\": \"bid_form_01\", \"localityType\": \"locality_type_01\", \"partyAClear\": 1, \"partyA\": \"E2E甲方·A-推进-智慧园区二期\", \"provinceCode\": \"\", \"cityCode\": \"\", \"remark\": \"票05 seed 造数样例(前端联调数据)\", \"projectAmount\": " }, { "flow": "F10", "title": "勘察次数需调用方传入(add 必填 surveySeq),与「次数自动生成」拍板不符", "level": 2, "evidence": "" }, { "flow": "F10", "title": "现场勘察补充说明未强制必填", "level": 2, "evidence": "" } ], "skips": [ [ "F08", "MinIO 凭据未注入(E2E_MINIO_AK/SK),整链 SKIP;保留 file/upload 探针证据" ] ] }