package com.ycl.event.listener; import com.alibaba.fastjson2.JSON; import com.ycl.common.utils.SecurityUtils; import com.ycl.domain.entity.ProcessLog; import com.ycl.event.event.TaskLogEvent; import com.ycl.service.ProcessLogService; import lombok.RequiredArgsConstructor; import org.springframework.context.event.EventListener; import org.springframework.stereotype.Component; import java.util.Objects; /** * @author:xp * @date:2025/1/16 15:14 */ @Component @RequiredArgsConstructor public class ProcessLogEventListener { private final ProcessLogService processLogService; /** * 监听流程日志事件 * * @param event 转办的事件内容 */ @EventListener(classes = {TaskLogEvent.class}) public void delegate(TaskLogEvent event) { ProcessLog log = new ProcessLog(); if(event.getId()!=null) log.setId(event.getId()); log.setEventType(event.getEventType()); log.setProcessInsId(event.getProcessInsId()); log.setProjectId(event.getProjectId()); log.setTaskId(event.getTaskId()); log.setTaskDefKey(event.getTaskDefKey()); log.setTaskName(event.getTaskName()); log.setUserId(SecurityUtils.getUserId()); if (Objects.nonNull(event.getOtherData())) { log.setEventDataJson(JSON.toJSONString(event.getOtherData())); } processLogService.saveOrUpdate(log); } }