From 3a740faa161ec976986c0735ba18837f570a525f Mon Sep 17 00:00:00 2001
From: hyingbo <1363390067@qq.com>
Date: 星期二, 27 五月 2025 19:04:07 +0800
Subject: [PATCH] 消息类型拆分并按类型推送至不同角色

---
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningEquipmentStatusJob.java |   29 +++++++++++++++++------------
 1 files changed, 17 insertions(+), 12 deletions(-)

diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningEquipmentStatusJob.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningEquipmentStatusJob.java
index bb5732c..fc04271 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningEquipmentStatusJob.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningEquipmentStatusJob.java
@@ -3,6 +3,7 @@
 import lombok.extern.slf4j.Slf4j;
 import org.jeecg.common.api.dto.message.MessageDTO;
 import org.jeecg.common.constant.CommonConstant;
+import org.jeecg.common.constant.enums.MessageSplitTypeEnum;
 import org.jeecg.common.system.api.ISysBaseAPI;
 import org.jeecg.common.system.vo.DictModel;
 import org.jeecg.modules.mdc.constant.MdcConstant;
@@ -31,6 +32,7 @@
 import java.time.LocalDate;
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 import java.util.stream.Collectors;
 
 /**
@@ -38,8 +40,6 @@
  * @Description: 鍒╃敤鐜囨甯稿�硷紝璁惧鐘舵�侀暱鏈熸棤鍙樺寲鎶ヨ
  * @date 2024/1/17 14:10
  */
