# 拜访管理模块 ## 业务范围 拜访管理承接“医院 -> 科室 -> 医生 -> 拜访计划 -> 定位/拍照签到 -> 拜访记录 -> 跟进与风险提示”的客户过程管理链路。 ## 已交付功能 1. 拜访计划:选择市场维护中的医院、科室、医生档案,填写计划拜访时间、拜访人员、目的和沟通重点。 2. 客户拜访列表:支持按关键字和状态查询,提供分页、详情、计划编辑、签到和记录提交入口。 3. 定位签到:浏览器优先调用设备定位;定位不可用时自动使用本地开发模拟定位,保证开发联调可完成。 4. 现场照片:支持手机拍照或本地选择图片,前端限制 2MB 并展示预览,照片随签到记录保存。 5. 拜访记录:签到后填写客户沟通结果、后续跟进计划、下次拜访日期、风险等级和风险说明。 6. 风险提示:支持正常、需关注、高风险三个等级,并在列表和统计区展示。 ## 数据库 执行 `sairui-server/src/main/resources/db/schema/V4__visit_management.sql`,创建: - `visit_record`:计划、定位签到、照片、拜访记录、跟进和风险信息。 拜访对象通过 `hospital_id`、`department_id`、`doctor_id` 关联既有市场维护档案。 ## API | 方法 | 地址 | 说明 | | --- | --- | --- | | GET | `/api/v1/visits` | 查询拜访记录,支持关键字和状态过滤 | | GET | `/api/v1/visits/{id}` | 查询拜访详情 | | POST | `/api/v1/visits` | 创建拜访计划 | | PUT | `/api/v1/visits/{id}` | 编辑待拜访计划 | | POST | `/api/v1/visits/{id}/check-in` | 提交定位与现场照片签到 | | POST | `/api/v1/visits/{id}/complete` | 提交拜访记录、跟进及风险信息 | 状态流转:`PLANNED`(待拜访) -> `CHECKED_IN`(已签到) -> `COMPLETED`(已完成)。 ## 联调步骤 1. 确保市场维护中已存在医院档案;科室和医生档案可选。 2. 重启后端后,打开 `http://127.0.0.1:5173/visits`。 3. 在“计划录入”创建拜访计划,再切换至“全部记录”。 4. 对待拜访记录点击“签到”,完成定位与现场照片选择。 5. 对已签到记录点击“记录”,填写拜访结果、跟进计划和风险信息后归档。 ## 当前边界 当前浏览器版本使用 `navigator.geolocation` 与本地文件选择模拟钉钉定位、拍照能力。接入钉钉容器后,可在前端替换为钉钉 JS API,后端接口和数据字段无需调整。