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/job/InspectionOrderWxMessageSendJob.java | 109 ++++++++++++++++++++++++++++++++++-------------------- 1 files changed, 68 insertions(+), 41 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 66b4f5e..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 @@ -9,6 +9,7 @@ import org.jeecg.modules.eam.constant.InspectionStatus; import org.jeecg.modules.eam.entity.EamInspectionOrder; import org.jeecg.modules.eam.service.IEamInspectionOrderService; +import org.jeecg.modules.mdc.service.IMdcProductionEquipmentService; import org.jeecg.modules.mdc.util.ThrowableUtil; import org.jeecg.modules.quartz.entity.QuartzJob; import org.jeecg.modules.quartz.entity.SysQuartzLog; @@ -16,9 +17,13 @@ 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; import org.quartz.Job; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; @@ -26,8 +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.*; import java.util.stream.Collectors; /** @@ -47,6 +51,8 @@ private ISysQuartzLogService sysQuartzLogService; @Autowired private IQuartzJobService quartzJobService; + @Autowired + private IMdcProductionService mdcProductionService; @Value("${wechatEnterprise.cardActionUrl}") private String cardActionUrl; @@ -63,49 +69,50 @@ } long startTime = System.currentTimeMillis(); try { - //鏌ヨ鎵�鏈夊緟鐐规鐨勫伐鍗� - List<EamInspectionOrder> waitOrderList = eamInspectionOrderService.list(new LambdaQueryWrapper<EamInspectionOrder>() - .eq(EamInspectionOrder::getInspectionStatus, InspectionStatus.WAIT_INSPECTION.name()) - .eq(EamInspectionOrder::getDelFlag, CommonConstant.DEL_FLAG_0)); - if (!waitOrderList.isEmpty()) { + //鏌ヨ鎵�鏈夋湭棰嗗彇寰呯偣妫�鐨勫伐鍗� + List<EamInspectionOrder> unReceivedOrderList = eamInspectionOrderService.selectUnReceivedInspectionOrder(); + if (!unReceivedOrderList.isEmpty()) { //鏈夊緟鐐规宸ュ崟锛屾帹閫佷紒涓氬井淇℃秷鎭� - //鏌ヨ鎵�鏈夋搷浣滃伐 - List<SysUser> userList = sysUserService.list(new LambdaQueryWrapper<SysUser>() - .eq(SysUser::getPost, BusinessCodeConst.PCR0001) - .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()); + 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 : productionIds) { + //鏌ヨ璇ヤ骇绾夸笅鐨勬墍鏈夋搷浣滃伐 + List<UserSelector> userSelectorList = sysUserService.selectOperatorList(null, orgId, BusinessCodeConst.PCR0001); + if (userSelectorList.isEmpty()) { + log.error("id涓�:{},鐨勪骇绾挎湭閰嶇疆鎿嶄綔宸ョ敤鎴凤紝鏃犳硶鎺ㄩ�佺偣妫�宸ュ崟棰嗗彇鎻愰啋娑堟伅", orgId); + message.append("id涓�: ").append(orgId).append(" 鐨勪骇绾挎湭閰嶇疆鎿嶄綔宸ョ敤鎴凤紝鏃犳硶鎺ㄩ�佺偣妫�宸ュ崟棰嗗彇鎻愰啋娑堟伅").append("\n"); } else { - log.error("鎺ㄩ�佸緟棰嗗彇鐐规宸ュ崟浼佷笟寰俊娑堟伅澶辫触锛寋}", jsonObject.toJSONString()); - quartzLog.setIsSuccess(-1); - quartzLog.setExceptionDetail(jsonObject.toJSONString()); + String toUsers = userSelectorList.stream().map(UserSelector::getUsername).collect(Collectors.joining(",")); + String touser = wechatEnterpriseService.getTouser(toUsers, false); + //鏋勯�犳秷鎭綋鍐呭 + TemplateCard templateCard = new TemplateCard(); + templateCard.setTouser(touser); + TemplateCardEntity templateCardEntity = new TemplateCardEntity(); + templateCard.setTemplate_card(templateCardEntity); + templateCardEntity.setTask_id(UUID.randomUUID().toString().replaceAll("-", "")); + 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()); + message.append("鎺ㄩ�佸緟棰嗗彇鐐规宸ュ崟浼佷笟寰俊娑堟伅鎴愬姛锛�").append(jsonObject.toJSONString()).append("\n"); + } else { + log.error("鎺ㄩ�佸緟棰嗗彇鐐规宸ュ崟浼佷笟寰俊娑堟伅澶辫触锛寋}", jsonObject.toJSONString()); + message.append("鎺ㄩ�佸緟棰嗗彇鐐规宸ュ崟浼佷笟寰俊娑堟伅澶辫触锛�").append(jsonObject.toJSONString()).append("\n"); + } } } + quartzLog.setIsSuccess(0); + quartzLog.setExceptionDetail(message.toString()); } else { log.info("鏃犲緟棰嗗彇鐐规宸ュ崟锛屾棤闇�鎺ㄩ�佸伐鍗曢鍙栨彁閱掓秷鎭�"); quartzLog.setIsSuccess(0); @@ -120,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; + } } -- Gitblit v1.9.3