wlzboy
2025-12-03 7c790c248c137a2fa5525bf66ed04c25043cded7
ruoyi-system/src/main/java/com/ruoyi/system/listener/TaskMessageListener.java
@@ -7,13 +7,21 @@
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Component;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.system.domain.SysMessage;
import com.ruoyi.system.domain.SysTask;
import com.ruoyi.system.domain.SysTaskEmergency;
import com.ruoyi.system.event.TaskCreatedEvent;
import com.ruoyi.system.event.TaskAssignedEvent;
import com.ruoyi.system.event.TaskStatusChangedEvent;
import com.ruoyi.system.mapper.SysMessageMapper;
import com.ruoyi.system.mapper.SysUserMapper;
import com.ruoyi.system.mapper.SysTaskMapper;
import com.ruoyi.system.mapper.SysTaskEmergencyMapper;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.system.service.IWechatTaskNotifyService;
import java.util.HashMap;
/**
 * 任务消息监听器
@@ -32,6 +40,15 @@
    
    @Autowired
    private SysUserMapper sysUserMapper;
    @Autowired
    private SysTaskMapper sysTaskMapper;
    @Autowired
    private SysTaskEmergencyMapper sysTaskEmergencyMapper;
    @Autowired
    private IWechatTaskNotifyService wechatTaskNotifyService;
    /**
     * 监听任务创建事件
@@ -93,7 +110,7 @@
                return;
            }
            
            // 给每个执行人发送消息
            // 给每个执行人发送站内消息
            for (int i = 0; i < event.getAssigneeIds().size(); i++) {
                Long assigneeId = event.getAssigneeIds().get(i);
                
@@ -104,7 +121,7 @@
                    continue;
                }
                
                // 创建消息
                // 创建站内消息
                SysMessage message = new SysMessage();
                message.setMessageType("PUSH");
                message.setMessageTitle("任务推送");
@@ -123,6 +140,15 @@
                sysMessageMapper.insertSysMessage(message);
                log.info("任务分配消息已保存,消息ID:{},接收人:{}", message.getMessageId(), assignee.getNickName());
            }
            // 发送微信订阅消息(排除创建人)
            try {
                SysTask task = sysTaskMapper.selectSysTaskByTaskId(event.getTaskId());
                Long creatorId = task != null ? task.getCreatorId() : null;
                wechatTaskNotifyService.sendTaskNotifyMessage(event.getTaskId(), event.getAssigneeIds(), creatorId);
            } catch (Exception e) {
                log.error("处理任务分配事件时发送微信订阅消息失败", e);
            }
            
        } catch (Exception e) {
            log.error("处理任务分配事件失败", e);