chore: 【ops】FSM轻量级状态机实现

This commit is contained in:
lzh
2026-01-06 10:48:39 +08:00
parent 35564578b6
commit 9ef2730fd0
6 changed files with 536 additions and 0 deletions

View File

@@ -0,0 +1,38 @@
package com.viewsh.module.ops.config;
import com.viewsh.module.ops.service.fsm.OrderStateMachine;
import com.viewsh.module.ops.service.fsm.listener.OrderStateChangeListener;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Bean;
import java.util.List;
/**
* 工单状态机配置
* 职责:自动注册所有状态监听器
*
* @author lzh
*/
@Slf4j
@Configuration
public class OrderStateMachineConfig {
@Resource
private OrderStateMachine orderStateMachine;
/**
* 注册所有状态监听器
* 使用 Bean 定义的方式Spring 会自动收集所有 OrderStateChangeListener 类型的 Bean
*/
@Bean
public Boolean registerStateChangeListeners(List<OrderStateChangeListener> listeners) {
if (listeners != null && !listeners.isEmpty()) {
listeners.forEach(orderStateMachine::registerListener);
log.info("工单状态机监听器注册完成,共{}个监听器", listeners.size());
}
return true;
}
}