统一待办集成修改

This commit is contained in:
梁琦涛
2024-02-02 15:42:20 +08:00
parent 7e21272dca
commit 1d1d6bb0eb
@@ -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<HiworkTodo> 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<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.setMultiInstance(1);
}
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)){
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<HiworkTodo> 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<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.setMultiInstance(1);
}
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)){
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);
}
}