Files
aiot-platform-cloud/docs/ops-architecture/part7-扩展性设计.md

2.0 KiB
Raw Blame History

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: 测试指南