package com.ard.work.config;
|
|
import com.ard.work.domain.enums.RouteEvent;
|
import com.ard.work.domain.enums.RouteState;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.statemachine.StateContext;
|
import org.springframework.statemachine.listener.StateMachineListenerAdapter;
|
import org.springframework.stereotype.Component;
|
|
@Component
|
@Slf4j
|
public class RouteStateMachineListener
|
extends StateMachineListenerAdapter<RouteState, RouteEvent> {
|
|
@Override
|
public void stateContext(StateContext<RouteState, RouteEvent> context) {
|
|
if (context.getStage() != StateContext.Stage.STATE_ENTRY) {
|
return; // 避免多次触发
|
}
|
|
RouteState target = context.getTarget() != null
|
? context.getTarget().getId()
|
: null;
|
|
String boxSn = (String) context.getMessageHeaders().get("boxSn");
|
|
if (boxSn == null || target == null) {
|
return;
|
}
|
|
log.info("boxSn={} 状态变更为 {}", boxSn, target);
|
}
|
}
|