Aptli

任务

任务代表计划中的现场工作的单个单元,每个任务都有地图位置、资源需求(工作所需的材料和设备)以及进度跟踪。 一个任务可能是为特定建筑安装接线盒、沿路线铺设 500 米的电缆,或在指定区域进行检查。任务具有版本控制功能,因此团队可以在离线状态下进行规划、批量创建任务,并在提交到共享数据集之前回滚更改。

任务在层级结构中的位置

项目  (活动分组)
  └── 任务  ← 您当前所在位置
 ├── 资源  (该工作消耗的物料 — 可选)
 └── 工作单  (将此任务分配给工人或团队)
              ├── 活动行  (已完成的工作 — 已登记或临时性,可选)
 └── 报告  (工作者对实际完成工作的记录)

任务是核心的规划记录。它包含几何信息(位置)和资源需求(所需材料)。工作单将其分配给人员,并通过其活动行声明需执行的工作。报告则记录实际完成的内容,并将进度汇总回任务。

任务、资源与活动

§193 模型将一个工作的实质拆分为两个互补的登记表——且两者均为 可选

所在位置回答目录
资源工作 (资源行)此任务消耗哪些材料/设备?资源
活动工作单 (活动行)正在执行什么工作?活动

任务无需声明任何资源,工单也无需指定活动。当结构化追踪、库存授权或基于活动的支付能发挥作用时,请声明这些内容;对于简单或一次性工作,则可留空。 系统不会强制要求填写。

任务结构

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

基本字段:

  • 名称 — 描述性任务名称
  • 描述 — 详细的工作说明
  • 几何图形 — 表示工作位置的点、线或多边形
  • — 项目内的自由文本分组(例如“第一阶段”、“电气”)
  • 资源 — 所需材料和设备的数组(支持多资源,可选)

资源需求: 每个资源条目包含:

  • resource — 资源定义引用
  • volume — 所需数量
  • uom — 计量单位
  • assignedTo — 负责领取该特定资源行的人员(可选 — 参见 按资源分配)

示例:

任务:"在 42 号楼安装网络接线盒"
几何位置:点 (纬度: 40.7128, 经度: -74.0060)
资源:[
  { resource: "接线盒",    volume: 1,  uom: "个" },
  { resource: "Cat6 电缆", volume: 15, uom: "米" },
  { resource: "安装螺丝", volume: 8,  uom: "个" }
]

安装工作——包括熔接、安装和终端处理——应记录在工单的 活动行 中,而非在此处作为资源记录。

多资源任务

旧系统:每个任务对应一个资源

  • 问题:复杂工作会产生过多的地图标记
  • 示例:100 次安装 × 4 个资源 = 400 个地图点

当前系统:每个任务包含多个资源

  • 单个地图标记代表完整的作业包
  • 同上示例:100 个地图点(每次安装一个)
  • 地图更简洁,空间规划更轻松

按资源分配

任务中的每行资源均可分配给特定人员。这使规划人员能够指定谁负责领取每项物料——在资源行层面进行分配,而不仅仅是在工单层面。

分配机制:

  • 在任务详情中,每行资源都有一个**“分配给”**列
  • 当任务中的任意一行存在分配时,该列会自动显示;若未设置分配,则保持隐藏
  • 将人员分配给资源行并不预留库存——它仅记录谁预计将提取并交付该物品
  • 实际提货状态(谁提货、数量、时间)通过交易明细记录,而非在任务本身中记录

为何要在资源层面进行追踪?

单个任务可能包含多条资源行,且这些行可能分布在多个工单和施工队中。 按资源分配的功能填补了这一空白:计划员可以指定“Alice 负责为该任务领取 50 米的导管,Bob 负责接线盒”。每个人都能看到自己需要领取的具体物品范围——不会对谁负责哪件物品产生歧义。

按资源分配进行筛选:

“工作单”页面设有我的资源分配筛选器,可显示关联项目中已分配给您的资源行的工作单。工人可利用此功能直接跳转至其负责的材料领取任务,无需逐一浏览整个项目列表。

发送任务通知:

