add 流程结束后发送hiwork消息

This commit is contained in:
lijiarao
2024-03-12 14:00:12 +08:00
parent 4652a52572
commit 07c0c77cf9
3 changed files with 64 additions and 1 deletions
@@ -18,4 +18,6 @@ public interface PushWorkflowIntegrationAPI {
* @Description: 统一待办集成
**/
void sendTodoTask(List<HiworkTodoAdd> hiworkTodoAddList);
void sendActivityComplete(String processInstanceId);
}
@@ -107,6 +107,64 @@ public class HiworkTodoServiceImpl implements PushWorkflowIntegrationAPI {
}
}
@Override
public void sendActivityComplete(String processInstanceId) {
if(!isWorkflow){
return;
}
ProcessAll processAll = processAllService.getByProcessInstanceId(processInstanceId);
try {
List<HiworkTodo> hiworkTodoList = getHiworkTodos(processAll);
log.info("统一待办推送入参" + JSON.toJSONString(hiworkTodoList));
// 远程调用
JSONObject json = restTemplate.postForObject(ip + todoUrl,hiworkTodoList, JSONObject.class);
if(!Objects.isNull(json) && json.containsKey("success") && Objects.equals("true",json.getString("success"))){
log.info("统一待办推送成功");
}else{
log.info("统一待办推送失败");
}
}catch (Exception e){
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.setProcessId(processAll.getProcessInstanceId());
hiworkTodo.setProcessName(processAll.getPrcName());
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());
//2已完成时进入下一节点
hiworkTodo.setMultiInstance(0);
hiworkTodo.setIsTodo(String.valueOf(3));
hiworkTodoList.add(hiworkTodo);
return hiworkTodoList;
}
@NotNull
private List<HiworkTodo> getHiworkTodos(List<HiworkTodoAdd> hiworkTodoAddList) {
List<HiworkTodo> hiworkTodoList = new ArrayList<>();
@@ -130,7 +188,7 @@ public class HiworkTodoServiceImpl implements PushWorkflowIntegrationAPI {
String noticeTitle = processApprovalRecord.getTaskName() + "(" + loginUser.getRealname() + " " + date + ")";
hiworkTodo.setNoticeTitle(noticeTitle);
hiworkTodo.setProcessId(processApprovalRecord.getProcessInstanceId());
hiworkTodo.setProcessName(processApprovalRecord.getTaskName());
hiworkTodo.setProcessName(processApprovalRecord.getPrcName());
hiworkTodo.setProcessType(PROCESS_TYPE);
hiworkTodo.setTaskId(processApprovalRecord.getTaskId());
hiworkTodo.setTaskName(processApprovalRecord.getTaskName());
@@ -290,6 +290,9 @@ public class MyGlobalEventListener implements ActivitiEventListener {
log.info("taskEntity.getActivityName() = " + execution.getActivityName());
log.info("taskEntity.getDeploymentId() = " + execution.getDeploymentId());
log.info("taskEntity.getProcessDefinitionId() = " + execution.getProcessDefinitionId());
// 对接统一平台生成办结
PushWorkflowIntegrationAPI pushWorkflowIntegrationAPI = SpringContextUtil.getBean(PushWorkflowIntegrationAPI.class);
pushWorkflowIntegrationAPI.sendActivityComplete(processInstanceId);
}
private boolean isFirstNodeTask(ProcessApprovalRecord record) {