fix: 修复流程发起人ID信息错误问题。优化流程信息查询用户昵称改用通用用户服务的接口,提升查询效率。

This commit is contained in:
konbai
2023-06-04 23:12:06 +08:00
parent d9a168f550
commit 313884735b
4 changed files with 57 additions and 57 deletions

View File

@@ -38,10 +38,12 @@ public class WfTaskVo implements Serializable {
/** /**
* 部门名称 * 部门名称
*/ */
@Deprecated
private String deptName; private String deptName;
/** /**
* 流程发起人部门名称 * 流程发起人部门名称
*/ */
@Deprecated
private String startDeptName; private String startDeptName;
/** /**
* 任务执行人名称 * 任务执行人名称
@@ -50,7 +52,7 @@ public class WfTaskVo implements Serializable {
/** /**
* 流程发起人Id * 流程发起人Id
*/ */
private String startUserId; private Long startUserId;
/** /**
* 流程发起人名称 * 流程发起人名称
*/ */

View File

@@ -7,7 +7,7 @@ import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.ruoyi.common.core.domain.entity.SysDept; import com.ruoyi.common.core.domain.entity.SysDept;
import com.ruoyi.common.core.domain.entity.SysRole; import com.ruoyi.common.core.domain.entity.SysRole;
import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.service.UserService;
import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.JsonUtils; import com.ruoyi.common.utils.JsonUtils;
import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.StringUtils;
@@ -15,7 +15,6 @@ import com.ruoyi.flowable.common.constant.TaskConstants;
import com.ruoyi.flowable.factory.FlowServiceFactory; import com.ruoyi.flowable.factory.FlowServiceFactory;
import com.ruoyi.system.service.ISysDeptService; import com.ruoyi.system.service.ISysDeptService;
import com.ruoyi.system.service.ISysRoleService; import com.ruoyi.system.service.ISysRoleService;
import com.ruoyi.system.service.ISysUserService;
import com.ruoyi.workflow.domain.bo.WfTaskBo; import com.ruoyi.workflow.domain.bo.WfTaskBo;
import com.ruoyi.workflow.domain.vo.WfFormVo; import com.ruoyi.workflow.domain.vo.WfFormVo;
import com.ruoyi.workflow.domain.vo.WfTaskVo; import com.ruoyi.workflow.domain.vo.WfTaskVo;
@@ -45,7 +44,7 @@ import java.util.*;
public class WfInstanceServiceImpl extends FlowServiceFactory implements IWfInstanceService { public class WfInstanceServiceImpl extends FlowServiceFactory implements IWfInstanceService {
private final IWfDeployFormService deployFormService; private final IWfDeployFormService deployFormService;
private final ISysUserService userService; private final UserService userService;
private final ISysRoleService roleService; private final ISysRoleService roleService;
private final ISysDeptService deptService; private final ISysDeptService deptService;
@@ -143,10 +142,10 @@ public class WfInstanceServiceImpl extends FlowServiceFactory implements IWfInst
taskVo.setCreateTime(taskInstance.getStartTime()); taskVo.setCreateTime(taskInstance.getStartTime());
taskVo.setFinishTime(taskInstance.getEndTime()); taskVo.setFinishTime(taskInstance.getEndTime());
if (StringUtils.isNotBlank(taskInstance.getAssignee())) { if (StringUtils.isNotBlank(taskInstance.getAssignee())) {
SysUser user = userService.selectUserById(Long.parseLong(taskInstance.getAssignee())); Long userId = Long.parseLong(taskInstance.getAssignee());
taskVo.setAssigneeId(user.getUserId()); String nickName = userService.selectNickNameById(userId);
taskVo.setAssigneeName(user.getNickName()); taskVo.setAssigneeId(userId);
taskVo.setDeptName(user.getDept().getDeptName()); taskVo.setAssigneeName(nickName);
} }
// 展示审批人员 // 展示审批人员
List<HistoricIdentityLink> linksForTask = historyService.getHistoricIdentityLinksForTask(taskInstance.getId()); List<HistoricIdentityLink> linksForTask = historyService.getHistoricIdentityLinksForTask(taskInstance.getId());
@@ -154,8 +153,9 @@ public class WfInstanceServiceImpl extends FlowServiceFactory implements IWfInst
for (HistoricIdentityLink identityLink : linksForTask) { for (HistoricIdentityLink identityLink : linksForTask) {
if ("candidate".equals(identityLink.getType())) { if ("candidate".equals(identityLink.getType())) {
if (StringUtils.isNotBlank(identityLink.getUserId())) { if (StringUtils.isNotBlank(identityLink.getUserId())) {
SysUser user = userService.selectUserById(Long.parseLong(identityLink.getUserId())); Long userId = Long.parseLong(identityLink.getUserId());
stringBuilder.append(user.getNickName()).append(","); String nickName = userService.selectNickNameById(userId);
stringBuilder.append(nickName).append(",");
} }
if (StringUtils.isNotBlank(identityLink.getGroupId())) { if (StringUtils.isNotBlank(identityLink.getGroupId())) {
if (identityLink.getGroupId().startsWith(TaskConstants.ROLE_GROUP_PREFIX)) { if (identityLink.getGroupId().startsWith(TaskConstants.ROLE_GROUP_PREFIX)) {

View File

@@ -13,8 +13,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.domain.PageQuery; import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.entity.SysDept; import com.ruoyi.common.core.domain.entity.SysDept;
import com.ruoyi.common.core.domain.entity.SysRole; import com.ruoyi.common.core.domain.entity.SysRole;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.service.UserService;
import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.JsonUtils; import com.ruoyi.common.utils.JsonUtils;
@@ -32,7 +32,6 @@ import com.ruoyi.flowable.utils.ProcessUtils;
import com.ruoyi.flowable.utils.TaskUtils; import com.ruoyi.flowable.utils.TaskUtils;
import com.ruoyi.system.service.ISysDeptService; import com.ruoyi.system.service.ISysDeptService;
import com.ruoyi.system.service.ISysRoleService; import com.ruoyi.system.service.ISysRoleService;
import com.ruoyi.system.service.ISysUserService;
import com.ruoyi.workflow.domain.WfDeployForm; import com.ruoyi.workflow.domain.WfDeployForm;
import com.ruoyi.workflow.domain.vo.*; import com.ruoyi.workflow.domain.vo.*;
import com.ruoyi.workflow.mapper.WfDeployFormMapper; import com.ruoyi.workflow.mapper.WfDeployFormMapper;
@@ -73,7 +72,7 @@ import java.util.stream.Collectors;
public class WfProcessServiceImpl extends FlowServiceFactory implements IWfProcessService { public class WfProcessServiceImpl extends FlowServiceFactory implements IWfProcessService {
private final IWfTaskService wfTaskService; private final IWfTaskService wfTaskService;
private final ISysUserService userService; private final UserService userService;
private final ISysRoleService roleService; private final ISysRoleService roleService;
private final ISysDeptService deptService; private final ISysDeptService deptService;
private final WfDeployFormMapper deployFormMapper; private final WfDeployFormMapper deployFormMapper;
@@ -290,10 +289,10 @@ public class WfProcessServiceImpl extends FlowServiceFactory implements IWfProce
HistoricProcessInstance historicProcessInstance = historyService.createHistoricProcessInstanceQuery() HistoricProcessInstance historicProcessInstance = historyService.createHistoricProcessInstanceQuery()
.processInstanceId(task.getProcessInstanceId()) .processInstanceId(task.getProcessInstanceId())
.singleResult(); .singleResult();
SysUser startUser = userService.selectUserById(Long.parseLong(historicProcessInstance.getStartUserId())); Long userId = Long.parseLong(historicProcessInstance.getStartUserId());
flowTask.setStartUserId(startUser.getNickName()); String nickName = userService.selectNickNameById(userId);
flowTask.setStartUserName(startUser.getNickName()); flowTask.setStartUserId(userId);
flowTask.setStartDeptName(startUser.getDept().getDeptName()); flowTask.setStartUserName(nickName);
// 流程变量 // 流程变量
flowTask.setProcVars(task.getProcessVariables()); flowTask.setProcVars(task.getProcessVariables());
@@ -337,12 +336,10 @@ public class WfProcessServiceImpl extends FlowServiceFactory implements IWfProce
HistoricProcessInstance historicProcessInstance = historyService.createHistoricProcessInstanceQuery() HistoricProcessInstance historicProcessInstance = historyService.createHistoricProcessInstanceQuery()
.processInstanceId(task.getProcessInstanceId()) .processInstanceId(task.getProcessInstanceId())
.singleResult(); .singleResult();
SysUser startUser = userService.selectUserById(Long.parseLong(historicProcessInstance.getStartUserId())); Long userId = Long.parseLong(historicProcessInstance.getStartUserId());
taskVo.setStartUserId(startUser.getNickName()); String nickName = userService.selectNickNameById(userId);
taskVo.setStartUserName(startUser.getNickName()); taskVo.setStartUserId(userId);
taskVo.setStartDeptName(startUser.getDept().getDeptName()); taskVo.setStartUserName(nickName);
// 流程变量
taskVo.setProcVars(task.getProcessVariables());
taskVoList.add(taskVo); taskVoList.add(taskVo);
} }
@@ -385,10 +382,10 @@ public class WfProcessServiceImpl extends FlowServiceFactory implements IWfProce
HistoricProcessInstance historicProcessInstance = historyService.createHistoricProcessInstanceQuery() HistoricProcessInstance historicProcessInstance = historyService.createHistoricProcessInstanceQuery()
.processInstanceId(task.getProcessInstanceId()) .processInstanceId(task.getProcessInstanceId())
.singleResult(); .singleResult();
SysUser startUser = userService.selectUserById(Long.parseLong(historicProcessInstance.getStartUserId())); Long userId = Long.parseLong(historicProcessInstance.getStartUserId());
flowTask.setStartUserId(startUser.getNickName()); String nickName = userService.selectNickNameById(userId);
flowTask.setStartUserName(startUser.getNickName()); flowTask.setStartUserId(userId);
flowTask.setStartDeptName(startUser.getDept().getDeptName()); flowTask.setStartUserName(nickName);
flowList.add(flowTask); flowList.add(flowTask);
} }
@@ -429,10 +426,10 @@ public class WfProcessServiceImpl extends FlowServiceFactory implements IWfProce
HistoricProcessInstance historicProcessInstance = historyService.createHistoricProcessInstanceQuery() HistoricProcessInstance historicProcessInstance = historyService.createHistoricProcessInstanceQuery()
.processInstanceId(task.getProcessInstanceId()) .processInstanceId(task.getProcessInstanceId())
.singleResult(); .singleResult();
SysUser startUser = userService.selectUserById(Long.parseLong(historicProcessInstance.getStartUserId())); Long userId = Long.parseLong(historicProcessInstance.getStartUserId());
flowTask.setStartUserId(startUser.getNickName()); String nickName = userService.selectNickNameById(userId);
flowTask.setStartUserName(startUser.getNickName()); flowTask.setStartUserId(userId);
flowTask.setStartDeptName(startUser.getDept().getDeptName()); flowTask.setStartUserName(nickName);
flowList.add(flowTask); flowList.add(flowTask);
} }
@@ -479,10 +476,10 @@ public class WfProcessServiceImpl extends FlowServiceFactory implements IWfProce
HistoricProcessInstance historicProcessInstance = historyService.createHistoricProcessInstanceQuery() HistoricProcessInstance historicProcessInstance = historyService.createHistoricProcessInstanceQuery()
.processInstanceId(histTask.getProcessInstanceId()) .processInstanceId(histTask.getProcessInstanceId())
.singleResult(); .singleResult();
SysUser startUser = userService.selectUserById(Long.parseLong(historicProcessInstance.getStartUserId())); Long userId = Long.parseLong(historicProcessInstance.getStartUserId());
flowTask.setStartUserId(startUser.getNickName()); String nickName = userService.selectNickNameById(userId);
flowTask.setStartUserName(startUser.getNickName()); flowTask.setStartUserId(userId);
flowTask.setStartDeptName(startUser.getDept().getDeptName()); flowTask.setStartUserName(nickName);
// 流程变量 // 流程变量
flowTask.setProcVars(histTask.getProcessVariables()); flowTask.setProcVars(histTask.getProcessVariables());
@@ -535,10 +532,10 @@ public class WfProcessServiceImpl extends FlowServiceFactory implements IWfProce
HistoricProcessInstance historicProcessInstance = historyService.createHistoricProcessInstanceQuery() HistoricProcessInstance historicProcessInstance = historyService.createHistoricProcessInstanceQuery()
.processInstanceId(histTask.getProcessInstanceId()) .processInstanceId(histTask.getProcessInstanceId())
.singleResult(); .singleResult();
SysUser startUser = userService.selectUserById(Long.parseLong(historicProcessInstance.getStartUserId())); Long userId = Long.parseLong(historicProcessInstance.getStartUserId());
flowTask.setStartUserId(startUser.getNickName()); String nickName = userService.selectNickNameById(userId);
flowTask.setStartUserName(startUser.getNickName()); flowTask.setStartUserId(userId);
flowTask.setStartDeptName(startUser.getDept().getDeptName()); flowTask.setStartUserName(nickName);
// 流程变量 // 流程变量
flowTask.setProcVars(histTask.getProcessVariables()); flowTask.setProcVars(histTask.getProcessVariables());
@@ -891,17 +888,18 @@ public class WfProcessServiceImpl extends FlowServiceFactory implements IWfProce
if (BpmnXMLConstants.ELEMENT_EVENT_START.equals(activityInstance.getActivityType())) { if (BpmnXMLConstants.ELEMENT_EVENT_START.equals(activityInstance.getActivityType())) {
if (ObjectUtil.isNotNull(historicProcIns)) { if (ObjectUtil.isNotNull(historicProcIns)) {
Long userId = Long.parseLong(historicProcIns.getStartUserId()); Long userId = Long.parseLong(historicProcIns.getStartUserId());
SysUser user = userService.selectUserById(userId); String nickName = userService.selectNickNameById(userId);
if (user != null) { if (nickName != null) {
elementVo.setAssigneeId(user.getUserId()); elementVo.setAssigneeId(userId);
elementVo.setAssigneeName(user.getNickName()); elementVo.setAssigneeName(nickName);
} }
} }
} else if (BpmnXMLConstants.ELEMENT_TASK_USER.equals(activityInstance.getActivityType())) { } else if (BpmnXMLConstants.ELEMENT_TASK_USER.equals(activityInstance.getActivityType())) {
if (StringUtils.isNotBlank(activityInstance.getAssignee())) { if (StringUtils.isNotBlank(activityInstance.getAssignee())) {
SysUser user = userService.selectUserById(Long.parseLong(activityInstance.getAssignee())); Long userId = Long.parseLong(activityInstance.getAssignee());
elementVo.setAssigneeId(user.getUserId()); String nickName = userService.selectNickNameById(userId);
elementVo.setAssigneeName(user.getNickName()); elementVo.setAssigneeId(userId);
elementVo.setAssigneeName(nickName);
} }
// 展示审批人员 // 展示审批人员
List<HistoricIdentityLink> linksForTask = historyService.getHistoricIdentityLinksForTask(activityInstance.getTaskId()); List<HistoricIdentityLink> linksForTask = historyService.getHistoricIdentityLinksForTask(activityInstance.getTaskId());
@@ -909,8 +907,9 @@ public class WfProcessServiceImpl extends FlowServiceFactory implements IWfProce
for (HistoricIdentityLink identityLink : linksForTask) { for (HistoricIdentityLink identityLink : linksForTask) {
if ("candidate".equals(identityLink.getType())) { if ("candidate".equals(identityLink.getType())) {
if (StringUtils.isNotBlank(identityLink.getUserId())) { if (StringUtils.isNotBlank(identityLink.getUserId())) {
SysUser user = userService.selectUserById(Long.parseLong(identityLink.getUserId())); Long userId = Long.parseLong(identityLink.getUserId());
stringBuilder.append(user.getNickName()).append(","); String nickName = userService.selectNickNameById(userId);
stringBuilder.append(nickName).append(",");
} }
if (StringUtils.isNotBlank(identityLink.getGroupId())) { if (StringUtils.isNotBlank(identityLink.getGroupId())) {
if (identityLink.getGroupId().startsWith(TaskConstants.ROLE_GROUP_PREFIX)) { if (identityLink.getGroupId().startsWith(TaskConstants.ROLE_GROUP_PREFIX)) {

View File

@@ -4,7 +4,7 @@ import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.convert.Convert; import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.service.UserService;
import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.helper.LoginHelper; import com.ruoyi.common.helper.LoginHelper;
import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.StringUtils;
@@ -17,7 +17,6 @@ import com.ruoyi.flowable.flow.CustomProcessDiagramGenerator;
import com.ruoyi.flowable.flow.FlowableUtils; import com.ruoyi.flowable.flow.FlowableUtils;
import com.ruoyi.flowable.utils.ModelUtils; import com.ruoyi.flowable.utils.ModelUtils;
import com.ruoyi.flowable.utils.TaskUtils; import com.ruoyi.flowable.utils.TaskUtils;
import com.ruoyi.system.service.ISysUserService;
import com.ruoyi.workflow.domain.bo.WfTaskBo; import com.ruoyi.workflow.domain.bo.WfTaskBo;
import com.ruoyi.workflow.service.IWfCopyService; import com.ruoyi.workflow.service.IWfCopyService;
import com.ruoyi.workflow.service.IWfTaskService; import com.ruoyi.workflow.service.IWfTaskService;
@@ -56,7 +55,7 @@ import java.util.stream.Collectors;
@Slf4j @Slf4j
public class WfTaskServiceImpl extends FlowServiceFactory implements IWfTaskService { public class WfTaskServiceImpl extends FlowServiceFactory implements IWfTaskService {
private final ISysUserService sysUserService; private final UserService sysUserService;
private final IWfCopyService copyService; private final IWfCopyService copyService;
@@ -311,9 +310,9 @@ public class WfTaskServiceImpl extends FlowServiceFactory implements IWfTaskServ
} }
StringBuilder commentBuilder = new StringBuilder(LoginHelper.getNickName()) StringBuilder commentBuilder = new StringBuilder(LoginHelper.getNickName())
.append("->"); .append("->");
SysUser user = sysUserService.selectUserById(Long.parseLong(bo.getUserId())); String nickName = sysUserService.selectNickNameById(Long.parseLong(bo.getUserId()));
if (ObjectUtil.isNotNull(user)) { if (StringUtils.isNotBlank(nickName)) {
commentBuilder.append(user.getNickName()); commentBuilder.append(nickName);
} else { } else {
commentBuilder.append(bo.getUserId()); commentBuilder.append(bo.getUserId());
} }
@@ -350,9 +349,9 @@ public class WfTaskServiceImpl extends FlowServiceFactory implements IWfTaskServ
} }
StringBuilder commentBuilder = new StringBuilder(LoginHelper.getNickName()) StringBuilder commentBuilder = new StringBuilder(LoginHelper.getNickName())
.append("->"); .append("->");
SysUser user = sysUserService.selectUserById(Long.parseLong(bo.getUserId())); String nickName = sysUserService.selectNickNameById(Long.parseLong(bo.getUserId()));
if (ObjectUtil.isNotNull(user)) { if (StringUtils.isNotBlank(nickName)) {
commentBuilder.append(user.getNickName()); commentBuilder.append(nickName);
} else { } else {
commentBuilder.append(bo.getUserId()); commentBuilder.append(bo.getUserId());
} }