update hiwork消息新增flowid

This commit is contained in:
lijiarao
2024-03-14 18:02:59 +08:00
parent 5e12ee14b7
commit d91d186a22
3 changed files with 90 additions and 126 deletions
@@ -91,7 +91,7 @@ public class HiworkTodoServiceImpl implements PushWorkflowIntegrationAPI {
throw new JeroBootException(ResultCommon.EMPTY_COMMON, "hiworkTodoAddList");
}
try {
List<HiworkTodo> hiworkTodoList = getHiworkTodos(hiworkTodoAddList);
List<HiworkTodo> hiworkTodoList = getHiworkTodos(hiworkTodoAddList,false);
log.info("统一待办推送入参" + JSON.toJSONString(hiworkTodoList));
// 远程调用
JSONObject json = restTemplate.postForObject(ip + todoUrl,hiworkTodoList, JSONObject.class);
@@ -106,13 +106,12 @@ public class HiworkTodoServiceImpl implements PushWorkflowIntegrationAPI {
}
@Override
public void sendActivityComplete(String processInstanceId) {
public void sendActivityComplete(List<HiworkTodoAdd> hiworkTodoAddList) {
if(!isWorkflow){
return;
}
ProcessAll processAll = processAllService.getByProcessInstanceId(processInstanceId);
try {
List<HiworkTodo> hiworkTodoList = getHiworkTodos(processAll);
List<HiworkTodo> hiworkTodoList = getHiworkTodos(hiworkTodoAddList, true);
log.info("统一待办推送入参" + JSON.toJSONString(hiworkTodoList));
// 远程调用
JSONObject json = restTemplate.postForObject(ip + todoUrl,hiworkTodoList, JSONObject.class);
@@ -125,45 +124,9 @@ public class HiworkTodoServiceImpl implements PushWorkflowIntegrationAPI {
log.error("统一待办推送异常",e);
}
}
@NotNull
private List<HiworkTodo> getHiworkTodos(ProcessAll processAll) {
List<HiworkTodo> hiworkTodoList = new ArrayList<>();
HiworkTodo hiworkTodo = new HiworkTodo();
hiworkTodo.setSysCode(hiworkSysCode);
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
String date = DateUtil.formatDateTime(new Date());
String noticeTitle = processAll.getPrcName() + "(" + loginUser.getRealname() + " " + date + ")";
hiworkTodo.setNoticeTitle(noticeTitle);
hiworkTodo.setFlowid(processAll.getProcessInstanceId());
hiworkTodo.setProcessId(processAll.getProcessInstanceId());
hiworkTodo.setProcessName(ProcessTypeEnum.getNameByValue(processAll.getPrcType()));
hiworkTodo.setProcessType(PROCESS_TYPE);
// 是否显示(0否,1是)
hiworkTodo.setIsShow("1");
SysUser sysUser = sysUserService.getById(processAll.getCreateUserId());
if(!Objects.isNull(sysUser)){
hiworkTodo.setCreateUserCode(sysUser.getUsername());
hiworkTodo.setCreateUserName(sysUser.getRealname());
}
if(!Objects.isNull(processAll.getDueTime())){
hiworkTodo.setDueTime(processAll.getDueTime().getTime());
}
hiworkTodo.setBid(processAll.getProjectId());
if(!Objects.isNull(sysUser)){
hiworkTodo.setUserId(sysUser.getId());
hiworkTodo.setUserCode(sysUser.getUsername());
hiworkTodo.setUserName(sysUser.getRealname());
}
hiworkTodo.setReceiveTime(Instant.now());
hiworkTodo.setIsTodo(String.valueOf(3));
hiworkTodoList.add(hiworkTodo);
return hiworkTodoList;
}
@NotNull
private List<HiworkTodo> getHiworkTodos(List<HiworkTodoAdd> hiworkTodoAddList) {
private List<HiworkTodo> getHiworkTodos(List<HiworkTodoAdd> hiworkTodoAddList, boolean b) {
List<HiworkTodo> hiworkTodoList = new ArrayList<>();
for (HiworkTodoAdd hiworkTodoAdd : hiworkTodoAddList) {
String recordId = hiworkTodoAdd.getRecordId();
@@ -172,89 +135,90 @@ public class HiworkTodoServiceImpl implements PushWorkflowIntegrationAPI {
if(Objects.isNull(processApprovalRecord)){
continue;
}
getObj(hiworkTodoList, processDefinitionId, processApprovalRecord);
HiworkTodo hiworkTodo = new HiworkTodo();
hiworkTodo.setSysCode(hiworkSysCode);
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
String date = DateUtil.formatDateTime(new Date());
String noticeTitle = processApprovalRecord.getTaskName() + "(" + loginUser.getRealname() + " " + date + ")";
hiworkTodo.setNoticeTitle(noticeTitle);
hiworkTodo.setFlowid(processApprovalRecord.getProcessInstanceId());
hiworkTodo.setProcessId(processApprovalRecord.getProcessInstanceId());
hiworkTodo.setProcessType(PROCESS_TYPE);
hiworkTodo.setTaskId(processApprovalRecord.getTaskId());
hiworkTodo.setTaskName(processApprovalRecord.getTaskName());
LambdaQueryWrapper<ProcessNode> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ProcessNode::getProcessDefinitionId,processDefinitionId);
wrapper.eq(ProcessNode::getNodeName,processApprovalRecord.getTaskName());
wrapper.eq(ProcessNode::getIsView, YesOrNoEnum.YES.getValue());
ProcessNode processNode = processNodeService.getOne(wrapper,false);
if(!Objects.isNull(processNode)){
if(processNode.getNodeName().contains("会签")){
}
hiworkTodo.setNodeBusiCode(processNode.getXmlNodeId());
// 是否显示(0否,1是)
hiworkTodo.setIsShow(String.valueOf(processNode.getIsView()));
}
LambdaQueryWrapper<ProcessAll> queryProcessAll = new LambdaQueryWrapper<>();
queryProcessAll.eq(ProcessAll::getProcessInstanceId,processApprovalRecord.getProcessInstanceId());
ProcessAll processAll = processAllService.getOne(queryProcessAll);
if(!Objects.isNull(processAll)){
hiworkTodo.setProcessName(ProcessTypeEnum.getNameByValue(processAll.getPrcType()));
SysUser sysUser = sysUserService.getById(processAll.getCreateUserId());
if(!Objects.isNull(sysUser)){
hiworkTodo.setCreateUserCode(sysUser.getUsername());
hiworkTodo.setCreateUserName(sysUser.getRealname());
}
if(!Objects.isNull(processAll.getDueTime())){
hiworkTodo.setDueTime(processAll.getDueTime().getTime());
}
hiworkTodo.setBid(processAll.getProjectId());
String url = hiworkFontUrl
//.replaceAll("&","%26")
//.replaceAll("\\?","%3F")
.replace("{projectId}",processAll.getProjectId())
.replace("{taskName}",processApprovalRecord.getTaskName())
.replace("{taskId}",processApprovalRecord.getTaskId())
.replace("{processInstanceId}",processApprovalRecord.getProcessInstanceId())
.replace("{nodeId}",processApprovalRecord.getNodeId());
// 跳转链接
String businessLink = url.replace("{url}", Objects.requireNonNull(ProcessTypeEnum.getFontReturnUrlPc(processAll.getPrcType())));
hiworkTodo.setBusinessLink(businessLink);
// APP跳转链接
String appUrl = hiworkFontAppUrl
//.replaceAll("&","%26")
//.replaceAll("\\?","%3F")
.replace("{projectId}",processAll.getProjectId())
.replace("{taskName}",processApprovalRecord.getTaskName())
.replace("{taskId}",processApprovalRecord.getTaskId())
.replace("{processInstanceId}",processApprovalRecord.getProcessInstanceId())
.replace("{nodeId}",processApprovalRecord.getNodeId());
String appBusinessLink = appUrl.replace("{url}", Objects.requireNonNull(ProcessTypeEnum.getFontReturnUrlPc(processAll.getPrcType())));
hiworkTodo.setAppBusinessLink(appBusinessLink);
}
SysUser sysUser = sysUserService.getById(processApprovalRecord.getUserId());
if(!Objects.isNull(sysUser)){
hiworkTodo.setUserId(processApprovalRecord.getUserId());
hiworkTodo.setUserCode(sysUser.getUsername());
hiworkTodo.setUserName(sysUser.getRealname());
}
hiworkTodo.setReceiveTime(Instant.now());
//2已完成时进入下一节点
Integer finishFlag = processApprovalRecord.getFinishFlag();
if (finishFlag.equals(2)){
hiworkTodo.setMultiInstance(0);
}
if (b){
hiworkTodo.setIsTodo(String.valueOf(3));
}else {
hiworkTodo.setIsTodo(String.valueOf(finishFlag));
}
hiworkTodoList.add(hiworkTodo);
}
return hiworkTodoList;
}
private void getObj(List<HiworkTodo> hiworkTodoList, String processDefinitionId, ProcessApprovalRecord processApprovalRecord) {
HiworkTodo hiworkTodo = new HiworkTodo();
hiworkTodo.setSysCode(hiworkSysCode);
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
String date = DateUtil.formatDateTime(new Date());
String noticeTitle = processApprovalRecord.getTaskName() + "(" + loginUser.getRealname() + " " + date + ")";
hiworkTodo.setNoticeTitle(noticeTitle);
hiworkTodo.setFlowid(processApprovalRecord.getProcessInstanceId());
hiworkTodo.setProcessId(processApprovalRecord.getProcessInstanceId());
hiworkTodo.setProcessType(PROCESS_TYPE);
hiworkTodo.setTaskId(processApprovalRecord.getTaskId());
hiworkTodo.setTaskName(processApprovalRecord.getTaskName());
LambdaQueryWrapper<ProcessNode> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ProcessNode::getProcessDefinitionId,processDefinitionId);
wrapper.eq(ProcessNode::getNodeName,processApprovalRecord.getTaskName());
wrapper.eq(ProcessNode::getIsView, YesOrNoEnum.YES.getValue());
ProcessNode processNode = processNodeService.getOne(wrapper,false);
if(!Objects.isNull(processNode)){
if(processNode.getNodeName().contains("会签")){
}
hiworkTodo.setNodeBusiCode(processNode.getXmlNodeId());
// 是否显示(0否,1是)
hiworkTodo.setIsShow(String.valueOf(processNode.getIsView()));
}
LambdaQueryWrapper<ProcessAll> queryProcessAll = new LambdaQueryWrapper<>();
queryProcessAll.eq(ProcessAll::getProcessInstanceId,processApprovalRecord.getProcessInstanceId());
ProcessAll processAll = processAllService.getOne(queryProcessAll);
if(!Objects.isNull(processAll)){
hiworkTodo.setProcessName(ProcessTypeEnum.getNameByValue(processAll.getPrcType()));
SysUser sysUser = sysUserService.getById(processAll.getCreateUserId());
if(!Objects.isNull(sysUser)){
hiworkTodo.setCreateUserCode(sysUser.getUsername());
hiworkTodo.setCreateUserName(sysUser.getRealname());
}
if(!Objects.isNull(processAll.getDueTime())){
hiworkTodo.setDueTime(processAll.getDueTime().getTime());
}
hiworkTodo.setBid(processAll.getProjectId());
String url = hiworkFontUrl
//.replaceAll("&","%26")
//.replaceAll("\\?","%3F")
.replace("{projectId}",processAll.getProjectId())
.replace("{taskName}",processApprovalRecord.getTaskName())
.replace("{taskId}",processApprovalRecord.getTaskId())
.replace("{processInstanceId}",processApprovalRecord.getProcessInstanceId())
.replace("{nodeId}",processApprovalRecord.getNodeId());
// 跳转链接
String businessLink = url.replace("{url}", Objects.requireNonNull(ProcessTypeEnum.getFontReturnUrlPc(processAll.getPrcType())));
hiworkTodo.setBusinessLink(businessLink);
// APP跳转链接
String appUrl = hiworkFontAppUrl
//.replaceAll("&","%26")
//.replaceAll("\\?","%3F")
.replace("{projectId}",processAll.getProjectId())
.replace("{taskName}",processApprovalRecord.getTaskName())
.replace("{taskId}",processApprovalRecord.getTaskId())
.replace("{processInstanceId}",processApprovalRecord.getProcessInstanceId())
.replace("{nodeId}",processApprovalRecord.getNodeId());
String appBusinessLink = appUrl.replace("{url}", Objects.requireNonNull(ProcessTypeEnum.getFontReturnUrlPc(processAll.getPrcType())));
hiworkTodo.setAppBusinessLink(appBusinessLink);
}
SysUser sysUser = sysUserService.getById(processApprovalRecord.getUserId());
if(!Objects.isNull(sysUser)){
hiworkTodo.setUserId(processApprovalRecord.getUserId());
hiworkTodo.setUserCode(sysUser.getUsername());
hiworkTodo.setUserName(sysUser.getRealname());
}
hiworkTodo.setReceiveTime(Instant.now());
//2已完成时进入下一节点
Integer finishFlag = processApprovalRecord.getFinishFlag();
if (finishFlag.equals(2)){
hiworkTodo.setMultiInstance(0);
}
hiworkTodo.setIsTodo(String.valueOf(finishFlag));
hiworkTodoList.add(hiworkTodo);
}
}