From e8d223967ea612f4eb24603ed7ae941ec00fd76f Mon Sep 17 00:00:00 2001 From: Lius <Lius2225@163.com> Date: 星期三, 13 三月 2024 11:33:07 +0800 Subject: [PATCH] 车间管理添加字段,算法bug修复 --- lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningMonitoringSpeedJob.java | 29 ++++++++++++++++------------- 1 files changed, 16 insertions(+), 13 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..ebf871a 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 @@ -23,6 +23,8 @@ import org.quartz.*; import javax.annotation.Resource; +import java.math.BigDecimal; +import java.math.RoundingMode; import java.util.Date; import java.util.List; @@ -72,9 +74,9 @@ // 鑾峰彇瀛楀吀鏁版嵁 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()); } for (MdcEquipment mdcEquipment : mdcEquipmentList) { @@ -87,29 +89,29 @@ } catch (Exception e) { log.error("鏌ヨ鍗曡〃鏁版嵁澶辫触!", e); } - if (StringUtils.isNotBlank(mdcEquipmentDto.getSpindlespeed()) && StringUtils.isNotBlank(mdcEquipmentDto.getActualspindlespeed())) { + if (mdcEquipmentDto != null && StringUtils.isNotBlank(mdcEquipmentDto.getSpindlespeed()) && StringUtils.isNotBlank(mdcEquipmentDto.getActualspindlespeed())) { MessageDTO messageDTO = new MessageDTO(); messageDTO.setTitle("璁惧杩愯杞�熸姤璀︼紒"); messageDTO.setCategory("棰勮娑堟伅"); 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() + "] 鐨勮澶囪繍琛岃浆閫熶綆鎶ヨ锛�"); sysBaseApi.sendSysAnnouncement(messageDTO); mdcOverrunAlarm.setAlarmContent("璁惧杩愯杞�熸瘮NC浠g爜璁惧畾鍊间綆鎶ヨ"); mdcOverrunAlarmService.save(mdcOverrunAlarm); - } else if (spindlespeed < actualspindlespeed) { + } else if (spindlespeed.compareTo(actualspindlespeed) == -1) { // 璁惧畾鍊煎皬浜庡疄闄呭�� 楂� messageDTO.setContent("璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶囪繍琛岃浆閫熼珮鎶ヨ锛�"); sysBaseApi.sendSysAnnouncement(messageDTO); @@ -117,16 +119,17 @@ 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() + "] 鐨勮澶囪繍琛岃浆閫熶綆鎶ヨ锛�"); sysBaseApi.sendSysAnnouncement(messageDTO); mdcOverrunAlarm.setAlarmContent("璁惧杩愯杞�熸瘮NC浠g爜璁惧畾鍊间綆鎶ヨ"); mdcOverrunAlarmService.save(mdcOverrunAlarm); - } else if (spindlespeed < actualspindlespeed) { + } else if (spindlespeed.compareTo(actualspindlespeed) == -1) { // 璁惧畾鍊煎皬浜庡疄闄呭�� 楂� messageDTO.setContent("璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶囪繍琛岃浆閫熼珮鎶ヨ锛�"); sysBaseApi.sendSysAnnouncement(messageDTO); -- Gitblit v1.9.3