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.
 
 
 
 
 
 

2.5 KiB

04 — 三 workspace 视图 + 归属流转

What to build: 客户能在「我的客户 / 客户总览 / 客户公海」三个 workspace 里按各自数据范围列出、切换视图模式,并支持归属流转动作(领取 / 分配 / 抛公海 / 归档 / 恢复)。三视图是逻辑视图不落池表;每个归属动作写操作日志、走 CAS 乐观锁。

Blocked by: 02 — 客户主表 CRUD + 查重校验

Status: ready-for-agent

Spec 依据(详见 issues/03-answer.md):D9 三视图=逻辑视图;D3 归属⊥档案双轴;D19 归档=删除语义(无独立 tab)。

  • 三 workspace 查询(票 03 §A,逻辑视图不落库):
    • 我的客户 = 当前用户为销售负责人或协同人 且 archive_status=1 且 owner 非空
    • 客户总览 = @DataScope 覆盖范围内 未删除、未进公海(默认只列 archive_status=1
    • 客户公海 = archive_status=1owner_user_id IS NULL
    • 管理职务不扩大「我的客户」范围(走「客户总览」)
  • 内置视图口径(票 03 §B,硬编码不落库):我的客户(我负责的/我协同的/待跟进的/我关注的/最近访问);公海(最近访问/我关注的);总览(最近访问/我关注的/我负责的/我协同的)
  • 视图模式(票 03 §C)+ 看板三分组页签(客户阶段/客户星级/关系星级);⚠ 本期「客户阶段」分组下客户均堆在「潜在客户」列,重潜/已成交列恒空=预期行为(D20 改票 B),不得造假阶段数据
  • 共用列 + 差异列(票 03 §D):公海列含 enter_pool_time「进入公海时间」、无负责人列
  • 新增字段回填customer.enter_pool_time(票 03 §F,抛公海写入 / 领取·分配清空)
  • 归属流转动作(票 03 §E):领取 / 分配 / 抛公海 / 归档(1→2) / 恢复(2→1),各带前置校验("无进行中商机"读 crm-opportunity opp_status=2;项目侧留 seam A5 未建先跳过;归档/合并仅销售负责人可)
  • 批量操作部分失败不回滚(逐条独立事务,跳过不可操作项);例外:批量归档整批预检,任一失败整批不执行
  • 领取/分配副作用(D25,票 10 锚点):last_valid_follow_time 为空时→赋当前时刻;抛公海/归属迁移不动锚点
  • 每个归属动作写 customer_oplog(票 06);CAS 乐观锁 + version
  • @DataScope 映射(票 03 §G):总览套 DataScopeEnum(SELF/DEPT/DEPT_AND_CHILD/ALL);公海按可见部门范围