# 问题入口 com.cmcc.cdn.platform.selfservice.controller.AdaptConfigChangeWorkController#submitWorkOrder ## 状态机生成 com.cmcc.cdn.platform.selfservice.service.impl.AdaptWorkOrderServiceImpl#createOrder 获取状态机 ```java WorkOrderStateMachine 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 后进行统一优化。