提交 2c3a60f6 authored 作者: hzh's avatar hzh

代码优化

上级 1e69d4dc
......@@ -15,4 +15,12 @@ public interface RemoteDeptService {
*/
String selectDeptNameByIds(String deptIds);
/**
* 获取部门负责人id
*
* @param userId 用户id
* @return 负责人id
*/
Long selectLeaderIdByUserId(Long userId);
}
package org.dromara.system.dubbo;
import org.dromara.system.api.RemoteDeptService;
import org.dromara.system.service.ISysDeptService;
import lombok.RequiredArgsConstructor;
import org.apache.dubbo.config.annotation.DubboService;
import org.dromara.system.api.RemoteDeptService;
import org.dromara.system.domain.vo.SysDeptVo;
import org.dromara.system.domain.vo.SysUserVo;
import org.dromara.system.service.ISysDeptService;
import org.dromara.system.service.ISysUserService;
import org.springframework.stereotype.Service;
/**
......@@ -17,6 +20,7 @@ import org.springframework.stereotype.Service;
public class RemoteDeptServiceImpl implements RemoteDeptService {
private final ISysDeptService sysDeptService;
private final ISysUserService userService;
/**
* 通过部门ID查询部门名称
......@@ -28,4 +32,21 @@ public class RemoteDeptServiceImpl implements RemoteDeptService {
public String selectDeptNameByIds(String deptIds) {
return sysDeptService.selectDeptNameByIds(deptIds);
}
/**
* 获取部门负责人id
*
* @param userId 用户id
* @return 负责人id
*/
@Override
public Long selectLeaderIdByUserId(Long userId) {
SysUserVo user = userService.selectUserById(userId);
if (user.getDeptId() == null) {
return null;
}
//获取部门
SysDeptVo dept = sysDeptService.selectDeptById(user.getDeptId());
return dept.getLeader();
}
}
package org.dromara.workflow.flowable.listener;
import org.dromara.system.api.RemoteDeptService;
import org.flowable.task.service.delegate.DelegateTask;
import org.flowable.task.service.delegate.TaskListener;
import org.springframework.stereotype.Component;
import java.util.Objects;
@Component
public class DynamicAssigneeListener implements TaskListener {
private RemoteDeptService remoteDeptService;
@Override
public void notify(DelegateTask delegateTask) {
// 获取申请人ID(从流程变量中获取)
Long applicantId = (Long) delegateTask.getVariable("applicantId");
// 调用服务获取审批人列表
Long approveId = remoteDeptService.selectLeaderIdByUserId(applicantId);
// 设置候选用户
delegateTask.addCandidateUser(Objects.isNull(approveId) ? null : approveId.toString());
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论