先说结论
工单系统的工程量不在"提交表单 + 列表页",而在四件事:工单状态机会不会把"人、时间、位置"这三类约束同时管住;派单调度能不能在规则与占用互斥之间给出确定结果;SLA 计时能不能做到以服务端事件为准、临期与超期自动升级;组织与权限能不能按数据范围隔离而不是按菜单隔离。这四件事定不稳,上线后的日常就是重复派单、时限失真和跨区越权。这篇按状态机、派单调度、时限计时、权限隔离与物料关联五段拆实现要点。
一、工单状态机:把「人 + 时间 + 位置」同时当约束
工单的主干状态不复杂:待受理 → 已派单 → 已接单 → 处理中 → 待验收 → 已关单。真正的工作量在异常分支与约束校验:
- 待受理:提交即落库,按工单类型与紧急程度计算时限基线,同时做归属校验——报修人所在的组织 / 项目决定这张单能派给谁;
- 已派单:派单动作必须与工程师时段占用互斥,同一工程师同一时段不可重复占用;超时未接单由定时任务自动回收并进入改派队列;
- 已接单:接单即冻结该时段;转派需要落转派原因与新承接人,原承接人解冻时段;
- 处理中:到场打卡、施工记录、备件领用全部挂接在工单上;挂起(缺件、需客户配合、超范围)需要记录挂起原因与恢复条件;
- 待验收:提交完工材料后进入验收;超时未验收按规则自动确认,避免工单长期悬停;
- 已关单:评价回写、备件消耗入账、设备档案追加维修记录。
约束设计的三个要点:状态迁移全部落事件日志(谁、什么时间、按哪一版规则改的状态),异常分支(改派、挂起、返工、超期)必须显式建模而不是靠备注字段兜;跨系统的字段(位置、设备编号、客户编号)在提交时报文校验,不合法直接拒收,避免脏数据进流程。
二、派单调度:规则引擎与占用互斥

图 5:工单主干六态,改派与挂起作为异常分支挂接在主干状态上
派单分三条路,工程实现完全不同:
- 人工派单:后台按筛选条件选人,只有"占用校验"没有"推荐计算";
- 规则派单:按区域、技能标签、值班表、当前负荷计算候选集,再按优先级排序取人。规则引擎要做的不只是打分,还要处理结果不确定性——候选集为空时是回退到人工队列还是放宽约束,必须有明确策略,否则规则一改就出锁单;
- 抢单:把候选池广播到符合条件的处理人,先到先得,抢单成功即占用时段;抢单模式必须配并发控制(乐观锁或分布式锁),否则同一单被两人抢到。
占用互斥是地基。工程师的"可服务时段"是库存,占用要支持临时锁定(派单中)与正式占用(已接单)两态,锁定超时自动释放。跨项目的多技能工程师资源需要共用时段池,此时归属校验与占用校验要分开评估——权限决定能不能派,占用决定能不能排,两件事混在一起写,后期一定改不动。
三、SLA 时限:计时以服务端事件为准
时限管理的实现要点是计时的权威来源:
- 计时基线:按工单类型、紧急程度、所属项目分别配置响应时限与完工时限;基线配置要版本化,改规则不能影响历史工单的判定;
- 停表规则:挂起、等待客户确认、非工作时间(节假日与值班表)是否停表,需要按业务规则可配置——这是时限类系统里很容易被忽略、上线后投诉集中的一项;
- 事件来源:到场、离场、完工等时间点以服务端事件落库为准,不采信客户端上报的时间戳;客户端时钟不可信,也容易被篡改;
- 升级链路:临期提醒 → 超期告警 → 自动升级到上级,三级链路各自配受众与通道;提醒与告警必须幂等,避免定时任务重跑导致重复轰炸。
四、权限与数据隔离:按数据范围设计

图 6:派单与时限四组模块的职责划分——规则决定派给谁,计时决定催到谁
多项目、多区域、多班组的工单系统,权限设计的正确姿势是数据范围 + 操作权限两层:
- 数据范围:能否看到某张工单,取决于报修人 / 处理人 / 所属项目 / 所属区域的关系,而不是取决于他打开了哪个菜单。数据范围通常用"组织树 + 角色 + 例外授权"表达;
- 操作权限:能否派单、能否改派、能否在没有权限的情况下越权处理,属于动作级校验,与数据范围分开评估;
- 字段级权限:客户联系方式、服务定价信息、设备敏感参数这类字段,需要按角色做掩码或隐藏,而不是整体可见;
- 审计留痕:权限变更、越权拦截、批量导出全部落审计日志——工单系统里"谁改过哪张单"的追溯能力,是后期纠纷处置的前提。
菜单级权限做隔离,常见结果是"看得见但点不动"或者"看不见也查得到",两头都不可控。
五、物料与档案关联:备件必须双向挂单
工单与物料的关联是这类系统里很容易做成"两张皮"的部分:
- 备件领用:领用即扣减、退料即回冲,出入库流水与工单双向关联;没有双向关联,月底盘点就是一笔糊涂账;
- 设备档案:设备编号与工单强绑定,历史维修记录、保养计划、保修期限挂在设备上而不是工单上;
- 成本归集:一张工单的人工工时、备件消耗、外委支出,按单归集才能做单工单成本与客户对账;
- 数据一致性:备件库存与工单状态同时变更时,用事务或补偿机制确保一致,避免"工单关了、库存没扣"。
六、模块划分速查

图 7:决策侧的两条轴——流程越标准越偏采购,集成越深越偏定制
| 模块 | 核心职责 | 关键约束 |
|---|---|---|
| 工单状态机 | 六态流转与异常分支处置 | 迁移全落事件日志,可追溯 |
| 派单调度 | 人工 / 规则 / 抢单三模式,改派 | 时段占用互斥,锁定超时释放 |
| 时限计时 | 时限基线、停表规则、升级链路 | 服务端事件为准,提醒幂等 |
| 权限与隔离 | 数据范围、操作权限、字段级掩码 | 范围与动作分开评估 |
| 物料与档案 | 备件出入库、设备台账、成本归集 | 与工单双向关联 |
| 报表与对接 | 统计口径、导出、外部系统同步 | 口径上线前定稿 |
小结
工单系统的工程质量取决于四套结构:状态机把"人、时间、位置"的约束与异常分支全部收进可追溯的迁移日志;派单调度在规则计算与占用互斥之间给出确定结果;时限计时以服务端事件为准、停表与升级规则可配置;权限按数据范围隔离而不是按菜单隔离。物料与档案的关联决定这套系统是"能看"还是"能用"。这四块在架构期定稳,后续加派单规则、加组织层级、加对接系统都是配置级变更;定不稳,每一次改派失误或时限失真都会变成一轮客诉。附图三张按状态机与占用释放、派单与时限链路、决策对照分别给出结构参考。