业务逻辑说明

本文档详细描述市场调研小程序的核心业务规则、状态流转逻辑、电子围栏算法和任务分配策略。


1. 概述

涵盖用户角色与权限、任务状态流转、电子围栏逻辑、派单分配策略、表单逻辑、审核逻辑、OCR 识别与数据导出等。


2. 用户角色与权限

2.1 角色定义

角色标识说明主要权限
调研员researcher执行调研任务的一线人员接单、打卡、拍照、填表、提交
审核员reviewer审核调研数据的人员查看提交、审核通过/驳回
派单员dispatcher创建和分配任务的人员创建任务、管理围栏、派单
超级管理员admin系统管理员全部权限

2.2 权限矩阵

功能调研员审核员派单员管理员
查看任务列表✅ 自己的✅ 全部✅ 全部
执行任务
创建任务
审核数据
管理围栏
管理表单
管理用户
数据导出✅ 部分

3. 任务状态流转

3.1 任务状态定义

状态标识说明
草稿draft任务创建后未发布
已发布published任务已发布,等待分配
进行中in_progress有调研员正在执行
已完成completed所有分配已完成审核
已取消cancelled任务被取消

3.2 状态流转规则

draft ──发布──> published ──分配──> in_progress ──完成──> completed
  │                │                    │
  └───取消───>  cancelled  <───取消────┘

流转条件

3.3 任务分配状态

状态标识说明
待执行pending已分配但未开始
进行中in_progress调研员已开始执行
已提交submitted调研员已提交,待审核
已通过approved审核通过
已驳回rejected审核驳回,需重新提交
pending ──开始──> in_progress ──提交──> submitted ──审核──> approved
                      │                    │              │
                      └──────暂存──────────┘              │
                                           rejected <─驳回─┘
                                              │
                                              └──修改──> submitted

4. 电子围栏逻辑

4.1 围栏类型

圆形围栏:center_lat、center_lng、radius(米)。

多边形围栏:polygon 顶点数组 [经度, 纬度]。

4.2 围栏校验算法

使用 Turf.js 进行地理计算:判断点是否在圆内(距离 ≤ 半径)、是否在多边形内(booleanPointInPolygon)、计算点到中心距离。

4.3 打卡校验规则


5. 派单分配策略

5.1 派单模式

5.2 工作量管理

可配置调研员每日最大任务数;超出上限不再推送新任务;抢单时检查是否超出上限。


6. 表单逻辑

6.1 动态表单字段类型

类型标识说明
单行文本text普通文本输入
多行文本textarea多行文本区域
数字number数字输入,支持小数
单选radio单选按钮组
多选checkbox多选复选框组
下拉选择select下拉选择框
日期/时间date / time日期/时间选择器
图片上传image图片上传组件
评分rating星级评分
矩阵题matrix矩阵选择题
级联选择cascader级联选择器

6.2 条件显示与验证

支持 showWhen 配置(field、operator、value),运算符:eq、neq、contains、gt、lt、empty、notEmpty。字段可配置 required、validation(regex、range 等)。


7. 审核逻辑

单级审核:提交 → 审核员审核 → 通过/驳回。多级审核可配置。驳回须填写原因;调研员可修改后重新提交。审核驳回原因:photo_quality、photo_missing、data_incomplete、data_invalid、location_mismatch、other。


8. OCR 识别与数据导出

识别类型映射:价格标签/发票用票据识别,商品包装用商品识别,货架标签用通用识别。识别结果可映射到表单字段自动填充。导出支持 Excel/CSV;审核员仅导出已通过数据,派单员导出自己任务,管理员导出全部。