From faa87b7860247e7d748896367b487f7fb7952b94 Mon Sep 17 00:00:00 2001 From: Lius <Lius2225@163.com> Date: 星期五, 01 三月 2024 15:33:48 +0800 Subject: [PATCH] mdc设备运行参数超限算法更新 --- lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentServiceImpl.java | 133 +++++++++++++++++++++++++++++--------------- 1 files changed, 88 insertions(+), 45 deletions(-) diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentServiceImpl.java index 9648ae1..5891439 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentServiceImpl.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentServiceImpl.java @@ -9,7 +9,6 @@ import org.jeecg.common.api.dto.message.MessageDTO; import org.jeecg.common.constant.CommonConstant; import org.jeecg.common.system.api.ISysBaseAPI; -import org.jeecg.common.system.vo.DictModel; import org.jeecg.common.util.oConvertUtils; import org.jeecg.modules.mdc.dto.MdcEquDepDto; import org.jeecg.modules.mdc.dto.MdcEquProDto; @@ -32,7 +31,10 @@ import org.jeecg.modules.system.entity.SysDepart; import org.jeecg.modules.system.mapper.MdcEquipmentDepartMapper; import org.jeecg.modules.system.mapper.MdcProductionEquipmentMapper; -import org.jeecg.modules.system.service.*; +import org.jeecg.modules.system.service.IMdcProductionService; +import org.jeecg.modules.system.service.IMdcUserProductionService; +import org.jeecg.modules.system.service.ISysDepartService; +import org.jeecg.modules.system.service.ISysUserDepartService; import org.springframework.cache.annotation.CacheEvict; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -82,13 +84,16 @@ private IEquipmentBaseInfoService equipmentBaseInfoService; @Resource - private ISysDictService sysDictService; - - @Resource private ISysBaseAPI sysBaseApi; @Resource private IMdcAlarmInfoService mdcAlarmInfoService; + + @Resource + private IMdcEquipmentThresholdService mdcEquipmentThresholdService; + + @Resource + private IMdcOverrunAlarmService mdcOverrunAlarmService; @Override @@ -735,57 +740,95 @@ } /** - * 鐩戞帶璁惧杞�熶换鍔� + * 鐩戞帶璁惧杩愯鍙傛暟浠诲姟 */ @Override public void monitoringSpeedProcess() { - List<MdcEquipment> equipmentList = super.list(new LambdaQueryWrapper<MdcEquipment>().eq(MdcEquipment::getDriveType, "FANUC")); +// List<MdcEquipment> equipmentList = super.list(new LambdaQueryWrapper<MdcEquipment>().eq(MdcEquipment::getDriveType, "FANUC")); + List<MdcEquipment> equipmentList = super.list(); //List<MdcEquipment> equipmentList = super.list(new LambdaQueryWrapper<MdcEquipment>().eq(MdcEquipment::getEquipmentId, "2140198")); - // 鑾峰彇瀛楀吀鏁版嵁 - List<DictModel> dictModelList = sysDictService.queryEnableDictItemsByCode(CommonConstant.DICT_OPERATING_SPEED_RANGE); - Integer range = 0; - if (dictModelList != null && !dictModelList.isEmpty()) { - range = Integer.valueOf(dictModelList.get(0).getValue()); - } + for (MdcEquipment mdcEquipment : equipmentList) { - String saveTableName = mdcEquipment.getSaveTableName(); - //鏌ヨ鍗曡〃鏁版嵁 - MdcEquipmentDto mdcEquipmentDto = this.baseMapper.getWorkLineLast(saveTableName); - if (mdcEquipmentDto != null) { - MessageDTO messageDTO = new MessageDTO(); - messageDTO.setTitle("璁惧杩愯杞�熸姤璀︼紒"); - messageDTO.setCategory("棰勮娑堟伅"); - messageDTO.setFromUser("admin"); - messageDTO.setToUser("admin"); - Integer spindlespeed = Integer.valueOf(mdcEquipmentDto.getSpindlespeed()); - Integer actualspindlespeed = Integer.valueOf(mdcEquipmentDto.getActualspindlespeed()); - if (range.equals(0)) { - if (spindlespeed > actualspindlespeed) { - // 瀹為檯鍊煎ぇ浜庤瀹氬�� 楂� - messageDTO.setContent("璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶囪繍琛岃浆閫熼珮鎶ヨ锛�"); - sysBaseApi.sendSysAnnouncement(messageDTO); - } else if (spindlespeed < actualspindlespeed) { - // 瀹為檯鍊煎皬浜庤瀹氬�� 浣� - messageDTO.setContent("璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶囪繍琛岃浆閫熶綆鎶ヨ锛�"); - sysBaseApi.sendSysAnnouncement(messageDTO); - } - } else { - int max = actualspindlespeed + actualspindlespeed * (range / 100); - int min = actualspindlespeed - actualspindlespeed * (range / 100); - if (spindlespeed > max || spindlespeed < min) { - if (spindlespeed > actualspindlespeed) { - // 瀹為檯鍊煎ぇ浜庤瀹氬�� 楂� - messageDTO.setContent("璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶囪繍琛岃浆閫熼珮鎶ヨ锛�"); + List<MdcEquipmentThreshold> mdcEquipmentThresholdList = mdcEquipmentThresholdService.list(new LambdaQueryWrapper<MdcEquipmentThreshold>().eq(MdcEquipmentThreshold::getControlSystemType, mdcEquipment.getDriveType())); + if (mdcEquipmentThresholdList != null && !mdcEquipmentThresholdList.isEmpty()) { + String saveTableName = mdcEquipment.getSaveTableName(); + StringBuilder builder = new StringBuilder(); + for (MdcEquipmentThreshold mdcEquipmentThreshold : mdcEquipmentThresholdList) { + builder.append(",").append(mdcEquipmentThreshold.getEnglishName()).append(" as \"").append(mdcEquipmentThreshold.getEnglishName()).append("\" "); + } + Map<String, Object> param = new HashMap<>(); + param.put("columns", builder.toString()); + param.put("tableName", saveTableName); + Map<String, Object> map = this.baseMapper.getWorkLineLast(param); + if (map != null) { + for (MdcEquipmentThreshold mdcEquipmentThreshold : mdcEquipmentThresholdList) { + Integer actualValue = Integer.valueOf(map.get(mdcEquipmentThreshold.getEnglishName()).toString()); + Integer max = mdcEquipmentThreshold.getMaxThreshold(); + Integer min = mdcEquipmentThreshold.getMinThreshold(); + MessageDTO messageDTO = new MessageDTO(); + messageDTO.setTitle("璁惧" + mdcEquipmentThreshold.getChineseName() + "鎶ヨ锛�"); + messageDTO.setCategory("棰勮娑堟伅"); + messageDTO.setFromUser("admin"); + messageDTO.setToUser("admin"); + MdcOverrunAlarm mdcOverrunAlarm = new MdcOverrunAlarm(); + mdcOverrunAlarm.setEquipmentId(mdcEquipment.getEquipmentId()); + mdcOverrunAlarm.setSetValue(min + "-" + max); + mdcOverrunAlarm.setRealValue(actualValue.toString()); + if (actualValue > max) { + // 楂� + messageDTO.setContent("璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶�" + mdcEquipmentThreshold.getChineseName() + "楂樻姤璀︼紒"); sysBaseApi.sendSysAnnouncement(messageDTO); - } else if (spindlespeed < actualspindlespeed) { - // 瀹為檯鍊煎皬浜庤瀹氬�� 浣� - messageDTO.setContent("璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶囪繍琛岃浆閫熶綆鎶ヨ锛�"); + mdcOverrunAlarm.setAlarmContent(mdcEquipmentThreshold.getChineseName() + "楂樻姤璀�"); + mdcOverrunAlarmService.save(mdcOverrunAlarm); + } else if (actualValue < min) { + // 浣� + messageDTO.setContent("璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶�" + mdcEquipmentThreshold.getChineseName() + "浣庢姤璀︼紒"); sysBaseApi.sendSysAnnouncement(messageDTO); + mdcOverrunAlarm.setAlarmContent(mdcEquipmentThreshold.getChineseName() + "浣庢姤璀�"); + mdcOverrunAlarmService.save(mdcOverrunAlarm); } } } - } + + +// //鏌ヨ鍗曡〃鏁版嵁 +// MdcEquipmentDto mdcEquipmentDto = this.baseMapper.getWorkLineLast(saveTableName); +// if (mdcEquipmentDto != null) { +// MessageDTO messageDTO = new MessageDTO(); +// messageDTO.setTitle("璁惧杩愯杞�熸姤璀︼紒"); +// messageDTO.setCategory("棰勮娑堟伅"); +// messageDTO.setFromUser("admin"); +// messageDTO.setToUser("admin"); +// Integer spindlespeed = Integer.valueOf(mdcEquipmentDto.getSpindlespeed()); +// Integer actualspindlespeed = Integer.valueOf(mdcEquipmentDto.getActualspindlespeed()); +// if (range.equals(0)) { +// if (spindlespeed > actualspindlespeed) { +// // 瀹為檯鍊煎ぇ浜庤瀹氬�� 楂� +// messageDTO.setContent("璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶囪繍琛岃浆閫熼珮鎶ヨ锛�"); +// sysBaseApi.sendSysAnnouncement(messageDTO); +// } else if (spindlespeed < actualspindlespeed) { +// // 瀹為檯鍊煎皬浜庤瀹氬�� 浣� +// messageDTO.setContent("璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶囪繍琛岃浆閫熶綆鎶ヨ锛�"); +// sysBaseApi.sendSysAnnouncement(messageDTO); +// } +// } else { +// int max = actualspindlespeed + actualspindlespeed * (range / 100); +// int min = actualspindlespeed - actualspindlespeed * (range / 100); +// if (spindlespeed > max || spindlespeed < min) { +// if (spindlespeed > actualspindlespeed) { +// // 瀹為檯鍊煎ぇ浜庤瀹氬�� 楂� +// messageDTO.setContent("璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶囪繍琛岃浆閫熼珮鎶ヨ锛�"); +// sysBaseApi.sendSysAnnouncement(messageDTO); +// } else if (spindlespeed < actualspindlespeed) { +// // 瀹為檯鍊煎皬浜庤瀹氬�� 浣� +// messageDTO.setContent("璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶囪繍琛岃浆閫熶綆鎶ヨ锛�"); +// sysBaseApi.sendSysAnnouncement(messageDTO); +// } +// } +// } +// +// } } } -- Gitblit v1.9.3