From b70b3170abd2b9742d2d40c97f2faecd4087984b Mon Sep 17 00:00:00 2001
From: cuilei <ray_tsu1@163.com>
Date: 星期二, 26 八月 2025 10:19:26 +0800
Subject: [PATCH] 设备点检消息推送小问题处理

---
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamWeekMaintenanceOrderMapper.xml |    2 +-
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/InspectionOrderWxMessageSendJob.java     |   36 +++++++++++++++++++++++++++++-------
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamInspectionOrderMapper.xml      |    2 +-
 3 files changed, 31 insertions(+), 9 deletions(-)

diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/InspectionOrderWxMessageSendJob.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/InspectionOrderWxMessageSendJob.java
index 419bdb4..6f3c39b 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/InspectionOrderWxMessageSendJob.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/InspectionOrderWxMessageSendJob.java
@@ -17,8 +17,10 @@
 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.MdcProductionEquipment;
 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;
@@ -29,10 +31,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;
 
 /**
@@ -52,6 +51,8 @@
     private ISysQuartzLogService sysQuartzLogService;
     @Autowired
     private IQuartzJobService quartzJobService;
+    @Autowired
+    private IMdcProductionService mdcProductionService;
 
     @Value("${wechatEnterprise.cardActionUrl}")
     private String cardActionUrl;
@@ -74,13 +75,14 @@
                 //鏈夊緟鐐规宸ュ崟锛屾帹閫佷紒涓氬井淇℃秷鎭�
                 Map<String, List<EamInspectionOrder>> unReceivedOrderMap = unReceivedOrderList.stream()
                         .collect(Collectors.groupingBy(EamInspectionOrder::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);
@@ -125,4 +127,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;
+    }
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamInspectionOrderMapper.xml b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamInspectionOrderMapper.xml
index ba9d2e6..b9541de 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamInspectionOrderMapper.xml
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamInspectionOrderMapper.xml
@@ -32,7 +32,7 @@
     <select id="selectUnReceivedInspectionOrder" resultType="org.jeecg.modules.eam.entity.EamInspectionOrder">
         select eio.*,ee.org_id
         from eam_inspection_order eio
-        left join eam_equipment ee on eio.equipment_id = ee.id
+        inner join eam_equipment ee on eio.equipment_id = ee.id
         where eio.inspection_status = 'WAIT_INSPECTION' and eio.del_flag = 0
     </select>
 </mapper>
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamWeekMaintenanceOrderMapper.xml b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamWeekMaintenanceOrderMapper.xml
index 4a34bb6..374c93f 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamWeekMaintenanceOrderMapper.xml
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamWeekMaintenanceOrderMapper.xml
@@ -33,7 +33,7 @@
             resultType="org.jeecg.modules.eam.entity.EamWeekMaintenanceOrder">
         select ewm.*,ee.org_id
         from eam_week_maintenance_order ewm
-        left join eam_equipment ee on ewm.equipment_id = ee.id
+        inner join eam_equipment ee on ewm.equipment_id = ee.id
         where ewm.maintenance_status = 'WAIT_MAINTENANCE' and ewm.del_flag = 0
     </select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.3