From 218ab860ed4708f6f70a519775c56c9554000fe7 Mon Sep 17 00:00:00 2001
From: lyh <925863403@qq.com>
Date: 星期五, 27 六月 2025 13:42:41 +0800
Subject: [PATCH] 去除多余引用

---
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningMonitoringSpeedJob.java |   66 +++++++++++++++++---------------
 1 files changed, 35 insertions(+), 31 deletions(-)

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 016b062..b3551dd 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;
@@ -23,16 +24,18 @@
 import org.quartz.*;
 
 import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * @author Lius
  * @Description: 鐩戞帶璁惧杩愯杞�熶笌NC绋嬪簭璁惧畾杞�熷姣�
  * @date 2024/3/4 16:14
  */
-@PersistJobDataAfterExecution
-@DisallowConcurrentExecution
 @Slf4j
 public class RunningMonitoringSpeedJob implements Job {
 
@@ -72,65 +75,66 @@
 
             // 鑾峰彇瀛楀吀鏁版嵁
             List<DictModel> dictModelList = sysDictService.queryEnableDictItemsByCode(CommonConstant.DICT_OPERATING_SPEED_RANGE);
-            Integer range = 0;
+            BigDecimal range = BigDecimal.ZERO;
             if (dictModelList != null && !dictModelList.isEmpty()) {
-                range = Integer.valueOf(dictModelList.get(0).getValue());
+                range = new BigDecimal(dictModelList.get(0).getValue());
             }
 
+            Map<String, String> proNamesByEquipmentIds = mdcEquipmentService.getProNamesByEquipmentIds(mdcEquipmentList.stream().map(MdcEquipment::getId).collect(Collectors.toList()));
             for (MdcEquipment mdcEquipment : mdcEquipmentList) {
+                String productionName = proNamesByEquipmentIds.get(mdcEquipment.getId());
                 String saveTableName = mdcEquipment.getSaveTableName();
                 MdcEquipmentDto mdcEquipmentDto = new MdcEquipmentDto();
-                try {
-                    //鏌ヨ鍗曡〃鏁版嵁
-                    mdcEquipmentDto = mdcEquipmentService.getWorkLineLast(saveTableName);
 
-                } catch (Exception e) {
-                    log.error("鏌ヨ鍗曡〃鏁版嵁澶辫触!", e);
-                }
-                if (StringUtils.isNotBlank(mdcEquipmentDto.getSpindlespeed()) && StringUtils.isNotBlank(mdcEquipmentDto.getActualspindlespeed())) {
+                //鏌ヨ鍗曡〃鏁版嵁
+                mdcEquipmentDto = mdcEquipmentService.getWorkLineLast(saveTableName);
+
+                if (mdcEquipmentDto != null && StringUtils.isNotBlank(mdcEquipmentDto.getSpindlespeed()) && StringUtils.isNotBlank(mdcEquipmentDto.getActualspindlespeed())) {
                     MessageDTO messageDTO = new MessageDTO();
-                    messageDTO.setTitle("璁惧杩愯杞�熸姤璀︼紒");
-                    messageDTO.setCategory("棰勮娑堟伅");
+                    messageDTO.setTitle("銆愯澶囧紓甯告彁閱掋��" + productionName + "杞﹂棿璁惧 [" + mdcEquipment.getEquipmentId() + "] 杩愯杞�燂紒");
+                    messageDTO.setCategory(MessageSplitTypeEnum.deviceRunError.getNote());
+                    messageDTO.setMessageType(MessageSplitTypeEnum.deviceRunError.getType());
                     messageDTO.setFromUser("admin");
                     messageDTO.setToUser("admin");
                     //璁惧畾
-                    Integer spindlespeed = Integer.valueOf(mdcEquipmentDto.getSpindlespeed());
+                    BigDecimal spindlespeed = new BigDecimal(mdcEquipmentDto.getSpindlespeed());
                     //瀹為檯
-                    Integer actualspindlespeed = Integer.valueOf(mdcEquipmentDto.getActualspindlespeed());
+                    BigDecimal actualspindlespeed = new BigDecimal(mdcEquipmentDto.getActualspindlespeed());
 
                     MdcOverrunAlarm mdcOverrunAlarm = new MdcOverrunAlarm();
                     mdcOverrunAlarm.setEquipmentId(mdcEquipment.getEquipmentId());
                     mdcOverrunAlarm.setSetValue(spindlespeed.toString());
                     mdcOverrunAlarm.setRealValue(actualspindlespeed.toString());
-                    if (range.equals(0)) {
-                        if (spindlespeed > actualspindlespeed) {
+                    if (range.equals(BigDecimal.ZERO)) {
+                        if (spindlespeed.compareTo(actualspindlespeed) == 1) {
                             // 璁惧畾鍊煎ぇ浜庡疄闄呭��   浣�
-                            messageDTO.setContent("璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶囪繍琛岃浆閫熶綆鎶ヨ锛�");
+                            messageDTO.setContent("銆愯澶囧紓甯告彁閱掋��" + productionName + "杞﹂棿璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶囪繍琛岃浆閫熶綆锛�");
                             sysBaseApi.sendSysAnnouncement(messageDTO);
-                            mdcOverrunAlarm.setAlarmContent("璁惧杩愯杞�熸瘮NC浠g爜璁惧畾鍊间綆鎶ヨ");
+                            mdcOverrunAlarm.setAlarmContent("璁惧杩愯杞�熸瘮NC浠g爜璁惧畾鍊间綆");
                             mdcOverrunAlarmService.save(mdcOverrunAlarm);
-                        } else if (spindlespeed < actualspindlespeed) {
+                        } else if (spindlespeed.compareTo(actualspindlespeed) == -1) {
                             // 璁惧畾鍊煎皬浜庡疄闄呭��   楂�
-                            messageDTO.setContent("璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶囪繍琛岃浆閫熼珮鎶ヨ锛�");
+                            messageDTO.setContent("銆愯澶囧紓甯告彁閱掋��" + productionName + "杞﹂棿璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶囪繍琛岃浆閫熼珮锛�");
                             sysBaseApi.sendSysAnnouncement(messageDTO);
-                            mdcOverrunAlarm.setAlarmContent("璁惧杩愯杞�熸瘮NC浠g爜璁惧畾鍊奸珮鎶ヨ");
+                            mdcOverrunAlarm.setAlarmContent("璁惧杩愯杞�熸瘮NC浠g爜璁惧畾鍊奸珮");
                             mdcOverrunAlarmService.save(mdcOverrunAlarm);
                         }
                     } else {
-                        int max = spindlespeed + spindlespeed * (range / 100);
-                        int min = spindlespeed - spindlespeed * (range / 100);
-                        if (actualspindlespeed > max || actualspindlespeed < min) {
-                            if (spindlespeed > actualspindlespeed) {
+                        BigDecimal multiply = spindlespeed.multiply(range.divide(new BigDecimal(100), 4, RoundingMode.HALF_UP));
+                        BigDecimal max = spindlespeed.add(multiply);
+                        BigDecimal min = spindlespeed.subtract(multiply);
+                        if (actualspindlespeed.compareTo(max) == 1 || actualspindlespeed.compareTo(min) == -1) {
+                            if (spindlespeed.compareTo(actualspindlespeed) == 1) {
                                 // 璁惧畾鍊煎ぇ浜庡疄闄呭��   浣�
-                                messageDTO.setContent("璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶囪繍琛岃浆閫熶綆鎶ヨ锛�");
+                                messageDTO.setContent("銆愯澶囧紓甯告彁閱掋��" + productionName + "杞﹂棿璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶囪繍琛岃浆閫熶綆锛�");
                                 sysBaseApi.sendSysAnnouncement(messageDTO);
-                                mdcOverrunAlarm.setAlarmContent("璁惧杩愯杞�熸瘮NC浠g爜璁惧畾鍊间綆鎶ヨ");
+                                mdcOverrunAlarm.setAlarmContent("璁惧杩愯杞�熸瘮NC浠g爜璁惧畾鍊间綆");
                                 mdcOverrunAlarmService.save(mdcOverrunAlarm);
-                            } else if (spindlespeed < actualspindlespeed) {
+                            } else if (spindlespeed.compareTo(actualspindlespeed) == -1) {
                                 // 璁惧畾鍊煎皬浜庡疄闄呭��   楂�
-                                messageDTO.setContent("璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶囪繍琛岃浆閫熼珮鎶ヨ锛�");
+                                messageDTO.setContent("銆愯澶囧紓甯告彁閱掋��" + productionName + "杞﹂棿璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶囪繍琛岃浆閫熼珮锛�");
                                 sysBaseApi.sendSysAnnouncement(messageDTO);
-                                mdcOverrunAlarm.setAlarmContent("璁惧杩愯杞�熸瘮NC浠g爜璁惧畾鍊奸珮鎶ヨ");
+                                mdcOverrunAlarm.setAlarmContent("璁惧杩愯杞�熸瘮NC浠g爜璁惧畾鍊奸珮");
                                 mdcOverrunAlarmService.save(mdcOverrunAlarm);
                             }
                         }

--
Gitblit v1.9.3