From 9b015b51b72ba050b4c38a6ba79eb45b7065e67d Mon Sep 17 00:00:00 2001 From: Lius <Lius2225@163.com> Date: 星期四, 25 七月 2024 10:11:52 +0800 Subject: [PATCH] 调整sql --- lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningEquipmentStatusJob.java | 134 ++++++++++++++++++++++++++++++++++---------- 1 files changed, 103 insertions(+), 31 deletions(-) diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningEquipmentStatusJob.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningEquipmentStatusJob.java index a46e9de..bb5732c 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningEquipmentStatusJob.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningEquipmentStatusJob.java @@ -1,14 +1,16 @@ package org.jeecg.modules.mdc.job; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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.modules.mdc.constant.MdcConstant; import org.jeecg.modules.mdc.entity.MdcEquipment; +import org.jeecg.modules.mdc.entity.MdcMessageApproval; import org.jeecg.modules.mdc.service.IMdcEquipmentRunningSectionService; import org.jeecg.modules.mdc.service.IMdcEquipmentService; +import org.jeecg.modules.mdc.service.IMdcMessageApprovalService; import org.jeecg.modules.mdc.service.MdcEfficiencyReportService; import org.jeecg.modules.mdc.util.DateUtils; import org.jeecg.modules.mdc.util.ThrowableUtil; @@ -16,8 +18,11 @@ 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.entity.SysAnnouncement; +import org.jeecg.modules.system.entity.SysUser; import org.jeecg.modules.system.service.ISysAnnouncementService; import org.jeecg.modules.system.service.ISysDictService; +import org.jeecg.modules.system.service.ISysUserService; import org.quartz.*; import javax.annotation.Resource; @@ -26,6 +31,7 @@ import java.time.LocalDate; import java.util.Date; import java.util.List; +import java.util.stream.Collectors; /** * @author Lius @@ -61,6 +67,12 @@ @Resource private IMdcEquipmentRunningSectionService mdcEquipmentRunningSectionService; + @Resource + private IMdcMessageApprovalService mdcMessageApprovalService; + + @Resource + private ISysUserService sysUserService; + @Override public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { SysQuartzLog quartzLog = new SysQuartzLog(); @@ -72,8 +84,8 @@ log.info("璁惧鐘舵�侀暱鏈熸棤鍙樺寲鎶ヨ浠诲姟 RunningEquipmentStatusJob start! 鏃堕棿:" + DateUtils.getNow()); long startTime = System.currentTimeMillis(); try { - //List<MdcEquipment> equipmentList = mdcEquipmentService.list(new LambdaQueryWrapper<>()); - List<MdcEquipment> equipmentList = mdcEquipmentService.list(new LambdaQueryWrapper<MdcEquipment>().eq(MdcEquipment::getEquipmentId, "2140198")); + List<MdcEquipment> equipmentList = mdcEquipmentService.list(); +// List<MdcEquipment> equipmentList = mdcEquipmentService.list(new LambdaQueryWrapper<MdcEquipment>().eq(MdcEquipment::getEquipmentId, "3140045")); // 鑾峰彇鍒╃敤鐜囧垽瀹氬ぉ鏁� List<DictModel> dictModelList1 = sysDictService.queryEnableDictItemsByCode(CommonConstant.DICT_EQUIPMENT_RATE_JUDGE); Integer equipmentRateJudge = 5; @@ -81,40 +93,66 @@ equipmentRateJudge = Integer.valueOf(dictModelList1.get(0).getValue()); } // 鑾峰彇鍒╃敤鐜囨甯稿�� - List<DictModel> dictModelList2 = sysDictService.queryEnableDictItemsByCode(CommonConstant.DICT_EQUIPMENT_SPEED_JUDGE); + List<DictModel> dictModelList2 = sysDictService.queryEnableDictItemsByCode(CommonConstant.DICT_EQUIPMENT_RATE_NORMAL); Integer equipmentRateNormal = 20; if (dictModelList2 != null && !dictModelList2.isEmpty()) { equipmentRateNormal = Integer.valueOf(dictModelList2.get(0).getValue()); } // 鑾峰彇璁惧鐘舵�佸ぉ鏁� - List<DictModel> dictModelList3 = sysDictService.queryEnableDictItemsByCode(CommonConstant.DICT_EQUIPMENT_RATE_NORMAL); + List<DictModel> dictModelList3 = sysDictService.queryEnableDictItemsByCode(CommonConstant.DICT_EQUIPMENT_SPEED_JUDGE); Integer equipmentStatusJudge = 5; if (dictModelList3 != null && !dictModelList3.isEmpty()) { equipmentStatusJudge = Integer.valueOf(dictModelList3.get(0).getValue()); } for (MdcEquipment mdcEquipment : equipmentList) { // 鍒ゆ柇鍒╃敤鐜� - String date = DateUtils.format(DateUtils.toDate(LocalDate.now().plusDays(-equipmentRateJudge).toString(), DateUtils.STR_DATE), DateUtils.STRDATE); - List<BigDecimal> efficiencyRateList = mdcEfficiencyReportService.getEfficiencyRate(mdcEquipment.getEquipmentId(), date); - if (efficiencyRateList != null && !efficiencyRateList.isEmpty()) { - boolean flag = true; - for (BigDecimal processLong : efficiencyRateList) { - BigDecimal efficiencyRate = processLong.divide(new BigDecimal("86400"), 4, RoundingMode.HALF_UP); - if (efficiencyRate.compareTo(new BigDecimal(equipmentRateNormal)) > -1) { - flag = false; - } - } - if (flag) { - // 涓婃姤 - MessageDTO messageDTO = new MessageDTO(); - messageDTO.setCategory("棰勮娑堟伅"); - messageDTO.setFromUser("admin"); - messageDTO.setToUser("admin"); - messageDTO.setContent("璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶囧埄鐢ㄧ巼浣庝簬姝e父鍊兼姤璀︼紒"); - sysBaseApi.sendSysAnnouncement(messageDTO); + // step.1 鏌ヨ娑堟伅涓璁惧鎶ヨ鏃堕棿 + SysAnnouncement sysAnnouncement = sysAnnouncementService.findLastMessage("璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶囧埄鐢ㄧ巼浣庝簬姝e父鍊兼姤璀︼紒"); + boolean flag1 = true; + if (sysAnnouncement != null) { + Date createTime = sysAnnouncement.getCreateTime(); + Date msgDate = DateUtils.toDate(DateUtils.format(createTime, DateUtils.STR_DATE), DateUtils.STR_DATE); + Date now = DateUtils.toDate(LocalDate.now().toString(), DateUtils.STR_DATE); + Integer days = DateUtils.getDays(msgDate, now); + if (days < equipmentRateJudge) { + flag1 = false; } } - // 鍒ゆ柇璁惧鐘舵�� + if (flag1) { + String date = DateUtils.format(DateUtils.toDate(LocalDate.now().plusDays(-equipmentRateJudge).toString(), DateUtils.STR_DATE), DateUtils.STRDATE); + List<BigDecimal> efficiencyRateList = mdcEfficiencyReportService.getEfficiencyRate(mdcEquipment.getEquipmentId(), date); + if (efficiencyRateList != null && !efficiencyRateList.isEmpty()) { + boolean flag = true; + for (BigDecimal processLong : efficiencyRateList) { + BigDecimal efficiencyRate = processLong.divide(new BigDecimal("86400"), 4, RoundingMode.HALF_UP); + if (efficiencyRate.compareTo(new BigDecimal(equipmentRateNormal)) > -1) { + flag = false; + } + } + if (flag) { + // 涓婃姤 + MessageDTO messageDTO = new MessageDTO(); + messageDTO.setTitle("璁惧鍒╃敤鐜囨姤璀︼紒"); + messageDTO.setCategory(CommonConstant.MSG_CATEGORY_2); + messageDTO.setFromUser("admin"); + messageDTO.setToUser("admin"); + messageDTO.setContent("璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶囧埄鐢ㄧ巼浣庝簬姝e父鍊兼姤璀︼紒"); + sysBaseApi.sendSysAnnouncement(messageDTO); + } + } + } + + // 鍒ゆ柇璁惧鐘舵�侀暱鏃堕棿鏃犲彉鍖栧鎵逛汉 + SysAnnouncement sysAnnouncement1 = sysAnnouncementService.findLastMessage("璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶囩姸鎬侀暱鏈熸棤鍙樺寲鎶ヨ锛�"); + if (sysAnnouncement1 != null) { + Date createTime = sysAnnouncement1.getCreateTime(); + Date msgDate = DateUtils.toDate(DateUtils.format(createTime, DateUtils.STR_DATE), DateUtils.STR_DATE); + Date now = DateUtils.toDate(LocalDate.now().toString(), DateUtils.STR_DATE); + Integer days = DateUtils.getDays(msgDate, now); + if (days < equipmentStatusJudge) { + continue; + } + } Date date1 = DateUtils.toDate(LocalDate.now().plusDays(-equipmentStatusJudge).toString(), DateUtils.STR_DATE); List<Integer> sectionList = mdcEquipmentRunningSectionService.getDataList(mdcEquipment.getEquipmentId(), date1); if (sectionList != null && !sectionList.isEmpty() && sectionList.size() > 1) { @@ -127,12 +165,46 @@ } if (flag) { // 涓婃姤 - MessageDTO messageDTO = new MessageDTO(); - messageDTO.setCategory("棰勮娑堟伅"); - messageDTO.setFromUser("admin"); - messageDTO.setToUser("admin"); - messageDTO.setContent("璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶囩姸鎬侀暱鏈熸棤鍙樺寲鎶ヨ锛�"); - sysBaseApi.sendSysAnnouncement(messageDTO); + // 鏌ヨ璁惧绠$悊鍛� + List<SysUser> adminList = sysUserService.getEquipmentAdmin(MdcConstant.MDC_EQUIPMENT_MANAGER, mdcEquipment.getEquipmentId()); + // 鏌ヨ璁惧瓒呯骇绠$悊鍛� + List<SysUser> superList = sysUserService.getEquipmentAdmin(MdcConstant.MDC_EQUIPMENT_SUPER_MANAGER, mdcEquipment.getEquipmentId()); + if (adminList != null && !adminList.isEmpty()) { + for (SysUser sysUser : adminList) { + MessageDTO messageDTO = new MessageDTO(); + messageDTO.setTitle("璁惧鐘舵�侀暱鏈熸棤鍙樺寲鎶ヨ锛�"); + messageDTO.setCategory(CommonConstant.MSG_CATEGORY_2); + messageDTO.setFromUser("admin"); + messageDTO.setToUser(sysUser.getUsername()); + messageDTO.setContent("璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶囩姸鎬侀暱鏈熸棤鍙樺寲鎶ヨ锛�"); + sysBaseApi.sendSysAnnouncement(messageDTO); + } + } else { + MessageDTO messageDTO = new MessageDTO(); + messageDTO.setTitle("璁惧鐘舵�侀暱鏈熸棤鍙樺寲鎶ヨ锛�"); + messageDTO.setCategory(CommonConstant.MSG_CATEGORY_2); + messageDTO.setFromUser("admin"); + messageDTO.setToUser("admin"); + messageDTO.setContent("璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶囩姸鎬侀暱鏈熸棤鍙樺寲鎶ヨ锛�"); + sysBaseApi.sendSysAnnouncement(messageDTO); + } + + if (adminList != null && !adminList.isEmpty() && superList != null && !superList.isEmpty()) { + MdcMessageApproval mdcMessageApproval = new MdcMessageApproval(); + mdcMessageApproval.setEquipmentId(mdcEquipment.getEquipmentId()); + mdcMessageApproval.setTitile("璁惧鐘舵�侀暱鏈熸棤鍙樺寲鎶ヨ锛�"); + mdcMessageApproval.setMsgContent("璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶囩姸鎬侀暱鏈熸棤鍙樺寲鎶ヨ锛�"); + List<String> senderIdList = adminList.stream().map(SysUser::getId).collect(Collectors.toList()); + mdcMessageApproval.setSenderIds(String.join(",", senderIdList)); + List<String> senderNameList = adminList.stream().map(SysUser::getRealname).collect(Collectors.toList()); + mdcMessageApproval.setSenderNames(String.join(",", senderNameList)); + List<String> superIdList = superList.stream().map(SysUser::getId).collect(Collectors.toList()); + mdcMessageApproval.setApproverIds(String.join(",", superIdList)); + List<String> superNameList = superList.stream().map(SysUser::getRealname).collect(Collectors.toList()); + mdcMessageApproval.setApproverNames(String.join(",", superNameList)); + mdcMessageApproval.setMsgStatus(MdcConstant.MSG_STATUS_0); + mdcMessageApprovalService.save(mdcMessageApproval); + } } } } @@ -141,7 +213,7 @@ quartzLog.setIsSuccess(-1); quartzLog.setExceptionDetail(ThrowableUtil.getStackTrace(e)); // 鍙戦�佹秷鎭�氱煡 - sysAnnouncementService.jobSendMessage("璁惧鐘舵�侀暱鏈熸棤鍙樺寲鎶ヨ浠诲姟澶辫触锛�", quartzLog.getExceptionDetail()); + sysAnnouncementService.jobSendMessage("璁惧鐘舵�侀暱鏈熸棤鍙樺寲鎶ヨ浠诲姟", quartzLog.getExceptionDetail()); } long endTime = System.currentTimeMillis(); quartzLog.setExecutionTime(Integer.parseInt(String.valueOf(endTime - startTime))); -- Gitblit v1.9.3