From 40a8157440e3b906da8f52e07d939d78c3f4c313 Mon Sep 17 00:00:00 2001
From: wlzboy <66905212@qq.com>
Date: 星期日, 12 四月 2026 16:14:06 +0800
Subject: [PATCH] feat: 任务增加统计、同步增加通知
---
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/NotifyDispatchServiceImpl.java | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 56 insertions(+), 2 deletions(-)
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/NotifyDispatchServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/NotifyDispatchServiceImpl.java
index a918e86..7eb559c 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/NotifyDispatchServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/NotifyDispatchServiceImpl.java
@@ -1,6 +1,7 @@
package com.ruoyi.system.service.impl;
import com.alibaba.fastjson2.JSON;
+import com.ruoyi.common.config.WechatConfig;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.system.domain.*;
@@ -46,6 +47,16 @@
@Autowired
private ISmsService smsService;
+ @Autowired
+ private IQyWechatService qyWechatService;
+
+
+ @Autowired
+ private WechatConfig wechatConfig;
+
+ @Autowired
+ private ISysEmergencyTaskService sysEmergencyTaskService;
+
/**
* 鑾峰彇鎸囧畾閫氱煡绫诲瀷鍚敤鐨勬笭閬撳垪琛�
*/
@@ -75,8 +86,8 @@
return 0;
}
- log.info("寮�濮嬪垎鍙戦�氱煡浠诲姟锛宨d={}, taskId={}, userId={}, notifyType={}",
- notifyTask.getId(), notifyTask.getTaskId(), notifyTask.getUserId(), notifyTask.getNotifyType());
+// log.info("寮�濮嬪垎鍙戦�氱煡浠诲姟锛宨d={}, taskId={}, userId={}, notifyType={}",
+// notifyTask.getId(), notifyTask.getTaskId(), notifyTask.getUserId(), notifyTask.getNotifyType());
// 鏇存柊鐘舵�佷负澶勭悊涓�
notifyTaskService.markProcessing(notifyTask.getId());
@@ -108,6 +119,9 @@
break;
case NotifyChannelConfig.CHANNEL_SMS:
success = sendSmsMessage(notifyTask);
+ break;
+ case NotifyChannelConfig.CHANNEL_QY_WECHAT:
+ success = sendQyWechatMessage(notifyTask);
break;
default:
log.warn("涓嶆敮鎸佺殑娓犻亾绫诲瀷锛歿}", channel);
@@ -175,7 +189,9 @@
sendLog.setChannel(channel);
sendLog.setSendStatus(success ? NotifySendLog.SEND_STATUS_SUCCESS : NotifySendLog.SEND_STATUS_FAILED);
sendLog.setSendTime(DateUtils.getNowDate());
+ sendLog.setSendContent(notifyTask.getContent());
sendLog.setResponseMsg(errorMsg);
+ sendLog.setSendResult(success ? "鍙戦�佹垚鍔�" : ("鍙戦�佸け璐�: " + (errorMsg != null ? errorMsg : "鏈煡鍘熷洜")));
notifySendLogService.insertNotifySendLog(sendLog);
} catch (Exception e) {
@@ -318,4 +334,42 @@
return false;
}
}
+
+ @Autowired
+ private ISysConfigService sysConfigService;
+ /**
+ * 鍙戦�佷紒涓氬井淇℃秷鎭�
+ */
+ @Override
+ public boolean sendQyWechatMessage(NotifyTask notifyTask) {
+ // 妫�鏌ヤ紒涓氬井淇℃湇鍔℃槸鍚﹀惎鐢�
+ if (!qyWechatService.isEnabled()) {
+ throw new RuntimeException("浼佷笟寰俊鏈嶅姟鏈惎鐢�");
+ }
+ Long taskId = notifyTask.getTaskId();
+ SysTaskEmergency emergency = this.sysEmergencyTaskService.selectSysTaskEmergencyByTaskId(taskId);
+ if (emergency == null) {
+ throw new RuntimeException("鎵句笉鍒板搴旂殑鎬ユ晳浠诲姟淇℃伅锛宼askId=" + taskId);
+ }
+ // 妫�鏌ョ敤鎴锋槸鍚︾粦瀹氫紒涓氬井淇�
+ Long userId = notifyTask.getUserId();
+ String qyUserId = qyWechatService.getQyUserIdByUserId(userId);
+ if (qyUserId == null || qyUserId.isEmpty()) {
+ throw new RuntimeException("鐢ㄦ埛鏈粦瀹氫紒涓氬井淇D锛寀serId=" + userId);
+ }
+ String appId = wechatConfig.getAppId();
+ String pathPage = "/pagesTask/detail?id=" + taskId;
+ // 鍙戦�佷紒涓氬井淇℃秷鎭�
+ boolean success = qyWechatService.sendNotifyMessage(
+ userId,
+ notifyTask.getTitle(),
+ notifyTask.getContent(), appId, pathPage
+ );
+ if (success) {
+ log.info("浼佷笟寰俊娑堟伅鍙戦�佹垚鍔燂紝userId={}", userId);
+ } else {
+ throw new RuntimeException("浼佷笟寰俊API杩斿洖澶辫触锛寀serId=" + userId);
+ }
+ return true;
+ }
}
--
Gitblit v1.9.1