设计、prehomo、验证符合性流程,发起人退回发消息内容完善。

This commit is contained in:
wangzhijiang
2022-07-05 14:21:58 +08:00
parent c3dfd0f8da
commit 950bbcb66f
3 changed files with 174 additions and 15 deletions
@@ -18,6 +18,7 @@ public enum JumpLinkEnum {
VERIFY_AFFIRM_LINK("验证符合性确认链接","3","/ProjectDetails?id=","&type=103"),
DESIGN_AFFIRM_LINK("设计符合性确认链接","4","/ProjectDetails?id=","&type=103"),
TASK_AFFIRM_LINK("任务确认链接","2","/ProcessCenter",""),
COMPLIANCE_PROCESS_DETAIL_LINK("符合性流程明细页路由","2","/taskListProcess",""),
;
@@ -22,6 +22,7 @@ public enum OperatorTypeEnum {
QUERY_TASK_INVENTORY_DETAIL("查询法规清单明细信息","queryTaskInventoryDetail"),
UPDATE_TASK_INVENTORY_DETAIL("更新法规清单明细信息","updateTaskInventoryDetail"),
UPDATE_DRE_TASK_STATUS("更新法规清单明细信息,dre任务状态","updateDreTaskStatus"),
UPDATE_TASK_INVENTORY_DETAIL_BY_TASK("根据任务节点定义key更新数据","updateTaskInventoryDetailByTask"),
GET_CURRENT_USER_ID("获取当前登录用户id","getCurrentUserId"),
@@ -22,6 +22,7 @@ import com.jero.modules.system.entity.SysDictItem;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.mapper.SysUserMapper;
import com.jero.modules.system.service.impl.SysDictItemServiceImpl;
import com.jero.modules.wkflow.enums.DesignComplianceNodeEnum;
import com.jero.modules.wkflow.enums.FlowTypeEnum;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
@@ -78,6 +79,9 @@ public class ProjectTaskInventoryEOServiceImpl extends ServiceImpl<ProjectTaskIn
@Autowired
private SysDictItemServiceImpl sysDictItemServiceImpl;
@Autowired
private IProjectTaskInventoryEOService projectTaskInventoryEOService;
@Value(value = "${jero.backUrl}")
private String backUrl;
@@ -280,6 +284,21 @@ public class ProjectTaskInventoryEOServiceImpl extends ServiceImpl<ProjectTaskIn
this.projectTaskInventoryDetailEOMapper.update(projectTaskInventoryDetailEO,updateProjectTaskInventoryDetailWrapper);
}else if(StringUtils.equals(operatorType,OperatorTypeEnum.UPDATE_DRE_TASK_STATUS.getValue())){
}else if(StringUtils.equals(operatorType,OperatorTypeEnum.ADD_TASK_INVENTORY_DETAIL.getValue())){
//添加法规清单明细数据。
JSONArray taskInventoryDetailList = jsonObject.getJSONArray("taskInventoryDetailList");
ProjectTaskInventoryDetailEO projectTaskInventoryDetailEO = null;
for (Object detail : taskInventoryDetailList) {
projectTaskInventoryDetailEO = JSONObject.parseObject(JSONObject.toJSONString(detail),ProjectTaskInventoryDetailEO.class);
// 当前流程 当前用户 的数据删掉 确保唯一。
QueryWrapper<ProjectTaskInventoryDetailEO> deleteWrapper = new QueryWrapper<>();
deleteWrapper.lambda().eq(ProjectTaskInventoryDetailEO::getActiProcInstId,projectTaskInventoryDetailEO.getActiProcInstId());
deleteWrapper.lambda().eq(ProjectTaskInventoryDetailEO::getUserId,projectTaskInventoryDetailEO.getUserId());
deleteWrapper.lambda().eq(ProjectTaskInventoryDetailEO::getFlowType,projectTaskInventoryDetailEO.getFlowType());
projectTaskInventoryDetailEOMapper.delete(deleteWrapper);
projectTaskInventoryDetailEOMapper.insert(projectTaskInventoryDetailEO);
}
}
return new Result<>().success("调用成功!");
@@ -650,8 +669,35 @@ public class ProjectTaskInventoryEOServiceImpl extends ServiceImpl<ProjectTaskIn
userIdList.addAll(Arrays.asList(dreUserIds.split(",")));
}
String taskIds = "";
String actiProcInstId = jsonObject.getString("actiProcInstId");
String projectTaskInventoryId = "";
//String projectLibraryId = "";
//String id = "";
String studioEngineer = projectLibraryBase.getStudioEngineer();
//String serialNumber = "";
String taskKey = "";
boolean isDisplay = true; // 如果是true,则代表进入页面后,可以操作 如果是false 则代表进入页面后 只能查看。
//固定拼接参数
String flowType = "";
String sponsor = "";
String personLiable = "";
String typeOfDeliverables = "";
String deliverableTemplate = "";
String dueDate = "";
String remarks = "";
String projectName = projectNameInfoEO.getProjectName();
String targetMarket = projectLibraryBase.getTargetMarket();
String projectNameId = projectLibraryBase.getProjectNameId();
String primaryKeyId = "";
String personChargeFeedback = "";
FeishuMsgVo feishuMsgVo = new FeishuMsgVo();
if (StringUtils.equals(msgType, MsgTypeEnum.DESIGN_ISSUE_DRE_MSG.getValue())) {
taskKey = "dreDispose";
msgContentEN = sysUser.getUsername() + "has assigned the design compliance confirmation process of " + serialNumber + " in "
+ projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName() + " " + projectLibraryBase.getTargetMarket()
+ " to you. Please check and handle it in time.";
@@ -662,36 +708,96 @@ public class ProjectTaskInventoryEOServiceImpl extends ServiceImpl<ProjectTaskIn
String designDutyId = jsonObject.getString("designDutyId");//设计符合性流程责任人id
userIdList.add(designDutyId);
msgContentEN = sysUser.getUsername() + " 将设计符合性流程退回,编号: " + serialNumber + " in "
+ projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName() + " " + projectLibraryBase.getTargetMarket()
+ " to you. Please check and handle it in time.";
taskKey = DesignComplianceNodeEnum.THE_RESPONSIBLE_PERSON_HANDLES_THE_TASK.getKey();
feishuMsgVo.setContent("Hello! " + sysUser.getUsername() + " has assigned the task to you. Please check and handle it in time.");
feishuMsgVo.setTaskType("XXX");
msgContentEN = "The design compliance information of " + serialNumber + " in "
+ projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName() + " " + projectLibraryBase.getTargetMarket()
+ " you sumitted has been rejected after review. Please check and address it in time.";
feishuMsgVo.setContent("Hello! The compliance information you submitted has been rejected after review. Please check and address it in a timely manner.");
feishuMsgVo.setTaskType("Design Compliance Confirmation");
}else if(StringUtils.equals(msgType, MsgTypeEnum.PREHOMO_RETURN_MSG.getValue())){
String prehomoDutyId = jsonObject.getString("prehomoDutyId");//prehomo流程责任人id
userIdList.add(prehomoDutyId);
msgContentEN = sysUser.getUsername() + " 将prehomo流程退回,编号: " + serialNumber + " in "
+ projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName() + " " + projectLibraryBase.getTargetMarket()
+ " to you. Please check and handle it in time.";
taskKey = DesignComplianceNodeEnum.THE_RESPONSIBLE_PERSON_HANDLES_THE_TASK.getKey();
feishuMsgVo.setContent("Hello! " + sysUser.getUsername() + " has assigned the task to you. Please check and handle it in time.");
feishuMsgVo.setTaskType("XXX");
msgContentEN = "The Pre-Homo confirmation of " + serialNumber + " in "
+ projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName() + " " + projectLibraryBase.getTargetMarket()
+ " you sumitted has been rejected after review. Please check and address it in time.";
feishuMsgVo.setContent("Hello! The compliance information you submitted has been rejected after review. Please check and address it in a timely manner.");
feishuMsgVo.setTaskType("Pre-Homo Confirmation");
}else if(StringUtils.equals(msgType, MsgTypeEnum.VERIFY_RETURN_MSG.getValue())){
String verifyDutyId = jsonObject.getString("verifyDutyId");//验证符合性流程责任人id
userIdList.add(verifyDutyId);
msgContentEN = sysUser.getUsername() + " 将验证符合性流程退回,编号: " + serialNumber + " in "
+ projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName() + " " + projectLibraryBase.getTargetMarket()
+ " to you. Please check and handle it in time.";
taskKey = DesignComplianceNodeEnum.THE_RESPONSIBLE_PERSON_HANDLES_THE_TASK.getKey();
feishuMsgVo.setContent("Hello! " + sysUser.getUsername() + " has assigned the task to you. Please check and handle it in time.");
feishuMsgVo.setTaskType("XXX");
msgContentEN = "The validation compliance information of " + serialNumber + " in "
+ projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName() + " " + projectLibraryBase.getTargetMarket()
+ " you sumitted has been rejected after review. Please check and address it in time.";
feishuMsgVo.setContent("Hello! The compliance information you submitted has been rejected after review. Please check and address it in a timely manner.");
feishuMsgVo.setTaskType("Validation Compliance Confirmation");
}
feishuMsgVo.setRegulationNo(serialNumber);
feishuMsgVo.setProject(projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName() + " " + projectLibraryBase.getTargetMarket());
/*//根据流程实例id,查询待办id
QueryWrapper<ProjectTaskInventoryDetailEO> detailEOQueryWrapper = new QueryWrapper<>();
detailEOQueryWrapper.lambda().eq(ProjectTaskInventoryDetailEO::getActiProcInstId,actiProcInstId);
detailEOQueryWrapper.lambda().eq(ProjectTaskInventoryDetailEO::getTaskDefinitionKey, taskKey);
List<ProjectTaskInventoryDetailEO> projectTaskInventoryDetailEOS = this.projectTaskInventoryDetailEOMapper.selectList(detailEOQueryWrapper);
ProjectTaskInventoryEO projectTaskInventoryEO = null;
if (CollectionUtils.isNotEmpty(projectTaskInventoryDetailEOS)) {
ProjectTaskInventoryDetailEO projectTaskInventoryDetailEO = projectTaskInventoryDetailEOS.get(0);
taskIds = projectTaskInventoryDetailEO.getTaskId();
projectTaskInventoryId = projectTaskInventoryDetailEO.getProjectTaskInventoryId();
primaryKeyId = projectTaskInventoryDetailEO.getId();
projectTaskInventoryEO = this.projectTaskInventoryEOService.getOne(
new QueryWrapper<ProjectTaskInventoryEO>().lambda().eq(ProjectTaskInventoryEO::getId, projectTaskInventoryId)
);
}
if(StringUtils.equals(msgType, MsgTypeEnum.DESIGN_ISSUE_DRE_MSG.getValue())
|| StringUtils.equals(msgType, MsgTypeEnum.DESIGN_RETURN_MSG.getValue())){
flowType = FlowTypeEnum.SJFHXSHLC.getValue();
sponsor = "designInitiatorName";
personLiable = "designDutyName";
typeOfDeliverables = "designDeliverableTypeName";
deliverableTemplate = "designDeliverableTemplate";
dueDate = "designDueDate";
remarks = "designRemark";
personChargeFeedback = projectTaskInventoryEO.getDesignPersonChargeFeedback();
}else if(StringUtils.equals(msgType, MsgTypeEnum.PREHOMO_RETURN_MSG.getValue())){
flowType = FlowTypeEnum.PREHOMOQRLC.getValue();
sponsor = "prehomoInitiatorName";
personLiable = "prehomoDutyName";
typeOfDeliverables = "prehomoDeliverableTypeName";
deliverableTemplate = "prehomoDeliverableTemplate";
dueDate = "prehomoDueDate";
remarks = "prehomoRemark";
personChargeFeedback = projectTaskInventoryEO.getPrehomoPersonChargeFeedback();
}else if(StringUtils.equals(msgType, MsgTypeEnum.VERIFY_RETURN_MSG.getValue())){
flowType = FlowTypeEnum.YZFHXSCLC.getValue();
sponsor = "verifyInitiatorName";
personLiable = "verifyDutyName";
typeOfDeliverables = "verifyDeliverableTypeName";
deliverableTemplate = "verifyDeliverableTemplate";
dueDate = "verifyDueDate";
remarks = "verifyRemark";
personChargeFeedback = projectTaskInventoryEO.getVerifyPersonChargeFeedback();
}*/
if(CollectionUtils.isNotEmpty(userIdList) && StringUtils.isNotEmpty(msgContentEN)){
//飞书跳转链接
@@ -709,6 +815,57 @@ public class ProjectTaskInventoryEOServiceImpl extends ServiceImpl<ProjectTaskIn
+ projectYearNameInfoEO.getYearName()
+ projectLibraryBase.getTargetMarket()
+ "'>" + "Jump link" + "</a>";
//飞书跳转链接 拼接跳转至任务详情页参数
/*String hrefFeishu = backUrl
+ JumpLinkEnum.COMPLIANCE_PROCESS_DETAIL_LINK.getLink()
+ "?taskIds=" + taskIds
+ "&actiProcInstId=" + actiProcInstId
+ "&projectTaskInventoryId=" + projectTaskInventoryId
+ "&projectLibraryId=" + projectLibraryId
+ "&id=" + projectLibraryId
+ "&studioEngineer=" + studioEngineer
+ "&serialNumber=" + serialNumber
+ "&TaskKey=" + taskKey
+ "&isDisplay=" + isDisplay
+ "&flowType=" + flowType
+ "&Sponsor=" + sponsor
+ "&personLiable=" + personLiable
+ "&typeOfDeliverables=" + typeOfDeliverables
+ "&deliverableTemplate=" + deliverableTemplate
+ "&DueDate=" + dueDate
+ "&remarks=" + remarks
+ "&projectName=" + projectName
+ "&targetMarket=" + targetMarket
+ "&projectNameId=" + projectNameId
+ "&primaryKeyId=" + primaryKeyId
+ "&PersonChargeFeedback=" + personChargeFeedback;
//系统内部跳转链接 拼接跳转至任务详情页参数
String href = "<a href='"
+ JumpLinkEnum.COMPLIANCE_PROCESS_DETAIL_LINK.getLink()
+ "?taskIds=" + taskIds
+ "&actiProcInstId=" + actiProcInstId
+ "&projectTaskInventoryId=" + projectTaskInventoryId
+ "&projectLibraryId=" + projectLibraryId
+ "&id=" + projectLibraryId
+ "&studioEngineer=" + projectLibraryBase.getStudioEngineer()
+ "&serialNumber=" + serialNumber
+ "&TaskKey=" + taskKey
+ "&isDisplay=" + isDisplay
+ "&flowType=" + flowType
+ "&Sponsor=" + sponsor
+ "&personLiable=" + personLiable
+ "&typeOfDeliverables=" + typeOfDeliverables
+ "&deliverableTemplate=" + deliverableTemplate
+ "&DueDate=" + dueDate
+ "&remarks=" + remarks
+ "&projectName=" + projectName
+ "&targetMarket=" + targetMarket
+ "&projectNameId=" + projectNameId
+ "&primaryKeyId=" + primaryKeyId
+ "&PersonChargeFeedback=" + personChargeFeedback
+ "'>" + "Jump link" + "</a>";*/
String contentInfo = msgContentEN + " " + href;
Map<String,Object> sendMessageMap = new HashMap<>();
sendMessageMap.put("hrefFeishu",hrefFeishu);