资源分配设置完成后,通过“任务”页面上的**“发送任务”**操作,系统将向所有被分配者发送通知。每人将收到一条综合消息,其中包含其对应的工作单(名称、截止日期、关联链接),以及每条分配资源行对应的二维码。 该二维码即为提货授权凭证——工人可在仓库扫描二维码以领取其对应的特定物品。扫描后,提货操作将自动作为一笔交易记录在案。

“发送任务”操作既可作为单个任务的逐行操作,也可在表格中选中多个任务时作为批量操作使用。

任务采用版本控制

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

为何采用版本控制:

  • 管理员需在离线环境(地铁隧道、偏远地点)设计工作区域
  • 需要空间冲突检测 (地理范围重叠)
  • 批量操作常见(重新设计整个项目)
  • 回滚功能重要(撤销整个规划变更)

工作流:

  1. 创建版本(草稿模式)
  2. 在草稿中添加/编辑任务
  3. 空间验证(检查重叠)
  4. 提交版本 → 任务成为“正式”任务
  5. 作业人员在任务分配中查看已提交的任务

离线协作: 多名管理员可创建独立版本:

  • 管理员 A:规划北部区域任务
  • 管理员 B:规划南部区域任务
  • 双方均离线工作,稍后提交
  • 若地理范围重叠则进行冲突解决

任务几何类型

点任务

单一位置作业(设备安装、检查)。

几何:{ type: "Point", coordinates: [lng, lat] }

线性任务

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

几何信息: { type: "LineString", coordinates: [[lng1,lat1], [lng2,lat2], ...] }

多边形任务

基于区域的工作(覆盖区、服务区)。

几何:{ type: "Polygon", coordinates: [[[lng1,lat1], ...]] }

邻近筛选

查找特定位置附近的任务:

  1. 打开“任务”页面
  2. 点击 筛选附近
  3. 将地图标记拖动到目标位置
  4. 设置距离(例如 5 公里)
  5. 表格中仅显示该半径范围内的任务

行操作: 点击任务行中的“筛选附近” → 自动将距离阈值设为该任务的位置。

工作单中的任务使用

每个工作单关联 一个任务 —— 即分配给工人执行的具体任务。 工作单不能跨越多个任务;如果工作涉及多个任务,请为每个任务创建单独的工作单,或使用临时独立工作单。

一个任务可以被多个工作单引用——这在将大型任务分配给多个团队,或工作分阶段进行且跨多天时非常有用。

示例:

任务:"3楼布线"
  资源:200米电缆

工作单 A(上午班组):
  任务:"3楼布线"
  资源目标:100米电缆
  活动:拉光缆 — 100米

工作单 B(下午施工组):
  任务:"在 3 楼铺设电缆"
  资源目标:100 米电缆
  活动:拉光缆 — 100 米

这两个工单都引用了同一项任务;两者的报告都会纳入该任务的进度计算中。

任务进度跟踪

计算方法: 进度 = 所有资源行平均完成度

示例:

包含 2 项资源的任务:
  - Cat6 线缆:需 10 米,已完成 5 米 = 50%
  - 螺丝:需 8 个,已完成 8 个 = 100%

总体进度 = (50% + 100%) / 2 = 75%

可视化指标:

  • 进度条:绿色 ≥ 100%,黄色 ≥ 50%,红色 < 50%

创建任务

所需权限: jobsCreate 管理员权限

操作流程:

  1. 导航至 履约 → 任务
  2. 创建新版本(或编辑现有草稿)
  3. 点击 添加任务
  4. 填写基本信息(名称、描述)
  5. 点击地图设置几何形状
  6. 若工作涉及材料消耗,请添加资源行(可选,可添加多条)
  7. 如有需要,设置资源分配
  8. 将任务保存为草稿
  9. 规划完成后提交版本

最佳实践:

  • 将相关材料归入同一任务(减少地图杂乱)
  • 采用统一的命名规范(例如:“安装 — 接线盒 — 42号楼”)
  • 设定合理的资源用量(有助于库存规划)
  • 在工单的活动行中记录工作内容,而非将其作为伪资源

批量生成工单

方法 1:从 GeoJSON 导入

  1. 创建 GeoJSON 文件,每个任务对应一个要素
  2. 每个要素包含属性:名称、描述、资源
  3. 导入 → 在一个版本中创建所有任务

