Aptli

--- 标题: "任务" 描述: "定义工作区域及其资源需求和地理位置" ---

任务

任务定义了具有特定资源需求和地理位置的计划工作。任务采用版本/提交工作流,支持协作式离线规划和回滚功能。

任务结构

任务页面展示计划工作,包含进度跟踪和多资源需求

基本字段:** - 名称 - 描述性任务名称 - 说明 - 详细工作指示 - 几何图形 - 显示工作位置的点、线或多边形 - 订单 - 父工作订单,用于分组相关任务 - 资源 - 所需材料/人力列表(支持多资源)

**资源需求:**每个资源条目包含:- resource - 资源定义参考- volume - 所需数量/数量- uom - 计量单位- assignedTo - 负责领取该特定资源行的人员(可选)

示例: 任务:在42号楼安装网络接线盒 几何坐标:点 (纬度: 40.7128, 经度: -74.0060) 资源:[ { 资源: "接线盒", 数量: 1, 单位: "个" }, { 资源: "Cat6 电缆", 数量: 15, 单位: "米" }, { 资源: "安装螺丝", 数量: 8, 单位: "个" }, { 资源: "电工", 数量: 2, 单位: "小时" } ]

多资源任务

旧系统:每项任务占用一个资源问题:复杂工作导致地图标记过多示例:100个安装点 × 4个资源 = 400个地图标记点

当前系统:每个任务对应多个资源解决方案:单个地图标记代表完整工作同例说明:100个地图点(每个安装点对应一个)更简洁的地图,更便捷的空间规划

优势:- 减少界面杂乱- 相关材料分组处理(门+螺丝+胶水=单一任务)- 全资源进度同步追踪

按资源分配

任务中的每个资源行均可指定给特定人员。这使规划人员能够在行级别(而非仅在工单级别)明确谁负责领取每项材料或完成每项劳动内容。

分配方式:

  • 在任务详情中,每个资源行设有负责人
  • 当任务中任意行存在分配时,该列自动显示;对于报告等不适用分配的记录类型,该列保持隐藏
  • 将某人分配至资源行并不锁定库存——仅记录预计由谁领取并交付该物品
  • 实际领取状态(谁领取、领取数量、领取时间)通过交易台账追踪,而非记录在任务本身

为何在资源级别追踪?

工单将多个任务组合并分配给人员,但一个工单可能涵盖多个任务下的数十个资源行。按资源分配填补了这一空白:规划人员可以指定"Alice负责为本任务领取50米导管,Bob负责接线盒"。每人都能清楚看到自己需要领取的具体物品,无需猜测各自的责任范围。

发送分配通知:

完成资源分配设置后,任务页面上的发送分配操作将向所有被分配人发送通知。每位相关人员收到一条综合消息,内容涵盖其工单信息(名称、截止日期、链接)以及每个被分配资源行对应的一个二维码。该二维码即为领取授权凭证——工作人员在仓库扫描二维码即可领取对应物品,扫描后系统自动记录领取交易。

发送分配操作既可作为单个任务行的行级操作使用,也可在表格中选择多个任务后作为批量操作执行。

任务具有版本控制

与作业/报告不同,任务采用版本/提交工作流:

版本控制的必要性:- 管理员需在离线环境(地铁隧道、偏远站点)设计工作区域- 需检测空间冲突(地理区域重叠)- 常需批量操作(重构整个活动方案)- 回滚功能至关重要(撤销全部规划变更)

**工作流:**1. 创建版本(草稿模式)2. 在草稿中添加/编辑任务3. 空间验证(检查重叠情况)4. 提交版本 → 任务转为"正式"状态5. 工作人员在任务分配中查看已提交任务

**离线协作:**多位管理员可分别创建独立版本:- 管理员A:规划北部区域任务- 管理员B:规划南部区域任务- 双方均可离线操作,后续提交- 若存在地域重叠则进行冲突解决

任务几何类型

点任务 单一地点作业(设备安装、检查)。

**示例:**安装接线盒几何:{ 类型:"点",坐标:[经度, 纬度] }

线路作业线性工程(电缆敷设、管道安装)。

**示例:**铺设500米光纤电缆几何:{ 类型:"LineString",坐标:[[经度1,纬度1],[经度2,纬度2],...] }

多边形任务 基于区域的工作(覆盖区域、服务区域)。

**示例:**社区入户走访几何:{ 类型:"多边形",坐标:[[[经度1,纬度1], ...]] }

邻近性过滤

查找特定地点附近的任务:

**使用场景:**仓库工人需要查找附近任务1. 打开任务页面2. 点击"筛选附近"按钮3. 将地图标记拖动至仓库位置4. 设置距离范围(例如5公里)5. 表格仅显示半径范围内的任务

后端实现:- 使用MongoDB的$geoWithin查询配合$centerSphere- 在几何字段上应用二维球面索引- 即使处理数千个任务也能实现快速空间过滤

**行操作:**点击任务行中的"筛选附近"→自动将距离设置为该任务所在位置

任务在作业中的使用

任务以可用工作选项的形式出现在分配中:

