package com.chinaztt.mes.quality.state.result; import com.chinaztt.mes.quality.entity.Result; import com.chinaztt.mes.quality.mapper.ResultMapper; import com.chinaztt.mes.quality.state.result.constant.ResultEvents; import com.chinaztt.mes.quality.state.result.constant.ResultStateStringValues; import lombok.AllArgsConstructor; import org.springframework.messaging.Message; import org.springframework.statemachine.StateMachine; import org.springframework.statemachine.annotation.OnTransition; import org.springframework.statemachine.annotation.WithStateMachine; import org.springframework.stereotype.Component; /** * @Author: cxf * @Date: 2021-05-06 9:51 */ @AllArgsConstructor @Component @WithStateMachine(id = "resultStateMachine") public class ResultStateListener { private ResultMapper resultMapper; /** * 待检测 */ @OnTransition(target = ResultStateStringValues.UNTESTED) public boolean untested(StateMachine stateMachine, Message msg) { Result result = (Result) msg.getHeaders().get("result"); result.setCheckStatus(ResultStateStringValues.UNTESTED); resultMapper.updateById(result); return true; } /** * 检测中 */ @OnTransition(target = ResultStateStringValues.TESTING) public boolean testing(StateMachine stateMachine, Message msg) { Result result = (Result) msg.getHeaders().get("result"); result.setCheckStatus(ResultStateStringValues.TESTING); resultMapper.updateById(result); return true; } /** * 检测结束 */ @OnTransition(target = ResultStateStringValues.TESTED) public boolean tested(StateMachine stateMachine, Message msg) { Result result = (Result) msg.getHeaders().get("result"); result.setCheckStatus(ResultStateStringValues.TESTED); resultMapper.updateById(result); return true; } }