From e2a45b5d55c585a6ce38d94b34374600e9310192 Mon Sep 17 00:00:00 2001 From: wangzhijiang Date: Tue, 21 Mar 2023 11:51:30 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=A4=E8=AF=81=E6=B8=85=E5=8D=95-=E8=AE=A4?= =?UTF-8?q?=E8=AF=81=E5=B7=A5=E7=A8=8B=E5=B8=88=E5=8F=91=E8=B5=B7=E6=B5=81?= =?UTF-8?q?=E7=A8=8B=EF=BC=8C=E8=B4=A3=E4=BB=BB=E4=BA=BA=E6=94=B6=E5=88=B0?= =?UTF-8?q?=E6=B6=88=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../feishu/enums/TemplateInfoEnum2.java | 1 + ...ctCertificationInventoryEOServiceImpl.java | 70 +++++++++++++++++++ 2 files changed, 71 insertions(+) diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/feishu/enums/TemplateInfoEnum2.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/feishu/enums/TemplateInfoEnum2.java index e9c503949..2d41f0066 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/feishu/enums/TemplateInfoEnum2.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/feishu/enums/TemplateInfoEnum2.java @@ -15,6 +15,7 @@ public enum TemplateInfoEnum2 { CERTIFICATION_MESSAGE7("认证清单-任务提醒,截止日期当天","ctp_AAuDmfXCHc1I"), CERTIFICATION_MESSAGE8("认证清单-任务提醒,已逾期","ctp_AAuDMwOPU71H"), //CERTIFICATION_MESSAGE9("认证清单-责任人分发(转办),第二责任人收到消息","ctp_AAuDM8YP6soc"), + CERTIFICATION_MESSAGE10("认证工程师发起流程,责任人收到消息","ctp_AAuePL6rUK1L"), ; String name; diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectCertificationInventoryEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectCertificationInventoryEOServiceImpl.java index f19422585..25bc52893 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectCertificationInventoryEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectCertificationInventoryEOServiceImpl.java @@ -1565,6 +1565,15 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl hrefFeishuMap = this.getCertificationInventoryLinkHrefFeishu(projectLibraryBase.getId(), PRN_CN, PRN_EN); + String hrefFeishu_CN = (String) hrefFeishuMap.get("hrefFeishu_CN"); + String hrefFeishu_EN = (String) hrefFeishuMap.get("hrefFeishu_EN"); + + Map> certifycationInventoryListByDutyPersonMap = projectCertificationInventoryEOList.stream().collect(Collectors.groupingBy(ProjectCertificationInventoryEO::getDutyPerson)); try { List projectCertificationInventoryLogEOList = new ArrayList<>(); // 给责任人分配待办中心的任务 @@ -1600,6 +1609,51 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl dutyPersonIdList = projectCertificationInventoryEOList.stream().map(ProjectCertificationInventoryEO::getDutyPerson).distinct().collect(Collectors.toList()); + List dutyPersonList = this.sysUserService.querySysUserListByIdList(dutyPersonIdList); + + for (Map.Entry> dataByDutyPersonMap : certifycationInventoryListByDutyPersonMap.entrySet()) { + String dutyPersonUserId = dataByDutyPersonMap.getKey(); + List dutyPersonDataList = dataByDutyPersonMap.getValue(); + if(CollectionUtils.isEmpty(dutyPersonDataList)){ + continue; + } + + Map standNameAndItemName = this.projectCertificationInventoryEOService.getStandNameAndItemName(dutyPersonDataList); + String standName = (String) standNameAndItemName.get("standName"); + String itemName = (String) standNameAndItemName.get("itemName"); + try { + String thirdId = this.sysUserService.getUserThirdIdByUserId(dutyPersonList,dutyPersonUserId); + + if(StringUtils.isNotEmpty(thirdId)){ + // 根据结束时间进行排序,获取最近的时间,发消息时使用。 + this.certificationInventoryEOListSortByEndTimeAsc(projectCertificationInventoryEOList); + Date endTime = projectCertificationInventoryEOList.get(0).getEndTime(); + + JSONObject larkMesJson = new JSONObject(); + larkMesJson.put("template_id", TemplateInfoEnum2.CERTIFICATION_MESSAGE10.getValue()); + larkMesJson.put("userIds",thirdId); + + Map templateVariableMap = new HashMap<>(); + templateVariableMap.put("projectNameCn",PRN_CN); + templateVariableMap.put("projectNameEn",PRN_EN); + templateVariableMap.put("standName",standName); + templateVariableMap.put("itemName",itemName); + templateVariableMap.put("Initiator",projectLibraryBase.getStudioEngineerName()); + templateVariableMap.put("endTime",DateUtils.formatDate(endTime)); + templateVariableMap.put("viewBtnUrlCn",hrefFeishu_CN); + templateVariableMap.put("viewBtnUrlEn",hrefFeishu_EN); + templateVariableMap.put("certificationEngineer",currentUser.getUsername()); + + larkMesJson.put("templateVariableMap",templateVariableMap); + this.feishuService.batchSendLarkCardMsgByTemplate2(larkMesJson); + } + } catch (Exception e) { + log.error("飞书消息推送失败"); + } + } + }catch (Exception ex){ ex.printStackTrace(); log.error("认证工程师-发起认证清单任务失败:" + ex.getMessage()); @@ -1609,6 +1663,22 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl projectCertificationInventoryEOList) { + Collections.sort(projectCertificationInventoryEOList, new Comparator() { + @Override + public int compare(ProjectCertificationInventoryEO p1, ProjectCertificationInventoryEO p2) { + if(p1.getEndTime() != null && p2.getEndTime() != null){ + return p1.getEndTime().compareTo(p2.getEndTime()); + } + return 1; + } + }); + } + @Override public Result saveBatch(JSONObject json) { if (!json.containsKey("dataList")) {