From be3aa0812cb43be7484e162b4fece5344e9eb5c8 Mon Sep 17 00:00:00 2001
From: qushaowei <qushaowei@163.com>
Date: 星期四, 14 三月 2024 11:12:43 +0800
Subject: [PATCH] Merge branch 'master' of http://117.34.109.166:18448/r/mdc_430 into develop

---
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningMonitoringSpeedJob.java |  154 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 154 insertions(+), 0 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
new file mode 100644
index 0000000..ebf871a
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningMonitoringSpeedJob.java
@@ -0,0 +1,154 @@
+package org.jeecg.modules.mdc.job;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import lombok.extern.slf4j.Slf4j;
+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.DateUtils;
+import org.jeecg.modules.mdc.dto.MdcEquipmentDto;
+import org.jeecg.modules.mdc.entity.MdcEquipment;
+import org.jeecg.modules.mdc.entity.MdcOverrunAlarm;
+import org.jeecg.modules.mdc.service.IMdcEquipmentService;
+import org.jeecg.modules.mdc.service.IMdcOverrunAlarmService;
+import org.jeecg.modules.mdc.util.ThrowableUtil;
+import org.jeecg.modules.quartz.entity.QuartzJob;
+import org.jeecg.modules.quartz.entity.SysQuartzLog;
+import org.jeecg.modules.quartz.service.IQuartzJobService;
+import org.jeecg.modules.quartz.service.ISysQuartzLogService;
+import org.jeecg.modules.system.service.ISysAnnouncementService;
+import org.jeecg.modules.system.service.ISysDictService;
+import org.quartz.*;
+
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author Lius
+ * @Description: 鐩戞帶璁惧杩愯杞�熶笌NC绋嬪簭璁惧畾杞�熷姣�
+ * @date 2024/3/4 16:14
+ */
+@PersistJobDataAfterExecution
+@DisallowConcurrentExecution
+@Slf4j
+public class RunningMonitoringSpeedJob implements Job {
+
+    @Resource
+    private IQuartzJobService quartzJobService;
+
+    @Resource
+    private ISysQuartzLogService sysQuartzLogService;
+
+    @Resource
+    private ISysAnnouncementService sysAnnouncementService;
+
+    @Resource
+    private IMdcEquipmentService mdcEquipmentService;
+
+    @Resource
+    private ISysDictService sysDictService;
+
+    @Resource
+    private ISysBaseAPI sysBaseApi;
+
+    @Resource
+    private IMdcOverrunAlarmService mdcOverrunAlarmService;
+
+    @Override
+    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
+        SysQuartzLog quartzLog = new SysQuartzLog();
+        quartzLog.setCreateTime(new Date());
+        List<QuartzJob> byJobClassName = this.quartzJobService.findByJobClassName(this.getClass().getName());
+        if (byJobClassName != null && !byJobClassName.isEmpty()) {
+            quartzLog.setJobId(byJobClassName.get(0).getId());
+        }
+        log.info("鐩戞帶璁惧杩愯杞�熶笌NC绋嬪簭璁惧畾杞�熷姣� RunningMonitoringSpeedJob start!  鏃堕棿:" + DateUtils.now());
+        long startTime = System.currentTimeMillis();
+        try {
+            List<MdcEquipment> mdcEquipmentList = mdcEquipmentService.list(new LambdaQueryWrapper<MdcEquipment>().ne(MdcEquipment::getDriveType, "ZUOLAN"));
+
+            // 鑾峰彇瀛楀吀鏁版嵁
+            List<DictModel> dictModelList = sysDictService.queryEnableDictItemsByCode(CommonConstant.DICT_OPERATING_SPEED_RANGE);
+            BigDecimal range = BigDecimal.ZERO;
+            if (dictModelList != null && !dictModelList.isEmpty()) {
+                range = new BigDecimal(dictModelList.get(0).getValue());
+            }
+
+            for (MdcEquipment mdcEquipment : mdcEquipmentList) {
+                String saveTableName = mdcEquipment.getSaveTableName();
+                MdcEquipmentDto mdcEquipmentDto = new MdcEquipmentDto();
+                try {
+                    //鏌ヨ鍗曡〃鏁版嵁
+                    mdcEquipmentDto = mdcEquipmentService.getWorkLineLast(saveTableName);
+
+                } catch (Exception e) {
+                    log.error("鏌ヨ鍗曡〃鏁版嵁澶辫触!", e);
+                }
+                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");
+                    //璁惧畾
+                    BigDecimal spindlespeed = new BigDecimal(mdcEquipmentDto.getSpindlespeed());
+                    //瀹為檯
+                    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(BigDecimal.ZERO)) {
+                        if (spindlespeed.compareTo(actualspindlespeed) == 1) {
+                            // 璁惧畾鍊煎ぇ浜庡疄闄呭��   浣�
+                            messageDTO.setContent("璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶囪繍琛岃浆閫熶綆鎶ヨ锛�");
+                            sysBaseApi.sendSysAnnouncement(messageDTO);
+                            mdcOverrunAlarm.setAlarmContent("璁惧杩愯杞�熸瘮NC浠g爜璁惧畾鍊间綆鎶ヨ");
+                            mdcOverrunAlarmService.save(mdcOverrunAlarm);
+                        } else if (spindlespeed.compareTo(actualspindlespeed) == -1) {
+                            // 璁惧畾鍊煎皬浜庡疄闄呭��   楂�
+                            messageDTO.setContent("璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶囪繍琛岃浆閫熼珮鎶ヨ锛�");
+                            sysBaseApi.sendSysAnnouncement(messageDTO);
+                            mdcOverrunAlarm.setAlarmContent("璁惧杩愯杞�熸瘮NC浠g爜璁惧畾鍊奸珮鎶ヨ");
+                            mdcOverrunAlarmService.save(mdcOverrunAlarm);
+                        }
+                    } else {
+                        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.compareTo(actualspindlespeed) == -1) {
+                                // 璁惧畾鍊煎皬浜庡疄闄呭��   楂�
+                                messageDTO.setContent("璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶囪繍琛岃浆閫熼珮鎶ヨ锛�");
+                                sysBaseApi.sendSysAnnouncement(messageDTO);
+                                mdcOverrunAlarm.setAlarmContent("璁惧杩愯杞�熸瘮NC浠g爜璁惧畾鍊奸珮鎶ヨ");
+                                mdcOverrunAlarmService.save(mdcOverrunAlarm);
+                            }
+                        }
+                    }
+                }
+            }
+            quartzLog.setIsSuccess(0);
+        } catch (Exception e) {
+            quartzLog.setIsSuccess(-1);
+            quartzLog.setExceptionDetail(ThrowableUtil.getStackTrace(e));
+            // 鍙戦�佹秷鎭�氱煡
+            sysAnnouncementService.jobSendMessage("鐩戞帶璁惧杩愯杞�熶笌NC绋嬪簭璁惧畾杞�熷姣旓紒", quartzLog.getExceptionDetail());
+        }
+        long endTime = System.currentTimeMillis();
+        quartzLog.setExecutionTime(Integer.parseInt(String.valueOf(endTime - startTime)));
+        sysQuartzLogService.save(quartzLog);
+    }
+}

--
Gitblit v1.9.3