You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

543 lines
13 KiB

{
"results": [
{
"case": "envelope keys = code/success/message/data",
"got": [
"code",
"data",
"message",
"success"
],
"expect": "['code', 'data', 'message', 'success']",
"ok": false,
"note": ""
},
{
"case": "board.conflictPendingCount 类型",
"got": "str",
"expect": "['int', 'str']",
"ok": true,
"note": "原型为数字;若str则前端依赖宽松"
},
{
"case": "create 校验:「缺项目名称」被拒",
"got": [
68001,
false
],
"expect": "('not0', False)",
"ok": false,
"note": "code=68001 msg=项目名称必填"
},
{
"case": "create 校验:「缺客户」被拒",
"got": [
68001,
false
],
"expect": "('not0', False)",
"ok": false,
"note": "code=68001 msg=关联客户必填(请从客户目录选择,不支持现场新建)"
},
{
"case": "create 校验:「缺方案卡」被拒",
"got": [
68001,
false
],
"expect": "('not0', False)",
"ok": false,
"note": "code=68001 msg=关联方案卡必填(请选择该客户的方案卡)"
},
{
"case": "create 校验:「卡客户不匹配」被拒",
"got": [
68001,
false
],
"expect": "('not0', False)",
"ok": false,
"note": "code=68001 msg=客户不可用:客户不存在: 99999001"
},
{
"case": "create 校验:「客户不存在」被拒",
"got": [
68001,
false
],
"expect": "('not0', False)",
"ok": false,
"note": "code=68001 msg=客户不可用:客户不存在: 88888888"
},
{
"case": "create 校验:「方案卡不存在」被拒",
"got": [
68007,
false
],
"expect": "('not0', False)",
"ok": false,
"note": "code=68007 msg=方案卡不存在或已被删除"
},
{
"case": "create 合法入参成功",
"got": 0,
"expect": "0",
"ok": true,
"note": "{'code': 0, 'success': True, 'message': 'success', 'data': '753422260487847936'}"
},
{
"case": "create 同方案卡重复绑定(一客户一卡铁律)",
"got": 0,
"expect": "['not0_or_0待复核']",
"ok": false,
"note": "code=0 msg=success"
},
{
"case": "建项目落库 stage=0",
"got": 0,
"expect": "0",
"ok": true,
"note": ""
},
{
"case": "建项目落库 status=1 进行中",
"got": 1,
"expect": "1",
"ok": true,
"note": ""
},
{
"case": "建项目落库 filingStatus=1 审核中",
"got": 1,
"expect": "1",
"ok": true,
"note": ""
},
{
"case": "建项目落库 bidResult 未定",
"got": 0,
"expect": "[0, None]",
"ok": true,
"note": ""
},
{
"case": "detail 含 ownerNameSnapshot",
"got": true,
"expect": "True",
"ok": true,
"note": "A5总监"
},
{
"case": "detail 含 customerName",
"got": true,
"expect": "True",
"ok": true,
"note": "A5DEMO-甲客户"
},
{
"case": "未登录读 detail → 401 信封",
"got": [
40103,
false
],
"expect": "('not0', False)",
"ok": false,
"note": ""
},
{
"case": "@PathVariable 形态 /project/detail/{id} 不存在",
"got": 40401,
"expect": "['not0', 404, 'not_found_404']",
"ok": false,
"note": "{'code': 40401, 'success': False, 'message': '接口不存在:api/project/detail/753422260487847936', 'data': None}"
},
{
"case": "PUT 方法被拒(只 POST 写)",
"got": 40501,
"expect": "[405, 'not0']",
"ok": false,
"note": "{'code': 40501, 'success': False, 'message': '错误的请求方式', 'data': None}"
},
{
"case": "DELETE 方法被拒",
"got": 40501,
"expect": "[405, 'not0']",
"ok": false,
"note": "{'code': 40501, 'success': False, 'message': '错误的请求方式', 'data': None}"
},
{
"case": "list 分页结构含 content/total",
"got": true,
"expect": "True",
"ok": true,
"note": "['content', 'current', 'empty', 'pages', 'size', 'total']"
},
{
"case": "list size=2 生效",
"got": 2,
"expect": "2",
"ok": true,
"note": ""
},
{
"case": "list 阶段筛 stage=0 只回该阶段",
"got": 0,
"expect": "0",
"ok": true,
"note": "rows=2"
},
{
"case": "list 阶段筛 stage=1 只回该阶段",
"got": 0,
"expect": "0",
"ok": true,
"note": "rows=0"
},
{
"case": "list 阶段筛 stage=2 只回该阶段",
"got": 0,
"expect": "0",
"ok": true,
"note": "rows=0"
},
{
"case": "list 阶段筛 stage=3 只回该阶段",
"got": 0,
"expect": "0",
"ok": true,
"note": "rows=0"
},
{
"case": "list 阶段筛 stage=4 只回该阶段",
"got": 0,
"expect": "0",
"ok": true,
"note": "rows=0"
},
{
"case": "list 阶段筛 stage=5 只回该阶段",
"got": 0,
"expect": "0",
"ok": true,
"note": "rows=0"
},
{
"case": "list 阶段筛 stage=6 只回该阶段",
"got": 0,
"expect": "0",
"ok": true,
"note": "rows=0"
},
{
"case": "list 非法阶段 stage=7",
"got": 68001,
"expect": "['not0', 0]",
"ok": false,
"note": "code=68001 msg=项目阶段筛选非法(就 7 个值 0~6;报备状态请用独立筛选项 filingStatus)"
},
{
"case": "list keyword 筛命中自建项目",
"got": true,
"expect": "True",
"ok": true,
"note": "rows=2"
},
{
"case": "list 报备独立筛 filing=1",
"got": 0,
"expect": "0",
"ok": true,
"note": "rows=2"
},
{
"case": "普通销售 mine 空或只含本人",
"got": true,
"expect": "True",
"ok": true,
"note": "rows=0"
},
{
"case": "报备驳回成功",
"got": 0,
"expect": "0",
"ok": true,
"note": "{'code': 0, 'success': True, 'message': 'success', 'data': {'id': '753422260487847936', 'createTime': '2026-09-11 01:11:04', 'updateTime': '2026-09-11"
},
{
"case": "驳回后 filing=3 且 stage 仍 0",
"got": [
3,
0
],
"expect": "(3, 0)",
"ok": false,
"note": ""
},
{
"case": "驳回后可再审通过",
"got": 0,
"expect": "0",
"ok": true,
"note": "{'code': 0, 'success': True, 'message': 'success', 'data': {'id': '753422260487847936', 'createTime': '2026-09-11 01:11:04', 'updateTime': '2026-09-11"
},
{
"case": "通过后 filing=2 + stage=1 双写",
"got": [
2,
1
],
"expect": "(2, 1)",
"ok": false,
"note": ""
},
{
"case": "rollback-targets 非法 id 报错",
"got": 68002,
"expect": "not0",
"ok": false,
"note": "{'code': 68002, 'success': False, 'message': '项目不存在或已被删除', 'data': None}"
},
{
"case": "推进 1→2",
"got": 0,
"expect": "0",
"ok": true,
"note": "{'code': 0, 'success': True, 'message': 'success', 'data': {'id': '753422260487847936', 'createTime': '2026-09-11 01:11:04', 'updateTime': '2026-09-11"
},
{
"case": "推进 2→3",
"got": 0,
"expect": "0",
"ok": true,
"note": "{'code': 0, 'success': True, 'message': 'success', 'data': {'id': '753422260487847936', 'createTime': '2026-09-11 01:11:04', 'updateTime': '2026-09-11"
},
{
"case": "推进至 stage3",
"got": 3,
"expect": "3",
"ok": true,
"note": ""
},
{
"case": "3→5 连跳(无需招投标)",
"got": 0,
"expect": "0",
"ok": true,
"note": "{'code': 0, 'success': True, 'message': 'success', 'data': {'id': '753422260487847936', 'createTime': '2026-09-11 01:11:04', 'updateTime': '2026-09-11"
},
{
"case": "连跳后 stage=5",
"got": 5,
"expect": "5",
"ok": true,
"note": ""
},
{
"case": "连跳后可选节点={1,2,3} 无4",
"got": [
1,
2,
3
],
"expect": "[1, 2, 3]",
"ok": false,
"note": "[1, 2, 3]"
},
{
"case": "多步回退 5→2(总监)",
"got": 0,
"expect": "0",
"ok": true,
"note": "{'code': 0, 'success': True, 'message': 'success', 'data': {'id': '753422260487847936', 'createTime': '2026-09-11 01:11:04', 'updateTime': '2026-09-11"
},
{
"case": "回退后 stage=2",
"got": 2,
"expect": "2",
"ok": true,
"note": ""
},
{
"case": "回退下限 stage1(target 0 被拒)",
"got": 68006,
"expect": "not0",
"ok": false,
"note": "code=68006 msg=回退目标须为前面已经过的节点且不低于方案设计(stage1),不可回退到当前或未来节点"
},
{
"case": "普通销售回退被拒 68005",
"got": 68005,
"expect": "68005",
"ok": true,
"note": "阶段回退仅管理员与销售总监可操作"
},
{
"case": "bidResult 非法值被拒",
"got": 68009,
"expect": "not0",
"ok": false,
"note": "code=68009 msg=bidResult 仅可为 1(赢单)或 2(输单)"
},
{
"case": "标记赢单成功",
"got": 0,
"expect": "0",
"ok": true,
"note": "{'code': 0, 'success': True, 'message': 'success', 'data': {'id': '753422260487847936', 'createTime': '2026-09-11 01:11:04', 'updateTime': '2026-09-11"
},
{
"case": "赢单: stage 仍 5 + status 仍 1 + bidResult=1",
"got": [
5,
1,
1
],
"expect": "(5, 1, 1)",
"ok": false,
"note": ""
},
{
"case": "赢单锁死回退 68003",
"got": 68003,
"expect": "68003",
"ok": true,
"note": "赢单项目锁死(stage5 闭环,状态锁定),不可回退"
},
{
"case": "赢单后不可改输单(锁)",
"got": 68009,
"expect": "not0",
"ok": false,
"note": "code=68009 msg=该项目已标记赢单/输单,不可重复标记"
},
{
"case": "赢单项目关闭(spec 未禁)",
"got": 0,
"expect": "['not0', 0]",
"ok": true,
"note": "code=0 msg=success"
},
{
"case": "关闭后 status=2",
"got": 2,
"expect": "2",
"ok": true,
"note": ""
},
{
"case": "标记输单 → stage6 结项",
"got": 0,
"expect": "0",
"ok": true,
"note": "{'code': 0, 'success': True, 'message': 'success', 'data': {'id': '753422261834219520', 'createTime': '2026-09-11 01:11:05', 'updateTime': '2026-09-11"
},
{
"case": "输单: stage=6 status=3 bidResult=2",
"got": [
6,
3,
2
],
"expect": "(6, 3, 2)",
"ok": false,
"note": ""
},
{
"case": "结项终态回退被拒",
"got": 68003,
"expect": "not0",
"ok": false,
"note": "code=68003 msg=项目已关闭/已结项(终态锁),不可回退"
},
{
"case": "已结项不可再关闭",
"got": 68003,
"expect": "not0",
"ok": false,
"note": "code=68003 msg=项目已结项(终态),不可关闭"
},
{
"case": "动态含「创建」事件",
"got": false,
"expect": "True",
"ok": false,
"note": "['CLOSE', 'BID_WIN', 'STAGE_ADVANCE', 'STAGE_ADVANCE', 'STAGE_ROLLBACK', 'STAGE_ADVANCE', 'STAGE_ADVANCE', 'STAGE_ADVANCE', 'CONFLICT_RELEASE', 'FILING_REJECT', 'FILING_SUBMIT', 'CREATE']"
},
{
"case": "动态含「报备」事件",
"got": false,
"expect": "True",
"ok": false,
"note": "['CLOSE', 'BID_WIN', 'STAGE_ADVANCE', 'STAGE_ADVANCE', 'STAGE_ROLLBACK', 'STAGE_ADVANCE', 'STAGE_ADVANCE', 'STAGE_ADVANCE', 'CONFLICT_RELEASE', 'FILING_REJECT', 'FILING_SUBMIT', 'CREATE']"
},
{
"case": "跟进新增",
"got": 0,
"expect": "0",
"ok": true,
"note": "{'code': 0, 'success': True, 'message': 'success', 'data': '753422297515163648'}"
},
{
"case": "跟进缺内容被拒",
"got": 68001,
"expect": "not0",
"ok": false,
"note": "code=68001 msg=项目 id、跟进内容、跟进时间必填"
},
{
"case": "附件挂载(fileId=1)",
"got": 0,
"expect": "['not0', 0]",
"ok": true,
"note": "code=0 msg=success"
},
{
"case": "附件列表可读",
"got": 0,
"expect": "0",
"ok": true,
"note": "{'code': 0, 'success': True, 'message': 'success', 'data': [{'id': '753422299150942208', 'projectId': '75342226048784793"
},
{
"case": "GET /project/scheme 可读",
"got": 0,
"expect": "0",
"ok": true,
"note": "{'code': 0, 'success': True, 'message': 'success', 'data': {'projectId': '753422260487847936', 'schemeBudget': None, 'sc"
},
{
"case": "GET /project/quote 可读",
"got": 0,
"expect": "0",
"ok": true,
"note": "{'code': 0, 'success': True, 'message': 'success', 'data': {'projectId': '753422260487847936', 'quoteTotal': None, 'quot"
},
{
"case": "GET /project/bidding 可读",
"got": 0,
"expect": "0",
"ok": true,
"note": "{'code': 0, 'success': True, 'message': 'success', 'data': {'projectId': '753422260487847936', 'bidDeadline': None, 'bid"
},
{
"case": "GET /project/bid-open 可读",
"got": 0,
"expect": "0",
"ok": true,
"note": "{'code': 0, 'success': True, 'message': 'success', 'data': {'projectId': '753422260487847936', 'bidOpenTime': None, 'bid"
},
{
"case": "客户页签=单客户(一项目一客户)",
"got": [
0,
1
],
"expect": "(0, 1)",
"ok": false,
"note": "[{'id': '99021001', 'customerNo': 'A5DEMO-C001', 'customerName': 'A5DEMO-甲客户', 'customerType': 'ENTERPRISE', 'ownerName': 'A5总监'}]"
}
],
"PID": "753422260487847936",
"PID_DUP": "753422261834219520"
}