From 1563fa33e203959c80ee713ffff3cad2f825b098 Mon Sep 17 00:00:00 2001
From: cuilei <ray_tsu1@163.com>
Date: 星期三, 16 七月 2025 15:05:23 +0800
Subject: [PATCH] 设备维修新增报修时触发消息推送(客户现场要求)

---
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamReportRepairServiceImpl.java |   48 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 48 insertions(+), 0 deletions(-)

diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamReportRepairServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamReportRepairServiceImpl.java
index 2014997..826dec7 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamReportRepairServiceImpl.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamReportRepairServiceImpl.java
@@ -20,13 +20,20 @@
 import org.jeecg.modules.eam.request.EamReportRepairQuery;
 import org.jeecg.modules.eam.service.IEamEquipmentExtendService;
 import org.jeecg.modules.eam.service.IEamEquipmentFaultReasonService;
+import org.jeecg.modules.eam.service.IEamEquipmentService;
 import org.jeecg.modules.eam.service.IEamReportRepairService;
 import org.jeecg.modules.eam.vo.EquipmentRepairListVO;
 import org.jeecg.modules.eam.vo.EquipmentRepairStatistics;
 import org.jeecg.modules.eam.vo.EquipmentRepairStatusStatistics;
 import org.jeecg.modules.eam.vo.FaultTypeStatisticsVO;
+import org.jeecg.modules.qywx.message.vo.TemplateCard;
+import org.jeecg.modules.qywx.message.vo.TemplateCardEntity;
 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;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.transaction.annotation.Transactional;
@@ -34,6 +41,7 @@
 import javax.annotation.Resource;
 import java.time.LocalDate;
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * @Description: 鏁呴殰鎶ヤ慨
@@ -49,6 +57,15 @@
     private IMdcProductionService mdcProductionService;
     @Autowired
     private IEamEquipmentFaultReasonService eamEquipmentFaultReasonService;
+    @Autowired
+    private ISysUserService sysUserService;
+    @Autowired
+    private IEamEquipmentService eamEquipmentService;
+    @Autowired
+    private ThirdAppWechatEnterpriseServiceImpl wechatEnterpriseService;
+
+    @Value("${wechatEnterprise.cardActionUrl}")
+    private String cardActionUrl;
 
     /**
      * 鍒嗛〉鍒楄〃
@@ -198,9 +215,40 @@
         this.baseMapper.insert(eamReportRepair);
         //鏇存柊璁惧缁翠慨鐘舵��
         eamEquipmentExtendService.updateEquipmentRepairStatus(eamReportRepair.getEquipmentId(), EquipmentRepairStatus.WAIT_REPAIR.name());
+        //鎺ㄩ�佷紒涓氬井淇℃秷鎭�
+        sendQywxTemplateCardMessage(eamReportRepair);
         return eamReportRepair;
     }
 
+    private void sendQywxTemplateCardMessage(EamReportRepair eamReportRepair) {
+        TemplateCard templateCard = new TemplateCard();
+        String equipmentId = eamReportRepair.getEquipmentId();
+        EamEquipment equipment = eamEquipmentService.getById(equipmentId);
+        if (equipment != null) {
+            //鏌ヨ鏈夎璁惧鏉冮檺鐨勬墍鏈夌淮淇伐
+            String productionId = equipment.getOrgId();
+            List<UserSelector> userSelectorList = sysUserService.selectOperatorList(equipment.getEquipmentCode(), productionId, BusinessCodeConst.PCR0002);
+            String toUsers = userSelectorList.stream().map(UserSelector::getUsername).collect(Collectors.joining(","));
+            String touser = wechatEnterpriseService.getTouser(toUsers, false);
+            templateCard.setTouser(touser);
+
+            TemplateCardEntity templateCardEntity = new TemplateCardEntity();
+            templateCard.setTemplate_card(templateCardEntity);
+            templateCardEntity.setTask_id(eamReportRepair.getId());
+            TemplateCardEntity.MainTitle mainTitle = new TemplateCardEntity.MainTitle();
+            mainTitle.setTitle("璁惧缁翠慨");
+            templateCardEntity.setMain_title(mainTitle);
+            templateCardEntity.setSub_title_text("鎮ㄦ湁寰呴鍙栫淮淇伐鍗曪紝璇疯繘鍏ョ郴缁熼鍙�");
+            TemplateCardEntity.CardAction cardAction = new TemplateCardEntity.CardAction();
+            cardAction.setType(1);
+            cardAction.setUrl(cardActionUrl);
+            templateCardEntity.setCard_action(cardAction);
+            wechatEnterpriseService.sendTemplateCardMsg(templateCard, true);
+        } else {
+            log.error("鎶ヤ慨宸ュ崟: " + eamReportRepair.getId() + " 璁惧涓嶅瓨鍦紝鏃犳硶鎺ㄩ�佸伐鍗曞緟棰嗗彇鎻愰啋娑堟伅锛�");
+        }
+    }
+
     @Override
     @Transactional(rollbackFor = Exception.class)
     public boolean edit(EamReportRepair eamReportRepair) {

--
Gitblit v1.9.3