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/controller/MdcMessageApprovalController.java | 3 + lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningEquipmentStatusJob.java | 4 + lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/EquipmentWarrantyEndDateAlertJob.java | 2 lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java | 8 ++ lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysUserMapper.java | 2 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/TechnologyStatusAlart.java | 2 lxzn-boot-base-core/src/main/java/org/jeecg/common/api/dto/message/MessageDTO.java | 9 +++ lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserService.java | 2 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/ThirdMaintenaceAlart.java | 2 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningMonitoringSpeedJob.java | 2 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentServiceImpl.java | 2 lxzn-boot-base-core/src/main/java/org/jeecg/common/constant/enums/MessageSplitTypeEnum.java | 102 ++++++++++++++++++++++++++++++++++ lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysUserMapper.xml | 13 ++++ lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysBaseApiImpl.java | 22 +++++++ 14 files changed, 175 insertions(+), 0 deletions(-) diff --git a/lxzn-boot-base-core/src/main/java/org/jeecg/common/api/dto/message/MessageDTO.java b/lxzn-boot-base-core/src/main/java/org/jeecg/common/api/dto/message/MessageDTO.java index 6253639..8c62b01 100644 --- a/lxzn-boot-base-core/src/main/java/org/jeecg/common/api/dto/message/MessageDTO.java +++ b/lxzn-boot-base-core/src/main/java/org/jeecg/common/api/dto/message/MessageDTO.java @@ -64,6 +64,15 @@ * 鏄惁鍙戦�丮arkdown鏍煎紡鐨勬秷鎭� */ protected boolean isMarkdown; + + /** + * 娑堟伅绫诲瀷 + * 鍒颁繚鍏绘湡 + * 璁惧杩愯寮傚父 + * 鐘舵�侀暱鏈熸棤鍙樺寲 + * 缃戠粶鏁呴殰 + */ + protected String messageType; /** * 瑙f瀽妯℃澘鍐呭 瀵瑰簲鐨勬暟鎹� diff --git a/lxzn-boot-base-core/src/main/java/org/jeecg/common/constant/enums/MessageSplitTypeEnum.java b/lxzn-boot-base-core/src/main/java/org/jeecg/common/constant/enums/MessageSplitTypeEnum.java new file mode 100644 index 0000000..a8b1b45 --- /dev/null +++ b/lxzn-boot-base-core/src/main/java/org/jeecg/common/constant/enums/MessageSplitTypeEnum.java @@ -0,0 +1,102 @@ +package org.jeecg.common.constant.enums; + +import org.jeecg.common.system.annotation.EnumDict; +import org.jeecg.common.system.vo.DictModel; + +import java.util.ArrayList; +import java.util.List; + +/** + * 娑堟伅绫诲瀷 + * @author: jeecg-boot + */ +@EnumDict("messageType") +public enum MessageSplitTypeEnum { + + /** 鍒颁繚鍏绘湡 */ + untilMaintenancePeriod("untilMaintenancePeriod", "鍒颁繚鍏绘湡", "until_maintenance_period"), + /** 璁惧杩愯寮傚父 */ + deviceRunError("deviceRunError", "璁惧杩愯寮傚父", "device_run_error"), + /** 閽夌姸鎬侀暱鏈熸棤鍙樺寲 */ + statusPermanentlyNoChange("statusPermanentlyNoChange", "閽夌姸鎬侀暱鏈熸棤鍙樺寲", "status_permanently_no_change"), + /** 缃戠粶鏁呴殰 */ + networkFault("networkFault", "缃戠粶鏁呴殰", "network_fault"); + + MessageSplitTypeEnum(String type, String note, String dictCode){ + this.type = type; + this.note = note; + this.dictCode = dictCode; + } + + /** + * 娑堟伅绫诲瀷 + */ + String type; + + /** + * 绫诲瀷璇存槑 + */ + String note; + + /** + * 瀛楀吀鍚嶇О + */ + String dictCode; + + public String getDictCode() { + return dictCode; + } + + public void setDictCode(String dictCode) { + this.dictCode = dictCode; + } + + public String getNote() { + return note; + } + + public void setNote(String note) { + this.note = note; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + + /** + * 鑾峰彇瀛楀吀鏁版嵁 + * @return + */ + public static List<DictModel> getDictList(){ + List<DictModel> list = new ArrayList<>(); + DictModel dictModel = null; + for(MessageSplitTypeEnum e: MessageSplitTypeEnum.values()){ + dictModel = new DictModel(); + dictModel.setValue(e.getType()); + dictModel.setText(e.getNote()); + list.add(dictModel); + } + return list; + } + + /** + * 鏍规嵁type鑾峰彇鏋氫妇 + * + * @param type + * @return + */ + public static MessageSplitTypeEnum valueOfType(String type) { + for (MessageSplitTypeEnum e : MessageSplitTypeEnum.values()) { + if (e.getType().equals(type)) { + return e; + } + } + return null; + } + +} diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/EquipmentWarrantyEndDateAlertJob.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/EquipmentWarrantyEndDateAlertJob.java index 5a9e7d1..53f23bf 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/EquipmentWarrantyEndDateAlertJob.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/EquipmentWarrantyEndDateAlertJob.java @@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import org.apache.shiro.SecurityUtils; import org.jeecg.common.api.dto.message.MessageDTO; +import org.jeecg.common.constant.enums.MessageSplitTypeEnum; import org.jeecg.common.system.api.ISysBaseAPI; import org.jeecg.common.system.vo.LoginUser; import org.jeecg.modules.eam.entity.Equipment; @@ -42,6 +43,7 @@ MessageDTO messageDTO = new MessageDTO(); messageDTO.setTitle(title); messageDTO.setContent(msg); + messageDTO.setMessageType(MessageSplitTypeEnum.untilMaintenancePeriod.getType()); messageDTO.setCategory("绯荤粺娑堟伅"); messageDTO.setFromUser("鍒版湡鎻愰啋灏忓姪鎵�-灏忛啋"); messageDTO.setToUser("admin"); diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/TechnologyStatusAlart.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/TechnologyStatusAlart.java index fc51b15..51cf992 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/TechnologyStatusAlart.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/TechnologyStatusAlart.java @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import org.jeecg.common.api.dto.message.MessageDTO; +import org.jeecg.common.constant.enums.MessageSplitTypeEnum; import org.jeecg.common.system.api.ISysBaseAPI; import org.jeecg.modules.eam.entity.Equipment; import org.jeecg.modules.eam.service.IEamEquipmentService; @@ -62,6 +63,7 @@ msg = msg+"鐨勮澶囨妧鏈姸鎬侀壌瀹氱殑鏃ユ湡涓嶈冻涓や釜鏈堬紝璇峰強鏃跺鐞�"; MessageDTO messageDTO = new MessageDTO(); messageDTO.setTitle(title); + messageDTO.setMessageType(MessageSplitTypeEnum.untilMaintenancePeriod.getType()); messageDTO.setContent(msg); messageDTO.setCategory("鎶�鏈姸鎬侀壌瀹氭秷鎭�"); messageDTO.setFromUser("admin"); diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/ThirdMaintenaceAlart.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/ThirdMaintenaceAlart.java index 574b718..6841726 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/ThirdMaintenaceAlart.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/ThirdMaintenaceAlart.java @@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import org.hibernate.annotations.Source; import org.jeecg.common.api.dto.message.MessageDTO; +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.eam.entity.Equipment; @@ -66,6 +67,7 @@ msg = msg+"鐨勮澶囩涓嬫涓変繚鐨勬棩鏈熶笉瓒充袱涓湀锛岃鍙婃椂澶勭悊"; MessageDTO messageDTO = new MessageDTO(); messageDTO.setTitle(title); + messageDTO.setMessageType(MessageSplitTypeEnum.untilMaintenancePeriod.getType()); messageDTO.setContent(msg); messageDTO.setCategory("涓変繚娑堟伅"); messageDTO.setFromUser("admin"); diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcMessageApprovalController.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcMessageApprovalController.java index 9d74bd8..17090b6 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcMessageApprovalController.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcMessageApprovalController.java @@ -10,6 +10,7 @@ import org.jeecg.common.api.dto.message.MessageDTO; import org.jeecg.common.api.vo.Result; import org.jeecg.common.aspect.annotation.AutoLog; +import org.jeecg.common.constant.enums.MessageSplitTypeEnum; import org.jeecg.common.system.api.ISysBaseAPI; import org.jeecg.common.system.base.controller.JeecgController; import org.jeecg.common.system.vo.LoginUser; @@ -179,6 +180,7 @@ //涓婃姤鍘熷洜鍙戦�佹秷鎭粰纭浜� MessageDTO messageDTO = new MessageDTO(); messageDTO.setTitle("璁惧鐘舵�侀暱鏃堕棿鏈彉鍖栧師鍥犱笂鎶ョ‘璁わ紒"); + messageDTO.setMessageType(MessageSplitTypeEnum.statusPermanentlyNoChange.getType()); messageDTO.setCategory("娑堟伅"); LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); messageDTO.setFromUser(user.getUsername()); @@ -205,6 +207,7 @@ messageDTO.setTitle("璁惧鐘舵�佹秷鎭紒"); messageDTO.setCategory("娑堟伅"); messageDTO.setFromUser("admin"); + messageDTO.setMessageType(MessageSplitTypeEnum.statusPermanentlyNoChange.getType()); messageDTO.setToUser(mdcMessageApproval.getUpdateBy()); messageDTO.setContent("鎮ㄧ殑璁惧缂栧彿涓� [" + mdcMessageApproval.getEquipmentId() + "] 鐨勮澶囩姸鎬侀暱鏃堕棿鏈彉鍖栦笂鎶ュ凡琚澶囪秴绾х鐞嗗憳鎷掔粷锛岃閲嶆柊濉啓涓婃姤鍘熷洜锛�"); sysBaseApi.sendSysAnnouncement(messageDTO); 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 ef28617..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; @@ -135,6 +136,7 @@ MessageDTO messageDTO = new MessageDTO(); 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("銆愯澶囧紓甯告彁閱掋��" + productionName + "杞﹂棿璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶囧埄鐢ㄧ巼浣庝簬姝e父鍊硷紒"); @@ -175,6 +177,7 @@ MessageDTO messageDTO = new MessageDTO(); 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("銆愯澶囧紓甯告彁閱掋��" + productionName + "杞﹂棿璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶囩姸鎬侀暱鏈熸棤鍙樺寲锛�"); @@ -184,6 +187,7 @@ MessageDTO messageDTO = new MessageDTO(); messageDTO.setTitle("銆愯澶囧紓甯告彁閱掋��" + productionName + "杞﹂棿璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶囩姸鎬侀暱鏈熸棤鍙樺寲锛�"); messageDTO.setCategory(CommonConstant.MSG_CATEGORY_2); + messageDTO.setMessageType(MessageSplitTypeEnum.deviceRunError.getType()); messageDTO.setFromUser("admin"); messageDTO.setToUser("admin"); messageDTO.setContent("銆愯澶囧紓甯告彁閱掋��" + productionName + "杞﹂棿璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶囩姸鎬侀暱鏈熸棤鍙樺寲锛�"); diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningMonitoringSpeedJob.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningMonitoringSpeedJob.java index 91adf06..8c6a9fc 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningMonitoringSpeedJob.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningMonitoringSpeedJob.java @@ -5,6 +5,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.common.util.DateUtils; @@ -92,6 +93,7 @@ MessageDTO messageDTO = new MessageDTO(); messageDTO.setTitle("銆愯澶囧紓甯告彁閱掋��" + productionName + "杞﹂棿璁惧 [" + mdcEquipment.getEquipmentId() + "] 杩愯杞�燂紒"); messageDTO.setCategory(CommonConstant.MSG_CATEGORY_2); + messageDTO.setMessageType(MessageSplitTypeEnum.deviceRunError.getType()); messageDTO.setFromUser("admin"); messageDTO.setToUser("admin"); //璁惧畾 diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentServiceImpl.java index e6ba463..91b6923 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentServiceImpl.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentServiceImpl.java @@ -8,6 +8,7 @@ import org.apache.commons.lang3.StringUtils; 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.util.oConvertUtils; import org.jeecg.modules.mdc.dto.MdcEquDepDto; @@ -798,6 +799,7 @@ MessageDTO messageDTO = new MessageDTO(); messageDTO.setTitle("銆愯澶囧紓甯告彁閱掋��" + productionName + "杞﹂棿璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶�" + mdcEquipmentThreshold.getChineseName() + "鎶ヨ锛�"); messageDTO.setCategory(CommonConstant.MSG_CATEGORY_2); + messageDTO.setMessageType(MessageSplitTypeEnum.deviceRunError.getType()); messageDTO.setFromUser("admin"); messageDTO.setToUser("admin"); MdcOverrunAlarm mdcOverrunAlarm = new MdcOverrunAlarm(); diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysUserMapper.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysUserMapper.java index 7966336..8b2cb6f 100644 --- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysUserMapper.java +++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysUserMapper.java @@ -183,4 +183,6 @@ * 鏍规嵁瑙掕壊缂栫爜鍜岃澶囩紪鍙锋煡璇㈢敤鎴� */ List<SysUser> getEquipmentAdmin(@Param("roleCode") String roleCode, @Param("equipmentId") String equipmentId); + + List<SysUser> getUserByRoleCodeList(@Param("roleCodeList") List<String> roleCodeList); } diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysUserMapper.xml b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysUserMapper.xml index 3e751a9..b40648b 100644 --- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysUserMapper.xml +++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysUserMapper.xml @@ -217,4 +217,17 @@ WHERE t3.role_code = #{roleCode} AND equipment_ids LIKE concat(concat('%',#{equipmentId}),'%') </select> + <select id="getUserByRoleCodeList" resultType="org.jeecg.modules.system.entity.SysUser"> + SELECT + su.* + FROM + sys_user su + LEFT JOIN sys_user_role sur ON su.id = sur.user_id + LEFT JOIN sys_role sr ON sur.role_id = sr.id + WHERE + su.del_flag = '0' and sr.role_code in + <foreach collection="roleCodeList" index="index" item="roleCode" open="(" separator="," close=")"> + #{roleCode} + </foreach> + </select> </mapper> \ No newline at end of file diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserService.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserService.java index 751395e..e44b1a4 100644 --- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserService.java +++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserService.java @@ -319,5 +319,7 @@ List<String> getUserByRoleCode(String roleCode); + List<SysUser> getUserByRoleCodeList(List<String> roleCodeList); + List<SysUser> getEquipmentAdmin(String roleCode, String equipmentId); } diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysBaseApiImpl.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysBaseApiImpl.java index 7e75089..fe2ecce 100644 --- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysBaseApiImpl.java +++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysBaseApiImpl.java @@ -7,7 +7,9 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; +import com.baomidou.mybatisplus.core.toolkit.StringPool; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.google.common.base.Joiner; import lombok.extern.slf4j.Slf4j; @@ -18,6 +20,7 @@ import org.jeecg.common.api.dto.message.*; import org.jeecg.common.aspect.UrlMatchEnum; import org.jeecg.common.constant.*; +import org.jeecg.common.constant.enums.MessageSplitTypeEnum; import org.jeecg.common.constant.enums.MessageTypeEnum; import org.jeecg.common.desensitization.util.SensitiveInfoUtil; import org.jeecg.common.exception.JeecgBootException; @@ -59,6 +62,7 @@ import java.sql.DatabaseMetaData; import java.sql.SQLException; import java.util.*; +import java.util.stream.Collectors; /** * @Description: 搴曞眰鍏遍�氫笟鍔PI锛屾彁渚涘叾浠栫嫭绔嬫ā鍧楄皟鐢� @@ -134,6 +138,8 @@ @Autowired private IQuartzJobService quartzJobService; + @Autowired + private ISysDictItemService sysDictItemService; @Override //@SensitiveDecode @@ -355,6 +361,22 @@ @Override public void sendSysAnnouncement(MessageDTO message) { + + if (StringUtils.isNotBlank(message.getMessageType())) { + //鑾峰彇娑堟伅绫诲瀷瀵瑰簲瑙掕壊鐢ㄦ埛 + MessageSplitTypeEnum messageSplitTypeEnum = MessageSplitTypeEnum.valueOfType(message.getMessageType()); + SysDict sysDict = sysDictService.getOne(new LambdaQueryWrapper<SysDict>().eq(SysDict::getDictCode, messageSplitTypeEnum.getDictCode())); + List<SysDictItem> sysDictItemList = sysDictItemService.list(new QueryWrapper<SysDictItem>().eq("dict_id",sysDict.getId())); + if (CollectionUtils.isNotEmpty(sysDictItemList)) { + List<SysUser> sysUserList = sysUserService.getUserByRoleCodeList(sysDictItemList.stream().map(SysDictItem::getItemValue).collect(Collectors.toList())); + if (CollectionUtils.isNotEmpty(sysUserList)) { + Set<String> userIdList = new HashSet<>(Arrays.asList(message.getToUser().split(StringPool.COMMA))); + userIdList.addAll(sysUserList.stream().map(SysUser::getUsername).collect(Collectors.toList())); + message.setToUser(StringUtils.join(userIdList, StringPool.COMMA)); + } + } + } + this.sendSysAnnouncement(message.getFromUser(), message.getToUser(), message.getTitle(), message.getContent(), message.getCategory()); try { // 鍚屾鍙戦�佺涓夋柟APP娑堟伅 diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java index 106de85..f19edce 100644 --- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java +++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java @@ -707,6 +707,14 @@ } /** + * 鏍规嵁瑙掕壊缂栫爜鍒楄〃鏌ヨ鐢ㄦ埛id闆嗗悎 + */ + @Override + public List<SysUser> getUserByRoleCodeList(List<String> roleCodeList) { + return this.baseMapper.getUserByRoleCodeList(roleCodeList); + } + + /** * 鏍规嵁瑙掕壊缂栫爜鍜岃澶囩紪鍙锋煡璇㈢敤鎴� */ @Override -- Gitblit v1.9.3