1.3 KiB
1.3 KiB
问题入口
com.cmcc.cdn.platform.selfservice.controller.AdaptConfigChangeWorkController#submitWorkOrder
状态机生成
com.cmcc.cdn.platform.selfservice.service.impl.AdaptWorkOrderServiceImpl#createOrder
获取状态机
WorkOrderStateMachine<ConfigChangeWorkOrderPO, ConfigChangeOrderEventEnum, ConfigChangeOrderStateEnum> machine =
GeneralMachineBuilder.createByMachineId(MachineName.ADAPT_CONFIG_CHANGE, order.getMachineId());
状态机启动
com.cmcc.cdn.platform.selfservice.statemachine.AbstractWorkOrderMachineRunConfig#handleOrderEvent
状态机事件组合 MAP
com.cmcc.cdn.platform.selfservice.statemachine.ConfigChangeMachineAdapter
此问题对应可触发事件
array[2] = new State(ConfigChangeOrderStateEnum.ESOP_CM_ZQ_PRV_CREATED, ConfigChangeOrderEventEnum.esop_prv_create, null);
监听位置获取下一审批人和通知人
com.cmcc.cdn.platform.selfservice.statemachine.ConfigChangeOrderHandler#esopGrpCreate
触发邮件位置
com.cmcc.cdn.platform.selfservice.statemachine.ConfigChangeOrderHandler#transitionEnd
问题总结
此问题的关键在于需求变更工单的下发 bpm 后保留了状态机的状态变化流程。当状态机状态发生变化的时候,会按照原流程进行邮件通知操作。6.7.0 版本全部下发 bpm 后进行统一优化。