设计、prehomo、验证符合性流程,责任人回复dre发送消息。
This commit is contained in:
+1
@@ -107,4 +107,5 @@ public class ProjectTaskInventoryFeedbackEO implements Serializable {
|
|||||||
|
|
||||||
@ApiModelProperty(value = "序号")
|
@ApiModelProperty(value = "序号")
|
||||||
private String serialNumber;
|
private String serialNumber;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+117
-8
@@ -1,27 +1,30 @@
|
|||||||
package com.jero.modules.project.service.impl;
|
package com.jero.modules.project.service.impl;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
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.common.system.vo.LoginUser;
|
||||||
import com.jero.modules.project.entity.FeedbackHistory;
|
import com.jero.modules.feishu.vo.FeishuMsgVo;
|
||||||
import com.jero.modules.project.entity.ProjectTaskInventoryDetailEO;
|
import com.jero.modules.project.entity.*;
|
||||||
import com.jero.modules.project.entity.ProjectTaskInventoryFeedbackEO;
|
|
||||||
import com.jero.modules.project.enums.FeedBackHistoryDataStatusEnum;
|
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.FeedbackHistoryMapper;
|
||||||
import com.jero.modules.project.mapper.ProjectTaskInventoryDetailEOMapper;
|
import com.jero.modules.project.mapper.ProjectTaskInventoryDetailEOMapper;
|
||||||
import com.jero.modules.project.mapper.ProjectTaskInventoryFeedbackEOMapper;
|
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.collections4.CollectionUtils;
|
||||||
import org.apache.commons.lang.StringUtils;
|
import org.apache.commons.lang.StringUtils;
|
||||||
import org.apache.shiro.SecurityUtils;
|
import org.apache.shiro.SecurityUtils;
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.List;
|
import java.util.*;
|
||||||
import java.util.Date;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.UUID;
|
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
@@ -41,6 +44,24 @@ public class ProjectTaskInventoryFeedbackEOServiceImpl extends ServiceImpl<Proje
|
|||||||
@Autowired
|
@Autowired
|
||||||
private ProjectTaskInventoryDetailEOMapper projectTaskInventoryDetailEOMapper;
|
private ProjectTaskInventoryDetailEOMapper projectTaskInventoryDetailEOMapper;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ISysUserService sysUserService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IProjectLawsInventoryEOService projectLawsInventoryEOService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IProjectLibraryBaseService projectLibraryBaseService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IProjectNameInfoEOService projectNameInfoEOService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IProjectYearNameInfoEOService projectYearNameInfoEOService;
|
||||||
|
|
||||||
|
@Value(value = "${jero.backUrl}")
|
||||||
|
private String backUrl;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 保存
|
* 保存
|
||||||
*
|
*
|
||||||
@@ -95,6 +116,94 @@ public class ProjectTaskInventoryFeedbackEOServiceImpl extends ServiceImpl<Proje
|
|||||||
Date now = new Date();
|
Date now = new Date();
|
||||||
projectTaskInventoryFeedbackEO.setUpdateTime(now);
|
projectTaskInventoryFeedbackEO.setUpdateTime(now);
|
||||||
saveOrUpdate(projectTaskInventoryFeedbackEO);
|
saveOrUpdate(projectTaskInventoryFeedbackEO);
|
||||||
|
|
||||||
|
//获取这条数据的dre工程师,给他发送消息。
|
||||||
|
|
||||||
|
QueryWrapper<SysUser> sysUserQueryWrapper = new QueryWrapper<>();
|
||||||
|
sysUserQueryWrapper.lambda().eq(SysUser::getUsername,projectTaskInventoryFeedbackEO.getCreateBy());
|
||||||
|
List<SysUser> sysUserList = this.sysUserService.list(sysUserQueryWrapper);
|
||||||
|
if (CollectionUtils.isNotEmpty(sysUserList)) {
|
||||||
|
List<String> 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<ProjectTaskInventoryDetailEO>().lambda().eq(ProjectTaskInventoryDetailEO::getId, projectTaskInventoryFeedbackEO.getProjectTaskInventoryId())
|
||||||
|
);
|
||||||
|
|
||||||
|
ProjectLawsInventoryEO projectLawsInventoryEO = this.projectLawsInventoryEOService.getOne(
|
||||||
|
new QueryWrapper<ProjectLawsInventoryEO>().lambda().eq(ProjectLawsInventoryEO::getId, projectTaskInventoryDetailEO.getProjectTaskInventoryId())
|
||||||
|
);
|
||||||
|
|
||||||
|
ProjectLibraryBase projectLibraryBaseInfo = this.projectLibraryBaseService.getOne(
|
||||||
|
new QueryWrapper<ProjectLibraryBase>().lambda().eq(ProjectLibraryBase::getId, projectLawsInventoryEO.getProjectLibraryId())
|
||||||
|
);
|
||||||
|
|
||||||
|
ProjectNameInfoEO projectNameInfoEO = this.projectNameInfoEOService.getOne(
|
||||||
|
new QueryWrapper<ProjectNameInfoEO>().lambda().eq(ProjectNameInfoEO::getId, projectLibraryBaseInfo.getProjectNameId())
|
||||||
|
);
|
||||||
|
|
||||||
|
QueryWrapper<ProjectYearNameInfoEO> 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 = "<a href='"
|
||||||
|
+ JumpLinkEnum.PREHOMO_AFFIRM_LINK.getLink() + projectLibraryBaseInfo.getId() + JumpLinkEnum.PREHOMO_AFFIRM_LINK.getType()
|
||||||
|
+ "&projectName=" + projectNameInfoEO.getProjectName() + "-"
|
||||||
|
+ projectYearNameInfoEO.getYearName()
|
||||||
|
+ "&targetMarket=" + projectLibraryBaseInfo.getTargetMarket()
|
||||||
|
+ "'>" + "Jump link" + "</a>";
|
||||||
|
String contentInfo = msgContentEN + " " + href;
|
||||||
|
Map<String,Object> sendMessageMap = new HashMap<>();
|
||||||
|
sendMessageMap.put("hrefFeishu",hrefFeishu);
|
||||||
|
sendMessageMap.put("contentInfo",contentInfo);
|
||||||
|
|
||||||
|
//发送消息
|
||||||
|
SendMessageUtils.sendMessage(msgContentEN,userIdList,projectLibraryBaseInfo.getId(),sendMessageMap, feishuMsgVo, MessageTypeEnum.TASK);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user