--- 标题: "任务分配" 描述: "将工作分配给具备库存授权和时间线管理权限的用户" ---
作业
任务分配将工作指派给用户,定义资源目标,并通过二维码取货码管理库存授权。任务分配采用实时操作(非版本化),可立即获得员工确认。
作业结构
任务页面显示当前活跃的工作分配,包含状态和二维码
核心字段:- 名称 - 描述性任务名称- 说明 - 工作指示或背景信息
- 指派对象 - 用户数组(支持团队指派)- 状态 - 待处理、进行中、已完成、已取消- 创建者 - 创建任务的用户- 时间线 - 开始日期、截止日期、预计工时
工作定义:- 可用任务 - 工作者可选任务ID的数组(通常超额分配10倍)- 资源目标 - 需达成的目标(非硬性预留)
库存管理:- 计划库存 - 预期库存需求(软性规划,无锁定)- 提货码 - 授权库存转移的JWT- 提货码有效期 - 授权失效时间- 剩余提货量 - 待提货数量(部分提货后剩余)
实时操作
任务绕过版本/提交工作流:
实时处理的必要性:- 工人需要即时确认:"我是否需要执行这项任务?"- 薪酬计算需基于已确认的任务分配数据- 离线任务草拟毫无价值(任务分配是执行环节而非规划环节)- 库存可见性必须实时更新,以验证二维码取货的有效性
直接API:- 通过/api/workorders/upsert接口创建/更新- 变更内容立即显示给分配的工人- 无需等待管理员版本提交- 支持动态工作重新分配
资源目标(非预留)
resourceTargets 数组定义工作目标,而非库存锁定:
示例: 任务分配给John:资源目标: [ { 资源:"Cat6网线",数量:50,计量单位:"米" }, { 资源:"接线盒",数量:10,计量单位:"个" } ]
关键点:- 不从库存中预留50米电缆- 其他工人仍可领取相同材料- 库存分配在二维码扫描时进行(先到先得)- 允许在工作日期间优先级变化时灵活调整
为何不采用硬性预留:- 现场作业中优先级变化迅速- 员工可能临时请病假(预留库存将无法使用)- 多名员工可能共享同一库存池- 仓库无法准确预测取货时间
**计划库存(可选):**无锁定状态的需求预测:计划库存:[ { 库存项ID: warehouse_cable_id, 资源: "Cat6网线", 数量: 50, 计量单位: "米" } ]
协助仓库工作人员:- 查看所有任务的总预期需求- 准备待取物料(预留但不锁定)- 若库存不足,在工作人员到达前发出警告
可用任务(10倍灵活性)
availableTasks 数组为工作者提供选择:
示例: ``` 任务:资源目标:50米电缆 可用任务:任务1, 任务2, 任务3, ... 任务30
每项任务需使用2-10米电缆工人自主选择任务组合以达成50米目标
过度分配的优势:- 工人选择最优路线(优先处理最近任务)- 绕开障碍物(锁闭建筑、天气延误)- 适应库存可用性(部分任务需调用缺货材料)- 增强自主性(重视工人判断力)
典型配比:- 普通任务超额分配10倍(10个工作单位,100个期权单位)- 确保工作者永不缺失任务- 未完成任务滚动至下次分配
二维码取货码
任务详情显示资源分配、二维码及实时追踪
任务可生成基于JWT的二维码用于库存授权:
**生成流程:**1. 创建包含资源目标的任务2. 系统生成包含以下内容的pickupCode(JWT): - 授权用户ID(来自assignedTo数组) - 资源目标(可领取的物品) - 过期时间戳 - 来源库存项ID(可选 - 特定库存)
二维码显示:- 仅向授权接收者(assignedTo用户)展示- 后端强制执行:非授权用户可见pickupCode: null- 任务详情页显示200×200像素二维码- 若设置pickupCodeExpires则显示有效期
扫描工作流:```QR取件流程:
任务创建 → 生成二维码(JWT)→ 工作人员扫描 → 验证 → 转移交易 ↓ ↓ ↓ ↓ ↓ 资源目标 取货码 摄像头/扫描仪 身份验证 库存更新 有效期 可用性 GPS记录 签名
- 工作人员开启扫描器(移动应用或摄像头)2. 扫描任务二维码3. 系统验证: - JWT签名及有效期 - 扫描器为授权接收方或具备
canFacilitatePickups权限 - 源站点库存可用性4. 自动创建转运交易5. 工作人员个人站点接收库存
部分提货: 任务请求:100个单位仅剩60个可用 → 工人提取60个提货剩余更新:40个单位补货时可重复使用相同二维码(JWT仍有效)
员工协助提货: 具备canFacilitatePickups权限的仓库员工:- 可代授权工人扫描二维码- 交易记录格式:scanMethod = "staff", scannerUserId = 员工ID- 支持无人值守仓库模式(工人抵达后,由员工协助完成货物交接)
任务状态
任务生命周期:
待处理 → 进行中 → 已完成 ↓ ↓ ↓创建首份报告 所有目标达成 ↓提交或手动更新 └──────→取消(工作重定向/延期)```
待处理 - 已创建,尚未开始 - 新任务的初始状态 - 执行者尚未开始工作
进行中 - 工作正在进行 - 已提交至少一份报告 - 或工作人员手动更新状态
已完成 - 所有工作已结束 - 所有资源目标均达成(或超额完成) - 工作人员标记为完成
已取消 - 任务不再需要 - 工作已转交他人 - 时间线变更,工作延期 - 仍可见于历史记录(软删除选项)
进度计算
任务进度基于资源目标,而非可用任务:
**公式:**对于每个资源目标:将所有报告中已完成的工作量相加除以目标总量每个资源上限为100%
总体 = 所有资源目标的平均值
示例:```资源目标:- 50米电缆- 10个接线盒
已提交报告:- 报告A:30米电缆,6个接线盒- 报告B:25米电缆,5个接线盒
进度:电缆:(30 + 25) / 50 = 110% → 上限为100%箱体:(6 + 5) / 10 = 110% → 上限为100%总体:(100% + 100%) / 2 = 100%
视觉指示器:- 进度条:绿色 ≥100%,黄色 ≥50%,红色 <50%- 应用场景:引用本任务的报告与验证
创建作业
所需权限: assignmentsCreate 管理员权限
**工作流:**1. 导航至【履约】→【任务分配】2. 点击"添加任务"3. 填写基本信息(名称、描述)4. 将用户拖拽至"分配对象"字段(支持拖放操作)5. 设置时间线(开始日期、截止日期)6. 添加资源目标(需完成的工作内容) 7. 将任务从"任务"页面拖入"可用任务"字段8. 可选设置计划库存(需求预测值)9. 若需保护库存则生成提货码10. 保存(任务立即显示给分配人员)
拖放支持:- 将用户从"用户"页面拖拽至"指派对象"字段- 将任务从"任务"页面拖拽至"可用任务"字段- 支持跨浏览器标签页操作(多显示器设置)
筛选作业
预设筛选器:- 由我创建 - 您创建的任务- 分配给我 - 您的工作任务
自定义筛选器:- 状态(待处理、进行中、已完成、已取消)- 日期范围(开始日期、截止日期)- 分配给特定用户- 包含特定任务
任务详情视图
显示信息:- 基本信息(名称、描述、状态)- 指派用户(可拖拽对象)- 资源目标列表- 可用任务列表- 进度条及百分比- 二维码(若已授权且存在取件码)- 剩余取件量(部分取件后)- 该任务已提交的报告- 交易记录(已完成的取件操作)
可用操作:- 更新状态- 编辑时间线- 添加/移除任务- 重新生成取件码(若已过期)- 创建新报告(任务分配中的快速操作)
从作业创建报告
快速工作汇报流程:
- 打开任务详情视图2. 点击"创建报告"按钮(位于操作栏)
- 预填报表单显示: - 责任人:与任务分配一致 - 可用任务:自动从任务继承 - 建议消耗量:基于资源目标计算4. 执行者调整实际数据(真实发生情况)5. 提交报告6. 消耗交易自动生成7. 任务进度更新
通知
批量通知可防止垃圾信息:
智能批量处理:- 1小时内10+项任务变更 → 统一汇总通知- 紧急/高优先级任务单独通知
摘要时间表:- 每小时摘要(用户可配置)- 每日总结- 应用内实时徽章计数
通知内容:- 为您创建的新任务- 任务状态变更- 即将到期的截止日期- 即将失效的取件码
最佳实践
超额分配任务:- 提供比达成目标所需多10倍的任务- 提升员工自主性可提高效率- 减少"无事可做"的停工时间
设定合理时间表:- 考虑任务间移动时间- 预留材料领取延误时间- 为天气、交通及场地关闭预留缓冲
使用提货码管理受保护库存:- 高价值设备- 需追溯责任的受控材料- 具有监管追踪要求的物品
监控部分取件:- 定期检查pickupRemaining状态- 及时补货以确保员工能完成取件- 向指定员工通报延误情况
完成任务的复核:- 对比资源目标与实际消耗量(基于报告数据)- 识别估算误差(分配过多/过少)- 优化未来任务规划