liusuyi
2026-02-10 4ac9edd4c0030d2daafd712cd14ef9080b2f1e43
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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);
    }
}