Lius
2024-03-13 e8d223967ea612f4eb24603ed7ae941ec00fd76f
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代码设定值低报警");
                            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代码设定值低报警");
                                mdcOverrunAlarmService.save(mdcOverrunAlarm);
                            } else if (spindlespeed < actualspindlespeed) {
                            } else if (spindlespeed.compareTo(actualspindlespeed) == -1) {
                                // 设定值小于实际值   高
                                messageDTO.setContent("设备编号为 [" + mdcEquipment.getEquipmentId() + "] 的设备运行转速高报警!");
                                sysBaseApi.sendSysAnnouncement(messageDTO);