方法 2:从地图选择生成

  1. 在地图上选择现有要素
  2. 点击 生成任务
  3. 选择资源配置
  4. 在每个选定位置创建一个任务

方法 3:复制任务

  1. 选择一个具有正确资源配置的任务
  2. 点击 复制
  3. 将几何图形编辑至新位置

批量打印任务

一个项目可能包含数十甚至数百个任务。与其从每个任务的详情页单独打印,不如使用项目级别的 打印所有任务 操作:

  1. 打开父项目的详情页(/fulfillment/projects/:id
  2. 点击页眉中的 打印所有任务
  3. 批量打印视图将在 /fulfillment/jobs/batch/[ids] 打开
  4. 屏幕每页显示 10 个任务(分页显示,由 CSS 驱动 — 所有记录均位于 DOM 中,因此打印时会输出全部内容)
  5. 打印页面——每个任务之间会插入硬换行

注意事项:

  • 安全限制:批量视图每次打印最多支持 200 个任务。若项目超过此限制,系统会显示警告横幅,且超过 200 个的任务将被截断——如有需要,请将打印任务拆分为多个小批次。
  • 每个作业的渲染布局与其单独的作业页面保持一致。

作业验证

在提交版本之前,系统将验证以下内容:

空间冲突:

  • 多边形重叠(两个作业覆盖同一区域)
  • 点任务间距过近(可配置阈值)
  • 线任务穿越限制区域

资源可用性:

  • 若所需资源库存不足则发出警告
  • 不阻止提交(任务可设置未来日期)
  • 有助于采购规划

几何有效性:

  • 点必须具有有效的坐标
  • 线必须至少包含 2 个点
  • 多边形必须闭合(起始点 = 终点)

任务 → 工作单生命周期

典型流程:

  1. 规划 — 管理员创建任务草稿
  2. 提交 — 版本提交,任务正式生效
  3. 工作单 — 创建工作单,关联此任务,声明其活动内容并分配给工作人员
  4. 执行 — 工作人员执行任务,可能涉及多个工作单
  5. 报告 — 工作人员提交引用该任务的报告
  6. 进度 — 任务进度根据所有引用它的报告进行更新
  7. 完成 — 当所有资源达到 100% 时,任务即视为完成
  8. 成果生成 — 若完成的工作单设置了 生成至 图层,则任务的几何图形将被放置或移动到地图上(参见下文 任务成果生成

任务复用: 多个工单可引用同一任务:

  • 将大型任务分配给多个工作组
  • 由一名工作人员部分完成,由另一名工作人员完成
  • 汇总所有报告的进度

任务毕业

任务毕业是指已完成的现场工作如何成为共享 GIS 数据集的一部分。 当关联某项工作的工单完成时,系统会自动将该工作的几何图形放置或推进至地图上。

配置归档

在工单的创建或编辑表单中,将 归档至 字段设置为目标图层。当该工单被标记为 已完成 时,归档钩子将触发:

  • 目标图层中不存在现有要素 → 系统将在目标图层中创建新要素,并采用该任务的几何信息和属性。为确保可追溯性,该要素上将标记 sourceJobId 链接。
  • 现有地图要素 → 该要素将移动到目标图层。要素保留原ID——不会产生重复。

任务本身绝不会被删除或归档。它将作为永久的规划和工作记录保留下来。

多阶段结案

随着后续工单的完成,一个任务可依次通过多个图层完成结案。以下是光纤网络安装的示例:

工单目标图层阶段
勘测planned-routes路线在地图上确认
安装installed-routes电缆已物理铺设到位
验收accepted-routes验收完成

每次完成仅重新指定显示该任务几何信息的图层——无需重新关联任务本身。

状态变更日志

任务详情视图 → 位置 选项卡中显示 状态变更日志:这是一份带有时间戳的时序记录,包含每个图层状态的变更,以及触发每次状态转换的工作单。可通过此日志审核现场安装的整个生命周期。

查看任务详情

任务详情页显示:

  • 基本信息和几何数据
  • 资源需求列表(含各资源的分配情况)
  • 进度条和百分比
  • 引用此任务的工作单(及其活动记录)
  • 记录了此任务相关工作的报告
  • 竣工日志(位置选项卡)