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