-@PersistJobDataAfterExecution
-@DisallowConcurrentExecution
 @Slf4j
 public class RunningEquipmentStatusJob implements Job {
 
@@ -104,10 +104,12 @@
             if (dictModelList3 != null && !dictModelList3.isEmpty()) {
                 equipmentStatusJudge = Integer.valueOf(dictModelList3.get(0).getValue());
             }
+            Map<String, String> proNamesByEquipmentIds = mdcEquipmentService.getProNamesByEquipmentIds(equipmentList.stream().map(MdcEquipment::getId).collect(Collectors.toList()));
             for (MdcEquipment mdcEquipment : equipmentList) {
+                String productionName = proNamesByEquipmentIds.get(mdcEquipment.getId());
                 // 鍒ゆ柇鍒╃敤鐜�
                 // step.1 鏌ヨ娑堟伅涓璁惧鎶ヨ鏃堕棿
-                SysAnnouncement sysAnnouncement = sysAnnouncementService.findLastMessage("璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶囧埄鐢ㄧ巼浣庝簬姝e父鍊兼姤璀︼紒");
+                SysAnnouncement sysAnnouncement = sysAnnouncementService.findLastMessage("銆愯澶囧紓甯告彁閱掋��" + productionName + "杞﹂棿璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶囧埄鐢ㄧ巼浣庝簬姝e父鍊硷紒");
                 boolean flag1 = true;
                 if (sysAnnouncement != null) {
                     Date createTime = sysAnnouncement.getCreateTime();
@@ -132,18 +134,19 @@
                         if (flag) {
                             // 涓婃姤
                             MessageDTO messageDTO = new MessageDTO();
-                            messageDTO.setTitle("璁惧鍒╃敤鐜囨姤璀︼紒");
+                            messageDTO.setTitle("銆愯澶囧紓甯告彁閱掋��" + productionName + "杞﹂棿璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶囧埄鐢ㄧ巼浣庝簬姝e父鍊硷紒");
                             messageDTO.setCategory(CommonConstant.MSG_CATEGORY_2);
+                            messageDTO.setMessageType(MessageSplitTypeEnum.deviceRunError.getType());
                             messageDTO.setFromUser("admin");
                             messageDTO.setToUser("admin");
-                            messageDTO.setContent("璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶囧埄鐢ㄧ巼浣庝簬姝e父鍊兼姤璀︼紒");
+                            messageDTO.setContent("銆愯澶囧紓甯告彁閱掋��" + productionName + "杞﹂棿璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶囧埄鐢ㄧ巼浣庝簬姝e父鍊硷紒");
                             sysBaseApi.sendSysAnnouncement(messageDTO);
                         }
                     }
                 }
 
                 // 鍒ゆ柇璁惧鐘舵�侀暱鏃堕棿鏃犲彉鍖栧鎵逛汉
-                SysAnnouncement sysAnnouncement1 = sysAnnouncementService.findLastMessage("璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶囩姸鎬侀暱鏈熸棤鍙樺寲鎶ヨ锛�");
+                SysAnnouncement sysAnnouncement1 = sysAnnouncementService.findLastMessage("銆愯澶囧紓甯告彁閱掋��" + productionName + "杞﹂棿璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶囩姸鎬侀暱鏈熸棤鍙樺寲锛�");
                 if (sysAnnouncement1 != null) {
                     Date createTime = sysAnnouncement1.getCreateTime();
                     Date msgDate = DateUtils.toDate(DateUtils.format(createTime, DateUtils.STR_DATE), DateUtils.STR_DATE);
@@ -172,28 +175,30 @@
                         if (adminList != null && !adminList.isEmpty()) {
                             for (SysUser sysUser : adminList) {
                                 MessageDTO messageDTO = new MessageDTO();
-                                messageDTO.setTitle("璁惧鐘舵�侀暱鏈熸棤鍙樺寲鎶ヨ锛�");
+                                messageDTO.setTitle("銆愯澶囧紓甯告彁閱掋��" + productionName + "杞﹂棿璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶囩姸鎬侀暱鏈熸棤鍙樺寲锛�");
                                 messageDTO.setCategory(CommonConstant.MSG_CATEGORY_2);
+                                messageDTO.setMessageType(MessageSplitTypeEnum.deviceRunError.getType());
                                 messageDTO.setFromUser("admin");
                                 messageDTO.setToUser(sysUser.getUsername());
-                                messageDTO.setContent("璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶囩姸鎬侀暱鏈熸棤鍙樺寲鎶ヨ锛�");
+                                messageDTO.setContent("銆愯澶囧紓甯告彁閱掋��" + productionName + "杞﹂棿璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶囩姸鎬侀暱鏈熸棤鍙樺寲锛�");
                                 sysBaseApi.sendSysAnnouncement(messageDTO);
                             }
                         } else {
                             MessageDTO messageDTO = new MessageDTO();
-                            messageDTO.setTitle("璁惧鐘舵�侀暱鏈熸棤鍙樺寲鎶ヨ锛�");
+                            messageDTO.setTitle("銆愯澶囧紓甯告彁閱掋��" + productionName + "杞﹂棿璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶囩姸鎬侀暱鏈熸棤鍙樺寲锛�");
                             messageDTO.setCategory(CommonConstant.MSG_CATEGORY_2);
+                            messageDTO.setMessageType(MessageSplitTypeEnum.deviceRunError.getType());
                             messageDTO.setFromUser("admin");
                             messageDTO.setToUser("admin");
-                            messageDTO.setContent("璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶囩姸鎬侀暱鏈熸棤鍙樺寲鎶ヨ锛�");
+                            messageDTO.setContent("銆愯澶囧紓甯告彁閱掋��" + productionName + "杞﹂棿璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶囩姸鎬侀暱鏈熸棤鍙樺寲锛�");
                             sysBaseApi.sendSysAnnouncement(messageDTO);
                         }
 
                         if (adminList != null && !adminList.isEmpty() && superList != null && !superList.isEmpty()) {
                             MdcMessageApproval mdcMessageApproval = new MdcMessageApproval();
                             mdcMessageApproval.setEquipmentId(mdcEquipment.getEquipmentId());
-                            mdcMessageApproval.setTitile("璁惧鐘舵�侀暱鏈熸棤鍙樺寲鎶ヨ锛�");
-                            mdcMessageApproval.setMsgContent("璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶囩姸鎬侀暱鏈熸棤鍙樺寲鎶ヨ锛�");
+                            mdcMessageApproval.setTitile("銆愯澶囧紓甯告彁閱掋��" + productionName + "杞﹂棿璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶囩姸鎬侀暱鏈熸棤鍙樺寲锛�");
+                            mdcMessageApproval.setMsgContent("銆愯澶囧紓甯告彁閱掋��" + productionName + "杞﹂棿璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶囩姸鎬侀暱鏈熸棤鍙樺寲锛�");
                             List<String> senderIdList = adminList.stream().map(SysUser::getId).collect(Collectors.toList());
                             mdcMessageApproval.setSenderIds(String.join(",", senderIdList));
                             List<String> senderNameList = adminList.stream().map(SysUser::getRealname).collect(Collectors.toList());

--
Gitblit v1.9.3