From 2329f8cf14efb80a24ed04f4344028cd0223c11a Mon Sep 17 00:00:00 2001 From: luoweijian <1329394916@qq.com> Date: Tue, 1 Sep 2026 20:03:13 +0800 Subject: [PATCH] commit --- .../issues/01-domain-context.md | 29 + .../issues/02-customer-main-table.md | 42 + .../issues/03-ownership-views.md | 41 + .../04-create-dedup-and-company-lookup.md | 39 + .../issues/05-customer-stage.md | 36 + .../issues/06-contacts-crud.md | 57 + .../issues/07-detail-follow-oplog.md | 53 + .../customer-module/issues/08-transfer.md | 47 + .scratch/customer-module/issues/09-import.md | 36 + .../issues/10-overdue-reminder-rule.md | 42 + .../issues/11-saved-view-integration.md | 37 + .scratch/customer-module/map.md | 78 ++ .../demo-addcustomer.js | 50 + .../demo04-1-customer-subtab.png | Bin 0 -> 52977 bytes .../demo04-2-dialog-open.png | Bin 0 -> 55070 bytes .../demo04-3-search-results.png | Bin 0 -> 57901 bytes .../demo04-4-selected-cascade.png | Bin 0 -> 57067 bytes .../demo04-5-after-add.png | Bin 0 -> 56345 bytes .../opp-customer-dependency/drive-demo04.py | 84 ++ .../issues/01-customer-type-dict-seed.md | 16 + .../issues/02-customer-contacts-stub.md | 21 + .../03-frontend-integration-regression.md | 29 + .../issues/04-demo-frontend-acceptance.md | 35 + .../verify-03-result.json | 60 + .scratch/opp-customer-dependency/verify-03.py | 50 + .../商机前端联调工作量评估.md | 95 ++ .scratch/opportunity-acceptance/boot-run.log | Bin 113752 -> 116130 bytes .../01-stage-template-display-name-unique.md | 13 + ...-stage-display-name-resolution-contract.md | 12 + .../issues/03-board-drop-status-filter.md | 13 + .../issues/04-board-group-by-display-name.md | 15 + .../issues/05-board-integration-tests.md | 14 + .../issues/06-board-api-docs.md | 12 + .../issues/07-code-review.md | 12 + .scratch/opportunity-e2e/demo/index.html | 157 ++- .../opportunity-e2e/demo/shot-12-09-lanes.png | Bin 0 -> 54956 bytes .../demo/shot-12-10-lanes-more.png | Bin 0 -> 78265 bytes .../demo/shot-12-11-create-dialog.png | Bin 0 -> 76218 bytes .../demo/shot-12-12-cust-search.png | Bin 0 -> 82872 bytes .../demo/shot-12-13-create-result.png | Bin 0 -> 72798 bytes .../demo/shot-12-14-detail-after-create.png | Bin 0 -> 72798 bytes .../demo/shot-12-15-testenv-mode.png | Bin 0 -> 39245 bytes .../issues/12-demo-sync-opp-create-fields.md | 53 + .scratch/opportunity-e2e/map.md | 2 + .scratch/opportunity-e2e/selftest-12.py | 142 ++ .scratch/patch_board_stagenode.md | 3 + .scratch/patch_board_viewform.md | 3 + .../crm/base/config/MybatisPlusConfig.java | 5 + .../crm/dict/config/DictDataInitializer.java | 10 +- .../dict/config/DictDataInitializerTest.java | 22 +- crm-opportunity/CONTEXT.md | 6 +- .../controller/OpportunitySubController.java | 7 + .../domain/dto/CustomerContactDTO.java | 31 + .../domain/dto/OpportunityDTO.java | 14 + .../service/IOpportunitySubService.java | 4 + .../impl/OpportunitySubServiceImpl.java | 9 + ...0032-board-groups-by-stage-display-name.md | 17 + logs/crm-app-boot.log | 189 +++ logs/crm-app.log | 1224 +++++++++++++++++ logs/crm-app.log.2026-08-31.0.gz | Bin 0 -> 17620 bytes 60 files changed, 2940 insertions(+), 26 deletions(-) create mode 100644 .scratch/customer-module/issues/01-domain-context.md create mode 100644 .scratch/customer-module/issues/02-customer-main-table.md create mode 100644 .scratch/customer-module/issues/03-ownership-views.md create mode 100644 .scratch/customer-module/issues/04-create-dedup-and-company-lookup.md create mode 100644 .scratch/customer-module/issues/05-customer-stage.md create mode 100644 .scratch/customer-module/issues/06-contacts-crud.md create mode 100644 .scratch/customer-module/issues/07-detail-follow-oplog.md create mode 100644 .scratch/customer-module/issues/08-transfer.md create mode 100644 .scratch/customer-module/issues/09-import.md create mode 100644 .scratch/customer-module/issues/10-overdue-reminder-rule.md create mode 100644 .scratch/customer-module/issues/11-saved-view-integration.md create mode 100644 .scratch/customer-module/map.md create mode 100644 .scratch/opp-customer-dependency/demo-addcustomer.js create mode 100644 .scratch/opp-customer-dependency/demo04-1-customer-subtab.png create mode 100644 .scratch/opp-customer-dependency/demo04-2-dialog-open.png create mode 100644 .scratch/opp-customer-dependency/demo04-3-search-results.png create mode 100644 .scratch/opp-customer-dependency/demo04-4-selected-cascade.png create mode 100644 .scratch/opp-customer-dependency/demo04-5-after-add.png create mode 100644 .scratch/opp-customer-dependency/drive-demo04.py create mode 100644 .scratch/opp-customer-dependency/issues/01-customer-type-dict-seed.md create mode 100644 .scratch/opp-customer-dependency/issues/02-customer-contacts-stub.md create mode 100644 .scratch/opp-customer-dependency/issues/03-frontend-integration-regression.md create mode 100644 .scratch/opp-customer-dependency/issues/04-demo-frontend-acceptance.md create mode 100644 .scratch/opp-customer-dependency/verify-03-result.json create mode 100644 .scratch/opp-customer-dependency/verify-03.py create mode 100644 .scratch/opp-customer-dependency/wayfinder/商机前端联调工作量评估.md create mode 100644 .scratch/opportunity-board-display-name/issues/01-stage-template-display-name-unique.md create mode 100644 .scratch/opportunity-board-display-name/issues/02-stage-display-name-resolution-contract.md create mode 100644 .scratch/opportunity-board-display-name/issues/03-board-drop-status-filter.md create mode 100644 .scratch/opportunity-board-display-name/issues/04-board-group-by-display-name.md create mode 100644 .scratch/opportunity-board-display-name/issues/05-board-integration-tests.md create mode 100644 .scratch/opportunity-board-display-name/issues/06-board-api-docs.md create mode 100644 .scratch/opportunity-board-display-name/issues/07-code-review.md create mode 100644 .scratch/opportunity-e2e/demo/shot-12-09-lanes.png create mode 100644 .scratch/opportunity-e2e/demo/shot-12-10-lanes-more.png create mode 100644 .scratch/opportunity-e2e/demo/shot-12-11-create-dialog.png create mode 100644 .scratch/opportunity-e2e/demo/shot-12-12-cust-search.png create mode 100644 .scratch/opportunity-e2e/demo/shot-12-13-create-result.png create mode 100644 .scratch/opportunity-e2e/demo/shot-12-14-detail-after-create.png create mode 100644 .scratch/opportunity-e2e/demo/shot-12-15-testenv-mode.png create mode 100644 .scratch/opportunity-e2e/issues/12-demo-sync-opp-create-fields.md create mode 100644 .scratch/opportunity-e2e/selftest-12.py create mode 100644 .scratch/patch_board_stagenode.md create mode 100644 .scratch/patch_board_viewform.md create mode 100644 crm-opportunity/src/main/java/com/crm/opportunity/domain/dto/CustomerContactDTO.java create mode 100644 docs/adr/0032-board-groups-by-stage-display-name.md create mode 100644 logs/crm-app-boot.log create mode 100644 logs/crm-app.log create mode 100644 logs/crm-app.log.2026-08-31.0.gz diff --git a/.scratch/customer-module/issues/01-domain-context.md b/.scratch/customer-module/issues/01-domain-context.md new file mode 100644 index 0000000..e6e64a3 --- /dev/null +++ b/.scratch/customer-module/issues/01-domain-context.md @@ -0,0 +1,29 @@ +# 01 — 客户域领域词汇 + crm-customer/CONTEXT.md 骨架 + +Type: task +Status: open +Blocked by: + +## 目标 + +新建 `crm-customer` 模块,落 `crm-customer/CONTEXT.md`(ubiquitous language,纯 glossary,无实现细节),并在根 `CONTEXT-MAP.md` 增一行。对称 `crm-lead/CONTEXT.md` / `crm-opportunity/CONTEXT.md` 的写法。 + +## 要收录的核心术语(随各票 resolve 回填/校准) + +- **客户 (Customer)** — crm-customer 核心聚合根;归属由 `owner_user_id`(销售负责人)+`owner_dept_id`(销售部门快照) 表达,owner 空=在公海。_Avoid_: 线索(转化前)、商机(下游)、联系人。 +- **销售负责人 / 销售部门** — 客户的 owner + 部门快照;抛公海/交割时变更。_Avoid_: 领取人(那是线索术语)、创建人。 +- **协同人** — 客户团队非负责人成员;抛公海清空、交割不自动恢复。 +- **客户阶段 (customer_stage)** — 潜在→重潜→已成交,只前进不回退,外部成功结果驱动,不可手动改。_Avoid_: 客户状态、归属状态。 +- **档案状态 (archive_status)** — 有效/已归档/已被合并,正交于归属。 +- **客户公海** — owner 空的有效客户逻辑视图;无独立池实体(对称商机公海)。 +- **联系人 (customer_contact)** — 归属某客户的独立实体,无独立 ACL,权限继承客户。 +- **人脉关系单位** — 客户下的关系单位名标签集(非关联 CRM 客户)。 +- **客户交割** — 销售离职/调岗时把名下客户批量交给直属总监,再分配;同步变更关联商机/项目负责人。 + +## 依赖方向 + +单向:`crm-opportunity → crm-customer`(商机读客户/建关联,已有 customer_id 契约占位,见商机图「customer_id 契约占位」决策);`crm-customer → crm-rule → (crm-auth / crm-dict / crm-file)`。客户读「关联商机」走查 crm-opportunity(下游反查上游,注意 ADR-0029 循环依赖技术债,同库单体阶段可接受)。 + +## Answer + +_(待 resolve)_ diff --git a/.scratch/customer-module/issues/02-customer-main-table.md b/.scratch/customer-module/issues/02-customer-main-table.md new file mode 100644 index 0000000..b71cd5f --- /dev/null +++ b/.scratch/customer-module/issues/02-customer-main-table.md @@ -0,0 +1,42 @@ +# 02 — 客户主表字段清单 + +Type: research +Status: open +Blocked by: + +## 问题 + +定客户主表 `customer` 的完整字段清单 + 索引 + DataScope 注解。这是扇出最广的票,其他票(三视图/查重/交割/阶段)回填它。 + +## 一手证据(蓝湖缓存 txt) + +- `a4-3-3-1_新增客户信息.txt` — 新增页字段(基本信息/工商信息/跟进人员/关联信息/补充资料五区) +- `a4-4-1_客户详情_客户信息_.txt` — 详情页字段分区(基本信息/关联信息/补充资料/工商信息/系统信息) +- `a4-2-1_客户总览列表_列表视图_.txt` — 列表列 + 字段设置项 + +## 已知字段线索(待核实归类) + +- **系统生成**:客户编号 `customer_no`(KH+日期+序,只读)、创建人/时间、修改人/时间。 +- **基本信息**:客户名称*、客户类型*(字典)、所属地区*(省市区)、行业*(两级树,复用 crm-dict `industry`)、客户星级*(一~五星)、关系星级*(一~五星)、人脉关系单位(标签集)、公司决策人。 +- **归属(轴1)**:`owner_user_id`(销售负责人*)+`owner_dept_id`(销售部门*快照)+协同人(团队子表)。 +- **阶段(轴2)**:`customer_stage`(潜在/重潜/已成交)。 +- **档案状态**:`archive_status`(有效/已归档/已被合并)。 +- **战略协议**(划出):`战略协议等级` 列在列表出现——但战略协议子域划出,主表是否冗余一个等级快照列供列表展示?→ 本票决定(建议:留 `strategic_agreement_level` 快照列供列表,实体本身划出)。 +- **已成交VIP客户等级**:列表有列 → 主表字段还是 A5 驱动?待定(疑似阶段=已成交后的细分,可能留 seam)。 +- **工商信息**(企查查回填):统一社会信用代码(唯一)、法定代表人、成立时间、注册资本、经营范围、人员规模、年产值、公司地址、工商名称。 +- **关联信息**:是否商机勾兑*、总监近期拜访时间、是否子客户*(是→父客户关联必填)、父客户关联(禁自身及下级/防环)、合作系统、不合作原因、是否参加总裁班/产品经理班(+参加人/电话,条件必填)。 +- **补充资料**:备注(≤500)、附件(crm-file)。 + +## 待拍板点(research 中逐一给推荐 + grill) + +1. 战略协议等级 / 已成交VIP等级 是否主表冗余快照列(战略协议实体划出)? +2. 父子客户:自关联 `parent_customer_id` + 防环校验口径。 +3. 客户类型字典分组(`customer_type`)取值:甲方(企业/政府/普教/中高职/高校)… 需列全。 +4. 客户星级/关系星级:字典 or 定长枚举(一~五星)? +5. 冗余快照列(列表免 join):最近跟进时间、关联业务计数(商机/项目)、owner 名快照。 +6. DataScope:`@DataScope(module="customer", ownerColumn="owner_user_id", deptColumn="owner_dept_id")`。 +7. 索引:UNIQUE 统一社会信用代码 / owner+stage / owner_dept+archive_status(公海视图)。 + +## Answer + +_(待 resolve)_ diff --git a/.scratch/customer-module/issues/03-ownership-views.md b/.scratch/customer-module/issues/03-ownership-views.md new file mode 100644 index 0000000..c979bff --- /dev/null +++ b/.scratch/customer-module/issues/03-ownership-views.md @@ -0,0 +1,41 @@ +# 03 — 归属流转 + 三 workspace + 内置视图 + 自定义视图查询口径 + +Type: research +Status: open +Blocked by: 02 + +## 问题 + +定客户模块三个 workspace(客户总览 / 我的客户 / 客户公海)的**数据范围**、**内置视图**、**共用列**、**行内操作**、**自定义视图接入**(复用商机 saved-view 手册)。同时定归属的迁移动作(领取/分配/抛公海/交割换主/归档)在读侧怎么反映。 + +## 一手证据(蓝湖缓存 txt) + +- `a4-1-1_客户公海列表.txt` / `a4-1-1_客户公海列表_列表视图_.txt` / `a4-1-2_客户公海列表_分屏视图_.txt` — 客户公海(普通销售视角=批量领取 + 领导视角=批量分配) +- `a4-2-1_客户总览列表_列表视图_.txt` / `a4-2-1_客户总览列表_分屏视图_.txt` / `a4-2-1_客户总览列表_卡片视图_.txt` — 客户总览(三视图:表格/列表详情/看板;含分配/抛公海/归档) +- `a4-3-1_我的客户列表_分屏视图_.txt` / `a4-3-1_我的客户列表_列表视图_.txt` / `a4-3-1_我的客户列表_卡片视图_.txt` — 我的客户 + +## 已知事实 + +- **三 workspace 数据范围**(对称商机四视图): + - **我的客户** = 当前用户 owner 或作为协同人的有效客户(去重)。 + - **客户总览** = 按 `@DataScope` 覆盖组织范围内的**未删除、未进入公海**客户;含内置子筛「我负责的 / 我协同的 / 我关注的 / 最近访问」;**不混入公海**(公海是独立入口);含**已归档客户 / 已被合并客户**两个专门 tab(原型 A4-2-1 有)。 + - **客户公海** = `archive_status=有效 且 owner_user_id IS NULL` 的逻辑视图;无独立池表;`owner_dept_id`+匹配规则的可见性(对称商机公海口径,待与超期规则票 10 呼应)。 +- **行内操作差异**: + - 我的客户:详情 / 关注 / 跟进 / 编辑;分配/抛公海按 RBAC 出。 + - 客户总览:详情 / 关注 / **分配** / **抛公海** / 更多(含 **归档**);顶部批量:批量分配 / 批量抛公海 / 批量归档 / 工商信息更新。 + - 客户公海:普通销售=详情+关注+**领取**+批量领取;领导=详情+关注+**分配**+批量分配(不做审批)。 +- **三视图模式(仅客户总览有全三种;公海/我的客户只有列表+分屏)**:表格 / 列表详情(左表+右详情) / 看板(客户阶段分列?待原型核实)。切换视图记住用户偏好(复用 crm-preference)。 +- **自定义视图 = crm-preference 平台能力**(商机图票 14 已建平台;本模块新接一个 scope,参商机 `OpportunitySavedViewFilter` 手册)——见票 11。 + +## 待拍板点 + +1. **公海准入规则**(原型 A4-1-1 §3 明说):客户有「进行中商机/项目」不可移入公海——本票拍板:抛公海写路径的前置校验点(读 crm-opportunity 存在性;A5 未建先跳过项目那半)。 +2. **看板视图(卡片视图)分列维度**:客户阶段?客户星级?→ 需 grill 或读原型细节。 +3. **共用列 vs 差异列**:列表统一列 = 客户名/客户类型/行业/客户阶段/星级×2/战略等级/VIP等级/进入公海时间(公海)or销售负责人+部门+关联业务+最近跟进(总览/我的)。字段设置=复用 crm-preference 列偏好。 +4. **归属迁移动作枚举**:领取(公海→个人)、分配(公海→个人 / 个人→个人)、抛公海(个人→公海)、交割(交割票 08 专管,本票只留 seam)、归档(→archive_status=2)。每边写操作日志(票 07)。 +5. **并发**:所有归属变更 CAS 乐观锁 + 版本号;批量操作跳过已被他人处理的(Toast 报成功/跳过数)。 +6. **领导视角 DataScope 映射**:客户总览 = ALL(领导) / DEPT_AND_CHILD(总监) / DEPT(普通销售不可见总览菜单)——对称 crm-auth DataScopeEnum。 + +## Answer + +_(待 resolve)_ diff --git a/.scratch/customer-module/issues/04-create-dedup-and-company-lookup.md b/.scratch/customer-module/issues/04-create-dedup-and-company-lookup.md new file mode 100644 index 0000000..a7bff74 --- /dev/null +++ b/.scratch/customer-module/issues/04-create-dedup-and-company-lookup.md @@ -0,0 +1,39 @@ +# 04 — 新增/编辑客户的查重校验 + 企查查工商回填 seam + +Type: research +Status: open +Blocked by: 02 + +## 问题 + +定新增/编辑客户表单的**查重校验规则**(内建在新增流程、写死不做后台可配)+ **企查查外部服务契约 seam**(调用点/回填范围/异常/精确查重触发)。**A4-6 独立查重页 + 客户合并不做**(chart grill D6)。 + +## 一手证据(蓝湖缓存 txt) + +- `a4-3-3-1_新增客户信息.txt` — 主页面 §3.2 客户名称与自动查重 / §3.3 企业查询与工商信息回填 / §3.4 客户重复校验 / §3.5 联系人明细表 / §3.6 工商信息 +- `a4-3-3-2_编辑客户信息.txt` — 编辑页复用新增结构 + 有 seam + +## 已知事实(原型明文,节选) + +- **自动查重(防抖)**:客户名称停止输入→防抖异步查 CRM 相似客户;仅名称输入框下方展示相似列表;只提示、不阻止;无权限的匹配脱敏为「存在匹配记录」不显 name/编号/负责人。 +- **企业查询**:`查询企业`→调外部工商服务→候选列表→单选回填。首次选择只回填**当前为空且属于允许范围**的工商字段(工商名称/信用代码/法代/成立时间/注册资本/经营范围/人员规模/年产值/工商注册地址)。已填字段再次选择必须弹「受影响字段确认」再覆盖;空值不覆盖原值。**不覆盖**:客户类型/行业/所属地区/关系星级/负责人/部门/协同人/人脉关系单位/联系人/备注。 +- **精确查重触发**:选择企业并回填后立即用统一社会信用代码执行精确查重;保存时再执行一次终查。 +- **保存时校验**(服务端最终查重): + - 统一社会信用代码在**全部未删除客户**中必须唯一 → 完全相同**硬拦禁止创建**(含无权查看时不显 name/编号,只提示阻断)。 + - 客户名称相似但信用代码不同 → 弹「客户相似确认」弹窗,用户可"仍要创建";"仍要创建"后**服务端必须再查一次**(防并发/防中间被人创建同信用代码)。 +- **联系人明细表内联查重**:同表格内联系电话相同→禁止提交定位重复行;无电话按「客户+姓名+职务」提示疑似重复;全库按电话查重(对已存在联系人)。→ 联系人查重口径归本票,联系人 CRUD 建模归票 06。 +- **父子客户防环**:`是否子客户=是`时父客户必填;父客户不得选择自身及其下级 → 服务端必须校验不得形成循环。 +- **人脉关系单位**:标签集(单个≤50字,同 name 不重复),非关联 CRM 客户。 + +## 待拍板点 + +1. **相似客户判定口径**(阈值/算法)——原型说「使用 CRM 后端统一查重服务,不在前端固化阈值」。本票拍板:走什么算法(简单 Trigram / MySQL 全文索引 / 编辑距离 / N-gram 分词)?先给最简可行方案。 +2. **企查查外部服务契约 seam**:不深挖服务实现,只定接口(`CustomerCompanyLookupPort`?)+ 请求(name)/响应(候选列表带9项工商字段)/异常语义(无结果/失败/超时);实现可 mock。 +3. **信用代码格式校验**:18 位数字或字母组合(原型明说,正则拍死)。 +4. **成立时间不得晚于当前日期** 前置校验。 +5. **并发建客户**(同信用代码并发提交):DB 唯一约束兜底 + 乐观返回「重复」错误;先查后写做双保险但不依赖它。 +6. **相似客户提示的脱敏**:无权限用户命中他人客户时的返回负载最小化(不带 name/编号/负责人/联系方式),只回「命中数量+提示语」。 + +## Answer + +_(待 resolve)_ diff --git a/.scratch/customer-module/issues/05-customer-stage.md b/.scratch/customer-module/issues/05-customer-stage.md new file mode 100644 index 0000000..410e58e --- /dev/null +++ b/.scratch/customer-module/issues/05-customer-stage.md @@ -0,0 +1,36 @@ +# 05 — 客户阶段(潜在→重潜→已成交,只前进) + +Type: research +Status: open +Blocked by: 02 + +## 问题 + +定 `customer_stage` 的三态定义、迁移触发源、约束(只前进不回退)、seam 契约(重潜由方案卡驱动,已成交由 A5 驱动)。**本图只做「潜在→重潜」**,已成交留 seam(chart grill D3)。 + +## 一手证据(蓝湖缓存 txt) + +- `a4-4-1_客户详情_客户信息_.txt` §1「客户阶段」明文:新建=潜在;任一方案卡提交并报备成功→重潜;任一项目首次中标赢单→已成交;只前进不回退;方案卡失败/报备失败/商机输单/项目结束**均不触发回退**;阶段条不可点击修改;每次变化刷新公共头部+写操作日志。 + +## 已知事实 + +- 三态:`潜在客户(1) / 重潜客户(2) / 已成交客户(3)`。 +- 默认值:新建客户成功后 = 1 潜在。 +- **驱动源**: + - 1→2:方案卡「提交并报备成功」——方案卡状态机在 crm-opportunity 票 07 已定为 `草稿1/已提交2/已推送3`,本图需在 crm-opportunity 侧添 seam:方案卡状态变 2→3(已推送=报备成功?) 时**回调** customer.promoteStage(customerId, 2)。**需与商机侧核对「报备成功」到底对齐哪个状态**(推送 or 一个新态)。 + - 2→3:A5 项目「首次中标赢单」——A5 未建,留 seam 接口 `CustomerStagePort.promoteToClosed(customerId)`。 +- **只前进**:迁移方法只接受更高阶段;低阶段传入返回 no-op(不报错、不写日志)。 +- **不回退**:方案卡撤回/商机关闭/项目结束**不改阶段**(原型明说)。 +- **不可手动改**:无 setter API 面向前端;仅内部 port + 方案卡回调触发。 + +## 待拍板点 + +1. **重潜的触发点到底是「方案卡提交」还是「方案卡推送/报备成功」**?原型 A4-4-1 说「方案卡提交并报备成功」——「报备」是**商机图 spin-out 的推送链路**(商机图票 07 说推送/报备本期不可达,只有 A5 回调特殊路径可达)。→ 本票拍板:**先按「方案卡状态=已提交(2)」触发重潜**(保守),等推送链路建好再改口径;或等 A5 建好后由「报备成功」驱动。 +2. **seam 接口签名**:`CustomerStagePort.promote(customerId, targetStage)` 单方法 or 两方法(`promoteToRepeat` / `promoteToClosed`)? +3. **幂等**:重复触发(同一方案卡多次触发)→ 只前进逻辑天然幂等,无需去重表。 +4. **父子客户联动**:子客户阶段改变时,父客户是否受影响?→ 推荐:**不联动**(父子各自独立阶段,原型无相关规则)。 +5. **阶段变更写操作日志**(票 07):格式 = 「客户阶段:潜在 → 重潜(由方案卡 XXX 提交触发)」,操作人=「系统」。 + +## Answer + +_(待 resolve)_ diff --git a/.scratch/customer-module/issues/06-contacts-crud.md b/.scratch/customer-module/issues/06-contacts-crud.md new file mode 100644 index 0000000..b101462 --- /dev/null +++ b/.scratch/customer-module/issues/06-contacts-crud.md @@ -0,0 +1,57 @@ +# 06 — 联系人建模 CRUD + 全局搜索 + 商机侧硬依赖接口 + +Type: research +Status: open +Blocked by: 02 + +## 问题 + +定 `customer_contact` 实体表、CRUD 接口、全局搜索(商机侧硬依赖)、联系人电话查重、职务字段占位(图谱划出但字段留占位)。归属客户不孤立、权限继承客户团队。 + +## 一手证据(蓝湖缓存 txt) + +- `a4-3-3-1_新增客户信息.txt` — 新增客户内嵌联系人明细表(序号/*联系人/*职务/联系电话/是否内线/礼品备注/来源/操作),OCR/批量导入按钮划出 +- `a4-5-1_联系人列表_列表视图_.txt` / `a4-5-1_联系人列表_分屏视图_.txt` — 顶级联系人菜单 +- `a4-5-2_新增联系人.txt` / `a4-5-3_编辑联系人.txt` — 独立联系人 CRUD +- `a4-5-4_联系人详情_联系人信息_.txt` / `a4-5-5_联系人详情_联系人信息_.txt` — 联系人详情 +- `a4-5-5_联系人详情_操作日志_.txt` / `a4-5-6_联系人详情_操作日志_.txt` — 联系人操作日志 +- `a4-3-4_添加联系人.txt` — 客户下快速添加联系人 +- `a4-4-2_客户详情_联系人_.txt` — 客户详情联系人页签 +- `.scratch/opp-customer-dependency/商机模块前置客户接口依赖分析报告.md` — 商机硬依赖清单 + +## 已知字段线索 + +- **联系人**(必填)— 姓名。 +- **职务**(必填)— 见 `a4-3-3-1.txt` 底部「职务 - 搜索二级联动下拉框」需求:**图谱划出但存储字段留占位**:`job_title_name`(文本必填) + `job_title_id`(标准职务id可空) + `job_title_category`(类别可空) + `job_title_level`(层级 int 可空)。自定义职务时后三列空。 +- **联系电话** — 手机号格式;**全库按电话查重**:新增/编辑时电话完全相同禁止创建;同表格内不同行电话相同禁止提交。 +- **是否内线** — 布尔。 +- **是否关键联系人** — 布尔(原型有)。 +- **礼品备注** — 文本。 +- **来源** — 字典 `contact_source`:组会/组局/转介绍/其他。 +- **归属客户** — `customer_id` NOT NULL(无孤立联系人)。 +- **系统字段** — 创建人/时间、修改人/时间。 + +## 商机侧硬依赖(对齐 opp-customer-dependency P0/P1) + +| 优先级 | 接口 | 商机侧用途 | +|---|---|---| +| P0 | `POST /api/customer/search` | 商机新增关联客户下拉数据源 | +| P0 | `GET /api/customer/{id}/contacts` | 商机字段17按客户筛选联系人 | +| P0 | `GET /api/customer/{id}` | 商机编辑回显客户带出 | +| P1 | `GET /api/customer/contact/search` | 商机字段13全局搜联系人+带出所属公司 | +| P1 | `POST /api/customer/quick-create` | 商机弹窗「+快速创建客户」入口 | + +**本票产出**:以上契约签名 + 请求/响应 DTO(复用已有的分析报告,把它 promote 成正式契约稿)。 + +## 待拍板点 + +1. **联系人权限模型**:明说「继承客户团队权限」——本票落成契约:无独立 `@DataScope` 注解,服务层显式按 customer 校验(对客户有读权限即对全部联系人有读权限)。 +2. **联系人删除**:软删还是硬删?→ 推荐软删(联系人可能被商机/项目引用做快照);主表加 `deleted` 位。 +3. **联系人电话唯一 vs 允许一号多人**:原型「联系电话完全相同禁止新建」听起来是全库唯一——但同一联系人可能有座机 vs 手机?→ 拍板:**仅手机号做唯一约束**,座机不查重;或直接单一 `phone` 列全库唯一,用户共号自己处理。先按后者简化。 +4. **快速创建客户 `POST /api/customer/quick-create`**:字段集是**新增客户表单的必填最小子集**?还是就用完整表单?→ 推荐最小集(客户名称/客户类型/所属地区/行业/星级/关系星级)+ 服务端默认(销售负责人=当前用户/is_child=否)。 +5. **联系人的操作日志**:单独一张 `customer_contact_oplog` 还是并入客户 oplog(票 07)用 `biz_type=CONTACT`?→ 推荐后者,参商机 oplog 口径。 +6. **人脉关系单位** 与联系人是独立集合,仅是标签(非联系人子表)——归客户主表 JSON/子表(票 02 决定)。 + +## Answer + +_(待 resolve)_ diff --git a/.scratch/customer-module/issues/07-detail-follow-oplog.md b/.scratch/customer-module/issues/07-detail-follow-oplog.md new file mode 100644 index 0000000..6d85522 --- /dev/null +++ b/.scratch/customer-module/issues/07-detail-follow-oplog.md @@ -0,0 +1,53 @@ +# 07 — 客户详情 8 页签 + 跟进记录 + 操作日志 + +Type: research +Status: open +Blocked by: 02, 05 + +## 问题 + +定客户详情页公共头部 + 8 页签数据源、跟进记录 `customer_follow` 子表、操作日志 `customer_oplog` 子表(字段级审计口径,对称商机 oplog 票 09)。 + +## 一手证据(蓝湖缓存 txt) + +- `a4-4-1_客户详情_客户信息_.txt` — 公共头部 + 客户信息页签 + 权限/敏感信息/加载/异常规则(**这是详情页的顶层 spec,务必细读**) +- `a4-4-2_客户详情_联系人_.txt` — 联系人页签(复用票 06 数据源) +- `a4-4-3_客户详情_跟进记录_.txt` — 跟进记录页签 +- `a4-4-4_客户详情_关联商机_.txt` — 关联商机页签(读 crm-opportunity ✅ 已建) +- `a4-4-5_客户详情_关联项目_.txt` — 关联项目页签(**读 A5 未建 → 划出本图**,页签保留骨架显"—") +- `a4-4-6_客户详情_团队成员_.txt` / `a4-4-7_客户详情_团队成员_.txt` — 团队成员页签 +- `a4-4-6_客户详情_战略协议_.txt` — 战略协议页签(战略协议子域划出 → 本图页签保留骨架显"—") +- `a4-4-1_客户详情_已归档客户_.txt` / `a4-4-1_客户详情_已被合并客户_.txt` — 归档/合并态的详情皮肤 +- `a4-4-7_客户详情_操作日志_.txt` / `a4-4-8_客户详情_操作日志_.txt` — 操作日志页签 + +## 8 页签清单 + +1. **客户信息** — 主表字段展开(票 02 字段集),支持折叠区块,「编辑客户信息」跳编辑页;「工商信息更新」→ 企查查回填 seam(票 04 复用)。 +2. **联系人** — 票 06 数据源,`GET /api/customer/{id}/contacts`。 +3. **跟进记录** — 本票新建 `customer_follow` 子表。 +4. **关联商机** — 反查 crm-opportunity(`GET /api/opportunity/by-customer/{customerId}` 需商机侧新增或本票新增反查接口)。 +5. **关联项目** — 划出(A5 未建),页签骨架保留。 +6. **战略协议** — 划出(战略协议子域),页签骨架保留。 +7. **团队成员** — 显示销售负责人 + 协同人;领导可维护。 +8. **操作日志** — 本票新建 `customer_oplog` 子表。 + +## 已知事实 + +- **公共头部**:客户阶段(潜在/重潜/已成交)/客户星级/销售负责人+部门/战略协议等级(快照)/已成交VIP等级/客户档案状态/最近跟进摘要/**汇总卡片**(已中标项目总额=A5读、跟进中方案预估总额=方案卡读、进行中商机总额=crm-opportunity读)/关联业务计数/快捷操作(关注/标记重点客户/跟进/添加联系人/新增商机/新增项目/新增战略协议/工商信息更新)。 +- **敏感信息**:完整/脱敏/无权限三档;脱敏对电话/金额;完整值只当前页面会话生效,刷新恢复脱敏;每次完整查看记录敏感信息查询日志。 +- **加载/异常**:局部区域独立加载/失败/重试;关联模块接口失败只影响该区域,客户基本信息继续展示。 +- **跟进记录**:跟进方式必选(字典 `follow_way` 复用商机)、跟进内容必填(1-500)、下次跟进时间(非必填、不得早于当前);本期**不做**跟进附件;提交后刷新最近跟进+跟进记录页签;商机行也可点跟进复用同一弹窗,自动关联当前客户+该商机(即 `customer_follow.opportunity_id` 可选)。 +- **操作日志**(口径纠偏,对称商机票 09):**字段级审计**——实体(customer/contact/follow/team)/字段/旧值/新值/操作人(系统 vs 人工)/操作时间/来源;**非**动作枚举模型。归属变更(领取/分配/抛公海/交割/归档)/阶段变更/工商信息更新/编辑保存/联系人增删改/团队成员变更/敏感信息查询/仍要创建重复客户/相似客户仍创建 均写日志;未保存/取消/校验失败不写。日志脱敏电话/金额;工商查询 raw / OCR 图片不写日志。默认全记 + 短黑名单排除(非白名单)。 + +## 待拍板点 + +1. **`customer_follow` 表字段**:id/customer_id/opportunity_id(可选)/follow_way/content/next_follow_time/creator/create_time;无草稿态(对称商机票 09);无附件本期。 +2. **`customer_oplog` 表字段**:id/biz_type(customer/contact/follow/team/company_info)/biz_id/entity_field/old_value/new_value/operator_user_id(null=系统)/operator_source/create_time;金额/电话脱敏存原值再回显时脱敏 or 存已脱敏值?→ 推荐存原值+回显时按查看者权限脱敏。 +3. **关联商机反查接口**:本模块调 crm-opportunity 新增 `list-by-customer` 还是 crm-opportunity 直接暴露?→ 推荐 crm-opportunity 侧加,本模块调(对称票 09 的模块边界)。 +4. **公共头部汇总金额脱敏**:无权限=`***万元`;无数据=`0.00万元`;接口失败=`--`+重试(原型明说)。 +5. **关注 / 标记重点客户 = 用户维度个人状态**(对称商机票 14 followed)——本表建 `user_customer_focus`(user_id, customer_id, is_starred)。 +6. **归档/合并态详情皮肤**:只读,隐藏编辑/新增入口;仍展示历史数据。合并态划出(合并不做),归档态本图做。 + +## Answer + +_(待 resolve)_ diff --git a/.scratch/customer-module/issues/08-transfer.md b/.scratch/customer-module/issues/08-transfer.md new file mode 100644 index 0000000..94fa928 --- /dev/null +++ b/.scratch/customer-module/issues/08-transfer.md @@ -0,0 +1,47 @@ +# 08 — 客户交割(跨模块同步商机/项目负责人) + +Type: research +Status: open +Blocked by: 02, 03 + +## 问题 + +定客户交割全流程:发起交接 → 客户分配 → 交接记录 + 详情。核心难点是**跨模块负责人同步变更事务**(客户+关联商机+关联项目一起换主,要么全成要么全不成)。 + +## 一手证据(蓝湖缓存 txt) + +- `a4-7-1_客户交割_发起交接_.txt` — 发起交接页(三 tab 之首)+ 交接原因/预览/确认弹窗 + **公共规则/字段规则/客户及关联业务变更/加载与操作反馈**(关键 spec 段) +- `a4-7-2_客户交割_客户分配_.txt` — 客户分配 tab(接收总监分配到具体销售) +- `a4-7-3_客户交割_交接记录_.txt` — 交接记录 tab +- `a4-7-4_交接记录详情.txt` — 交接记录详情 + +## 已知事实(关键提炼) + +- **三 tab**:发起交接 / 客户分配 / 交接记录(+ 记录详情)。 +- **交接原因**:员工离职 / 岗位调动 / 区域调整(单选必选)。 +- **发起人**:仅销售**本人**可发起本人名下客户交接(不允许主管/管理员代发起)。 +- **接收人**:仅交接人员的**直属销售总监**;员工离职时系统自动定唯一总监,岗位调动/区域调整时手选启用的直属总监。 +- **可交接客户范围**:交接人员**当前为唯一负责人**的**未删除、未进入公海**客户;仅协同人身份的不纳入。 +- **员工离职**:必须交接**全部可交接客户**(无勾选框);**岗位调动/区域调整**:至少勾选1个,跨分页勾选。 +- **发起交接后同步变更**:客户负责人 → 接收总监;**该客户全部关联商机 + 项目负责人同步变更为同一接收人**;协同人保留;商机/项目其他数据不变。 +- **原子性**:客户+商机+项目负责人**全部成功**才算本客户处理成功;不允许出现「客户变了但关联商机未变」的中间态;任一失败整批不生效、不生成正式交接记录、当前表单/搜索条件/勾选保留。 +- **客户分配 tab**:接收总监按交接批次把客户分配给具体销售(单条/批量);分配对象排除交接来源人本人;同步变更客户+关联商机+项目负责人;成功后原负责人(接收总监)移出团队。 +- **未完成交接约束**:同一交接人员有未完成交接记录时不允许再次发起。 +- **交接记录**:唯一交接编号;初始分配状态=待分配,进度=0/N;随分配推进;跟操作日志区分(跨模块自动变更的操作人显示"系统"+注明交接编号)。 + +## 待拍板点 + +1. **跨模块负责人同步的事务边界**: + - **推荐 A(同步事务)**:本地事务包含 customer 表 + 调用 crm-opportunity 的 `batchTransferOwner(oppIds, newOwner)` + 调用 crm-project 的同名接口;任一失败整批回滚。但 crm-project 未建 → 本图只做客户+商机两侧同步,项目侧留 seam(`ProjectOwnerTransferPort`)。 + - **推荐 B(异步 saga)**:客户先变,商机/项目通过消息异步跟;失败重试;对账。 + - 我倾向 **A(同步事务)**:原型明说「不允许出现中间态」→ saga 语义不匹配。同库单体阶段跨模块事务可行(同一 DataSource)。 +2. **`customer_transfer` 表结构**:id/transfer_no/handover_user_id/receiver_dean_id/reason(enum)/remark/status(待分配/进行中/已完成)/total_count/assigned_count/create_time/finish_time。 +3. **`customer_transfer_item` 子表**:id/transfer_id/customer_id/original_owner/new_owner(初始=接收总监)/final_assignee(分配后=最终销售)/status(待分配/已分配/失败)/fail_reason。 +4. **「直属销售总监」怎么定**:读 crm-auth 的 SysDept 树 + 角色配置?→ 需与 crm-auth 现有事实核对,可能加个 `SysUser.superior_user_id` 字段(多角色时用「主直属」)。**本票关键 seam**。 +5. **未完成交接锁**:数据层用 `handover_user_id` 上有一条 status ∈ (待分配/进行中) 的记录做互斥;发起前查一次。 +6. **跳过与部分成功**:客户分配 tab 按客户逐条校验,任一失败不影响其他客户;返回 Toast 成功/失败数 + 逐条失败原因(部分失败不整体回滚)——**与发起交接的强原子性不同**(发起交接=全批同一事务,分配=按客户独立事务)。 +7. **操作日志**:跨模块自动变更操作人显示「系统」+ 注明交接编号(票 07 oplog 字段 `operator_source` 支持 "system+transferNo=XXX")。 + +## Answer + +_(待 resolve)_ diff --git a/.scratch/customer-module/issues/09-import.md b/.scratch/customer-module/issues/09-import.md new file mode 100644 index 0000000..6a88465 --- /dev/null +++ b/.scratch/customer-module/issues/09-import.md @@ -0,0 +1,36 @@ +# 09 — 客户导入 + 联系人快速新增(OCR 划出) + +Type: research +Status: open +Blocked by: 02 + +## 问题 + +定客户 Excel 批量导入流程(模板下载 / 上传解析 / 校验 / 结果反馈)。**OCR 快捷新增划出**(chart D2),本图只做 Excel 导入。 + +## 一手证据(蓝湖缓存 txt) + +- `a4-3-2_客户导入.txt` — 客户导入主页 +- `a4-3-2_新增客户信息.txt` — 与新增页同族(同 a4-3-2 前缀,可能是导入后进入新增回显) +- `a4-3-5_客户导入.txt` / `a4-3-6_客户导入.txt` — 导入步骤/结果页 +- `a4-3-3-3______.txt` / `a4-3-3-4_ocr____.txt` / `a4-3-5_ocr____.txt` — OCR 相关(划出,不读) + +## 已知事实(待原型细读补充) + +- 模板下载 → 用户填 → 上传 → 后台异步解析 → 结果表(成功/失败逐行)。 +- 复用票 04 查重口径:信用代码唯一硬拦、名称相似只提示不阻断(导入场景可能改为「相似=跳过」或「相似=创建但标记」)。 +- 复用票 02 字段清单:必填校验(客户名称/客户类型/所属地区/行业/星级/关系星级)。 +- 销售负责人:允许在 Excel 里指定 or 默认导入者。 + +## 待拍板点 + +1. **导入策略**:全成才提交(整体事务)vs 逐行独立事务(部分成功)?→ 推荐**逐行独立**(对称一般 CRM 导入的常识 + 商机模块导入若已建可参照)。 +2. **异步 vs 同步**:批量大(>500)走异步任务 + 轮询进度 vs 同步阻塞?→ 推荐**同步小批 + 异步大批**双通道,阈值可配。 +3. **相似客户在导入场景的处理**:跳过 / 创建但标记 / 报错 → 拍板。 +4. **导入历史记录表** `customer_import_batch`:批次号 / 上传人 / 上传时间 / 总数 / 成功数 / 失败数 / 状态 / 失败明细文件 url。 +5. **模板字段清单**:Excel 列 = 客户主表可导入字段子集(工商信息、附件、人脉关系单位标签集怎么表达?→ 标签用「;」分隔)。 +6. **联系人一起导入**:Excel 是否含联系人 sheet?还是分两批?→ 推荐只导客户主表,联系人另导(联系人导入本图划出,见票 06)。 + +## Answer + +_(待 resolve)_ diff --git a/.scratch/customer-module/issues/10-overdue-reminder-rule.md b/.scratch/customer-module/issues/10-overdue-reminder-rule.md new file mode 100644 index 0000000..2a8522f --- /dev/null +++ b/.scratch/customer-module/issues/10-overdue-reminder-rule.md @@ -0,0 +1,42 @@ +# 10 — 客户规则族「超期未跟进提醒」(crm-rule 全局单例) + +Type: research +Status: open +Blocked by: + +## 问题 + +在 `crm-rule` 落客户规则族第三个 tab(线索/商机/客户并列),本图**只做「超期未跟进提醒」**一项,**全局单例配置**(不套 V-CONFIG 版本化,chart D4)。「客户查重设置」不做(chart D6)。 + +## 一手证据(蓝湖缓存 txt) + +- `a7-3-3-1_客户管理设置_超期未跟进提醒_.txt` — 全部 spec 都在这里 +- `a7-3-3-2_客户管理设置_客户查重设置_.txt` — **划出不读**(查重规则写死在新增流程,票 04) + +## 已知事实(原型明文) + +- **全局单例**:非按阶段/按部门分别配,仅后台管理面板可见。 +- **顶部总开关**:控制整个超期未跟进提醒功能启用/禁用。 +- **两配置项**: + - **首次触发时间**:客户超过 N 天未跟进→触发首次提醒(默认 30 天);含独立启用开关。 + - **二次提醒间隔时间**:首次后每隔 M 天再提醒(默认 7 天);含独立启用开关。 +- **提醒推送渠道**:钉钉推送 + 应用内通知(对称商机票 05 的通知落点)。 +- **交互**:保存/取消(取消恢复上次保存的配置)。 + +## 待拍板点 + +1. **数据模型**: + - **推荐 A(单行配置表)** `customer_reminder_rule`(id=1 fixed / master_enabled / first_trigger_enabled / first_trigger_days / second_interval_enabled / second_interval_days / updater / update_time)。 + - **推荐 B(键值配置)** 复用某个 platform_config 表按 key 存。 + - 我倾向 **A**(单行表,与商机 V-CONFIG 表族对称位置摆,只是不做版本,操作更直观)。 +2. **触发口径**:「超过 N 天未跟进」=`now - last_valid_follow_time ≥ N`;`last_valid_follow_time` = 客户下最新一条 `customer_follow.create_time`(或字段编辑时间?→ 推荐**仅跟进记录**驱动,字段编辑不算——对齐商机票 05 的 last_valid_follow_time 但商机含字段编辑;这里更保守)。 +3. **计时锚点写入**:`customer.last_valid_follow_time` 冗余到主表(新写跟进时刷新);对称商机主表 `last_valid_follow_time`。→ **回填票 02** 加此字段。 +4. **调度**:定时任务(Quartz / Spring Schedule)每天跑一次;命中的客户写「待发通知」表让通知模块消费(对称商机票 05 的 remind 待发通知)。 +5. **通知去重**:一个客户当天只触发一次(首次或二次,取其一)。 +6. **无 owner 的客户**(在公海)**不参与**超期提醒(对谁提醒?→ 无接收人)。 +7. **禁用后**:定时任务扫到总开关=禁用 → 跳过整轮;启用后从下一轮开始。 +8. **规则生效时机**:chart Q4-补 用户特意强调「规则在客户新增时生效」——我的解读是**新增客户时就把 `last_valid_follow_time` 初始化为 create_time**(客户创建后开始计时,30 天没跟进就首次提醒)。**待和用户确认**这个解读——见 grill 挂号。 + +## Answer + +_(待 resolve)_ diff --git a/.scratch/customer-module/issues/11-saved-view-integration.md b/.scratch/customer-module/issues/11-saved-view-integration.md new file mode 100644 index 0000000..c60fc62 --- /dev/null +++ b/.scratch/customer-module/issues/11-saved-view-integration.md @@ -0,0 +1,37 @@ +# 11 — 自定义视图接入 crm-preference(复用商机 saved-view 平台能力) + +Type: task +Status: open +Blocked by: 03 + +## 目标 + +客户模块的三 workspace(客户总览 / 我的客户 / 客户公海)复用 crm-preference 已建的 `user_saved_view` 平台能力,按接入手册三步走:约定 scope_key + 建 `CustomerSavedViewFilter` + PageParam 加 savedViewId。**平台能力不重写**,商机图票 14 已建。 + +## 已知事实 + +- **平台能力已就绪**(商机图票 14):`user_saved_view` 实体 + `SavedViewService` list/save/delete/setDefault + Controller `/api/preference/view` + 六操作符枚举 `SavedViewOperator`(包含/不包含/属于任一/不属于任一/早于/晚于 等)+ 按 `scope_key` 分组、crm-preference 不校验字段。 +- **商机侧接线样本**:`OpportunitySavedViewFilter`(filter_json → wrapper,字段池白名单 = 票 10 可筛选列,未知字段/操作符跳过)+ `OpportunityPageParam.savedViewId` + ViewQueryImpl 叠加。**本票直接参此样本改客户版**(rule of three,商机是样本1,客户是样本2;样本3出现前不抽共享翻译器)。 +- **原型明说客户支持自定义视图**(`a4-1-1_客户公海列表.txt` / `a4-2-1_客户总览列表.txt` / `a4-3-1_我的客户列表.txt` 三处均有「常用检索 / 自定义检索 / 编辑检索 / 重命名 / 删除」+ 保存对话框条件列表)。 + +## 接入手册三步 + +1. **约定 scope_key**: + - 客户总览 = `customer.overview` + - 我的客户 = `customer.mine` + - 客户公海 = `customer.pool` + - (公海双视角=普通销售/领导 → 是否分两 scope 需拍板;推荐**共用 `customer.pool`**,因为字段池相同,视角只影响行内操作而非筛选。) +2. **建 `CustomerSavedViewFilter`**:filter_json 条件翻译成 MyBatis-Plus wrapper;字段池白名单 = 票 03 定的可筛选列(客户名称/客户类型/行业/客户阶段/星级/关系星级/战略等级/地区/最近跟进时间/进入公海时间 等);未知字段/操作符跳过。 +3. **PageParam 加 `savedViewId`**:客户三 workspace 的 PageParam 均加此字段;ViewQueryImpl 里叠加 filter。 + +## 待拍板点 + +1. **scope_key 数量**:3 个还是把公海/总览合成一个?→ 推荐 3 个(保存的检索按语境分组,用户体验更清晰)。 +2. **公海双视角是否分 scope**:见上,推荐共用。 +3. **排序字段池**:默认可排序 = 创建时间 / 最近跟进时间 / 进入公海时间;其他字段(如客户名称)排不排?→ 参商机的默认口径。 +4. **默认视图**:每个 scope 一个 isDefault 视图,crm-preference 已实现互斥。前端进入 workspace 先调 `/view/list` 取 isDefault 再带 viewId 调 `/page`(对称商机)。 +5. **测试**:本票不写代码,但 spec 需列出接入验收清单(scope_key 唯一/filter 白名单/未知字段跳过/默认视图互斥/端到端 saved-view 可用)。 + +## Answer + +_(待 resolve)_ diff --git a/.scratch/customer-module/map.md b/.scratch/customer-module/map.md new file mode 100644 index 0000000..0a7f78a --- /dev/null +++ b/.scratch/customer-module/map.md @@ -0,0 +1,78 @@ +# Map: 客户模块后端 spec(crm-customer / crm-rule 客户规则) + +`wayfinder:map` + +## Destination + +一份可交接的后端规格说明书(spec),描述"客户(Customer)"域的后端设计,交给实现方(人或 agent)落地——对称商机地图(`.scratch/opportunity-module/`)的产出形态:**spec-only(只出决策 + 契约 + 领域模型,不写实现代码)**,做完后进 `/implement` 阶段。 + +- **`crm-customer`(新建模块)** — 客户业务域:客户主表 + 归属流转(有主/公海 + 交割换主)+ 客户阶段(潜在→重潜→已成交,只前进)+ 三 workspace(客户总览 / 我的客户 / 客户公海)+ 内置视图 + 自定义视图(复用 crm-preference)+ 新增/编辑(含查重校验 + 企查查工商回填 seam)+ 客户导入 + 客户详情 8 页签 + 跟进记录 + 操作日志 + 客户交割(跨模块同步商机/项目负责人)+ 联系人 CRUD + 全局搜索。 +- **`crm-rule`(客户规则族,新增第三族)** — 后台"业务规则"下线索/商机/客户三族并列。客户规则本图**只做「超期未跟进提醒」**(全局单例配置,非版本化)。 + +### 原型出处(蓝湖缓存,已本地提取) + +- 主文档 `bade4454-52aa-44db-8ba2-dec594732ecb`(`【原型】itc信息化业务中台web端 V1.0`)。 +- 截图/文本缓存目录:`D:\code\crm-需求梳理\lanhu-mcp\data\axure_extract_bade4454_screenshots\`(每页 4 文件:`.png`/`.txt`/`_annotations.json`/`_styles.json`;`.txt` 为主)。 +- A4 客户模块页族:`a4-1 客户公海` / `a4-2 客户总览` / `a4-3 我的客户+新增+导入+OCR` / `a4-4 客户详情(8页签)` / `a4-5 联系人` / `a4-6 客户查重+合并` / `a4-7 客户交割`。规则侧 `a7-3-3 客户管理设置`。 +- **前置依赖分析已存在**:`.scratch/opp-customer-dependency/商机模块前置客户接口依赖分析报告.md`(商机侧硬依赖的客户接口:`POST /api/customer/search` / `GET /api/customer/{id}/contacts` / `GET /api/customer/{id}` 等)——客户模块的一个已知锚点切片。 + +## Decisions so far + + + +- **[D1] 目的地形态 = spec-only,对称商机图** — 只产出决策/契约/领域模型,不写实现代码;做完进 /implement。(chart grill Q1) + +- **[D2] 作用域三档划分(chart grill Q2 + Q4 修正)**: + - **① 本图覆盖**:客户核心(实体+查重校验+公海+总览+我的客户+三视图+新增/编辑+导入+详情8页签(关联商机读 crm-opportunity✅)+跟进+操作日志)、联系人(CRUD+全局搜索)、客户交割、客户规则族「超期未跟进提醒」。 + - **② 依赖未建 A5 项目模块 → 留 seam**:客户阶段「已成交客户」(由项目中标驱动)本图只做到「潜在→重潜」;「关联项目」详情页签划出。 + - **③ 自成子域/复杂特性 → 划出本图**(Not-yet / Out-of-scope 记一笔):战略协议(A4-4-9/10)、联系人图谱(职务二级联动+人脉连线)、**客户查重列表+客户合并(A4-6,grill Q4 拍板不做)**、企查查/OCR 外部服务(只定契约 seam,不深挖服务内部;OCR 快捷新增划出)。 + +- **[D3] 客户双轴建模(chart grill Q3)** — 对称商机双轴但两轴都更简单: + - **轴1 归属**:**不做显式 tinyint 状态机**,改用两个正交维度:① `owner_user_id`+`owner_dept_id`(快照) 是否为空 = 有主/在公海(公海=owner 空的逻辑视图,对称商机公海);② `archive_status`(有效1/已归档2/已被合并3) 独立字段,归档/合并是它的迁移。迁移动作 = 领取/分配/抛公海/交割(换主)/归档。 + - **轴2 阶段**:主表 `customer_stage`(潜在1/重潜2/已成交3) 单字段,**只增不减、不可配置**(硬编码三态,非商机版本化模板),由外部成功结果驱动。本图**只做潜在→重潜**(重潜由方案卡报备驱动,crm-opportunity 已建);**已成交留 seam** 给 A5。 + +- **[D4] 客户规则落 crm-rule + 全局单例形态(chart grill Q4)** — 客户规则族作 crm-rule 第三族(线索/商机/客户并列)。本图**只做「超期未跟进提醒」**(全局单例配置:总开关 + 首次触发天数(默认30) + 二次提醒间隔(默认7);定时任务 + 钉钉/应用内通知),**不套 V-CONFIG 版本化**(区别于商机规则)。**「客户查重设置」不做**(A4-6 查重执行侧不做,查重口径写死在新增流程)。 + +- **[D5] 联系人建模(chart grill Q5)** — **联系人 = `crm-customer` 下独立实体表 `customer_contact`**(不单开 crm-contact 模块);每个联系人 `customer_id` 必属一客户(无孤立),权限继承所属客户(联系人无独立 ACL)。**本图做**:联系人 CRUD(列表/详情/新增/编辑)+ 随客户新增内嵌明细 + 全局搜索接口(商机硬依赖)+ 联系人电话查重。**本图不做**:职务二级联动图谱、人脉关系连线、OCR 快捷新增、联系人导入。职务字段先存「职务名称文本 + 可空 标准职务id/类别/层级」三列占位,不实现联动选择器逻辑。 + +- **[D6] 新增客户查重口径(chart grill Q4-补)** — 新增/编辑客户的**查重校验做**、内建新增流程:① 统一社会信用代码全局唯一(硬拦),② 客户名称相似→保存时确认弹窗(可"仍要创建")。查重阈值/口径**写死**,不做后台可配。A4-6 独立查重页 + 客户合并**不做**。 + +## Not yet specified + + + +| 票 | 主题 | 依赖 | 前沿位置 | +|---|---|---|---| +| 01 | 客户域领域词汇 + CONTEXT.md 骨架 (task) | — | ✅ 可开工(无依赖) | +| 02 | **客户主表字段清单** — 扇出最广,多票回填 | — | ✅ 可开工(无依赖) | +| 03 | 归属流转 + 三 workspace + 内置视图查询口径 | 02 | 02 done 后 | +| 04 | 新增查重校验 + 企查查工商回填 seam | 02 | 02 done 后 | +| 05 | 客户阶段(潜在→重潜→已成交,只前进;本图只做前两态) | 02 | 02 done 后 | +| 06 | 联系人 CRUD + 全局搜索 + 商机侧硬依赖接口 | 02 | 02 done 后 | +| 07 | 客户详情 8 页签 + 跟进记录 + 操作日志 | 02, 05 | 02+05 done 后 | +| 08 | 客户交割(跨模块同步商机/项目负责人事务) | 02, 03 | 02+03 done 后 | +| 09 | 客户导入(Excel,OCR 划出) | 02 | 02 done 后 | +| 10 | 客户规则族「超期未跟进提醒」(crm-rule 全局单例) | — | ✅ 可开工(无依赖) | +| 11 | 自定义视图接入 crm-preference(复用商机 saved-view) | 03 | 03 done 后(task) | + +**Frontier(当下可并行开工的票)**:`01`(task,建模块+CONTEXT 骨架)、`02`(主表,扇出最广,优先起 research)、`10`(规则单例,无依赖可并行)。02 resolve 后 03/04/05/06/09 集体解冻,再往下推。 + +**已知 grill 挂号**(不阻塞开票,各票 resolve 时问用户拍板): +- **票 04**:客户名称相似查重的算法/阈值(Trigram / MySQL 全文 / 编辑距离…) +- **票 05**:重潜的触发点到底是「方案卡提交(状态2)」还是「方案卡推送/报备成功(状态3)」? +- **票 08**:直属销售总监怎么定(是否在 SysUser 加 `superior_user_id`)? +- **票 09**:Excel 导入的相似客户处理策略(跳过/创建带标/报错) +- **票 10**:"规则在客户新增时生效"的确认解读——新增客户时初始化 `last_valid_follow_time = create_time`,30 天没跟进首次提醒(本条已在 grill Q4-补 与用户初步对齐,票 resolve 时最终确认) + +## Out of scope + + + +- **战略协议**(A4-4-9/10 等级/新增/编辑)— 独立子域,另 effort。 +- **联系人图谱**(职务二级联动树 + 人脉关系连线 + 层级自动生成)— 复杂可视化,另 effort;本图职务只留占位列。 +- **客户查重列表 + 客户合并**(A4-6-1/2/3)— grill Q4 拍板不做;查重口径写死在新增流程。 +- **OCR 快捷新增**(联系人/客户 OCR 识别)— 外部服务,划出;只在新增流程留 seam。 +- **企查查等工商数据服务内部**— 只定调用契约 seam(调用点/回填范围/异常/精确查重触发),不深挖服务实现。 +- **客户阶段「已成交客户」**(由 A5 项目首次中标驱动)— 留 seam,本图只做潜在→重潜。 +- **「关联项目」详情页签**(读 A5 项目模块)— A5 未建,划出。 +- **联系人导入**— 划出(客户导入本图做,联系人导入随图谱 effort)。 diff --git a/.scratch/opp-customer-dependency/demo-addcustomer.js b/.scratch/opp-customer-dependency/demo-addcustomer.js new file mode 100644 index 0000000..846b3bf --- /dev/null +++ b/.scratch/opp-customer-dependency/demo-addcustomer.js @@ -0,0 +1,50 @@ +/* ---------- 添加关联客户(票04 客户信息区联调:类型筛选/搜索/联系人级联/角色/主要) ---------- */ +let _custPicked = null; +async function dlgAddCustomer() { + _custPicked = null; + openDlg('添加关联客户', ` + ${fld('客户类型(筛选)', ``)} + ${fld('关联客户 *', `
+
+
未选择客户
`)} + ${fld('客户联系人(选客户后级联)', ``)} + ${fld('客户角色 *', ``)} + ${fld('是否主要客户 *', '')} +
+
类型/角色下拉取自 dict enabled-list(customer_type/customer_role);搜索走 POST /api/opportunity/customer/search;联系人级联走 GET /api/opportunity/customer/contacts?customerId=(A4 前为降级 stub,返回空属正常);提交走 POST /api/opportunity/customer/add
`, + [{ t: '确定关联', cls: 'ok', fn: doAddCustomer }]); +} +async function doCustSearch() { + const box = document.getElementById('custResult'); + box.innerHTML = '搜索中…'; + const d = await tryApi('customer/search', () => api('POST', '/api/opportunity/customer/search', + { form: { oppId: S.oppId, keyword: v('custKw') || '', pageNum: 1, pageSize: 10 } })); + const rows = (d && (d.content || d.records)) || []; + box.innerHTML = rows.map(c => + `
· ${esc(c.customerName || c.customerId)} id=${esc(c.customerId)}
`).join('') + || '
无匹配客户
'; +} +async function pickCust(cid, cname) { + _custPicked = { customerId: cid, customerName: cname }; + document.getElementById('custPicked').innerHTML = `已选:${esc(cname)}(id=${esc(cid)})`; + // 级联刷新客户联系人(切换客户 → 重新拉取 → 清空重选) + const sel = document.getElementById('custContactSel'); + sel.innerHTML = ''; + const contacts = await tryApi('customer/contacts', () => api('GET', '/api/opportunity/customer/contacts', { params: { customerId: cid } }), true) || []; + sel.innerHTML = '' + contacts.map(ct => + ``).join('') + + (contacts.length ? '' : ''); + if (!contacts.length) sel.insertAdjacentHTML('beforeend', ''); +} +async function doAddCustomer() { + const err = document.getElementById('addCustErr'); + if (!_custPicked) { err.innerHTML = '
请先搜索并选择关联客户
'; return; } + if (!v('customerRole')) { err.innerHTML = '
客户角色必选
'; return; } + const form = { oppId: S.oppId, customerId: _custPicked.customerId, + customerNameSnapshot: _custPicked.customerName, customerRole: v('customerRole'), + isPrimaryIntended: v('isPrimaryIntended') }; + const ok = await okApi('customer/add', () => api('POST', '/api/opportunity/customer/add', { form })); + if (ok) { toast('关联客户成功', 'ok'); closeDlg(); loadSub('customer'); } +} + +/* ---------- 新建商机(flat create;D-14 后六必填=名称/来源/招标形式/省/市/属地) ---------- */ diff --git a/.scratch/opp-customer-dependency/demo04-1-customer-subtab.png b/.scratch/opp-customer-dependency/demo04-1-customer-subtab.png new file mode 100644 index 0000000000000000000000000000000000000000..4ea7cca07def33f715ab20db85a1fcc1a5a344c9 GIT binary patch literal 52977 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

({%vCr_&_W`xi|jmTkA_$cK2;VI)U8fq?6GcS|X zOf%rLK|BAb_7W8tIr-!&Gy8kVYua4YA&S!52?2qySB(an41|JJ1(?M$Q++Cq4nK2) zSy-g{t58~}&Cg@aBkdr?Vk}F*M|i-uREdnnNJZriG{|ctvypum6J_Z5`1%^F?1DG+ zyxN3Yhq!ncvjBAkdsfQ&-puDKA55=Y3X1kPSd>Gf5QXv=uyIBn!y_PkC=#`tj1s`W zSE$3TqWqEN=^JF6>b3%=5LF?G8W`lpjB?P>jH#YDr1%5<7JyHZ)-4;*?T=qNm>OjA z@*|B3`@e{B*q(Lt7Td?&=HM+11(@~l*OIp#$NPqXoDTINUIl+Y(*RL-g8dK68a0-+ zQQK*0Zxd|L7QwvN5?}6o&}>IoIVg|62*{D0nVo`XE#tlw-tDskegPI53NjuVo;hyY z)yH-YLn|Ge*{3Ik7(q=7-%FJ6G%lKB*cQ1%-Y9=ieZQ}QjuH738TE{jR~xpEimYSf z(>@xY&O_%176k=GA{$vRwd*LYOrF=T&*b-w=bLM5J2|(evVeDma#P3*obya3WVK47v2c>bLTG^BAT+nIZ~vK?rQY5M-XSod6=_W&A}T7f{>U@ zcnucA-n9$}_&)Ma7=H&=flF{VQfqH~IWKKG79DMCSa-AIRs@sj>Q~3{JkuAYJMbPy z%V@~BkRIvi)X=su)sSdP(O{+!bao*#dMdg`@J6X>Uu+{y#3$!$;JL^8iz#KNrbbT9_SB*9pH z{5OvZPD-TGuku!NeI*K4H^4B1Zstn1_VkEi3|A1N=lvouwS_pT+IIYt!6434j&2p- zbzpb|!U-c0TvvJ1Dnam@QDF`EJB1LiZvIp$KJbjDQ z+3s+2eXS*+9|xmYz~y9m_TS-5G_7Db6QA$iN9K>w5DZP=V?o2iHc~azeV6aqReohL zH;iW<=?!4&vJGHwN=f4G!m{6(Z5d86pi`cUp8jjRGcqQL5O0OtUv`9lL%BZRwQe-U zKe9+l2>$26&gX5@w&o^h#Ax_$XO|j)N5qLHt^A)F-G<2w;r*CcO!2Xtbn)$qjUdIn8Pb1eG`$|4 zsW8qo0t8&PWrQ3o35GVO;*l;J_uh*`Ep-iD>;6(xvk3fDWSN$9nwRyjK z4up(oU3fxttj884(F50*T zf`6i$`c;$L>0lmUkd>gY^ZuMr9Pb^J1}Z`jgsTIjX@F`0OZHo7P*pGv{l_^2OK()< zZVFul2lwacxT7k>)&I^|5^PgL$8h-$obq|4r6bcm{w0kkeJLf77E34wY`gs7<8>$ns($k|5#Oc$|`lGBx zO^K{~XoHd-IQOiEwC6zOE^Ky8}qSO*Sq033sM=xSWIpCxER1)rIV!+S&mc zgtY-dSn0a>4Q{%Iv=9c?N7Ds?fOH0_22crdgw3*n80h<-AWH`pjVl)A1sGf(A zWJvAV;ek(437JrD*v^wdVk5{n}gtnT*{1JKQ0q(B+cZMFw1JNFS_b~Z< zeOmIz+nG;tc%GX?q9`3Thu0CM;mlq^8aRv#CT+t$_DSqQX|OHY0S$=-2I*vlzc3L5nj-4g#_ zE~9L{Wk9f~hz3a$C2Rr|@rP|l!QLXaq;coqlI7lVuY7RPgWMqUje;1=VV^ zvN}gUx4B@%9ru+h%LgSF1m-Gqb$0`?^lLDD_sdx@;@`&wCY*?q1*d?)U)TFl^$A@bdArza;PL`(Q=&LUt6EN4aRN;aKT#0I#kg~bL%b~tL>c3g48o;G0Q#!p2ivXf_0x&vglps8_ zLx0>yf#K=IvmNvjAcS!auo7@Tb^qR4;m;#=(0`o%ZsEVlRsdC($h}41eErQpmAs4# zkZ8Ww+%e?B?PF(U9S55F#RsR=&Ol&dSO*ckWj}3O=W-P?BP=X0)w3!rRq$T*V6hv4 zJBD4CN41aK|EHb<9&}%*_Y{iry^b~C{RGHJ2Mu9)1zO`-e*t(1s{a{n*~iMDbBs5n zs;vAlG44eT>Ye#FWMtY;)?7*$rmNh-ZLz~XXnrK0A`fi=Gas$`R2Cg~O$yaPfd|I( zxael204+g(HRx*Jg(Zr8BB#)c}`+05!z={C7%nuVsCdw8?ALGGK+pqcXUlwYCNT1wWU{7T)LP0@MFvY9m zU_v*3*1CQ4;fc!o5s-1=^k>5JMC#-ec^%HElZf9!0tmG?;H%rt>2B@2vI5ay25B>C zhor47Du-!qAei&cxi_-Le4 z99o{5y0jL~Pj23>r@@+t{BOwl2W;#86cu7PF105rbaa|$izFmh!nRPtE{R3~ z!hSrDajKP945q+>B>rNt>@#k0f9=lyj8oDql>7UAF%&XS0vJZX9!m8qgE+X~Ow}Z} zEQ}_<`zENn42WmIP^Nj0Lj)?+VfTX)?;EG*z&5_N32Mj3SGS3-`UUxRE-qaa!%a3< zHs{IS*l1>Y;^gIQZ5M$qbP02_qa7N zG~L@m{vrL(<8rCZMr(cMUmit6X48*UYTHheiAsd|7I=!SvfhQlIU@QntTKRMe4i*B zC16ZV=kKMK@p|2fNhGvC=hQbtt$ zzZGGIT$i8(%d{(C`n68y=l5+j$26<>SY(>GZc0^eh~MT>4+$^T{)Ztw!!^q}M=<^h z-yg1kVI-NyseX6JHp8sm6g!>Z1L!M2aM#p-DtRQY+~ZAk*a5*|vifHj)O}zar@)2} z`Hy@}en+|%&`cGdQN_Ge^KNPR^FuKw?ss{@>Zu=YB){X}TBlD`7s)^d9 zwZO_H>t#V5^|^gsI{#%UD%`_?8>_2QGB)D=bNWc%isoBwxrL-;kL7|v4dRp8JO`~)tPwm<*K40Sr=Sc5SDr;&w z4j#L8D!Jt8pTW5W00mqYhUSeM`SnP{l(68n{{hp&>U>y5V|&p2iyA*!RDxTqwtR|| z51zZS26^G+G@`oDCs5lGfgd+7=MQWZn`tw=p5D}nGm@zWnJxZku=lZ?KjbqX^9Hk_ zE}@#$HRv+jE_Y0M0#%BZg(1$W1b1NS7VJ_I_{WD8fH{#CF?VU?p|U0mgL^sd|4Gw@ zCG9~!DoC1s&|MJ5p)9t*Iw5ZVPjk*I_8E3qfNLG${{^LxECo+Cp*6fm+IJ2B$@5Dk zkS{GHID1w$U@F!Ib~JYMW+`bxf|FL!ZsUOq)Va+O%=KA;VVYaOE>E?S11dw1DPs*L z0}aH`!{WrD*f6F<;bkp3xl--I^(ih5&2S2@$J;E~2+KIZ`S$$DBK2?8C_??{vV#r9 zlMdRKjY&GCTHsIt5;Sa-rx-UrsQ#A!AjPEQ`7i&*#Ghb4Q)&~0d!|CgG+Qi6p{$31 z)~B`TP*r?dzqxVeBO9Rri<2tdo_hSWhuVf*P(;ZMNb!N@yKAY$L3D#_&hedo^bym) z|6|KXb_m4(4lsr;ekRCi4SbBDu>Y5hxW>Uc+e2j#&3vk?*tBb=wdpWCFp5af$I#zS zZ$pmb9hi#>LyWF#rEfU+4MbJeu6=oe5T&G?>-6|%rI9T&jB_gDLip@3ks;n~vW?fKNRA9r+= z&C)r)vYnClXyh9TWtF(2>-*rFCG9wnVuw&F&I8gW^Tx`@Sg|*UZ1cf%zTq*c29;2+ zx#iZk3FTW?Xm0XV`-{{UUE=k5g1`h-#g^$w>^(JCv8gkX?4}URTpk z7~ienC98{5cSx5j!56+*i^jKoMU(x|}%i&hdubNMq;9s6^$kQaL5 zy;7(y{dK$(L-t&yyQ<7Itd@6uvqOL|+{Wo~aev^mz(e`+N)wcLFZ|0eqaRc}=}bmr z6BD+Yr4-)@bfQ`&vNngw&>hW%z4$E?Bo3|_>Pr#iCV*5>*!ZFlU|?jMxJ z?RTu6`Q@B8^U&z;iE6tk)Y%*^3Z0WOjiF$#L`gntR)>t*N#gx5-c*RuQ`Gb-_7sNZIcJ*}Ge4KoU`sk438c-w90& zwnwn9(hhId0>ipgZPL6}j=#G;)?HudptSr}N4VH9wNn;UjoRNP?*^@ z&iW@A=XX~*wohNAb5zjqn)wGWM&Ln>3T=1_?5d9o5C^*YG#iW;*WD);Hitx|>ti0+ ztRCo-cwtngM;~Lpu{xT{XN$Sc35EuaUahKI%CbMKKs5yJ-{D~1<-+|f`H9VyuvUvH z{%oh#%tHQ_xfUG%LxM-yGj{4~q3c%Ps9= zspttBa{ zboMz;!Y_=7D#>e=XR@-S#r)~U4#=IDpu!N~U$D9n)pI^hIm_40z8r1ZEf$69jr|b0 z#H;_LEOs`3c}{+0C~ZV$l6vzBOT_61 zM_H3${h}u!Qj|#P5Cbz~g6^pPcAE!YX~xwx`1F(i#oBj0mlUY5wg?T2iWt>9pb(3o1Irc@qgzs%{)nlYjKMO?v ziv?(2P1h5)D;K-0=o!}DCBy&eyg3kswe40T0#PDgMDTo1`_ZQ>8+`=}UL9pGh1E_- zUQc=3X8A`rE_~1NW~tAQXS569Zu3S}j%5Lj%}vq%CJ_kBPAs_gS_sg7<&2J2J=SlwE*QI5+vC|czx;|UYE;rCRr5wmCd z-llUl)*KvTVHb5}ay;CoRFT}3(9Gex)fJQaW8IlsxBueqS=#8?ohsq?#p+z8p@F^= z^L3@Giq4DA8w#;7N{b!3Cl2$CLYi63nSpRv6*dSZbKK4$d4=W#0a&bg@R1SzPbO7Q zR99}XO#kINQ@iH>&@uhp)f12(N=8N&dH!3%#$PRbfuQB!=wrZF?PlyBf=VJP9h^Co z2^0n+0#B!&WMT4?82+lx_I4PkU*24#0s)7FRgm|JvdKH-S(!Zlg-}rbwWH?tNgAyh z{w#j!Q-UC8|IoqQ+dDSK{qNTfLLPF4X13qp9jATcGDHpK!bMbu>}P0Fh&VcNIgDWh z**Xi(w>T7=FxvbY|%1-5>Tj$NTi-8I=oFfxrfO@WsC~ zV0BlP^0~i>1AZi&xAGQ5QBiTUD~Cg!y32bp9`qh}PCo~pb0@rhHtjPpXgD3e=)-nW zk}GJ+@8fPg?XXHO{&;`=QG9sWY=goYeMKcfxWus5>8o&o!Q^3J5`gGEnBxP%EPjaD z6*5OBr&Yk50$Ayq&wpTpj7Tu>e9v>$xUgXZI2+#uAvqvhhExwF4gTyA_Sgpl^?fe_ zBu!lv)=y!DQOcfr!6uvFPY(Gf?07YpFc~7%dF}51;n3 z`Ye&sjuhu3Msl4rul`D9bUy4J+W2S|W~p|=d++s0z%RBVvSQldLsEF|;l}uAu1|Ri z4K;Nn7&-;~KIc+aO)Z!_d@}~JH2K)rIo&69P^`YMI%odo z32>WBIh23${fXq^!HQT5s=T#)VzoE=uWwG{mHWf52i~bzJw?~m-F)f}x}A*&UJn3+ zl*PSl@iQ}QPD5r%P0M1gRGoZ^y7WJ_x^AyKw-8gL87|h8uV&Ru<4xu5FPc) z8dPktYhFj&!$6e~nGSG|IJ2FfV~xO#lv&d2E&zq<4_2wvHu_e%1p32Cb`E>?0fTiKd@+mtNKT z`*t`)a!Ln&W29msey%&G*lZ(j`)s98G|GOsmxO86b7m)r1vO)_1Jr1T`M<6UKSAA@NOa~0C z0O%%$UMRP)(>|Pb^eh92TJ7;tl}|*pwJH6Y1am8_Tc&PZ!nOc8TLivRml|5s`%LE# z_sRKSBV4JO*N`yuR-seQe>4J7n(v!Ka{&3+w|97SWOxe1TK;Z_6rNjF&dg+O0bqf; z^{+{0E`7ShxCi3YJH&%dEWOd-{cez*!_(rxTc}8}yYjQXni@n)66pqfAQ_!cnrqNS$JkH!3hjP^>%SSk)k8jO_d(FJKl*+<^H z7CRpi7G_xGWCDXRWC<|eI+`xYuj=vF)bbvh>QP_39A!W=Ue1-5Upi}|zbszjYZ}cz zat1mI<{XZIBX`z4RwCNLJ8ZoD&D-%#o)eF@jS}v|>2y0hwaey9PeVaW}unW=}T8_!6?f!hFK#R%-;8w zw{tek1ad8QI4mlvInfh1khY$8$~Kd?_=(bNl8Y4cUG-B+`D+Yy>NtQyBb`f1XLW5D zPsRQ2-xCgcH4wA_PQsg8&u6xS!D@4tl9;^~E3mmL&;u?&`X`@syJ;)2Tl!L+($62- zqFR%&Pnx681_x`Xr{1D8usl0*4G0x9Dqbx1hcf$I;G&BkyEy@7=Am426qNN~!d<@z zW;IT}xEsRg^tAy*Yef;1u$*Vffvo_OtbpKMvgfCBr&wYVFI2(%vc$r@-rkEApR#~@ zD_DIm5TfJ1?{v0@=06UWAp5ZSU{*3qD6LTdJ9sjw)Q0PF&%f)oVRH*XxkmAohKA-J z4+}EwWq=ypYN~PVVU@RHTN*LYml?k)k+5bPzqr$oCKo-dKvYx1IVn2$Qr(UVY+Wpk zY`=TGeB7%yln>h>8mq$BRn6H{6X?WZnnk6;oj30c_ZpZ$9X~PhQzz zm=X4N>GwQCElC3gfTJuJH#gUnONG8H^q?Zg-5_Zb8E*d3RE`Y_K{k)=NS!a}{iyyM zz~b*#8l0e)r$*dR_P7l|ag%zJ8^@Y6J*Ynr)mJci{_6FiN{=oW%HJ^0v7-6*^7s#e z1d`C_?HO+x=xG`1x+c4u-?~NlMy7j@%0$m}6s?x=_ivjTr6H|4XaVY!r=Cc|EFk8& zS_l4*Mn3|oG8nKP$`Dvg0$;pOpEHjMp@jZ?N*Z|vZ-6TP2w1uO`LApHpz-*FtKZtV z_^0arzkatLynmX0@YT--?9W;NI7MFSPpJw%D3%TsE3%t&|9--Y0;Hrb2&tpZV*Uq) zASFx~de17vJvSOezU{d5Ut9cC08;;Y0;cfkZ~mGRc~F{WrT{K*EENa{TL*YPDbWG# zgi{`*1m{KezsLvt1A&3SVCjEu#3|^3^ja5uQ!UahJXGghkpP~h_M?zRV2R?Exf8L) z$UFoTZL#y;^gsOE^C*}9ByOS?ip2rV9_j3lM_2|)(On`3$l|}vq@7{#-{<^N={z9s zBz>iU3)X|f%(?ql!1=H6^s5Cl2K!GB~+A3!1}23i2U0^}+CzkiO`FbTF~yt zc{l7y5c7820)Bsc-9HC-6Wm0}`$w=xxkun(Hz;>z1w5l?Z1YENmE%K92kxZ@KBYxh z`g)8NMt?j4V0)XDB|_A0N*Z=Q|L@zXw6L&q-?}4FfJN9o?(c880bM2k+T47HR9B&y z4ExaQO<}j*^t^xn!NABE_!Ne+Uttm)dE!q~T?0%zr&f-JMBI|Ydz6Zt>$jb&4*^XP z%v$)z$@5hdZl@PipvsF_dT-2xN<;JQs4?`+9+2NKK3C&TfcrfzUY@Ak1v5{Pd{peJ zz-qyy+SLj~b^UX`Q*EF@3Q*H#GFiJ?55hY(FxRvNBnwJ0o>K=wOURY{ipqQ65Tyup zN260Mu$i-Msu3u1I*g4`gTevYQ9|D2XWN702shJ~jSe>(2`=g3QLteFG+ie;Bfs*W6zPiH{W&5YOLg zBk-3OwH^<&vTG>Z7j{obpqZJP41hRk|>`1TtpMF8K+%gL#vrqS6D@**p7IW;=YfFHC z1ySlZfc_DhBwr%1s zx4&Pq+4YIC3Hs@BZBZE+ug#msr-tI`KSm`w?q(xIQ4{|2VD(N=t(Hq%Ojrhbx!!y% z12B&01NN$bHr{Halpzt6ly0uB;_gdt?mFBw(GHav9+{1Zj3?dq_Wgy16?0uFD2Ki* ztB!M=QzAYP^qtoWzn{vjV{XY#Dj1|BQxD5%6%==S47W5ly8ydGtyCs4S2n=8_tAAI zVZo}22@AXDq*(*ne8!OcjvX!LmFXo^H!Z?F0O*0w&uJ-!oz3oH~ z?NbSS=v^tv9Ee?LZ@rFfbUYu_QbCL zfnKZ7pcW&_&;Cta_?D5TCg=Gh5)GC4sqxO8J1twty@LZ8v2AG`hSqCy0$y^Y(g-4R z`ZQwzgAKTr4=-TazFzpMO8Pr$cmDdirfS$6yg6?)_*tM*f~<6<7$^}MKywJDnrG@| z#tD80{}6;8`k5iT_LN+^0zzrmp~2H9CRL9>E(!y@L0dr~7&vTQq%p77G&PNWAmumm zuH{P%cqDnVi~Rw>ldra8t!QkF25&cm>-m^y^1H`yP)V62#8*Jew`Nx02}_$7~{EMG$^0h zQfor=BCRmy1=fh$(?D$F0J$U&+NTmnq_1{0JeT#wN5zy{}LyA4$ z$YOt34eB%bUsph!lK%5|fs09(z`ny=SXp@ML9ZD&>{wBA$d0k&>(d?F+!4y^6%?R@ zdilGRJ}?XTx{RSOQvdnw5qO6i%3<`D;H{Ox#qx%kJ3zhj@6$RAFYsTgnZDnd+>(V? zj!Bydcp+H+KSk&MmL_o|%yR(Gm%->{2t1zH?x|k9mVg$PTj*^yg3tf#Rt=HjbCIVkaxtZj{IFSe?v zx6uM0qZ}Mo_8g#7R(3!_4cHQ}Kw>$TKG2@zHSe$W_{&TfgrRurPwEL2Tth|p#wSBY z^4V}js`8H#XzmSh0x#gQUp#sG$Ld3g%W@5NpJ&GFN{*o%-9qhZyML<>q~x`CN%Z{u zB|3`y3V!Msuv5rS0%I~j>IoeM?ySnRAvU@<_fC7fzJKK!b#`oTM#F{2-yS~wV0)pW zt?hA^(Bs0b?jJ1$uJ8^-r=FE|F52UGqCXs(H zQ|{#{8qI*$8;qI3=zXs4`AGpk?+5eaB;}8qXZkL(a(Rc~*5lnBl~0^;!*OB-l?mMhI}sc+n~*2-w*ryH(#cZfogl7?L`$=?XTa zUTtu1elbwr<=y}Zs*k>O7Xrb=T#?uF_Dm*QM%-QVwaT*jDcu+B(%x+GyDG5sM53$f zJj0=rfxGygmgvx^(IWBxsVOzIsz8#9OAV z9UEM7UT=M;$273T+0)AKOJ?SyQ^XCrbI7^cyc?MjflfYi!C&5|Xqlz$bjjG+_7w`4 zQW#GwTRaB7Xn@n`L70nlL~=U_cEUT4W699RnN@BpMmri#5i8` zoA$ATot^iOm*=HV_IrS;$f7-t%jY++5fm^&uN)t&4O^=Ho=b6V5um?k(Ukql5|sD11xXSvY>EBNB@OPkRdZ8WiWB`y3peOwk%6dRS(FxK$iFu;7Kgx6H2WF zkn}=uEN(qdL0y0R0*vG2Bp@yKhK!uIV}ezW>2H9q-&+f%55h4?daQgD{GG2w=X||j zWOFn9#MtC3a4Q@;0~`P%h`~#SK)3A-c2rc$+&LYX4t>J2bt zwet&jyACY}JyG?E+9L%QnYFH4YfFpkpzy8h$)lJC<1D&RiqxN}-LoBu$Xf4u zPSbHPnKOXuvKz>~0^&ZzM%g##am>Dgxy->k=fpd9_GV(nlovH*4n});nT_0GEQn-P za&6+aj_>6{(l><(pE8&buo~Q>Upq_!dPo*AS9uy5sQ}=&NqB-&$DLK}Q9IJw-W=r8 z=P1EoOqg^Sqw^;bH1CSw`K_5Fk8~BEgE;jt<+nH!o{}#JmI8H0$ul)^T?&~afly@` z-~!1|sE}WvldD>0N4f#N2(ApK1=(}$FBiV?(0Ld;d5v3riC4Aljz0yskPFWYao>8> z`$wMuT;vQ>pWDw1wm`FuOpp)sDuyr&A-nSDrQAoCwK@m!=@1EW*KcY_pB z$ZyF{;c%q77Z>;POKF;-C;qE%&VswR1gZu>i-*MP#Ays_>72i3BDf8=@T3KQK}xAp z4f7R`hjl5MNHGeVSobXf6BQ9+4tm|HYUjZw6ohJVnnhGh7P;F{1xv8Z*MXKF_jW7N zr-yE@&Kkm^g8Ij59K@pt%%_zC2-eND^hZ#*k929Eau)c*mAdJWqg%PQ3VFkzMju7v z73e!Td4M*PO;C?Y(my*Q@=Drm6_^s2_|5X@or>0Pmocq`Zto1g-eA#;*IdBeqY792 z;$fSWQKTVDP%e5K?I=}B*#Z_}kW>F60E^lxUJ?iNayPm2XTw1@AfkhDchcd4+4S^S z)3f&LruQkdP8l*;m3;9S0zRADo56IZN-t2jD<<`R)iuXp_NxcD(88JE?z^~`J3CD@ z=28Ww1+Hy?m_B!fLAO~`)x98Iik8>FeD`vNO0=ck^bTvRAjn(mWbIAXjso1xQtg=K z>?QZ9Z37M1d05y{Z>F4v)V3~X?t_xd{kWm)JQ4ecGe28>;^%VPaX=WElAP?ov2^!B zeBWVwu0s(a3D|!W9^O^&GW)LivNgSLOI*Z3-Zsg~Zj*b&_V_q*sG~6xjn(@`aoXr? zQ6lQ;aIuL`0Enyf(Ow*mcH|pucgaDcqZ2wICEhI^s0n*UA?6kba$HBzQ}N=hZ1qbc z_AQ^M2rbU|+ds9XE18}~bkx;IV@3fk{7WvwG0&HGIGLzyX9z+jhfZ1U8&WNlp)`Hv zlZtY3W`Sc2>M6seu^|TxqPV!5qN0;&DG+r~HD<{tTY>s(sY|_QO7Bs`(EP&%!J@dy z?RCW{sZzO)=<_iPA~o6d^#MRwEplB#_wFTjf7-8$5T$w3ym;LF`^gHtFy1g=njKul z42c&tq6PfspZK%EJ~3gjtvN%HzTHN3B!WGsfzd$b<|?|w408vs+I}9qHU)2INn~(! z5cP-NreW08-FlTRK0r%3n7upc+oN3DZX#se`Fps9=7(nCqs5ms8weutemvz%y)MP5 zvdOw3m6#bU-uAh>pG4%4NRGOk*G6CYO6RLrHG~Vo?qJ*!#?|GxvoZ?siT6;3RE>g* zaUW1nDF}RKdAO;0MEMvm;ZZIZ`cj?B05!VouGh8M@MYj|JG)yr?#bENQI{-)btvv` z5sEBZPo&}pi*q1PsS%2gx|J}ti8e)(Q~PXx=^Pqb3{yT=zcl{x)hCfSw4C491KDkz zD-vKnM5MMMkEI`4_wn#C}!SUj5oFLbfeJ3xad1!xUOi07Z=-J~~O_uH|1&TKxZgNci z71l#6)^w72UkUU2z{j^@eF9i5$yFDfcR*;foT8_1S^h!S#f24socSvJ9`{Q3MVBY5ZVUo7! zy88J2Hd)<@wEPou^G16@mW3Mx?f8%-WT0dJ21Fks;pme*J_fD&B7LbkDbh8 zQ!<5jQ}fB1o`gb9LQ}0f*aKmTW}eO!6cDoKCvJr(KCr=L#flDwGWX#wmHLE($CZwO za!j9E%ym`2u~6m_LW$q27wdT&ti9<1mzac)0hIpz@I(B==2puCt4~Ya2l*7Le58!RI)ftIH_c`czxes%>=8vL>MDianubSrGi+3hyS9-_G(s)%e9X=6$ z?5Hkba9%434p`D0L~gl4!?q*Uxkq7nqP{nSP`nto znU|v?{QBhF*jwx5s0@H6ccw{6=<=5F_&57kCv8^wXWNnXPU}EuKnh$~PHadZ0o^xe z`Yjr(%vb;Dp{kLDJVyuOfsBP2L*C6*x_59xAC9GA`I^UpILnj%(-4UM(OGvrHmx`l zz+%??@DPLh@nn1%j}?>GOjT#W*$pmli$6(X?ahf}=rXvt>}ZrXkQTPKVSkpt_OkX% z`52u0PN&)aRa>4AWc0H@wew1RS{xLG3)x}9fw)?GIDA0#TX-I?*^=&aShZ^oEdSSC z>&_d{Qi3<1No*&>=W4_04SgVs)G%xqQsFC$_R`V$0Ij)R!L0%B8ycFMks;jG{1~Y+ zu&8fG7Go2(laCU~)}yi|=j7(u0!G=of&HhEE2CZxwH3)^@n$Lo{g@)xwwi5yu6Sq1 zM1$fxcWS3nG(J1tsM>K;n3Uxa37HOK#q?Grh$L#vG;0&od`V;t?KL6M+V^!+XH*o+ zDK3+H#p?razQ9c9U%m9}#apis=YI%p>R-eZ7Z-PaB5;T7-Of1-KkQ>UiiKH-lJ(9s zF%8Fc5+qH&Y`M&zkDTNpa`r}VlII~U6B7^Yqz@jTtZi?zIcd>?TfEomG88Vl%83UY8QiHvk0eumlTU@e$BYkF6L&pI zl+~R_QN%^j&lOL(0AqqjJElx=k2{H4VM!KG;zgfZ@dDzQtgx9FGDe!L#F0Cvli80_ zpM*&0XUa)%*o0=X>g=X~{V1RZ>8YCf6pCV0dIiUJMuH;q<{aT(R&CvM|$IztlEO1bN#+G91dqW zg2hQs>`i7Yl~hguvPGo+MBJk3!V$=Uub=yH95B(DSXEicRv*ksjjgu@Ggu<&O)3s% zAc~}D-IX-E1-uN+Xb62Z&ZFfD18+=AGy-LG0*_p|wr^~hXx7wWw z47{cPLit2J-rtGfV-ujc0tCK!(+hl6<5~5KzzDGWli24KpZQcz5?>3XzQDf8pVP^4 zwr8sYjAb1F5-~Sj222AxIuZcmO4Wlr?+5(+&a?RSS|b(4mF53l-=3K?3feqR#O}KVD+GBt;4>&j#S#|(3sqJuFGlz(vWx$>NoAGQ`;!y z^G6d3CI(gw%#%z|uQkjrm`P>~|E4Mf{L8Xb^SwOGv^Y&R)E)rEOSRklbq)Iz=c#&= zMg8FM)8{Evlka~|8#IIBel8J)rK+d zs!N!Gc&ba#KzXoby~rm*3YlZ3Uy4spW?+UrSfIl_+2W>Y=V=s+(?wAUM@4(6 z)dije+%ec*anxf%D;l{1Y0YHhhFpg5OAEQ1co{S5nuluIHJ}}YExbBDVkgYD`pH)L zEty^sp94=ecueT!g5!uqfJ+pkmrj$i4F>t@ft5gGj_fS>%8fY@Y(?Czp!9bhDP@&^ zEkIsrFgqQ*jb%q#o>s5Y1+y)>mN z0HJ^d41T6T?m%H&T;1T+n70v$$mx{k>+m}E((<$bs0BT6aa3gS|J5A+#T9B#SSbMz zL7Y{T2Cvd`{yZjYA?1Eqfv}r`Fe3~6;1=eElygZ9m<=N}s6Do5*c2FsY#KPI$(z5L zrQ+sKx1ir8Zv_p0EcJPd25S$7(0noo&T3J}jCkXAq}a&28Eq=B+k6H15B6ig!#z2z z$m(KI2AS!heo=Dt5{Sx%rpWdzmvB=r+g5FCgwyai@NwH|EP+ReRjU>i|@p!e91|zXI&$RZAYPmc~JJCM6gGMk4!R` zTv@7AIAr~?S=9np!N=|c^$lrfajGeC6FHd4mjv16=0LVqePY^r)ax|DrC8Q*H|XXtzA z!q6kL{vC95olQ3N!dx!hchX+tKl9C;rahc`)f8JGDx2lV#O$8D57Oqh(r^^pJFO?& zR>wveiF*=v(ndsNr{6taZzlsd9%%ua7EFI|rzRzPLPzQGCAxpX5zG zElA35oxzCX$|e1*O$F`!s_pCahCYN@m)rK;V)3y*vg5=awFhtDi{ ztFct+l_>W-s*rlI@NR9&bJDw21U2pXDQRYZf!-M*tRce_<7esu)zB9zE7N zoy<8Du=f1@u0U5;a?0A#}Cph;2CJf|qO&MHu zW$tK$Zq6^ zdO=Oex??#xq>hz7-kX_4eiP4+OJ(+5xfjT8s+rVtZ)y48tGRTd*<1xg0l&hn1eg3$AZFcK$MnfGXS;o|mvrb2hEI-FF zch!viDoak71|vqq$tYAY6_!IN+|BTBfM?=;@ZI8*k`Bw?x3Fh-*5dk_>cu_SMm7VW z03=xuMO^+GHgLGKjKo@{`ldDyr_0_uy%+DE>8)Y63#OkzU(!SnM0$|*+gl{ z;s+;GiGDt|S5wA5AwX38$ZRdGyX9Lm^-3$`P+%e4Pk%9!iU}svTdiNUkePEN#Epv| z#`UJCJb{M#&wY;&WO-CyfIHVLt1^*n(1D`k{)`{}aMeGYSj%O+UjUCmd1I~|tJbyq z%(qC~TF-TZEjRg!Nu4O8Uq?UZ8`i666uWUGylzK@{GC5=^M&nb{eU->RPth0&PpepkE#e$e;(5&Z&WKjt5s?!E2B|Q2N8AQDWr+^6Tm&X(C@*HnilM+X7x9G2 zDew;TjuFjwVL9Q4Ry;>rcbzS!mWidWjMW9ASgp@J`DZsf3U5ObX(O)G?if$uuYj-iMsl z&I(Sbrb#;Kq;C8kMgM(iOca1CtN=9($CfDtRC+w=eHGx zpeif(u1@cL)F_+)4Q{1)QU^-L@KSm0=Vq0H>D!z~vR!7*Wld+oG)#nzqIP>8Vx9tm z;wHmZB-OuIfDF~zTZ){ij>UbBq5EzUBdH@QsJql_F;<(qXLDp6r*qKs;X>Wg}i$ z4>C##vxg_?i-FkLmes>&RZ3;>sx2=7kczlr)yq3oEkyc9)=J-x?rr#uq)k;lVbVdC zdfN)1JWPoy0-iva4BQ4#9Kt-y$*ttcKr91P*+p%J-Z+KLbvnF=YN7S?P&p9}wkKyJ zMpR1LYjy7hdbQkEydr=@)ObZPL$rHB1!hL<+?>p70?E?;KAaTQ`u9EHW|gvg-4jn-seL>65-kRI#;a^S42@FLdE&dpt@b%*%&Iu^ zwq9CPX!6*#939qm;ji(2J@(Vok<;nIrnSysiX0%nsCoCR_EtylRN^|WhnB@J7QSVg z!f-vqJfXn~$($0jdEb4w6H;zsh*+Psn?RjCoYb{{-=9b!#JH1QpXxe(*I&?<*g3oO zs4f@Q+VqNh|AKPF6tBl4UyD~wdBqD+1u^7fbsnFZdiF3GD`%`=hxb12o2vK71cZsG zTS&Z7p<_Lm*Y=@UBwaw+rQ0=wTKcASFS_zNk%J+?Sr_i^Fb(Vn;_OXuu z#(w|Bl5o7Ag3bO~OW|RPkWeDcRIBh7#X6n-&hOn<9wyFvLuxeUd8$eMKPgbtA1&hF z+xR*2IsO(1SdYN&cRB0MZ5Mk_2b5-d_5A?cmdbV}m09ER=Yse+zZtewJ(GGVklCIv z(ayQ<_?5kW!f6-rd-*d})iaHS>6A*kdh%(HooeUgB4R{rADr;NQhtaNe6zZKQ0;7r z!oiTIvj^wBp|YMLldN7(wYdFP;~&vWz%Kc{m$o;mx>`(LG<74wD@w1+S>I@`S8e<) zkB|dfZb7k>zEKU#AUI$LJX$L1cYPc0nN>UO50V&&{96#DoI~nC@q&i?WkzkrnDtdR z_;8fy#v|t+7wdS411W<}flT0CqgFpq>H{wFFI~|yfME@Z5fj~UGQ>!3Hj6BwgsyPUeWG(03;m9l6rB=mdgkD_e~`mfQdw- z(b8MJa>M}y6uAmY{3f~td==H=x3|}B12>WU^WbK{Y<5e`2)Llc#x}w2Fpdqx%9!cs zY<@jWxi^j2`J3BR?Lu1U!Oo(%kNo+P=RtnaCfGAUyqZQ@C9dTtGMSK>3po3LuXcfRQ+N#f)6Y}M-8~6MPe~lug0})`<%G06A)J&Z{1Oac8pW|`=5Z*Wo$HYGYAAm zz6LQ|AlzzL!e*(FM1)*xjJzH}W@^pZ-vl56Cp$ZOpxI;QQCuAU(wL{7DHvld4NSYW zqv%1e2HZ-3b5xd?ZTn1X4Azi3>)993Wru`>6euLO^e5MR#1e5Ol?%_+3hv;gVQTP{ zJRRXN(d1(UuJce^$0$N`ygTg2(ip2T{Wjk>_Bl%%mX#70GvfmvP(Xo3z`V}J-_QpK zXv?jKT{~8!bT3$fh{N3XxBTH$CHRcG)Q=C196-fH5-eG`zOAyU6KII%xOV;G_{p;a z9*oZQ3RiqLKE~_-KV0Lwnh}`SUXSu%GXM(!o-c8_RNN!H(1pXa=hFihS(NhGYI%HL z`qnca_Av46;QXtzoIS+}Fq%qPJ8oDsqiA<~4Dcz@gGm5akfjgGX34L!nlm1~UIkMR zU|!?Ny%DpVx=glD>MM5bcR?rG9=SUqi+M)F=3G5Xi*f@daHypgCYlE3zgMv9Ho|xd0|o~hnwrq?4RF?COM!m z$1z;^!NIg8TlAI!B2lax9k5i8SLZGM+d)vOSL0v+Bz3v}7#%&s5~Mk29CW?b)pwRr zSw}=vw6(|9#fNdp;F47SlID_)8@KAQiCHc3h+o|cAS1y4P@M>Fx-aZCLJ*{7-VJ(? z$p@PF;xyv7MMzA^ohXqH>Gm^-c+dxwU@#8+#hkm1At`H*MXi z1&+$3en%gJWn8Cu(snxr+<6nfK1a+1TkH8#4eF+9Dz$cd>A?h;xW&y8#rT3#c)|6n z3op)&I!eF- zhTJ4$;Gqwr>DcZ4r9~rnUJM=6UGdp#U@Lge_reIG*Q#zORNS~g-^}N}4IbaQkiwN; znX&~BSvNtvyV7~{+E;_iH38dpoFP}5=YTH3kTA@ylo(dnX-h3hy|Wd$@$vd+ZcDv_ zfy1J=HeubZT1LKc$qt9V0kkxOwwneJl6_hj+ya`b=UYiM-Pp)qtU%EvFw7;-jeV1~ z%OZ0~1ViBW)4nc6EhZq(Ila{U0CdVqC`GBH{O9cUnI2i0gPibSRe?UEzp4+yqo3zdwDo!qHu5}xYkq2f4O z0iNsdBHVSRySOVDw2sn_tjyYsVywwUmhhR|4LSB67FH;FV70xpE-{G>=tAd`G;09# znAp3D@=Qn@rq6mlyZtN2Ix7_gba{aPURKNV`~*X}FY7Ux!*;ifcJVT&Wu*ekyfoua zH?|{v0uXXb-&y5CIQe0e8WYm)-ZX|Z%z`#KVHgeiyiwIKVoXgofk4kB55%qu zRu4O(BIpFrW{#a`?W7unPbR)306~L<_Ua4^bz3Jtq!JYt_Ac*V%1>E+%`s3mV2ifT zF0XQb>)7NF`kD{**gnra7-f4l2u%HODvkJK<9O-@%+i`cIecz!Q;(^ujw3-K`OBAN zF$0tPkF13a4y3e7DD>I2`%ITDWF{5+#`*-obEoq=uU396EKBOM6r9IOKy~Vq(*c!asihY^?8vBK1ab9XZxO29Z9}^s~Liri;M6gVJlpMc!Nr2GwM-fbIzBT1i0-Y6RFqfVPBjl*kNCVZ+2`QM z=Rv^F>X-5y5x)ULck4bP@vGOEUZ&T3PU+TcHJ1T3(b4nW01xy}8QZ_cXVO*iK@lxS zfF?g=QA2m3xV9cqgX^amk2H9qnFvEs`*Hgf^E|$&O2MI%|Y<1wfIj2jbjZ}ufL3>8AxCPCB{pmqN03a;40Q>q5Ur=<-_~uXgD(7-&_gx^{+@ z7*{c5f3nkwY6sWns2_Lft6u7+(J4mcaI>c+MKf!3Sh>M0jk#5r=E_Z@W^K%q?K~Rf z^$$^e+Ck%n)aTQ@I8j&B2G7{PPt(}VCMaw1#I zcRgdh6K;%gUDa>Ydw+VMe>XLJjV$$sauHMNjc2A}wc_}>@t^o$m8wBKpp@+U>~XAc z2n|~s4Ug&RWJ)!-CL#9zORtIZsb(!;rxfn84pwyJa@A~e6;|8V0SjlB-Vpn?iAGMJ z)5@XH${FCMm{^@QGMKlWW^ICwAGhzkO1;i4jK+#H1+X`v;EW&5alT0B^WaMx`%lmY z;mRr^Sc}9nH

)`K&ac8&IU-S&$MO34Zn;US2uk?VX~2GJ;koCPZ_y(GmLsc_%3 zBlRlZTUxmz4Y{89!_^#6i5~^~L4=MJe2BN`)dWA!y_YnMMJrUEHYlb;q6XtV__EP= zrXaa>2K_D%ARCizfpRGYH+kJfHzf|k(oF|K!|ht_be89*PL8I=a51@l6rI@w7Dbm5 z2uFxEPYq{fVu2O(i+`kvW#MC=JCgpVZJ?7YvI|?6q3|os;?HdKhYHRhz^uE!-V9AM z;qogQBl>nJkUEIi%tEQvQla{ll+<+0m-Cjoy;}bF7FQ zI3F)^%-jKEeBQetDNbvtsE-TZfRE(kC!ee!f_eua!Qstn1><(QSU5?XOrC6$3qS z1yyr`L;Td>pnQ>mNe_|eL*BDgjrXr`0+knILg7C0b#dZCSyrOYi1Nga?2$MKqzufQ zqVIT|#D1=@r4Z#)-F+>8m@&|10|4bU4x@t5M%nu}Mb#q65CHKp3AcV z6V^19W-Ij;^#Xp^h#$K3>OdJAV3woYjAzS&X=lkOOcpJZNS7 zqhsx1h`u&8;rYRc!7}KU?UWCc^O^{ShaOFfA^U_^s9Mx10@+3rQ>n=;SAMOo!4bNw zH;1C{5_VF=W!P5#=kV{H>^g?S0Y;8w(k_auK)G z4Y?VP>7V?)UA@pHE{qmS=f0did-{2B7_#Jyd96%E>f!}|K8*x?TbmH6t;8)_Kvw5c z%$uujlL^LSF+#HIkJY-mx-#L#lRtvfY*7A;Gmbr5MW}%%Z;ID6!CHS|BB~#B3i2>C zpTxJO^6Lei|3jfdT!a2;N6-GJe)TH&jd$n&Z>%fXe@DyyzyE+RF>vael#3wbS(5cS|b@AojV7~ z&@cx;r!k+*k;&vh$z{&t!+fbjFaPg$x(84qlbD48i!wHA2+`#(cP{-w(!s=K$U~M# zkaI!E*xRDBR@FXTDuCI_tv7{p%h*MF2Q z;aTsD3$V2JW~p(ahXj54O!hb2@Sm?QIJN&f9zptnty5Dq9ET;&Z+scVKhB-_2}wRT z`hGEBBlKsjS^YGmgQpy@@JG04SV}E`sIb!!)a^ktra>T<>D@6I<5U5a?g}yEB~Q zlA$Pp1Iy#LuDv;N$L646>?e|{r0r|+o`LV)M9%nbV?t@I@Zl_D@X6K>8LZx(vya?U z7ou~o`_I67CZBi^+jcxnhc&44TDM8}M+cr91D@`1K~bg#bQ3d54%c>*Y|`w&%ig~K zSs*blkhnFV(Ym=mhCLbs@?eqs_rU@7maI#Ch4e1_&7aT&9LJP|CQvqny#CpPy=gkB z+g6on5HjJnH*I;~-f-o6A`e?_)sESxl)~|AEmtThr?fuiG4os;rsRGzDHs=Z($x`s zy$oM!-#VK=4)6LTw#lf_-jZoB11(3%a80d_R4QXx&!3xxyBrtK7IS%8_qHv*CTgRam9=y%Vh1=)wt z45<;lw)8ZIlL>+LF1F&MC7C?QaX-(@os{AQbn2C!5+2FkGuUy4`V*g@WwC$;)Qwn`-?U!BLC*j;>U;+DWu4)?X zSW|HSI-X_pH(zkoXXE~=TqgsP?4jExz%0Ph^0N)zCOqx~nDGACR>PbIcE*#(;C3^e zk6EJ-#RX%E64T3A+rutBe;TwE4;@_#*taNpz`CjZ)62_^lYI#)QF4RqXx@x}+`B`y zetr6e0}JnjFZe6iU0-Zo`WgW3Is~wXQOPw|{}U=+E@8R=2aQL{Wym2zo+zaZ%;AvAdZ zFz>`nscnGql37sY{_|?*8})h#{3gWhlE4Xm2zu?*P>)TT_v2GuKwS~IP8XQjU#zw$ z+H|S;QYrfZZsqvJ>n25|5^XtDS4leCBam!uw9%Z5H zFSqy~TPs@h|JC(Yi@$gNoW7bCI#1W^_M;G%Fekf;O%oQqUEL2X@D_$g?kHHO8u7nQ zS@j-p7Top*aL4}l{r~?iTc&pU!0T(GY-Rkwt51LhsSIce>x*06!MEXRE%ER7+I)++ z`aslQL~hUTvW0V2$G=rO|50{fEytEE^SS?TQT=o9ZL2<`U;LNs?H7Z99*gc;|4Fta zwxTNRM&X-Jle>;{9r(3=`(2jPz*|hRflajYcE8s=O+1?XH-rs1GFl0|L0()ZA|O6~ zeNe%lN$T?|4so4WB`4eu%opF;a_(>azm2ozts+B-eQ2;?_vFf);#@z`4x@``qBhuKahyz!R9{pnYJae1d%iE#AI&qF|wcZ!stev;y z85j;+Eq{0@9k_0dBNkXcH>_Uz@-w5`{~*&|?Vs0wExf+Hw#e#>Z|>XWuU}hS1?DjS zAHbx<&Zhz_+17t~BJTWm!Gz-ZqV-wU8QD{e_Uv2t_sh)Wwd%jaWFyvw&c5wGSJG~c z9x!}Yzdv*Hv#IIzR=tEPV!$dCm_6tJN&Im#dg0T<;A&jDy`}oN=%x3*OPv?}Qdi=jZlU?e~G0I~teYx_$o3&HQ*4h6U#@+V5WO z_w?&J;50!@FmrUj{Cnr^cYqS>t*hSwFRSeXHp?zNW&;krK0e_t&kp1$_sQCCtp0uu z)E>HX0Jx<(=l-sz&9&{oxZ82+TTMa1>*{E`-)}a9#GQtysN!^~#l*J1Rk$ zBK&xx^Ksx&Fl8?;Gy=KnTD#+$w-i6`+qTXB)^eY{g-1Tzx;5)yb9VN+-JsxJXIcO6 zvT-_aeE$1O_v7~We%*Tp94Z64s-QRKpWK7P?fk$cmpcj%tyOlvXR%~m-hl?tmbQ|! zt=#kHW#!w~{kicj)>`5x55s}2p~C-xq1hU1z5Vrmpv}N3mj6yO#X$_*OZv!f;8EU0 z95n$LlT>MJkA~#X4N22tpVbTuj8>j5jv=G@l;pndA8ue4`v3p*>l?B(g|2fREzp$PzY<)kA3 literal 0 HcmV?d00001 diff --git a/.scratch/opp-customer-dependency/demo04-4-selected-cascade.png b/.scratch/opp-customer-dependency/demo04-4-selected-cascade.png new file mode 100644 index 0000000000000000000000000000000000000000..1fb8c4a5de2ca8156dcb34503cfdc41d03ba3a04 GIT binary patch literal 57067 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 O)Ih#pcu#KFNKl9QEE$HBq7 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 LZ(e!a`0GCaq0ivi literal 0 HcmV?d00001 diff --git a/.scratch/opp-customer-dependency/drive-demo04.py b/.scratch/opp-customer-dependency/drive-demo04.py new file mode 100644 index 0000000..03bd985 --- /dev/null +++ b/.scratch/opp-customer-dependency/drive-demo04.py @@ -0,0 +1,84 @@ +import sys, time, json +from playwright.sync_api import sync_playwright + +DEMO = 'file:///D:/code/crm-backend-matt/.scratch/opportunity-e2e/demo/index.html' +OUT = 'D:/code/crm-backend-matt/.scratch/opp-customer-dependency' + +logs = [] +with sync_playwright() as p: + b = p.chromium.launch(headless=True) + pg = b.new_page() + pg.on('console', lambda m: logs.append(f'{m.type}: {m.text}')) + pg.goto(DEMO) + pg.wait_for_load_state('networkidle') + # 1) login as first user (switchUser triggers login() which loads dicts+list) + pg.evaluate("switchUser(0)") + pg.wait_for_timeout(2500) + # verify dicts loaded incl customer_type/customer_role + dict_counts = pg.evaluate("({customer_type:(S.dict['customer_type']||[]).length, customer_role:(S.dict['customer_role']||[]).length})") + print('DICT COUNTS:', dict_counts) + # 2) pick first opp id from list, open detail + oppId = pg.evaluate("""async () => { + const d = await api('POST','/api/opportunity/page',{form:{viewType:'MINE',current:1,size:5}}); + const recs = (d && (d.content||d.records))||[]; return recs.length?String(recs[0].id):null; + }""") + print('OPP ID:', oppId) + pg.evaluate(f"loadDetail('{oppId}')") + pg.wait_for_timeout(1500) + # 3) go to customer subtab + pg.evaluate("S.subTab='customer';renderSubTabs();loadSub('customer')") + pg.wait_for_timeout(1200) + pg.screenshot(path=f'{OUT}/demo04-1-customer-subtab.png', full_page=True) + # 4) open add-customer dialog + pg.evaluate("dlgAddCustomer()") + pg.wait_for_timeout(600) + # check customer_type + customer_role options rendered in dialog + opt_check = pg.evaluate("""() => { + const dlg = document.querySelector('dialog[open]') || document.querySelector('dialog'); + const ct = dlg.querySelector('[name=customerType]'); const cr = dlg.querySelector('[name=customerRole]'); + return {customerType_opts: ct?ct.options.length:-1, customerRole_opts: cr?cr.options.length:-1}; + }""") + print('DIALOG OPTS:', opt_check) + pg.screenshot(path=f'{OUT}/demo04-2-dialog-open.png', full_page=True) + # 5) search customers + pg.evaluate("document.querySelector('dialog[open] [name=custKw]').value=''") + pg.evaluate("doCustSearch()") + pg.wait_for_timeout(1200) + search_rows = pg.evaluate("document.querySelectorAll('#custResult .kv').length") + print('SEARCH ROWS:', search_rows) + pg.screenshot(path=f'{OUT}/demo04-3-search-results.png', full_page=True) + # 6) pick first candidate -> triggers contacts cascade + picked = pg.evaluate("""async () => { + const first = document.querySelector('#custResult .kv'); + if(!first) return null; + first.click(); + return true; + }""") + pg.wait_for_timeout(1200) + cascade = pg.evaluate("""() => { + const sel = document.getElementById('custContactSel'); + const picked = document.getElementById('custPicked').textContent; + return {contact_options: sel?sel.options.length:-1, picked_text: picked}; + }""") + print('PICKED:', picked, 'CASCADE:', cascade) + pg.screenshot(path=f'{OUT}/demo04-4-selected-cascade.png', full_page=True) + # 7) choose a role and submit + pg.evaluate("""() => { + const cr = document.querySelector('dialog[open] [name=customerRole]'); + if(cr && cr.options.length>1) cr.value = cr.options[1].value; + }""") + pg.evaluate("doAddCustomer()") + pg.wait_for_timeout(1800) + # 8) back on customer subtab, count linked customers + linked = pg.evaluate("""async () => { + const d = await api('GET','/api/opportunity/customer/list',{params:{oppId: S.oppId}}); + return (d||[]).length; + }""") + print('LINKED CUSTOMERS AFTER ADD:', linked) + pg.screenshot(path=f'{OUT}/demo04-5-after-add.png', full_page=True) + b.close() + +print('--- CONSOLE (errors only) ---') +for l in logs: + if l.startswith('error'): print(l) +print('done') diff --git a/.scratch/opp-customer-dependency/issues/01-customer-type-dict-seed.md b/.scratch/opp-customer-dependency/issues/01-customer-type-dict-seed.md new file mode 100644 index 0000000..29c6c61 --- /dev/null +++ b/.scratch/opp-customer-dependency/issues/01-customer-type-dict-seed.md @@ -0,0 +1,16 @@ +# 01 — 补 customer_type 字典 seed + +**What to build:** 前端商机新增/编辑页弹窗的"客户类型"筛选下拉、以及客户信息 Tab 的"客户类型"列,能通过通用字典接口 `GET /api/dict/item/enabled-list?groupCode=customer_type` 拿到选项数据,不再开天窗。选项为原型实样 6 项:总包 / 工程商 / 投资方 / 设计院 / 集成商 / 投标公司。仿已存在的 `customer_role` 分组 seed,纯数据 seed,无表结构变更。 + +**Blocked by:** None — can start immediately + +**Status:** resolved + +- [ ] `DictDataInitializer` 中新增 `customer_type` 分组 seed,含 6 个启用项(总包/工程商/投资方/设计院/集成商/投标公司) +- [ ] 编码风格对齐同文件既有 `customer_role` 分组 seed(GroupSeed + ItemSeed 结构、排序、注释口径) +- [ ] 服务启动后 `GET /api/dict/item/enabled-list?groupCode=customer_type` 返回 6 个启用项 +- [ ] `customer_role` 原有 seed 不受影响(回归验证仍出 6 项) + +## Answer + +在 `DictDataInitializer.SEED_GROUPS` 末尾 `attachment_type` 后新增 `customer_type` 分组(sort=23),6 个启用项 customer_type_01..06 = 总包/工程商/投资方/设计院/集成商/投标公司,结构对齐既有 `customer_role`。`customer_role` seed 未改动。crm-dict 编译通过(BUILD SUCCESS)。前端走通用 `GET /api/dict/item/enabled-list?groupCode=customer_type` 即出 6 项(起服务后 #03 回归验证出数)。 diff --git a/.scratch/opp-customer-dependency/issues/02-customer-contacts-stub.md b/.scratch/opp-customer-dependency/issues/02-customer-contacts-stub.md new file mode 100644 index 0000000..639ad2a --- /dev/null +++ b/.scratch/opp-customer-dependency/issues/02-customer-contacts-stub.md @@ -0,0 +1,21 @@ +# 02 — 客户联系人级联接口 stub + +**What to build:** 前端在商机新增/编辑页(字段17)及"添加关联客户"弹窗中,选中关联客户后"客户联系人"下拉会按已选客户级联刷新。当前该接口无实现,前端打请求 404、级联联动无契约可对。本票在商机侧补一个降级 stub 端点(对齐现有快照池降级套路,如 `GET /api/opportunity/customer/{customerId}/contacts`),返回空列表或固定 mock,让前端级联逻辑能对上出参契约、不 404。真实联系人数据待 A4 客户模块建成后补真源,本票不建快照子表、不接真数据。 + +**Blocked by:** None — can start immediately + +**Status:** resolved + +- [ ] 商机侧新增按客户查联系人的 stub 端点,路径风格对齐 `OpportunitySubController` 现有客户 Tab 端点 +- [ ] 出参契约字段齐备(至少 contactId / name / phone / company / position),返回空列表或固定 mock +- [ ] 端点在 Swagger 分组下可见,前端可自描述联调 +- [ ] 代码注释标注"降级 stub,A4 就位后切真源",与快照池现状口径一致 +- [ ] 空客户 / 不存在客户 id 时返回空列表而非报错 + +## Answer + +新增 `CustomerContactDTO`(contactId/name/phone/company/position)+ 服务方法 `listCustomerContacts(customerId)`(impl 返回空 ArrayList,注释标注降级 stub、A4 切真源、签名不变)+ 控制器端点 `GET /api/opportunity/customer/{customerId}/contacts`(Swagger「A3 商机管理/商机详情/客户」分组可见)。空/不存在 customerId 返回空列表不报错。crm-opportunity 编译通过(BUILD SUCCESS)。 + +## 路由更正(20260901) + +初版误用 REST 路径参数 `GET /customer/{customerId}/contacts`,违反本 Controller 既定规范(类注释白纸黑字:「GET 查询,id 走 @RequestParam」,全域客户/跟进/勘察/团队端点一致)。已改为 **`GET /api/opportunity/customer/contacts?customerId=`**(`@RequestParam`),对齐 `/customer/list?oppId=` 风格。重编译 + 重打 jar + 回归全绿(新路由 200/空数组/边界不报错),demo 与 verify-03.py 调用同步改址。 diff --git a/.scratch/opp-customer-dependency/issues/03-frontend-integration-regression.md b/.scratch/opp-customer-dependency/issues/03-frontend-integration-regression.md new file mode 100644 index 0000000..9f979fb --- /dev/null +++ b/.scratch/opp-customer-dependency/issues/03-frontend-integration-regression.md @@ -0,0 +1,29 @@ +# 03 — 商机前端联调全链路回归 + +**What to build:** 起服务,实跑一遍商机前端主链路,确认前端工程师能端到端联调通过:在商机新增页"搜客户 → 选客户 → 选客户角色 → 客户联系人级联刷新 → 提交新增商机"整条路径全绿,两个字典下拉(customer_role + customer_type)出数,客户联系人级联端点不 404。同时与前端对齐 baseURL 契约(商机侧客户能力走 `/api/opportunity/customer/*`,而非报告理想路径 `/api/customer/*`),如有偏差记录并约定别名或前端改址。 + +**Blocked by:** 01, 02 + +**Status:** resolved + +- [ ] 启动服务,`enabled-list` 对 customer_role 与 customer_type 均出数 +- [ ] 候选客户搜索 `POST /api/opportunity/customer/search` 返回 customerId + customerName +- [ ] 客户联系人 stub 端点按已选客户返回契约一致的响应(空/mock),前端级联可对上、不 404 +- [ ] 走通"搜客户 → 选客户 → 选角色 → 联系人级联 → 提交新增商机"全链路,无 404 / 500 +- [ ] 与前端确认客户能力实际路径(`/api/opportunity/customer/*`),偏差点记录在案并给出对齐方案 + +## Answer + +重打 crm-app fat jar(含 #01/#02 源码改动)→ `SPRING_PROFILES_ACTIVE=verify` 起服务(连远程 DB 8.129.84.155,Tomcat 8080,Started 成功)→ 跑 `verify-03.py` 回归,全绿: + +| 校验 | 结果 | +|---|---| +| `GET /api/dict/item/enabled-list?groupCode=customer_role` | 200 success,6 项 | +| `GET /api/dict/item/enabled-list?groupCode=customer_type` | 200 success,6 项(总包/工程商/投资方/设计院/集成商/投标公司,原始字节 `\xe6\x80\xbb\xe5\x8c\x85`=UTF-8「总包」,控制台乱码为 GBG 终端所致,接口出参正确) | +| `POST /api/opportunity/customer/search`(oppId=749662392819908608, keyword='') | 200 success,返回 10 条 customerId+customerName | +| `GET /api/opportunity/customer/contacts?customerId=` | 200 success,data 为空数组(stub),不 404 | +| 不存在客户 id `?customerId=999999999` | 200 success,空数组,不报错 | + +**baseURL 契约结论**:客户能力实际路径为 `/api/opportunity/customer/*`(非报告理想的 `/api/customer/*`)。前端 demo(#04)按 `/api/opportunity/customer/*` 对接;A4 客户模块建成后如迁到独立 `/api/customer/*`,届时前端改址或后端加别名(本期不做)。 + +结果留存:`.scratch/opp-customer-dependency/verify-03.py` / `verify-03-result.json`。 diff --git a/.scratch/opp-customer-dependency/issues/04-demo-frontend-acceptance.md b/.scratch/opp-customer-dependency/issues/04-demo-frontend-acceptance.md new file mode 100644 index 0000000..f0ddfde --- /dev/null +++ b/.scratch/opp-customer-dependency/issues/04-demo-frontend-acceptance.md @@ -0,0 +1,35 @@ +# 04 — 前端 demo 客户信息联调验收 + +**What to build:** 在既有商机 E2E demo(`.scratch/opportunity-e2e/demo/index.html`)上补齐"客户信息区"联调界面,让用户能在浏览器里点着验收前面三张票的成果。demo 需真实调用后端接口,把本次最小联调范围端到端串起来:新增/添加关联客户流程中——"客户类型"与"客户角色"两个下拉从字典接口取真值、关联客户搜索走候选池接口、选中客户后"客户联系人"下拉调 stub 端点级联刷新(空/mock 也要能看出级联在动)、最终提交新增/关联成功。demo 的 dict 预加载已含 `customer_role`,本票补 `customer_type` 分组并把客户信息区控件接上真接口。 + +**Blocked by:** 01, 02, 03 + +**Status:** resolved + +- [ ] demo 的 `DICT_GROUPS` 预加载补上 `customer_type`,"客户类型"下拉出 6 项真值 +- [ ] "客户角色"下拉从 `customer_role` 字典出 6 项真值 +- [ ] 关联客户搜索框调 `POST /api/opportunity/customer/search`,输入关键字能出候选客户 +- [ ] 选中关联客户后"客户联系人"下拉调 stub 端点级联刷新(切换客户会重新拉取、可见级联行为),空/mock 返回不报错 +- [ ] 走通"搜客户→选客户→选角色→联系人级联→提交"整条链路,无 404/500,结果可在 demo 上看到 +- [ ] 用户在浏览器打开 demo 完成人工验收 + +## Answer + +在既有 demo `.scratch/opportunity-e2e/demo/index.html` 上完成客户信息区联调改造: +- `DICT_GROUPS` 增补 `customer_type`,demo 启动预加载。 +- 关联客户 subtab 新增「+ 添加关联客户」按钮 → `dlgAddCustomer()` 弹窗:客户类型筛选(customer_type 字典)/ 关联客户搜索(`POST /customer/search`)/ 选客户后客户联系人级联(`GET /customer/{id}/contacts` stub)/ 客户角色(customer_role 字典)/ 是否主要 → 提交 `POST /customer/add`。 + +**Playwright 无头回归全绿**(`drive-demo04.py`,连线上后端 :8080 verify profile): + +| 校验点 | 结果 | +|---|---| +| 字典预加载 | customer_type=6, customer_role=6 | +| 弹窗下拉渲染 | customerType 7 项(全部+6)、customerRole 7 项(必选+6) | +| 客户搜索 | 返回 10 条候选 | +| 选客户 + 联系人级联 | 选中「华东设计院(E2E第二客户)」,联系人下拉级联刷新(stub 空 → 显示「已触发」提示项) | +| 提交关联 | 成功,客户列表 +1 | +| 控制台错误 | 无 | + +截图证据:`.scratch/opp-customer-dependency/demo04-1..5-*.png`(客户subtab / 弹窗 / 搜索结果 / 选中级联 / 关联后)。 + +**待用户人工验收**:起服务 `SPRING_PROFILES_ACTIVE=verify java -jar crm-app/target/crm-app-1.0.0-SNAPSHOT.jar`,浏览器打开 demo index.html → 选人登录 → 打开任一商机详情 → 关联客户 Tab → +添加关联客户,走一遍搜索/级联/提交。 diff --git a/.scratch/opp-customer-dependency/verify-03-result.json b/.scratch/opp-customer-dependency/verify-03-result.json new file mode 100644 index 0000000..fdff5d6 --- /dev/null +++ b/.scratch/opp-customer-dependency/verify-03-result.json @@ -0,0 +1,60 @@ +{ + "dict:customer_role": { + "http": 200, + "success": true, + "count": 6, + "names": [ + "总包", + "工程商", + "投资方", + "设计院", + "集成商", + "投标公司" + ] + }, + "dict:customer_type": { + "http": 200, + "success": true, + "count": 6, + "names": [ + "总包", + "工程商", + "投资方", + "设计院", + "集成商", + "投标公司" + ] + }, + "pick_opp": { + "http": 200, + "oppId": "749662392819908608", + "total": "5" + }, + "customer_search": { + "http": 200, + "success": true, + "count": 10, + "sample": [ + { + "customerId": "920000000000000950", + "customerName": "安捷机电安装(seed快照)" + }, + { + "customerId": "920000000000000900", + "customerName": "仁济医院分院(seed快照)" + } + ] + }, + "contacts_stub": { + "http": 200, + "success": true, + "data_is_list": true, + "count": 0 + }, + "contacts_nonexistent": { + "http": 200, + "success": true, + "data_is_list": true, + "count": 0 + } +} diff --git a/.scratch/opp-customer-dependency/verify-03.py b/.scratch/opp-customer-dependency/verify-03.py new file mode 100644 index 0000000..bd917da --- /dev/null +++ b/.scratch/opp-customer-dependency/verify-03.py @@ -0,0 +1,50 @@ +import requests, json, sys +BASE='http://localhost:8080' +UID='739564171091247104' +s=requests.Session() + +def tok(): + r=s.get(f'{BASE}/api/auth/debug/token',params={'userId':UID},timeout=15) + return r.json()['data'] +T=tok() +H={'Authorization':'Bearer '+T} +def g(path,**pp): + return s.get(BASE+path,headers=H,params=pp,timeout=15) +def p(path,**data): + hh=dict(H); hh['Content-Type']='application/x-www-form-urlencoded' + return s.post(BASE+path,headers=hh,data=data,timeout=15) + +out={} +# 1) dict enabled-list: customer_role + customer_type +for grp in ['customer_role','customer_type']: + r=g('/api/dict/item/enabled-list',groupCode=grp) + j=r.json() + items=j.get('data') or [] + out[f'dict:{grp}']={'http':r.status_code,'success':j.get('success'),'count':len(items), + 'names':[i.get('name') for i in items]} + +# 2) candidate customer search (need an oppId). find one via page +r=p('/api/opportunity/page',viewType='MINE',pageNum=1,pageSize=5) +recs=(r.json().get('data') or {}).get('content') or [] +oppId=recs[0].get('id') if recs else None +out['pick_opp']={'http':r.status_code,'oppId':oppId,'total':(r.json().get('data') or {}).get('total')} + +if oppId: + r=p('/api/opportunity/customer/search',oppId=oppId,keyword='',pageNum=1,pageSize=5) + j=r.json(); data=j.get('data') or {} + cand=data.get('content') or data.get('records') or [] + out['customer_search']={'http':r.status_code,'success':j.get('success'),'count':len(cand), + 'sample':cand[:2]} + # 3) contacts stub for first candidate (or any customerId) + cid=cand[0].get('customerId') if cand else 1 + r=g('/api/opportunity/customer/contacts', customerId=cid) + j=r.json() + out['contacts_stub']={'http':r.status_code,'success':j.get('success'), + 'data_is_list':isinstance(j.get('data'),list),'count':len(j.get('data') or [])} + # contacts for a non-existent customer -> should still be empty list, not error + r=g('/api/opportunity/customer/contacts', customerId=999999999) + j=r.json() + out['contacts_nonexistent']={'http':r.status_code,'success':j.get('success'), + 'data_is_list':isinstance(j.get('data'),list),'count':len(j.get('data') or [])} + +print(json.dumps(out,ensure_ascii=False,indent=2)) diff --git a/.scratch/opp-customer-dependency/wayfinder/商机前端联调工作量评估.md b/.scratch/opp-customer-dependency/wayfinder/商机前端联调工作量评估.md new file mode 100644 index 0000000..af93ec8 --- /dev/null +++ b/.scratch/opp-customer-dependency/wayfinder/商机前端联调工作量评估.md @@ -0,0 +1,95 @@ +# 商机模块前端联调工作量评估(最小可行范围) + +> **评估日期**:2026-09-01 +> **评估目标**:**仅**为"商机模块前端工程师能顺利与后端联调"这一最小可行范围估算工作量 +> **范围纪律**:忽略 A4 客户模块完整功能建设、非必要功能完善、架构重构;只做"让前端各表单/弹窗/下拉框有真接口可打通"必须的事 +> **依据**:`商机模块前置客户接口依赖分析报告.md` + 商机侧现状代码交叉核对(`crm-opportunity` / `crm-dict`) + +--- + +## 0. 一句话结论 + +**满足前端联调的最小工作量 ≈ 0.5~1.5 人日**,**远小于**原分析报告隐含的"A4 客户模块提前开发(6 接口 + 2 字典 + 商机侧 5 项配套)"体量。 + +原因:分析报告是为"**A4 客户模块提前排期**"写的**依赖清单**(回答"客户模块要开发什么");而本次问题是"**前端能不能联调**"(回答"前端打接口会不会 404 / 拿不到数据")。二者范围差一个数量级——**大部分 P0 联调路径商机侧已有降级实现,接口已经在跑,前端现在就能打通。** + +--- + +## 1. 现状核对:哪些接口已经能联调(一手代码证据) + +| 前端触点 | 报告列的"依赖接口" | 商机侧现状 | 前端能否联调 | +|---|---|---|---| +| 关联客户搜索(字段15 / 弹窗查询区) | `POST /api/customer/search` | **已存在** `POST /api/opportunity/customer/search`(快照池降级,`OpportunityCustomerMapper.searchCandidatePool`) | ✅ **现在就能打**,返回 `customerId + customerName` | +| 添加关联客户提交 | 客户写入 | **已存在** `POST /api/opportunity/customer/add`(`OpportunityCustomerAddDTO`:customerId/角色/是否主要) | ✅ 能打通"选客户→提交"闭环 | +| 客户列表 / 设主要 | — | **已存在** `/customer/list`、`/customer/set-primary` | ✅ | +| 客户角色下拉(字段16 / 弹窗) | crm-dict `customer_role` | **已 seed**(`DictDataInitializer` 6 项:总包/工程商/…/投标公司) | ✅ 走通用 `GET /api/dict/item/enabled-list?groupCode=customer_role` | +| 新建商机主表单提交 | `POST /api/opportunity` | **已存在** `OpportunityCreateController` + `CreateOpportunityRequest`(已含 customerId/customerName 快照位) | ✅ 主链路可提交 | +| 客户类型下拉(弹窗筛选) | crm-dict `customer_type` | **未 seed** ❌ | ⚠ 下拉开天窗(见 §2 缺口1) | +| 客户联系人(字段17 级联 / 弹窗) | `GET /api/customer/{id}/contacts` | **无任何实现** ❌ | ❌ 打了 404(见 §2 缺口2) | +| 商机关键联系人全局搜索(字段13/14) | `GET /api/customer/contact/search` | **无实现**,且商机主表未建模 ❌ | ❌(P1,非必填,不阻塞主链路) | +| 快速创建客户(弹窗入口) | `POST /api/customer/quick-create` | **无实现** ❌ | ❌(P1,表单无此入口,不阻塞) | +| 查看客户详情跳转(Tab) | `GET /api/customer/{id}/detail` | **无实现** ❌ | ❌(P2,展示增强,不阻塞) | + +**结论**:报告 P0 三件里,`customer/search` 和 `customer/{id}`(回显所需字段)实质已被商机侧降级接口覆盖,**唯一真正阻塞主链路联调的硬缺口是"按客户查联系人"(字段17 级联)**,外加一条 `customer_type` 字典 seed。 + +--- + +## 2. 满足前端联调必须补的缺口(最小集) + +### 缺口 1 — `customer_type` 字典 seed 【必做,工作量最小】 +- **现状**:`customer_role` 已 seed,`customer_type` 完全缺失。 +- **联调影响**:弹窗"客户类型"筛选下拉、客户信息 Tab"客户类型"列取不到选项 → 下拉开天窗。 +- **最小做法**:在 `DictDataInitializer` 仿 `customer_role` 加一条 `GroupSeed("customer_type", "客户类型", …)`,6 项(总包/工程商/投资方/设计院/集成商/投标公司)。**纯 seed,无表结构变更。** +- **工作量**:**~0.5 h**(含重启验证 `enabled-list` 出数)。 + +### 缺口 2 — 客户联系人接口(字段17 级联)【主链路联调硬依赖】 +- **现状**:`GET /api/customer/{id}/contacts` 无实现;商机侧亦无联系人子表。 +- **联调影响**:验收标准 8"选关联客户后客户联系人范围同步更新"打不通 → 前端级联联动无接口可对。 +- **最小做法(联调桩,非 A4 真实现)**:在商机侧加一个**降级 stub 端点**(对齐现有快照池套路),例如 `GET /api/opportunity/customer/{customerId}/contacts`,返回**空列表或固定 mock**,让前端级联逻辑能对上契约、不 404。真实数据待 A4。 + - 若产品要求联调阶段就有真联系人数据,则需商机侧补 `opportunity_customer_contact` 快照子表 + 查询——**这已超出"最小联调"范围,建议延后**。 +- **工作量**:**stub 版 ~1~2 h**;真实子表版 ~1 人日(不建议纳入本次)。 + +### 缺口 3 — 候选池出参补列(可选,联调体验增强) +- **现状**:`OpportunityCustomerCandidateDTO` 只有 `customerId + customerName`;弹窗结果表要 7 列(类型/地区/联系人/电话/负责人)。 +- **联调影响**:**不阻塞**——前端能拿到 id+名即可完成"选客户→提交"闭环;其余列前端可先留空/占位。 +- **建议**:**本次不做**(属 A4 真源就位后补齐,签名不变)。 + +--- + +## 3. 明确排除项(不在"满足联调"范围) + +| 排除项 | 报告优先级 | 排除理由 | +|---|---|---| +| A4 客户模块建库建模(`crm-customer` 模块、customer 主表) | 报告全篇前提 | 联调不需要真模块,降级接口已覆盖主链路 | +| `GET /api/customer/contact/search`(字段13/14 全局联系人搜索) | P1 | 非必填字段,主链路"选客户→选联系人→提交"不含此字段也走得通 | +| `POST /api/customer/quick-create` | P1 | 表单无此入口,仅弹窗有,不阻塞表单联调 | +| `GET /api/customer/{id}/detail` | P2 | 展示增强,可用基础信息接口过渡 | +| 商机侧字段13/14 主表建模(v29 增量) | §5.3 | 需产品拍板,属功能完善非联调阻塞 | +| 快照池切真源、出参7列补齐 | §5.4 / §缺口3 | A4 就位后的事,签名不变,联调路径不受影响 | +| 电话脱敏口径、重复商机校验阈值等待确认项 | §6 | 报告已注明"不阻塞接口排期" | + +--- + +## 4. 工作量汇总 + +| 任务 | 必要性 | 工作量 | +|---|---|---| +| ① `customer_type` 字典 seed(仿 customer_role) | **必做** | 0.5 h | +| ② 客户联系人接口 stub(`/customer/{id}/contacts` 返回空/mock,防 404) | **必做** | 1~2 h | +| ③ 联调回归:起服务,走一遍"搜客户→选客户→选角色→(联系人级联)→提交"全链路 + dict enabled-list 出数 | **必做** | 1~2 h | +| **小计(最小可行联调)** | | **约 0.5~1 人日** | +| ④(可选)候选池出参补 7 列 + 商机侧字段13/14 建模 | 缓 | +1~1.5 人日 | + +> **给排期的一句话**:只为"前端能联调"——**半天到一天**即可(一条字典 seed + 一个联系人 stub 端点 + 一轮联调回归)。报告里那份 A4 完整接口清单是**客户模块自身的开发排期**,不应算进"商机前端联调"的工时里。 + +--- + +## 5. 关键风险 / 待产品确认(影响估算的变量) + +1. **联系人接口要不要真数据?** 若联调阶段前端就要看到真实联系人级联(而非空 stub),工作量从 2 h 升到 ~1 人日(需建 `opportunity_customer_contact` 快照子表)。**建议先 stub,A4 就位补真源。** +2. **前端是否已按 `/api/opportunity/customer/*` 契约开发?** 若前端按报告里的理想路径 `/api/customer/*` 编码,则需前端改 baseURL 或后端加路由别名——需双方对齐一次(0.5 h 沟通)。 +3. **字段13/14 是否本期联调?** 若产品坚持本期联调关键联系人,需先拍板建模再估(超本次范围)。 + +--- + +_评估基于:分析报告 + `OpportunitySubController` / `OpportunityCustomerAddDTO` / `OpportunityCustomerMapper` / `CreateOpportunityRequest` / `DictDataInitializer` / `DictItemController` 现状代码交叉核对。_ diff --git a/.scratch/opportunity-acceptance/boot-run.log b/.scratch/opportunity-acceptance/boot-run.log index a31a0e7cce0e61b9998dc101f4f0aae7fff49e5c..2d5fce87281e85c62649f291098f043b5e1286f4 100644 GIT binary patch delta 1767 zcmccdgKbead&3sSh&|IkOkk7{HfOM6Fl4X*k_HS$40;U442IM9%Q2eTTLJ}*fzXt} z9H_vYArXj^8B!TcfV3$PS}<6GWk7OCKv82LX~|#)RBHxQn>;;Hg;8=^6XOzFO9ow_ z*@g@XU>iX87=Udv1lk4?w*bmSGZX_2&j1>q!cfYP!;s04$B+)xXE-_Wm-^%bTe#}8 z81jJ@=rQ;J)g%H{`2tChsuCbS56I2~JI)KNN&%=7Waj=lrP?obOOha>u|P3~_|uU* z|Fx2mvcIKT2iXFB4Dz)Z*o826hJeM;+!+TH1o_wu=u<-=+kk^0$)r3 zg*E|40`rU|FyVtpJz%f`gH{G_*na#c&zTQY3QqZx1CPko6H4!Hp;qbG(t92-SClj0 zPwg0v17>Iwpkt8|y9Y37pl23XYDd;?0n}zjbFW=Uo-`3Tjkm^M4BpTk8c#|rSODD# zE`B6%mOs>p1@v?ciYKz1338VkiK522^%C1L;yAoegAx)PclGfwCb`)sPZBCE7mF#P3@w iTabGZYaUw(DEfK+D+HxX10_QR1}(pz(TP2vkOcs4PG6A# delta 11 ScmZ3~&3@wtTf-K{h&=!y83j}T diff --git a/.scratch/opportunity-board-display-name/issues/01-stage-template-display-name-unique.md b/.scratch/opportunity-board-display-name/issues/01-stage-template-display-name-unique.md new file mode 100644 index 0000000..dac4835 --- /dev/null +++ b/.scratch/opportunity-board-display-name/issues/01-stage-template-display-name-unique.md @@ -0,0 +1,13 @@ +# 01 — 阶段模板发布校验:同一版本内展示名唯一 + +**What to build:** 管理员保存/发布阶段模板时,同一模板版本内若出现重复展示名(展示名 = `custom_node_name` 优先、空则带入 `opp_stage` 字典名),发布被拒并返回既有错误码;跨模板同名不受限。 + +**Blocked by:** None — can start immediately + +**Status:** ready-for-agent + +- [ ] 发布校验能识别同版本内两节点的最终展示名相同(含「自定义名撞自定义名」「自定义名撞回落字典名」两种情况) +- [ ] 校验失败时返回既有阶段模板错误码(64013 / 64017),错误信息指明哪两个节点撞名 +- [ ] 仅草稿可改规则不变;发布中/已停用版本仍不可直接改 +- [ ] 跨模板同名不触发校验(看板按展示名合并列是允许语义) +- [ ] 覆盖校验逻辑的单测 diff --git a/.scratch/opportunity-board-display-name/issues/02-stage-display-name-resolution-contract.md b/.scratch/opportunity-board-display-name/issues/02-stage-display-name-resolution-contract.md new file mode 100644 index 0000000..202d527 --- /dev/null +++ b/.scratch/opportunity-board-display-name/issues/02-stage-display-name-resolution-contract.md @@ -0,0 +1,12 @@ +# 02 — 展示名解析契约(crm-rule 侧能力) + +**What to build:** `IOpportunityStageTemplateService` 补齐两个批量能力,供看板两端点复用:① 节点 id → 展示名(`custom_node_name` 优先、空则字典名)的批量反查;② 展示名 → 匹配的节点 id 集合(跨模板同名的节点全部命中)。展示名规则仍由 crm-rule 内部独占,不外泄节点实体与排序知识。 + +**Blocked by:** None — can start immediately + +**Status:** ready-for-agent + +- [ ] 提供「节点 id 集合 → 展示名映射」的批量查询(同页去重、避免 N+1) +- [ ] 提供「展示名 → 节点 id 集合」的批量反查(跨模板同名全部返回) +- [ ] 展示名回落规则与 `describeStages` 一致:`custom_node_name` 非空取之,否则取 `opp_stage` 字典名 +- [ ] 覆盖两个能力的单测 diff --git a/.scratch/opportunity-board-display-name/issues/03-board-drop-status-filter.md b/.scratch/opportunity-board-display-name/issues/03-board-drop-status-filter.md new file mode 100644 index 0000000..286d299 --- /dev/null +++ b/.scratch/opportunity-board-display-name/issues/03-board-drop-status-filter.md @@ -0,0 +1,13 @@ +# 03 — 看板基础数据集撤销状态过滤 + +**What to build:** 非公海视图的看板不再叠加 `推进中(2)` 状态过滤。只要商机的阶段有值(`current_stage_id` 非空)就上板——暂缓中/已关闭/已转项目按各自当前节点归列;无阶段值的不上板。viewType 的可见性(MINE/关注/管理/公海)保留不变。 + +**Blocked by:** None — can start immediately + +**Status:** ready-for-agent + +- [ ] 看板基础数据集不再按 `opp_status = 推进中` 过滤 +- [ ] `current_stage_id` 非空的商机(含暂缓中/已关闭/已转项目)都出现在看板聚合结果中 +- [ ] `current_stage_id` 为空的商机不上板 +- [ ] 公海视图的「待领取且无 owner」工作区定义不受影响 +- [ ] 覆盖数据集口径的单测 diff --git a/.scratch/opportunity-board-display-name/issues/04-board-group-by-display-name.md b/.scratch/opportunity-board-display-name/issues/04-board-group-by-display-name.md new file mode 100644 index 0000000..12cb291 --- /dev/null +++ b/.scratch/opportunity-board-display-name/issues/04-board-group-by-display-name.md @@ -0,0 +1,15 @@ +# 04 — 看板按展示名分列(summary + cards 两端点) + +**What to build:** `boardStageSummary` 改为按「当前节点的展示名」分组,返回完整有序列摘要——空列 `count=0` 也返回,列顺序由视口阶段模板定(`stageTemplateId` 纯视口选择器,null → 当前用户所属部门绑定模板 → 全公司通用默认模板),视口外展示名按各自模板 `seq_no` 追加列末,跨模板同名合并为一列。`boardCards` 入参从 `stageId`(Long) 改为 `stageName`(String),后端解析成「展示名相等的节点 id 集合」取卡片,卡片新增 `oppStatus`。 + +**Blocked by:** 02、03 + +**Status:** ready-for-agent + +- [ ] `boardStageSummary` 返回 `[{stageName, count, totalAmount}]`,列键为展示名字符串,不再返回节点 id +- [ ] 空列以 `count=0` 出现在返回中,按视口顺序排列 +- [ ] 视口外展示名追加在列末,顺序确定(按各自模板 seq_no,撞名取最靠前位置) +- [ ] `stageTemplateId` 只影响列顺序,不过滤哪些商机上板 +- [ ] `boardCards` 入参改为 `stageName`,后端解析成节点 id 集合过滤,跨模板同名一次取全 +- [ ] 卡片返回带 `oppStatus` +- [ ] 覆盖两个端点的单测 diff --git a/.scratch/opportunity-board-display-name/issues/05-board-integration-tests.md b/.scratch/opportunity-board-display-name/issues/05-board-integration-tests.md new file mode 100644 index 0000000..8c32f5a --- /dev/null +++ b/.scratch/opportunity-board-display-name/issues/05-board-integration-tests.md @@ -0,0 +1,14 @@ +# 05 — 看板按展示名分列的集成测试 + +**What to build:** 走 API 的端到端集成测试,锁定 01–04 的组合语义:多模板同字典值不同展示名合并列、视口排序 + 视口外追加、空列返回、跨状态上板(暂缓/关闭/已转项目)、无阶段值不上板、cards 按 `stageName` 取卡带 `oppStatus`、阶段模板发布校验拒绝重复展示名。 + +**Blocked by:** 01、02、03、04 + +**Status:** ready-for-agent + +- [ ] 集成测试覆盖 summary 按展示名分组与视口列顺序 +- [ ] 集成测试覆盖跨模板同名合并为一列 +- [ ] 集成测试覆盖空列以 `count=0` 返回 +- [ ] 集成测试覆盖暂缓中/已关闭/已转项目上板、无阶段值不上板 +- [ ] 集成测试覆盖 cards 按 `stageName` 取卡且卡片带 `oppStatus` +- [ ] 集成测试覆盖阶段模板发布校验拒绝重复展示名 diff --git a/.scratch/opportunity-board-display-name/issues/06-board-api-docs.md b/.scratch/opportunity-board-display-name/issues/06-board-api-docs.md new file mode 100644 index 0000000..df686f9 --- /dev/null +++ b/.scratch/opportunity-board-display-name/issues/06-board-api-docs.md @@ -0,0 +1,12 @@ +# 06 — 更新看板接口文档 + +**What to build:** 更新 `board/stage-summary`、`board/cards` 的接口文档(Bruno 集合或等价 API 文档),反映新契约:summary 返回 `stageName/count/totalAmount` 按展示名分组、空列语义;cards 入参 `stageName`、卡片带 `oppStatus`;移除旧 `stageId` 契约说明。 + +**Blocked by:** 04 + +**Status:** ready-for-agent + +- [ ] summary 文档描述按展示名分组、空列 `count=0`、视口列顺序语义 +- [ ] cards 文档描述入参 `stageName` 与跨模板同名合并取卡语义 +- [ ] 卡片字段文档包含 `oppStatus` +- [ ] 旧 `stageId` 契约说明移除 diff --git a/.scratch/opportunity-board-display-name/issues/07-code-review.md b/.scratch/opportunity-board-display-name/issues/07-code-review.md new file mode 100644 index 0000000..df8809b --- /dev/null +++ b/.scratch/opportunity-board-display-name/issues/07-code-review.md @@ -0,0 +1,12 @@ +# 07 — code-review + +**What to build:** 对本次全部改动跑一遍 code-review(Standards + Spec 双轴),对照 ADR-0032 与 `crm-opportunity/CONTEXT.md` 看板定义核查实现一致性,重点:分组键确为展示名、状态过滤确已撤销、视口只定序不过滤、发布校验确已落地、API 契约与 04 定义一致。 + +**Blocked by:** 01、02、03、04、05、06 + +**Status:** ready-for-agent + +- [ ] Standards 轴:编码规范(UTF-8 无 BOM、单测、命名)通过 +- [ ] Spec 轴:实现与 ADR-0032 + CONTEXT 定义逐条一致 +- [ ] 无遗留的按节点 id / 按状态分列代码路径 +- [ ] 审查问题已记录并闭环或转 wontfix diff --git a/.scratch/opportunity-e2e/demo/index.html b/.scratch/opportunity-e2e/demo/index.html index 352bffb..4f16d5a 100644 --- a/.scratch/opportunity-e2e/demo/index.html +++ b/.scratch/opportunity-e2e/demo/index.html @@ -61,6 +61,16 @@ dialog .dfoot button.ok { background: #409eff; color: #fff; border-color: #409ef .hint { color: #999; font-size: 12px; } .loading { color: #409eff; } .mark { display: inline-block; margin-left: 4px; padding: 0 6px; border-radius: 8px; background: #ececec; color: #8a8a8a; font-size: 11px; vertical-align: middle; cursor: help; } +.lanes { display: flex; gap: 10px; overflow-x: auto; padding: 8px 0 4px; align-items: flex-start; } +.lane { min-width: 224px; width: 224px; flex-shrink: 0; background: #f7f8fa; border: 1px solid #e4e7ed; border-radius: 6px; padding: 8px; } +.laneHead { font-weight: 600; font-size: 13px; margin-bottom: 6px; } +.laneBody { display: flex; flex-direction: column; gap: 6px; min-height: 30px; } +.laneCard { background: #fff; border: 1px solid #e4e7ed; border-radius: 4px; padding: 6px 8px; cursor: pointer; font-size: 12px; display: flex; flex-direction: column; gap: 2px; } +.laneCard:hover { border-color: #409eff; background: #f0f7ff; } +.laneFoot { text-align: center; margin-top: 6px; } +.laneFoot button { padding: 2px 10px; border: 1px solid #dcdfe6; background: #fff; border-radius: 4px; cursor: pointer; font-size: 12px; } +fieldset { border: 1px solid #e4e7ed; border-radius: 6px; padding: 8px 10px 10px; display: flex; flex-direction: column; gap: 10px; } +fieldset legend { padding: 0 6px; font-size: 12px; color: #909399; } @@ -68,6 +78,8 @@ dialog .dfoot button.ok { background: #409eff; color: #fff; border-color: #409ef

商机模块 E2E Demo

当前用户: + + 未登录 @@ -102,6 +114,7 @@ dialog .dfoot button.ok { background: #409eff; color: #fff; border-color: #409ef
看板汇总(当前视图)D-15
+
看板泳道(当前视图 · 按展示名取卡,offset+limit 滚动加载)
随视图加载,每列先拉 5 条,点「更多」续拉