package com.chinaztt.mes.plan.state.outsourcing; import com.chinaztt.mes.plan.entity.OutsourcingOrder; import com.chinaztt.mes.plan.mapper.OutsourcingOrderMapper; import com.chinaztt.mes.plan.state.outsourcing.constant.OutsourcingOrderEvents; import com.chinaztt.mes.plan.state.outsourcing.constant.OutsourcingOrderStateStringValues; 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-08-17 9:51 */ @AllArgsConstructor @Component @WithStateMachine(id = "outsourcingOrderStateMachine") public class OutsourcingOrderStateListener { private OutsourcingOrderMapper outsourcingOrderMapper; /** * 下达 */ @OnTransition(target = OutsourcingOrderStateStringValues.ISSUED) public boolean issued(StateMachine stateMachine, Message msg) { OutsourcingOrder outsourcingOrder = (OutsourcingOrder) msg.getHeaders().get("outsourcingOrder"); outsourcingOrder.setState(OutsourcingOrderStateStringValues.ISSUED); outsourcingOrderMapper.updateById(outsourcingOrder); return true; } /** * 完成 */ @OnTransition(target = OutsourcingOrderStateStringValues.COMPLETED) public boolean completed(StateMachine stateMachine, Message msg) { OutsourcingOrder outsourcingOrder = (OutsourcingOrder) msg.getHeaders().get("outsourcingOrder"); outsourcingOrder.setState(OutsourcingOrderStateStringValues.COMPLETED); outsourcingOrderMapper.updateById(outsourcingOrder); return true; } /** * 取消 */ @OnTransition(target = OutsourcingOrderStateStringValues.CANCELED) public boolean canceled(StateMachine stateMachine, Message msg) { OutsourcingOrder outsourcingOrder = (OutsourcingOrder) msg.getHeaders().get("outsourcingOrder"); outsourcingOrder.setState(OutsourcingOrderStateStringValues.CANCELED); outsourcingOrderMapper.updateById(outsourcingOrder); return true; } /** * 计划 */ @OnTransition(target = OutsourcingOrderStateStringValues.PLANNED) public boolean plan(StateMachine stateMachine, Message msg) { OutsourcingOrder outsourcingOrder = (OutsourcingOrder) msg.getHeaders().get("outsourcingOrder"); outsourcingOrder.setState(OutsourcingOrderStateStringValues.PLANNED); outsourcingOrderMapper.updateById(outsourcingOrder); return true; } }