diff --git a/laws-base/laws-base-core/src/main/java/com/jero/common/api/PushWorkflowIntegrationAPI.java b/laws-base/laws-base-core/src/main/java/com/jero/common/api/PushWorkflowIntegrationAPI.java index 0322b60f..9860a660 100644 --- a/laws-base/laws-base-core/src/main/java/com/jero/common/api/PushWorkflowIntegrationAPI.java +++ b/laws-base/laws-base-core/src/main/java/com/jero/common/api/PushWorkflowIntegrationAPI.java @@ -18,4 +18,6 @@ public interface PushWorkflowIntegrationAPI { * @Description: 统一待办集成 **/ void sendTodoTask(List hiworkTodoAddList); + + void sendActivityComplete(String processInstanceId); } diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/impl/HiworkTodoServiceImpl.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/impl/HiworkTodoServiceImpl.java index 2b86624c..bb90d71d 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/impl/HiworkTodoServiceImpl.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/impl/HiworkTodoServiceImpl.java @@ -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 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 getHiworkTodos(ProcessAll processAll) { + List 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 getHiworkTodos(List hiworkTodoAddList) { List 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()); diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/listener/MyGlobalEventListener.java b/laws-modules/src/main/java/com/jero/modules/activiti/listener/MyGlobalEventListener.java index 4708ba70..6dbcb90e 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/listener/MyGlobalEventListener.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/listener/MyGlobalEventListener.java @@ -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) {