2.0 KiB
2.0 KiB
Part 7: 扩展性设计
本章节指导开发者如何基于 Ops 核心引擎扩展新的业务条线(如安保、工程、客服)或自定义派单逻辑。
7.1 新增业务条线流程
新增一个业务条线(如安保 SECURITY)需遵循以下步骤:
7.1.1 定义业务标识
在 ops-api 模块的 WorkOrderTypeEnum 中新增业务枚举值:
SECURITY("SECURITY", "安保")
7.1.2 创建业务扩展表
根据业务特有字段创建扩展表(参考 ops_order_clean_ext),并通过 ops_order_id 与主表关联。
- 示例:
ops_order_security_ext存储巡更路线 ID、巡更点位数量等。
7.1.3 实现业务逻辑编排
在新的业务模块(如 security-biz)中创建 SecurityOrderService,调用通用的 OpsOrderService 完成基础 CRUD,并在业务层处理特有逻辑。
7.2 自定义派单策略
调度引擎采用策略模式,支持为不同业务配置不同的推荐算法。
7.2.1 实现分配策略 (AssignStrategy)
实现 AssignStrategy 接口,定义具体的执行人推荐逻辑:
- 工程维修:优先匹配具备相关技能证书(SkillId)的员工。
- 安保巡更:优先匹配当前排班在该路线附近的保安。
7.2.2 注册策略
在实现类上标注 @Component,引擎会自动通过 registerAssignStrategy 完成注册。
7.3 基于事件的行为扩展
推荐使用领域事件(OrderStateChangedEvent)实现核心引擎与业务副作用的解耦。
7.3.1 编写 EventHandler
创建业务专属的处理器(如 SecurityOrderEventHandler):
- 场景:当安保工单状态变为
COMPLETED时,联动触发周边监控摄像头的预置位回归。 - 实现:
@EventListener public void onSecurityOrderCompleted(OrderStateChangedEvent event) { if (!"SECURITY".equals(event.getOrderType())) return; // 执行安保特有的副作用逻辑 }
下一章:Part 8: 测试指南