diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectTaskInventoryFeedbackEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectTaskInventoryFeedbackEOServiceImpl.java index bbc66edb3..6041bbcbf 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectTaskInventoryFeedbackEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectTaskInventoryFeedbackEOServiceImpl.java @@ -14,6 +14,7 @@ import com.jero.modules.project.service.*; import com.jero.modules.project.util.SendMessageUtils; import com.jero.modules.system.entity.SysUser; import com.jero.modules.system.service.ISysUserService; +import com.jero.modules.wkflow.enums.DesignComplianceNodeEnum; import com.jero.modules.wkflow.enums.FlowTypeEnum; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang.StringUtils; @@ -118,7 +119,6 @@ public class ProjectTaskInventoryFeedbackEOServiceImpl extends ServiceImpl sysUserQueryWrapper = new QueryWrapper<>(); sysUserQueryWrapper.lambda().eq(SysUser::getUsername,projectTaskInventoryFeedbackEO.getCreateBy()); List sysUserList = this.sysUserService.list(sysUserQueryWrapper); @@ -302,6 +302,94 @@ public class ProjectTaskInventoryFeedbackEOServiceImpl extends ServiceImpl queryWrapper = new QueryWrapper<>(); + queryWrapper.lambda().eq(ProjectTaskInventoryDetailEO::getActiProcInstId,projectTaskInventoryFeedbackEO.getActiProcInstId()); + queryWrapper.lambda().eq(ProjectTaskInventoryDetailEO::getFlowType,projectTaskInventoryFeedbackEO.getFlowType()); + queryWrapper.lambda().eq(ProjectTaskInventoryDetailEO::getTaskDefinitionKey, DesignComplianceNodeEnum.THE_RESPONSIBLE_PERSON_HANDLES_THE_TASK.getKey()); + List projectTaskInventoryDetailEOS = this.projectTaskInventoryDetailEOMapper.selectList(queryWrapper); + if(CollectionUtils.isNotEmpty(projectTaskInventoryDetailEOS)){ + List userIdList = projectTaskInventoryDetailEOS.stream().map(ProjectTaskInventoryDetailEO::getUserId).distinct().collect(Collectors.toList()); + if(CollectionUtils.isNotEmpty(userIdList)){ + LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + + ProjectLawsInventoryEO projectLawsInventoryEO = this.projectLawsInventoryEOService.getOne( + new QueryWrapper().lambda().eq(ProjectLawsInventoryEO::getId, projectTaskInventoryDetailEOS.get(0).getProjectTaskInventoryId()) + ); + + ProjectLibraryBase projectLibraryBaseInfo = this.projectLibraryBaseService.getOne( + new QueryWrapper().lambda().eq(ProjectLibraryBase::getId, projectLawsInventoryEO.getProjectLibraryId()) + ); + + ProjectNameInfoEO projectNameInfoEO = this.projectNameInfoEOService.getOne( + new QueryWrapper().lambda().eq(ProjectNameInfoEO::getId, projectLibraryBaseInfo.getProjectNameId()) + ); + + QueryWrapper projectYearInfoEOQueryWrapper = new QueryWrapper<>(); + projectYearInfoEOQueryWrapper.lambda().eq(ProjectYearNameInfoEO::getId,projectLibraryBaseInfo.getYearNameId()); + ProjectYearNameInfoEO projectYearNameInfoEO = this.projectYearNameInfoEOService.getOne(projectYearInfoEOQueryWrapper); + + // 飞书消息封装 + FeishuMsgVo feishuMsgVo = new FeishuMsgVo(); + + feishuMsgVo.setContent("Hello! " + currentUser.getUsername() + " has submitted the engineering deliverable information. Please check and address it in a timely manner."); + feishuMsgVo.setRegulationNo(projectLawsInventoryEO.getSerialNumber()); + feishuMsgVo.setProject(projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName() + " " + projectLibraryBaseInfo.getTargetMarket()); + feishuMsgVo.setInitiator(currentUser.getUsername()); + + //消息内容 + String msgContentEN = ""; + String flowType = projectTaskInventoryFeedbackEO.getFlowType(); + if(StringUtils.equals(flowType,FlowTypeEnum.SJFHXSHLC.getValue())){ + msgContentEN = currentUser.getUsername() + " has submitted the engineering deliverable information of " + + projectLawsInventoryEO.getSerialNumber() + " in " + + projectNameInfoEO.getProjectName() + "for design compliance confirmation. Please check and address it in time."; + + feishuMsgVo.setTaskType("Design Compliance Confirmation"); + feishuMsgVo.setDueDate(sdf.format(projectLawsInventoryEO.getDesignDueDate())); + }else if(StringUtils.equals(flowType,FlowTypeEnum.PREHOMOQRLC.getValue())){ + msgContentEN = currentUser.getUsername() + " has submitted the engineering deliverable information of " + + projectLawsInventoryEO.getSerialNumber() + " in " + + projectNameInfoEO.getProjectName() + " for Pre-Homo confirmation. Please check and address it in time."; + + feishuMsgVo.setTaskType("Pre-Homo Confirmation"); + feishuMsgVo.setDueDate(sdf.format(projectLawsInventoryEO.getPrehomoDueDate())); + }else if(StringUtils.equals(flowType,FlowTypeEnum.YZFHXSCLC.getValue())){ + msgContentEN = currentUser.getUsername() + " has submitted the engineering deliverable information of " + + projectLawsInventoryEO.getSerialNumber() + " in " + + projectNameInfoEO.getProjectName() + " for validation compliance confirmation. Please check and address it in time."; + + feishuMsgVo.setTaskType("Validation Compliance Confirmation"); + feishuMsgVo.setDueDate(sdf.format(projectLawsInventoryEO.getVerifyDueDate())); + } + + //飞书跳转链接 + String hrefFeishu = backUrl + + JumpLinkEnum.PREHOMO_AFFIRM_LINK.getLink() + + projectLibraryBaseInfo.getId() + JumpLinkEnum.PREHOMO_AFFIRM_LINK.getType() + + "&projectName=" + projectNameInfoEO.getProjectName() + "-" + + projectYearNameInfoEO.getYearName() + + "&targetMarket=" + projectLibraryBaseInfo.getTargetMarket(); + //系统内部跳转链接 + String href = "" + "Jump link" + ""; + String contentInfo = msgContentEN + " " + href; + Map sendMessageMap = new HashMap<>(); + sendMessageMap.put("hrefFeishu",hrefFeishu); + sendMessageMap.put("contentInfo",contentInfo); + + //发送消息 + SendMessageUtils.sendMessage(msgContentEN,userIdList,projectLibraryBaseInfo.getId(),sendMessageMap, feishuMsgVo, MessageTypeEnum.TASK); + } + } } /**