diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectTaskInventoryFeedbackEO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectTaskInventoryFeedbackEO.java index a7d172da4..9b90ffa39 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectTaskInventoryFeedbackEO.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectTaskInventoryFeedbackEO.java @@ -107,4 +107,5 @@ public class ProjectTaskInventoryFeedbackEO implements Serializable { @ApiModelProperty(value = "序号") private String serialNumber; + } 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 57113bcd0..bbc66edb3 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 @@ -1,27 +1,30 @@ package com.jero.modules.project.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.jero.common.constant.enums.MessageTypeEnum; import com.jero.common.system.vo.LoginUser; -import com.jero.modules.project.entity.FeedbackHistory; -import com.jero.modules.project.entity.ProjectTaskInventoryDetailEO; -import com.jero.modules.project.entity.ProjectTaskInventoryFeedbackEO; +import com.jero.modules.feishu.vo.FeishuMsgVo; +import com.jero.modules.project.entity.*; import com.jero.modules.project.enums.FeedBackHistoryDataStatusEnum; +import com.jero.modules.project.enums.JumpLinkEnum; import com.jero.modules.project.mapper.FeedbackHistoryMapper; import com.jero.modules.project.mapper.ProjectTaskInventoryDetailEOMapper; import com.jero.modules.project.mapper.ProjectTaskInventoryFeedbackEOMapper; -import com.jero.modules.project.service.IProjectTaskInventoryFeedbackEOService; +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.FlowTypeEnum; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang.StringUtils; import org.apache.shiro.SecurityUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import java.text.SimpleDateFormat; -import java.util.List; -import java.util.Date; -import java.util.Map; -import java.util.UUID; +import java.util.*; import java.util.stream.Collectors; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -41,6 +44,24 @@ public class ProjectTaskInventoryFeedbackEOServiceImpl extends ServiceImpl sysUserQueryWrapper = new QueryWrapper<>(); + sysUserQueryWrapper.lambda().eq(SysUser::getUsername,projectTaskInventoryFeedbackEO.getCreateBy()); + List sysUserList = this.sysUserService.list(sysUserQueryWrapper); + if (CollectionUtils.isNotEmpty(sysUserList)) { + List userIdList = sysUserList.stream().map(SysUser::getId).distinct().collect(Collectors.toList()); + LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + + ProjectTaskInventoryDetailEO projectTaskInventoryDetailEO = this.projectTaskInventoryDetailEOMapper.selectOne( + new QueryWrapper().lambda().eq(ProjectTaskInventoryDetailEO::getId, projectTaskInventoryFeedbackEO.getProjectTaskInventoryId()) + ); + + ProjectLawsInventoryEO projectLawsInventoryEO = this.projectLawsInventoryEOService.getOne( + new QueryWrapper().lambda().eq(ProjectLawsInventoryEO::getId, projectTaskInventoryDetailEO.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 reply to your 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 reply to your 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 reply to your engineering deliverable information of " + + projectLawsInventoryEO.getSerialNumber() + " in " + + projectNameInfoEO.getProjectName() + " for Pre-Homo compliance 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 reply to your 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); + } } /**