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 9860a660..9a372192 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 @@ -19,5 +19,5 @@ public interface PushWorkflowIntegrationAPI { **/ void sendTodoTask(List hiworkTodoAddList); - void sendActivityComplete(String processInstanceId); + void sendActivityComplete(List 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 20edd1ce..c1f65ee9 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 @@ -91,7 +91,7 @@ public class HiworkTodoServiceImpl implements PushWorkflowIntegrationAPI { throw new JeroBootException(ResultCommon.EMPTY_COMMON, "hiworkTodoAddList"); } try { - List hiworkTodoList = getHiworkTodos(hiworkTodoAddList); + List 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 hiworkTodoAddList) { if(!isWorkflow){ return; } - ProcessAll processAll = processAllService.getByProcessInstanceId(processInstanceId); try { - List hiworkTodoList = getHiworkTodos(processAll); + List 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 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.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 getHiworkTodos(List hiworkTodoAddList) { + private List getHiworkTodos(List hiworkTodoAddList, boolean b) { List 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 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 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 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 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 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); - } } 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 6dbcb90e..7de719c8 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 @@ -263,6 +263,9 @@ public class MyGlobalEventListener implements ActivitiEventListener { hiworkTodoAdd.setProcessDefinitionId(processDefinitionId); list.add(hiworkTodoAdd); pushWorkflowIntegrationAPI.sendTodoTask(list); + + // 对接统一平台生成办结 + pushWorkflowIntegrationAPI.sendActivityComplete(list); } private void activityComplete(ActivitiEvent event) { @@ -290,9 +293,6 @@ 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) {