lxzn-boot-base-core/src/main/java/org/jeecg/common/api/dto/message/MessageDTO.java
@@ -64,6 +64,15 @@ * æ¯å¦åéMarkdownæ ¼å¼çæ¶æ¯ */ protected boolean isMarkdown; /** * æ¶æ¯ç±»å * å°ä¿å »æ * 设å¤è¿è¡å¼å¸¸ * ç¶æé¿ææ åå * ç½ç»æ é */ protected String messageType; /** * è§£ææ¨¡æ¿å 容 对åºçæ°æ® 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; } } 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"); 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"); 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"); 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); 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() + "] ç设å¤å©ç¨çä½äºæ£å¸¸å¼ï¼"); messageDTO.setCategory(CommonConstant.MSG_CATEGORY_2); messageDTO.setMessageType(MessageSplitTypeEnum.deviceRunError.getType()); messageDTO.setFromUser("admin"); messageDTO.setToUser("admin"); messageDTO.setContent("ã设å¤å¼å¸¸æéã" + productionName + "车é´è®¾å¤ç¼å·ä¸º [" + mdcEquipment.getEquipmentId() + "] ç设å¤å©ç¨çä½äºæ£å¸¸å¼ï¼"); @@ -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() + "] ç设å¤ç¶æé¿ææ ååï¼"); 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"); //è®¾å® 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(); 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); } 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> 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); } 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: åºå±å ±éä¸å¡APIï¼æä¾å ¶ä»ç¬ç«æ¨¡åè°ç¨ @@ -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æ¶æ¯ 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