From bab67d03c5d77190001f2f06b2104b12dbfcbcdf Mon Sep 17 00:00:00 2001
From: cuilei <ray_tsu1@163.com>
Date: 星期五, 11 七月 2025 14:51:28 +0800
Subject: [PATCH] H5首页待执行工单数量统计接口优化

---
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/RepairOrderWxMessageSendJob.java |  123 +++++++++++++++++++++++++++++++++++++++++
 1 files changed, 123 insertions(+), 0 deletions(-)

diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/RepairOrderWxMessageSendJob.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/RepairOrderWxMessageSendJob.java
new file mode 100644
index 0000000..314c90f
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/RepairOrderWxMessageSendJob.java
@@ -0,0 +1,123 @@
+package org.jeecg.modules.eam.job;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import lombok.extern.slf4j.Slf4j;
+import org.jeecg.common.constant.CommonConstant;
+import org.jeecg.common.util.DateUtils;
+import org.jeecg.modules.eam.constant.BusinessCodeConst;
+import org.jeecg.modules.eam.constant.ReportRepairEnum;
+import org.jeecg.modules.eam.entity.EamReportRepair;
+import org.jeecg.modules.eam.service.IEamReportRepairService;
+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.qywx.message.vo.TemplateCard;
+import org.jeecg.modules.qywx.message.vo.TemplateCardEntity;
+import org.jeecg.modules.system.entity.SysUser;
+import org.jeecg.modules.system.service.ISysUserService;
+import org.jeecg.modules.system.service.impl.ThirdAppWechatEnterpriseServiceImpl;
+import org.quartz.Job;
+import org.quartz.JobExecutionContext;
+import org.quartz.JobExecutionException;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 寰呴鍙栫淮淇伐鍗曚紒涓氬井淇℃秷鎭帹閫佸畾鏃朵换鍔�
+ */
+@Slf4j
+@Component
+public class RepairOrderWxMessageSendJob implements Job {
+
+    @Autowired
+    private IEamReportRepairService eamReportRepairService;
+    @Autowired
+    private ISysUserService sysUserService;
+    @Autowired
+    private ThirdAppWechatEnterpriseServiceImpl wechatEnterpriseService;
+    @Autowired
+    private ISysQuartzLogService sysQuartzLogService;
+    @Autowired
+    private IQuartzJobService quartzJobService;
+
+    @Value("${wechatEnterprise.cardActionUrl}")
+    private String cardActionUrl;
+
+    @Override
+    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
+        log.info("寰呯淮淇伐鍗曚紒涓氬井淇℃秷鎭帹閫佷换鍔″紑濮嬫墽琛岋紝鏃堕棿锛歿}", DateUtils.now());
+        //浠诲姟鏃ュ織
+        SysQuartzLog quartzLog = new SysQuartzLog();
+        quartzLog.setCreateTime(new Date());
+        List<QuartzJob> byJobClassName = quartzJobService.findByJobClassName(this.getClass().getName());
+        if (byJobClassName != null && !byJobClassName.isEmpty()) {
+            quartzLog.setJobId(byJobClassName.get(0).getId());
+        }
+        long startTime = System.currentTimeMillis();
+        try {
+            //鏌ヨ鎵�鏈夊緟缁翠慨鐨勬姤淇伐鍗�
+            List<EamReportRepair> waitOrderList = eamReportRepairService.list(new LambdaQueryWrapper<EamReportRepair>()
+                    .eq(EamReportRepair::getReportStatus, ReportRepairEnum.WAIT_REPAIR.name())
+                    .eq(EamReportRepair::getDelFlag, CommonConstant.DEL_FLAG_0));
+            if (!waitOrderList.isEmpty()) {
+                //鏈夊緟缁翠慨宸ュ崟锛屾帹閫佷紒涓氬井淇℃秷鎭�
+                //鏌ヨ鎵�鏈夌淮淇伐
+                List<SysUser> userList = sysUserService.list(new LambdaQueryWrapper<SysUser>()
+                        .eq(SysUser::getPost, BusinessCodeConst.PCR0002)
+                        .eq(SysUser::getDelFlag, CommonConstant.DEL_FLAG_0)
+                        .eq(SysUser::getStatus, CommonConstant.USER_UNFREEZE));
+                if (userList.isEmpty()) {
+                    log.error("绯荤粺鏈缃淮淇伐鐢ㄦ埛锛屾棤娉曟帹閫佸伐鍗曢鍙栨彁閱掓秷鎭�");
+                    quartzLog.setIsSuccess(0);
+                    quartzLog.setParams("绯荤粺鏈缃淮淇伐鐢ㄦ埛锛屾棤娉曟帹閫佸伐鍗曢鍙栨彁閱掓秷鎭�");
+                } else {
+                    TemplateCard templateCard = new TemplateCard();
+                    String toUsers = userList.stream().map(SysUser::getUsername).collect(Collectors.joining(","));
+                    String touser = wechatEnterpriseService.getTouser(toUsers, false);
+                    templateCard.setTouser(touser);
+                    TemplateCardEntity templateCardEntity = new TemplateCardEntity();
+                    templateCard.setTemplate_card(templateCardEntity);
+                    templateCardEntity.setTask_id(waitOrderList.get(0).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);
+                    JSONObject jsonObject = wechatEnterpriseService.sendTemplateCardMsg(templateCard, true);
+                    Integer errcode = (Integer) jsonObject.get("errcode");
+                    if (errcode == 0) {
+                        log.info("鎺ㄩ�佸緟棰嗗彇缁翠慨宸ュ崟浼佷笟寰俊娑堟伅鎴愬姛锛寋}", jsonObject.toJSONString());
+                        quartzLog.setIsSuccess(0);
+                        quartzLog.setParams(jsonObject.toJSONString());
+                    } else {
+                        log.error("鎺ㄩ�佸緟棰嗗彇缁翠慨宸ュ崟浼佷笟寰俊娑堟伅澶辫触锛寋}", jsonObject.toJSONString());
+                        quartzLog.setIsSuccess(-1);
+                        quartzLog.setExceptionDetail(jsonObject.toJSONString());
+                    }
+                }
+            } else {
+                log.info("鏃犲緟棰嗗彇缁翠慨宸ュ崟锛屾棤闇�鎺ㄩ�佸伐鍗曢鍙栨彁閱掓秷鎭�");
+                quartzLog.setIsSuccess(0);
+                quartzLog.setParams("鏃犲緟棰嗗彇缁翠慨宸ュ崟锛屾棤闇�鎺ㄩ�佸伐鍗曢鍙栨彁閱掓秷鎭�");
+            }
+        } catch (Exception e) {
+            log.error("寰呯淮淇伐鍗曚紒涓氬井淇℃秷鎭帹閫佷换鍔℃墽琛屽け璐ワ紝{}", e.getMessage(), e);
+            quartzLog.setIsSuccess(-1);
+            quartzLog.setExceptionDetail(ThrowableUtil.getStackTrace(e));
+        }
+        long endTime = System.currentTimeMillis();
+        quartzLog.setExecutionTime(Integer.parseInt(String.valueOf(endTime - startTime)));
+        sysQuartzLogService.save(quartzLog);
+    }
+}

--
Gitblit v1.9.3