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.

72 lines
5.3 KiB

3 weeks ago
# 08 现场勘察子表
Type: grilling
3 weeks ago
Status: resolved
3 weeks ago
Blocked by: 03
3 weeks ago
## 一、定位
3 weeks ago
3 weeks ago
现场勘察(site survey)= 记录商机某次到客户现场勘察的**结果单据**(现场条件/客户需求/安装环境/工程师建议 + 附件)。住 `crm-opportunity`。原型 A3-1-1-1-4(列表Tab)+ A3-1-1-2-10 新增(弹窗)。
3 weeks ago
3 weeks ago
存档:`research-a31114-site-survey.md`。
3 weeks ago
3 weeks ago
## 二、已核实事实(原型)
- **一个商机可多条勘察记录**(多次勘察分组展示、按顺序);每条归属当前商机。
- **保留历史不覆盖**:同一商机多次勘察 = 新增多条区分(无编辑覆盖旧记录的语义,编辑仅限有权限时改本条)。
- **无状态机**:勘察记录没有草稿/提交/审批态——填完即一条完整记录(对比方案卡有状态机,勘察无)。
- **无阶段绑定**:勘察不绑定阶段节点,是自由记录(回答票原问题:**自由记录,不绑阶段**)。
- **工程师从组织架构选**:按姓名/部门/职位查询 → 选一名**主要工程师**(复用 `crm-auth` 组织架构 + SysUser,非自由文本)。每条勘察一名主要工程师。
- **附件属于具体某一次勘察记录**(原型明证:「附件可关联到具体某一次现场勘察记录」)。
## 三、字段(原型「新增现场勘察」+ 列表页核实)
| 原型字段 | 必填 | 类型 | 落库字段 | 说明 |
|---|---|---|---|---|
| 申请方式 | 必填 | 下拉 | `apply_way` | 工单申请/线下申请等,选项来源系统配置(→ `crm-dict` 字典) |
| 勘察次数 | 必填 | 下拉 | `survey_seq` | 手选四档枚举(第一次/第二次/第三次/三次以上)→ `crm-dict`「勘察次数」分组;列表页展示「次数」。非自增序号(“三次以上”是封顶档) |
| 现场勘察日期 | 必填 | 日期 | `survey_date` | 现场勘察发生的日期(原型带 `*`=必填,用户图上确认标签为「现场勘察日期」;存档 line 924/1020 的“预计重启/看场日期”系 analyze 归纳噪声,以图为准) |
| 申请单号 | 选填 | 文本 | `apply_no` | 外部申请单号,可空;列表页「申请单号」 |
| 主要工程师 | 必填* | 人员单选 | `engineer_user_id` | 引用 `crm-auth` SysUser;列表展示姓名/所属部门/联系方式(脱敏) |
| 勘察补充说明 | 选填 | 多行文本 | `survey_desc` | 现场环境/客户需求/安装条件/设备数量/特殊要求/工程师建议(原型无 `*`,照原型选填,不加码) |
| 相关附件 | 选填 | 文件上传 | → 附件子表(见四) | 现场照片/资料包/图纸/说明文件 |
> 「建议必填」= 原型措辞,落地按必填或软提示,⚠ 建模时定;`engineer_user_id` 是否绝对必填按「每条选一名主要工程师」定为必填。
**表 `opportunity_site_survey`(`crm-opportunity`)**
| 字段 | 说明 |
|---|---|
| `id` / `opp_id` | 主键 / 属哪个商机 |
| `apply_way` / `survey_seq` / `survey_date` / `apply_no` | 见上(`apply_way`/`survey_seq` 引用字典;`survey_date` 必填) |
| `engineer_user_id` | 主要工程师(`crm-auth` SysUser) |
| `survey_desc` | 勘察补充说明(长文本) |
| BaseEntity | 含 create_by(谁录的)等 |
-**勘察次数 = 手选四档枚举(产品拍板 P1-2)**:第一次/第二次/第三次/三次以上(原型 line 919-922),走 `crm-dict`「勘察次数」分组,非系统自增。
- 「联系方式」列表列 = 由 `engineer_user_id` 反查 SysUser 电话脱敏展示,**不冗余存**。
## 四、附件关系(对齐票 09 P4,不重复建表)
- 现场勘察附件**不独立建表**,复用票 09 定的**商机附件子表**(`crm-file` 契约),通过「业务类型 + 业务 id」定位到具体勘察记录。
- 即附件表带 `biz_type`(如 `SITE_SURVEY`)+ `biz_id`(= `opportunity_site_survey.id`),实现「附件关联到具体某一次勘察」。
- 与方案卡附件、商机通用附件同机制(票 07/09),**避免每个子表各建一套附件表**。
- → 传出票 09:附件子表 `biz_type` 枚举需含 `SITE_SURVEY`
## 五、权限
- 谁能新增/编辑/查看 = 对齐票 01 商机写权限 + `@DataScope` + 团队成员白名单,无 owner guard(与阶段推进、方案卡一致)。
- 主要工程师 ≠ 操作人:工程师是被选中的执行人(可跨部门查询选人),操作人是当前登录销售/管理员。
## 传出决策 / 回填其他票
- **回填票 09**:商机附件子表 `biz_type` 枚举加 `SITE_SURVEY`(+ 方案卡 `SCHEME_CARD`、跟进 `FOLLOW_UP` 等,票 09 统一定)。
- **回填 `crm-dict`**:新增字典分组 `申请方式`(工单申请/线下申请…)、`勘察次数`(第一次/第二次/第三次/三次以上,P1-2 拍板)——列入字典清单。
- **CONTEXT.md**:新增【现场勘察】术语(多条、无状态机、不绑阶段、工程师引用 SysUser、附件复用 crm-file)。
## 待产品/原型核实(不阻塞建模)
- ✅ 勘察次数(P1-2):手选四档枚举(第一/第二/第三/三次以上),走 crm-dict「勘察次数」。
- ✅ 勘察补充说明:**选填**(原型录入表单无 `*`,用户图上确认;P1-3 拍板,不加码必填)。
- ⚠ 「申请方式」选项集(走 `crm-dict` 字典,具体值待产品)。
- ⚠ 原型工程师/日期/单号均为样例,非验收值。