[{"data":1,"prerenderedAt":495},["ShallowReactive",2],{"guide:zh:work-fulfillment/tasks":3},{"id":4,"title":5,"body":6,"description":12,"extension":488,"meta":489,"navigation":490,"path":491,"seo":492,"stem":493,"__hash__":494},"guide_zh/zh/user/work-fulfillment/tasks.md","Tasks",{"type":7,"value":8,"toc":467},"minimark",[9,13,17,20,24,35,62,82,91,94,97,100,106,109,112,117,141,146,149,154,161,164,167,170,176,179,182,185,190,196,200,206,210,216,219,222,225,239,242,245,252,258,267,270,273,276,279,284,287,293,296,305,308,311,314,317,320,323,329,332,335,342,370,375,391,394,397,403,409,415,418,449,452,455,461],[10,11,12],"p",{},"--- 标题: \"任务\" 描述: \"定义工作区域及其资源需求和地理位置\" ---",[14,15,16],"h1",{"id":16},"任务",[10,18,19],{},"任务定义了具有特定资源需求和地理位置的计划工作。任务采用版本/提交工作流，支持协作式离线规划和回滚功能。",[21,22,23],"h2",{"id":23},"任务结构",[10,25,26,31],{},[27,28],"img",{"alt":29,"src":30},"任务列表","/guide/work-fulfillment/tasks-list.png",[32,33,34],"em",{},"任务页面展示计划工作，包含进度跟踪和多资源需求",[10,36,37,41,42,45,46,49,50,53,54,57,58,61],{},[38,39,40],"strong",{},"基本字段：","** - ",[38,43,44],{},"名称"," - 描述性任务名称 - ",[38,47,48],{},"说明"," - 详细工作指示 - ",[38,51,52],{},"几何图形"," - 显示工作位置的点、线或多边形 - ",[38,55,56],{},"订单"," - 父工作订单，用于分组相关任务 - ",[38,59,60],{},"资源"," - 所需材料/人力列表（支持多资源）",[10,63,64,65,69,70,73,74,77,78,81],{},"**资源需求：**每个资源条目包含：- ",[66,67,68],"code",{},"resource"," - 资源定义参考- ",[66,71,72],{},"volume"," - 所需数量/数量- ",[66,75,76],{},"uom"," - 计量单位- ",[66,79,80],{},"assignedTo"," - 负责领取该特定资源行的人员（可选）",[10,83,84,87,88],{},[38,85,86],{},"示例："," ",[66,89,90],{},"任务：在42号楼安装网络接线盒 几何坐标：点 (纬度: 40.7128, 经度: -74.0060) 资源：[ { 资源: \"接线盒\", 数量: 1, 单位: \"个\" },   { 资源: \"Cat6 电缆\", 数量: 15, 单位: \"米\" }, { 资源: \"安装螺丝\", 数量: 8, 单位: \"个\" }, { 资源: \"电工\", 数量: 2, 单位: \"小时\" } ]",[21,92,93],{"id":93},"多资源任务",[10,95,96],{},"旧系统：每项任务占用一个资源问题：复杂工作导致地图标记过多示例：100个安装点 × 4个资源 = 400个地图标记点",[10,98,99],{},"当前系统：每个任务对应多个资源解决方案：单个地图标记代表完整工作同例说明：100个地图点（每个安装点对应一个）更简洁的地图，更便捷的空间规划",[10,101,102,105],{},[38,103,104],{},"优势：","- 减少界面杂乱- 相关材料分组处理（门+螺丝+胶水=单一任务）- 全资源进度同步追踪",[21,107,108],{"id":108},"按资源分配",[10,110,111],{},"任务中的每个资源行均可指定给特定人员。这使规划人员能够在行级别（而非仅在工单级别）明确谁负责领取每项材料或完成每项劳动内容。",[10,113,114],{},[38,115,116],{},"分配方式：",[118,119,120,128,131,138],"ul",{},[121,122,123,124,127],"li",{},"在任务详情中，每个资源行设有",[38,125,126],{},"负责人","列",[121,129,130],{},"当任务中任意行存在分配时，该列自动显示；对于报告等不适用分配的记录类型，该列保持隐藏",[121,132,133,134,137],{},"将某人分配至资源行并不锁定库存——仅记录",[32,135,136],{},"预计","由谁领取并交付该物品",[121,139,140],{},"实际领取状态（谁领取、领取数量、领取时间）通过交易台账追踪，而非记录在任务本身",[10,142,143],{},[38,144,145],{},"为何在资源级别追踪？",[10,147,148],{},"工单将多个任务组合并分配给人员，但一个工单可能涵盖多个任务下的数十个资源行。按资源分配填补了这一空白：规划人员可以指定\"Alice负责为本任务领取50米导管，Bob负责接线盒\"。每人都能清楚看到自己需要领取的具体物品，无需猜测各自的责任范围。",[10,150,151],{},[38,152,153],{},"发送分配通知：",[10,155,156,157,160],{},"完成资源分配设置后，任务页面上的",[38,158,159],{},"发送分配","操作将向所有被分配人发送通知。每位相关人员收到一条综合消息，内容涵盖其工单信息（名称、截止日期、链接）以及每个被分配资源行对应的一个二维码。该二维码即为领取授权凭证——工作人员在仓库扫描二维码即可领取对应物品，扫描后系统自动记录领取交易。",[10,162,163],{},"发送分配操作既可作为单个任务行的行级操作使用，也可在表格中选择多个任务后作为批量操作执行。",[21,165,166],{"id":166},"任务具有版本控制",[10,168,169],{},"与作业/报告不同，任务采用版本/提交工作流：",[10,171,172,175],{},[38,173,174],{},"版本控制的必要性：","- 管理员需在离线环境（地铁隧道、偏远站点）设计工作区域- 需检测空间冲突（地理区域重叠）- 常需批量操作（重构整个活动方案）- 回滚功能至关重要（撤销全部规划变更）",[10,177,178],{},"**工作流：**1. 创建版本（草稿模式）2. 在草稿中添加/编辑任务3. 空间验证（检查重叠情况）4. 提交版本 → 任务转为\"正式\"状态5. 工作人员在任务分配中查看已提交任务",[10,180,181],{},"**离线协作：**多位管理员可分别创建独立版本：- 管理员A：规划北部区域任务- 管理员B：规划南部区域任务- 双方均可离线操作，后续提交- 若存在地域重叠则进行冲突解决",[10,183,184],{},"任务几何类型",[186,187,189],"h3",{"id":188},"点任务-单一地点作业设备安装检查","点任务 单一地点作业（设备安装、检查）。",[10,191,192,193],{},"**示例：**安装接线盒",[66,194,195],{},"几何：{ 类型：\"点\"，坐标：[经度, 纬度] }",[186,197,199],{"id":198},"线路作业线性工程电缆敷设管道安装","线路作业线性工程（电缆敷设、管道安装）。",[10,201,202,203],{},"**示例：**铺设500米光纤电缆",[66,204,205],{},"几何：{ 类型：\"LineString\"，坐标：[[经度1,纬度1]，[经度2,纬度2]，...] }",[186,207,209],{"id":208},"多边形任务-基于区域的工作覆盖区域服务区域","多边形任务 基于区域的工作（覆盖区域、服务区域）。",[10,211,212,213],{},"**示例：**社区入户走访",[66,214,215],{},"几何：{ 类型：\"多边形\"，坐标：[[[经度1,纬度1], ...]] }",[21,217,218],{"id":218},"邻近性过滤",[10,220,221],{},"查找特定地点附近的任务：",[10,223,224],{},"**使用场景：**仓库工人需要查找附近任务1. 打开任务页面2. 点击\"筛选附近\"按钮3. 将地图标记拖动至仓库位置4. 设置距离范围（例如5公里）5. 表格仅显示半径范围内的任务",[10,226,227,230,231,234,235,238],{},[38,228,229],{},"后端实现：","- 使用MongoDB的",[66,232,233],{},"$geoWithin","查询配合",[66,236,237],{},"$centerSphere","- 在几何字段上应用二维球面索引- 即使处理数千个任务也能实现快速空间过滤",[10,240,241],{},"**行操作：**点击任务行中的\"筛选附近\"→自动将距离设置为该任务所在位置",[21,243,244],{"id":244},"任务在作业中的使用",[10,246,247,248,251],{},"任务以",[38,249,250],{},"可用工作选项","的形式出现在分配中：",[10,253,254,257],{},[38,255,256],{},"灵活分配：","- 任务可能包含10项可选任务- 资源目标要求完成其中1-2项任务- 工作者自主选择要完成的任务（灵活性）- 10倍超额分配很常见（可选项远超目标量）",[10,259,260,262,263],{},[38,261,86],{}," ``` 任务分配给John： 资源目标：50米电缆，20个接线盒 可用任务：",[264,265,266],"span",{},"任务1, 任务2, 任务3, ... 任务30",[10,268,269],{},"约翰完成：任务5：30米电缆，12个接线盒任务12：20米电缆，8个接线盒总计：达到电缆目标，达到接线盒目标",[10,271,272],{},"工人拥有30项任务选项以达成目标——灵活性极高。",[21,274,275],{"id":275},"任务进度跟踪",[10,277,278],{},"**计算：**进度 = 所有资源的平均完成度",[10,280,281,283],{},[38,282,86],{}," ``` 包含3项资源的任务： - Cat6网线：需10米，已完成5米 = 50% - 螺丝：需8个，已完成8个 = 100% - 人工：需2小时，已报告0小时 = 0%",[10,285,286],{},"总体进度 = (50% + 100% + 0%) / 3 = 50%",[10,288,289,292],{},[38,290,291],{},"视觉指示器：","- 进度条：绿色≥100%，黄色≥50%，红色＜50%- 几何指示器：有效点/线/多边形显示绿色勾号- 使用场景：显示哪些作业/报告引用了此任务",[21,294,295],{"id":295},"创建任务",[10,297,298,87,301,304],{},[38,299,300],{},"所需权限：",[66,302,303],{},"tasksCreate"," 管理员权限",[10,306,307],{},"**工作流程：**1. 导航至【履约】→【任务】2. 创建新版本（或编辑现有草稿）\n3. 在版本中点击\"添加任务\" 4. 填写基本信息（名称、描述） 5. 选择订单（父级分组） 6. 点击映射设置几何形状 7. 添加资源（可添加多个） 8. 将任务保存为草稿 9. 规划完成后提交版本",[10,309,310],{},"最佳实践：- 将相关材料归入单一任务（减少地图杂乱）- 采用统一命名规范（例如\"安装 - 接线盒 - 42号楼\"）- 设定合理资源数量（为库存规划提供依据）- 包含人力资源（便于人员配置计算）",[10,312,313],{},"批量任务生成",[10,315,316],{},"高效创建多个类似任务：",[10,318,319],{},"**场景：**在不同建筑物上安装100个接线盒",[10,321,322],{},"方法1：从GeoJSON导入1. 创建包含100个点的GeoJSON文件2. 每个要素具有属性：名称、描述、资源3. 导入 → 在单个版本中创建100个任务",[10,324,325,328],{},[38,326,327],{},"方法二：基于地图选区生成","1. 在地图上选取100个现有建筑特征2. 点击\"生成任务\"3. 选择任务模板（资源需求）4. 在每个建筑位置创建任务",[10,330,331],{},"方法三：复制现有任务1. 选择具有正确资源配置的任务2. 点击”复制任务”3. 编辑几何体至新位置4. 对类似安装重复此操作",[21,333,334],{"id":334},"批量打印任务",[10,336,337,338,341],{},"一个项目可能包含数十甚至数百个任务。无需逐一从各任务详情页打印，可使用项目级别的",[38,339,340],{},"打印所有任务","操作：",[343,344,345,352,357,364,367],"ol",{},[121,346,347,348,351],{},"打开父级项目的详情页（",[66,349,350],{},"/fulfillment/projects/:id","）",[121,353,354,355],{},"点击页面头部的",[38,356,340],{},[121,358,359,360,363],{},"批量打印视图将在 ",[66,361,362],{},"/fulfillment/tasks/batch/[ids]"," 打开——URL 中包含以逗号分隔的任务 ID 列表",[121,365,366],{},"页面每次显示 10 个任务（分页显示，CSS 驱动——所有记录均在 DOM 中，因此打印时会输出全部内容）",[121,368,369],{},"打印页面——每个任务之间有硬分页符，确保每页打印一个任务",[10,371,372],{},[38,373,374],{},"注意事项：",[118,376,377,380],{},[121,378,379],{},"安全上限：批量视图每次打印最多 200 个任务。若项目超过此限制，系统会显示提示横幅，200 个以后的任务将被截断——如有需要，请分批打印。",[121,381,382,383,386,387,390],{},"无需新的服务端逻辑——批量视图读取现有的 ",[66,384,385],{},"/api/tasks/get?_id=csv"," 端点，并使用与单个任务页面相同的 ",[66,388,389],{},"RecordDetail*"," 组件渲染每个任务，因此打印内容与逐一打印任务的结果一致。",[21,392,393],{"id":393},"任务验证",[10,395,396],{},"在版本提交前，系统会验证：",[10,398,399,402],{},[38,400,401],{},"空间冲突：","- 多边形重叠（两个任务覆盖相同区域）- 点任务间距过近（可配置阈值）- 线任务穿越限制区域",[10,404,405,408],{},[38,406,407],{},"资源可用性：","- 若所需资源未在库存中则发出警告- 不阻塞提交（任务可设置未来日期）- 辅助采购规划",[10,410,411,414],{},[38,412,413],{},"几何有效性：","- 点必须具有有效的坐标- 直线必须至少包含2个点- 多边形必须闭合（起始点=终点）",[21,416,417],{"id":417},"任务分配生命周期",[10,419,420,421,424,425,428,429,432,433,436,437,440,441,444,445,448],{},"**典型流程：**1. ",[38,422,423],{},"规划"," - 管理员创建任务草稿2. ",[38,426,427],{},"提交"," - 版本提交后任务正式生效3. ",[38,430,431],{},"分配"," - 任务加入工作者任务列表（availableTasks数组）\n4. ",[38,434,435],{},"执行阶段"," - 工作者完成部分可用任务 5. ",[38,438,439],{},"汇报阶段"," - 工作者在工作完成报告中引用任务ID 6. ",[38,442,443],{},"进度更新"," - 根据完成工作更新任务进度 7. ",[38,446,447],{},"完成阶段"," - 当所有资源进度达100%时，任务标记为完成",[10,450,451],{},"任务复用：同一任务可出现在多个分配中：- 将相同任务分配给多名工作者（工作拆分）- 某任务由一名工作者部分完成，由另一名工作者完成- 跨所有报告汇总进度",[21,453,454],{"id":454},"查看任务详情",[10,456,457,460],{},[38,458,459],{},"任务详情页显示：","- 基本信息与几何形状- 资源需求清单- 进度条及百分比- 使用场景：引用该任务的作业和报告- 版本历史记录（修改过该任务的版本）- 与邻近任务的空间关系",[10,462,463,466],{},[38,464,465],{},"地图视图：","- 按进度分色标注（红色=未启动，黄色=部分完成，绿色=已完成）- 几何类型指示器（点图标、线条样式、多边形填充）- 可点击查看快速详情弹窗- 可按订单、进度、距离进行筛选",{"title":468,"searchDepth":469,"depth":469,"links":470},"",2,[471,472,473,474,480,481,482,483,484,485,486,487],{"id":23,"depth":469,"text":23},{"id":93,"depth":469,"text":93},{"id":108,"depth":469,"text":108},{"id":166,"depth":469,"text":166,"children":475},[476,478,479],{"id":188,"depth":477,"text":189},3,{"id":198,"depth":477,"text":199},{"id":208,"depth":477,"text":209},{"id":218,"depth":469,"text":218},{"id":244,"depth":469,"text":244},{"id":275,"depth":469,"text":275},{"id":295,"depth":469,"text":295},{"id":334,"depth":469,"text":334},{"id":393,"depth":469,"text":393},{"id":417,"depth":469,"text":417},{"id":454,"depth":469,"text":454},"md",{},true,"/zh/user/work-fulfillment/tasks",{"description":12},"zh/user/work-fulfillment/tasks","VA-Uojr7lKbPq9-OREcXdEmjWDlUul9G8twOw9xYBn4",1780539291229]