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.
 
 
 
 
 

5.2 KiB

seed-data-manifest:客户 E2E 联调数据清单(票 03 交付物)

生成:2026-09-03 22:28 · seed-customer.py ALL GREEN(7/7 库检通过,幂等重跑已验证) 机器可读:.scratch/customer-e2e/seed-ids.json(票 04/05/07 脚本直接读)

1. 数据矩阵(17 客户 + 2 商机 + 4 联系人 + 2 跟进)

key 客户名称 编号 用途 服务流程
stage1 e2c-阶段-潜在-甲 KH202609030006 stage=1 基线 F-01/02 看板潜在列
stage2 e2c-阶段-重潜-乙 KH202609030007 DB 直拨 stage=2 F-01/02 重潜列
stage3 e2c-阶段-成交-丙 KH202609030008 DB 直拨 stage=3 F-01/02 已成交列
star5 e2c-星级-五星 KH202609030009 星级 5/5 F-01/02 star/relation 分组
full e2c-全字段-科技 KH202609030010 全字段+工商组+信用代码 91440101E2CTEST001 F-05 编辑回显 / F-07 详情 / 联系人母体
simA e2c-恒信达科技有限公司 KH202609030011 相似对 A F-04 三层查重
simB e2c-恒信达科技有限责任公司 KH202609030012 相似对 B F-04
followFuture e2c-跟进-待办 KH202609030013 API 跟进 next=+1 天 F-08 待跟进提醒 / F-01
followOld e2c-提醒-超期 KH202609030014 DB 拨 last_valid_follow_time=30 天前 + 直插过期 follow F-15 Job 超期 / F-01 FOLLOW_UP_DUE 视图
collab e2c-协同-样例 KH202609030015 DB 换 owner=曾偲青 + admin 加协同 F-01 COLLABORATING 视图
member e2c-成员-样例 KH202609030016 预加成员曾偲青 F-10 成员增删
transfer1 e2c-交割-甲 KH202609030017 绑定商机「e2c-联动-交割」 F-13 交割 owner 联动
transfer2 e2c-交割-乙 KH202609030018 绑定商机「e2c-联动-进行中」 F-11 抛公海 67007 拦截
transfer3 e2c-交割-丙 KH202609030019 纯客户 F-13 交割分配素材
pool1 e2c-公海-甲 KH202609030020 owner 空 + enter_pool_time F-01 公海列表 / F-11 领取
pool2 e2c-公海-乙 KH202609030021 同上 F-11 批量领取
archived e2c-已归档 KH202609030022 archive_status=2(API 归档) F-01/F-07 已归档变体

商机(API POST /api/opportunity,owner=罗伟健,进行中):e2c-联动-进行中(750844495993503744→绑定交割-乙)、e2c-联动-交割(750844498195513344→绑定交割-甲)。 联系人:张关键(关键联系人+内线+礼品备注,13812340001)、李普通(13812340002)、王重复(与张关键同号 13812340001 → check-phone 命中样例)、赵外线(simA 下,13812340003)。

2. 造数通道(API vs DB 直插)

  • API:17 客户(POST /api/customer,confirmSimilar=true)、归档、followFuture 跟进、2 商机 + 2 绑定、4 联系人
  • DB 直插/直拨(API 不可达,已登记 seed-ids.json dbPatches):stage2/3 直拨(D20 阶段前进 seam 化无 API)、collab owner 换绑(COLLABORATING 视图需要「负责人≠当前用户」)、last_valid_follow_time 30 天前(Job 超期锚点)、过期 follow 直插(API 67009 拒过去时间)
  • 字典 code 动态取(dict_item join dict_group.code),不硬编码

3. 幂等与并发冲突策略(Not-yet 挂号项拍板)

  • e2c- 前缀命名空间独占:客户/商机/视图全带 e2c- 前缀;与商机域 seed 的 e2e- 前缀隔离(清理不误伤商机域 15 条 e2e- 商机)
  • 策略 = 重跑全量重建:seed 先物理清 e2c- 命名空间(含从表、商机绑定、经 detail 反查的交割单)再重建;KH 编号只前进不回退,重跑后 id 全变 → 消费方一律从 seed-ids.json 取 id,禁止硬编码
  • 他人联调约定:e2c- 数据视为本 effort 专属,可读引用;被 seed 重跑清掉不补救(manifest 即约定)
  • 守卫:customer 全表 <3 行或 e2c- 命中 >60 行 → 疑似连错库中止

4. 契约速查(喂票 04/05/06/07)

  • 分页 current/size(BaseParam);返回 {content,total}(PageResult)
  • flat 路径清单见 spec-flows §0(9 Controller 55 端点,禁按 RESTful 推断)
  • Result<Void> data=null 非失败——判 code 即可(api_void 模式)
  • 写端点全 form 绑定;唯一 JSON = PUT /api/rule/customer/reminder
  • POST /api/customer 返回 CustomerSaveResultDTO:needConfirm=null=已落库回 id+customerNo;needConfirm=true=相似弹窗未落库(confirmSimilar=true 重发)
  • 信用代码 67001=须 18 位数字或大写字母;LocalDateTime form 绑定 ISO T 分隔(空格 400)
  • 商机 create:opp_source_01=线索转入需关联线索(60001)→ 用 opp_source_02;六必填(D-14)
  • 跟进:content 空 / nextFollowTime 过去 → 67009;同客户同内容 30s 防重
  • 客户编号服务端生成 KH+yyyyMMdd+4 位,只前进
  • 观察点:ContactDTO.source 注释引用 contact_source 字典,但 dict_group 24 组无 contact_source 组——seed 用 contact_source_01 创建成功(无字典校验),F-06 实测时核对该字段回显与筛选行为,异常则登记
  • debug token(verify only);pymysql 每步新连接 autocommit=True(坑㉕);中文 body 一律 Python(坑㉑)