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 b3d6d886..159887f9 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 @@ -1,6 +1,7 @@ package com.jero.modules.docking.hiwork.service.impl; import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.jero.common.api.PushWorkflowIntegrationAPI; import com.jero.common.api.dto.message.HiworkTodoAdd; @@ -25,6 +26,7 @@ import org.apache.shiro.SecurityUtils; import org.jetbrains.annotations.NotNull; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.web.client.RestTemplate; import javax.annotation.Resource; import java.text.SimpleDateFormat; @@ -53,7 +55,13 @@ public class HiworkTodoServiceImpl implements PushWorkflowIntegrationAPI { private ProcessNodeService processNodeService; @Resource private ProcessAllService processAllService; + @Resource + private RestTemplate restTemplate; + @Value("${hiwork.ip}") + private String ip; + @Value("${hiwork.todoUrl}") + private String todoUrl; @Value("${hiwork.isWorkflow}") private boolean isWorkflow; @Value("${hiwork.sysCode}") @@ -82,7 +90,12 @@ public class HiworkTodoServiceImpl implements PushWorkflowIntegrationAPI { List hiworkTodoList = getHiworkTodos(hiworkTodoAddList); log.info("统一待办推送入参" + JSON.toJSONString(hiworkTodoList)); // 远程调用 - hiworkPostUtil.postTodo(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); } @@ -98,64 +111,69 @@ public class HiworkTodoServiceImpl implements PushWorkflowIntegrationAPI { if(Objects.isNull(processApprovalRecord)){ continue; } - - HiworkTodo hiworkTodo = new HiworkTodo(); - hiworkTodo.setSysCode(hiworkSysCode); - LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - String date = new SimpleDateFormat("yyyy年MM月dd日").format(new Date()); - String noticeTitle = processApprovalRecord.getTaskName() + "(" + loginUser.getUsername() + date + ")"; - hiworkTodo.setNoticeTitle(noticeTitle); - hiworkTodo.setProcessId(processApprovalRecord.getProcessInstanceId()); - hiworkTodo.setProcessName(processApprovalRecord.getTaskName()); - 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.setMultiInstance(1); - } - 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)){ - SysUser sysUser = sysUserService.getById(processAll.getCreateUserId()); - if(!Objects.isNull(sysUser)){ - hiworkTodo.setCreateUserCode(sysUser.getUsername()); - hiworkTodo.setCreateUserName(sysUser.getRealname()); - } - hiworkTodo.setDueTime(processAll.getDueTime().getTime()); - hiworkTodo.setBid(processAll.getProjectId()); - String url = hiworkFontUrl.replace("{projectId}",processAll.getProjectId()) - .replace("{taskName}",processApprovalRecord.getTaskName()) - .replace("{taskId}",processApprovalRecord.getTaskId()) - .replace("{processInstanceId}",processApprovalRecord.getProcessInstanceId()) - .replace("{nodeId}",processApprovalRecord.getNodeId()); - // 跳转链接 - hiworkTodo.setBusinessLink(url.replace("{url}", Objects.requireNonNull(ProcessTypeEnum.getFontReturnUrlPc(processAll.getPrcType())))); - // APP跳转链接 - hiworkTodo.setAppBusinessLink(url.replace("{url}", Objects.requireNonNull(ProcessTypeEnum.getFontReturnUrlPc(processAll.getPrcType())))); - } - 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()); - hiworkTodo.setIsTodo(String.valueOf(processApprovalRecord.getFinishFlag())); - hiworkTodoList.add(hiworkTodo); + getObj(hiworkTodoList, processDefinitionId, processApprovalRecord); } 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 = new SimpleDateFormat("yyyy年MM月dd日").format(new Date()); + String noticeTitle = processApprovalRecord.getTaskName() + "(" + loginUser.getUsername() + date + ")"; + hiworkTodo.setNoticeTitle(noticeTitle); + hiworkTodo.setProcessId(processApprovalRecord.getProcessInstanceId()); + hiworkTodo.setProcessName(processApprovalRecord.getTaskName()); + 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.setMultiInstance(1); + } + 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)){ + 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.replace("{projectId}",processAll.getProjectId()) + .replace("{taskName}",processApprovalRecord.getTaskName()) + .replace("{taskId}",processApprovalRecord.getTaskId()) + .replace("{processInstanceId}",processApprovalRecord.getProcessInstanceId()) + .replace("{nodeId}",processApprovalRecord.getNodeId()); + // 跳转链接 + hiworkTodo.setBusinessLink(url.replace("{url}", Objects.requireNonNull(ProcessTypeEnum.getFontReturnUrlPc(processAll.getPrcType())))); + // APP跳转链接 + hiworkTodo.setAppBusinessLink(url.replace("{url}", Objects.requireNonNull(ProcessTypeEnum.getFontReturnUrlPc(processAll.getPrcType())))); + } + 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()); + hiworkTodo.setIsTodo(String.valueOf(processApprovalRecord.getFinishFlag())); + hiworkTodoList.add(hiworkTodo); + } }