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.
6.3 KiB
6.3 KiB
08 现场勘察子表
Type: grilling Status: resolved Blocked by: 03
一、定位
现场勘察(site survey)= 记录商机某次到客户现场勘察的结果单据(现场条件/客户需求/安装环境/工程师建议 + 附件)。住 crm-opportunity。原型 A3-1-1-1-4(列表Tab)+ A3-1-1-2-10 新增(弹窗)。
存档:research-a31114-site-survey.md。
二、已核实事实(原型)
- 一个商机可多条勘察记录(多次勘察分组展示、按顺序);每条归属当前商机。
- 保留历史不覆盖:同一商机多次勘察 = 新增多条区分(无编辑覆盖旧记录的语义,编辑仅限有权限时改本条)。
- 无状态机:勘察记录没有草稿/提交/审批态——填完即一条完整记录(对比方案卡有状态机,勘察无)。
- 无阶段绑定:勘察不绑定阶段节点,是自由记录(回答票原问题:自由记录,不绑阶段)。
- 工程师从组织架构选:按姓名/部门/职位查询 → 选一名主要工程师(复用
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字典,具体值待产品)。 - ⚠ 原型工程师/日期/单号均为样例,非验收值。
落地记录(20260825)
结构落地完成(对齐票 03/09 粒度,§7.3):
- 实体
OpportunitySiteSurvey(@Entity+@TableName+继承BaseEntity)+OpportunitySiteSurveyMapper。 - 必填:
surveyDate/engineerUserId/applyWay/surveySeq;选填:applyNo/surveyDesc(以 grill 底稿为准,PRD §7.3 表中 apply_way/survey_seq 标「—」以底稿必填覆盖)。 - 无状态机、不绑阶段;无唯一约束→走 BaseEntity 逻辑删
deleted,不加 delete_key(复用键仅为唯一索引服务)。 - 附件复用统一附件表(
biz_type=SITE_SURVEY+biz_id=本记录 id,票 09 已落)。 - 测试:
OpportunitySiteSurveyMapperTest(表绑定+列映射+逻辑删),crm-opportunity 108→111 全绿。
接线待后续:勘察读写 Service/Controller(新增/列表/详情,工程师选人反查 SysUser 脱敏展示);crm-dict 新增「申请方式/勘察次数」分组 = 字典种子子票。