From cbc60421dfce8f052281714d0fa70b01d139f53c Mon Sep 17 00:00:00 2001 From: cuilei <ray_tsu1@163.com> Date: 星期五, 22 八月 2025 17:39:15 +0800 Subject: [PATCH] 周保消息推送定时任务调整(消息只推送到二级车间层级;之前为设备所属车间,可能会存在三级车间,导致收到多条重复的消息提醒) --- lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/WeekMaintenanceOrderWxMessageSendJob.java | 39 +++++++++++++++++++++++++++++---------- 1 files changed, 29 insertions(+), 10 deletions(-) diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/WeekMaintenanceOrderWxMessageSendJob.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/WeekMaintenanceOrderWxMessageSendJob.java index 0eac778..d61ea12 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/WeekMaintenanceOrderWxMessageSendJob.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/WeekMaintenanceOrderWxMessageSendJob.java @@ -16,7 +16,9 @@ import org.jeecg.modules.quartz.service.ISysQuartzLogService; import org.jeecg.modules.qywx.message.vo.TemplateCard; import org.jeecg.modules.qywx.message.vo.TemplateCardEntity; +import org.jeecg.modules.system.entity.MdcProduction; import org.jeecg.modules.system.entity.SysUser; +import org.jeecg.modules.system.service.IMdcProductionService; import org.jeecg.modules.system.service.ISysUserService; import org.jeecg.modules.system.service.impl.ThirdAppWechatEnterpriseServiceImpl; import org.jeecg.modules.system.vo.UserSelector; @@ -27,10 +29,7 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.UUID; +import java.util.*; import java.util.stream.Collectors; /** @@ -50,6 +49,8 @@ private ISysQuartzLogService sysQuartzLogService; @Autowired private IQuartzJobService quartzJobService; + @Autowired + private IMdcProductionService mdcProductionService; @Value("${wechatEnterprise.cardActionUrl}") private String cardActionUrl; @@ -67,21 +68,19 @@ long startTime = System.currentTimeMillis(); try { //鏌ヨ鎵�鏈夊緟淇濆吇鐨勫懆淇濆伐鍗� - List<EamWeekMaintenanceOrder> waitOrderList = eamWeekMaintenanceOrderService.list(new LambdaQueryWrapper<EamWeekMaintenanceOrder>() - .eq(EamWeekMaintenanceOrder::getMaintenanceStatus, WeekMaintenanceStatusEnum.WAIT_MAINTENANCE.name()) - .eq(EamWeekMaintenanceOrder::getDelFlag, CommonConstant.DEL_FLAG_0)); List<EamWeekMaintenanceOrder> unReceivedOrderList = eamWeekMaintenanceOrderService.selectUnReceivedMaintenanceOrder(); if (!unReceivedOrderList.isEmpty()) { //鏈夊緟淇濆吇鐨勫伐鍗曪紝鎺ㄩ�佷紒涓氬井淇℃秷鎭� Map<String, List<EamWeekMaintenanceOrder>> unReceivedOrderMap = unReceivedOrderList.stream() .collect(Collectors.groupingBy(EamWeekMaintenanceOrder::getOrgId)); + Set<String> productionIds = selectTwoLevelProductionIds(unReceivedOrderMap.keySet()); StringBuilder message = new StringBuilder(); - for (String orgId : unReceivedOrderMap.keySet()) { + for (String orgId : productionIds) { //鏌ヨ璇ヤ骇绾夸笅鐨勬墍鏈夋搷浣滃伐 List<UserSelector> userSelectorList = sysUserService.selectOperatorList(null, orgId, BusinessCodeConst.PCR0001); if (userSelectorList.isEmpty()) { - log.error("绯荤粺鏈缃搷浣滃伐鐢ㄦ埛锛屾棤娉曟帹閫佸伐鍗曢鍙栨彁閱掓秷鎭�"); - message.append("绯荤粺鏈缃搷浣滃伐鐢ㄦ埛锛屾棤娉曟帹閫佸伐鍗曢鍙栨彁閱掓秷鎭�").append("\n"); + log.error("id涓�:{},鐨勪骇绾挎湭閰嶇疆鎿嶄綔宸ョ敤鎴凤紝鏃犳硶鎺ㄩ�佸懆淇濆伐鍗曢鍙栨彁閱掓秷鎭�", orgId); + message.append("id涓�: ").append(orgId).append(" 鐨勪骇绾挎湭閰嶇疆鎿嶄綔宸ョ敤鎴凤紝鏃犳硶鎺ㄩ�佸懆淇濆伐鍗曢鍙栨彁閱掓秷鎭�").append("\n"); } else { String toUsers = userSelectorList.stream().map(UserSelector::getUsername).collect(Collectors.joining(",")); String touser = wechatEnterpriseService.getTouser(toUsers, false); @@ -126,4 +125,24 @@ quartzLog.setExecutionTime(Integer.parseInt(String.valueOf(endTime - startTime))); sysQuartzLogService.save(quartzLog); } + + //濡傛灉褰撳墠浜х嚎鏄笁绾э紝鏌ヨ瀵瑰簲浜岀骇浜х嚎锛屽鏋滀笉鏄笉鍋氬鐞� + private Set<String> selectTwoLevelProductionIds(Set<String> productionIds) { + Set<String> result = new HashSet<>(); + List<MdcProduction> mdcProductionList = mdcProductionService.list(new LambdaQueryWrapper<MdcProduction>().in(MdcProduction::getId, productionIds)); + for (MdcProduction production : mdcProductionList) { + //濡傛灉鏄笁绾т骇绾匡紝鏌ユ壘瀵瑰簲鐨勪簩绾т骇绾匡紝娣诲姞杩涚粨鏋滈泦 + if ("3".equals(production.getOrgType())) { + mdcProductionService.list(new LambdaQueryWrapper<MdcProduction>() + .eq(MdcProduction::getId, production.getParentId()) + .eq(MdcProduction::getOrgType, "2")) + .stream().findFirst().ifPresent(mdcProduction -> result.add(mdcProduction.getId())); + } + //濡傛灉鏄簩绾т骇绾匡紝娣诲姞杩涚粨鏋滈泦 + if ("2".equals(production.getOrgType())) { + result.add(production.getId()); + } + } + return result; + } } -- Gitblit v1.9.3