hyingbo
2025-05-27 3a740faa161ec976986c0735ba18837f570a525f
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;
/**
@@ -102,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() + "] 的设备利用率低于正常值报警!");
                SysAnnouncement sysAnnouncement = sysAnnouncementService.findLastMessage("【设备异常提醒】" + productionName + "车间设备编号为 [" + mdcEquipment.getEquipmentId() + "] 的设备利用率低于正常值!");
                boolean flag1 = true;
                if (sysAnnouncement != null) {
                    Date createTime = sysAnnouncement.getCreateTime();
@@ -130,18 +134,19 @@
                        if (flag) {
                            // 上报
                            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);
                        }
                    }
                }
                // 判断设备状态长时间无变化审批人
                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);
@@ -170,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());