package org.springblade.mdm.flow.excution.listeners; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springblade.core.tool.utils.DateUtil; import org.springblade.mdm.flow.entity.MesSync; import org.springblade.mdm.flow.entity.TaskDispatch; import org.springblade.mdm.flow.excution.events.CureFinishedEvent; import org.springblade.mdm.flow.service.MesSyncService; import org.springblade.mdm.flow.service.TaskDispatchService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.event.EventListener; import org.springframework.stereotype.Component; import java.util.Date; /** * 固化流程执行完成后,需要处理的事件:入库mes同步表 */ @Slf4j @Component public class CuredEventListener { @Autowired private TaskDispatchService taskDispatchService; @Autowired private MesSyncService mesSyncService; @EventListener(value = CureFinishedEvent.class) public void hello(CureFinishedEvent event) { TaskDispatch dispatch = taskDispatchService.getByProgramNo(event.getProgramNo()); if (dispatch == null) { log.info("根据程序编号:{}找不到任务分派记录", event.getProgramNo()); return; } if (StringUtils.isBlank(dispatch.getOperationId())) { log.info("任务dispatch.id:{}对应的operation_id 为空,不记入同步mes表", dispatch.getId()); return; } MesSync sync = new MesSync(); sync.setStatus(MesSync.STATUS_CREATED); sync.setOperationId(dispatch.getOperationId()); sync.setProgramNo(dispatch.getProgramNo()); sync.setTryTimes(0); Date now = new Date(); sync.setCuredTime(now); sync.setCreateTime(now); sync.setUpdateTime(now); mesSyncService.saveAndSync(sync); } }