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