灵活分配:- 任务可能包含10项可选任务- 资源目标要求完成其中1-2项任务- 工作者自主选择要完成的任务(灵活性)- 10倍超额分配很常见(可选项远超目标量)

示例: ``` 任务分配给John: 资源目标:50米电缆,20个接线盒 可用任务:任务1, 任务2, 任务3, ... 任务30

约翰完成:任务5:30米电缆,12个接线盒任务12:20米电缆,8个接线盒总计:达到电缆目标,达到接线盒目标

工人拥有30项任务选项以达成目标——灵活性极高。

任务进度跟踪

**计算:**进度 = 所有资源的平均完成度

示例: ``` 包含3项资源的任务: - Cat6网线:需10米,已完成5米 = 50% - 螺丝:需8个,已完成8个 = 100% - 人工:需2小时,已报告0小时 = 0%

总体进度 = (50% + 100% + 0%) / 3 = 50%

视觉指示器:- 进度条:绿色≥100%,黄色≥50%,红色<50%- 几何指示器:有效点/线/多边形显示绿色勾号- 使用场景:显示哪些作业/报告引用了此任务

创建任务

所需权限: tasksCreate 管理员权限

**工作流程:**1. 导航至【履约】→【任务】2. 创建新版本(或编辑现有草稿) 3. 在版本中点击"添加任务" 4. 填写基本信息(名称、描述) 5. 选择订单(父级分组) 6. 点击映射设置几何形状 7. 添加资源(可添加多个) 8. 将任务保存为草稿 9. 规划完成后提交版本

最佳实践:- 将相关材料归入单一任务(减少地图杂乱)- 采用统一命名规范(例如"安装 - 接线盒 - 42号楼")- 设定合理资源数量(为库存规划提供依据)- 包含人力资源(便于人员配置计算)

批量任务生成

高效创建多个类似任务:

**场景:**在不同建筑物上安装100个接线盒

方法1:从GeoJSON导入1. 创建包含100个点的GeoJSON文件2. 每个要素具有属性:名称、描述、资源3. 导入 → 在单个版本中创建100个任务

方法二:基于地图选区生成1. 在地图上选取100个现有建筑特征2. 点击"生成任务"3. 选择任务模板(资源需求)4. 在每个建筑位置创建任务

方法三:复制现有任务1. 选择具有正确资源配置的任务2. 点击”复制任务”3. 编辑几何体至新位置4. 对类似安装重复此操作

批量打印任务

一个项目可能包含数十甚至数百个任务。无需逐一从各任务详情页打印,可使用项目级别的打印所有任务操作:

  1. 打开父级项目的详情页(/fulfillment/projects/:id
  2. 点击页面头部的打印所有任务
  3. 批量打印视图将在 /fulfillment/tasks/batch/[ids] 打开——URL 中包含以逗号分隔的任务 ID 列表
  4. 页面每次显示 10 个任务(分页显示,CSS 驱动——所有记录均在 DOM 中,因此打印时会输出全部内容)
  5. 打印页面——每个任务之间有硬分页符,确保每页打印一个任务

注意事项:

  • 安全上限:批量视图每次打印最多 200 个任务。若项目超过此限制,系统会显示提示横幅,200 个以后的任务将被截断——如有需要,请分批打印。
  • 无需新的服务端逻辑——批量视图读取现有的 /api/tasks/get?_id=csv 端点,并使用与单个任务页面相同的 RecordDetail* 组件渲染每个任务,因此打印内容与逐一打印任务的结果一致。

任务验证

在版本提交前,系统会验证:

空间冲突:- 多边形重叠(两个任务覆盖相同区域)- 点任务间距过近(可配置阈值)- 线任务穿越限制区域

资源可用性:- 若所需资源未在库存中则发出警告- 不阻塞提交(任务可设置未来日期)- 辅助采购规划

几何有效性:- 点必须具有有效的坐标- 直线必须至少包含2个点- 多边形必须闭合(起始点=终点)

任务分配生命周期

**典型流程:**1. 规划 - 管理员创建任务草稿2. 提交 - 版本提交后任务正式生效3. 分配 - 任务加入工作者任务列表(availableTasks数组) 4. 执行阶段 - 工作者完成部分可用任务 5. 汇报阶段 - 工作者在工作完成报告中引用任务ID 6. 进度更新 - 根据完成工作更新任务进度 7. 完成阶段 - 当所有资源进度达100%时,任务标记为完成

任务复用:同一任务可出现在多个分配中:- 将相同任务分配给多名工作者(工作拆分)- 某任务由一名工作者部分完成,由另一名工作者完成- 跨所有报告汇总进度

查看任务详情

任务详情页显示:- 基本信息与几何形状- 资源需求清单- 进度条及百分比- 使用场景:引用该任务的作业和报告- 版本历史记录(修改过该任务的版本)- 与邻近任务的空间关系

地图视图:- 按进度分色标注(红色=未启动,黄色=部分完成,绿色=已完成)- 几何类型指示器(点图标、线条样式、多边形填充)- 可点击查看快速详情弹窗- 可按订单、进度、距离进行筛选