| | |
| | | import org.quartz.*; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.math.BigDecimal; |
| | | import java.math.RoundingMode; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | |
| | | |
| | | // 获取字典数据 |
| | | 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) { |
| | |
| | | } 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); |
| | |
| | | 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); |