update 新增获取部门负责人

This commit is contained in:
AprilWind 2024-12-02 19:47:50 +08:00
parent c58892a6bb
commit 557165b863
3 changed files with 33 additions and 2 deletions

View File

@ -21,6 +21,14 @@ public interface DeptService {
*/
String selectDeptNameByIds(String deptIds);
/**
* 根据部门ID查询部门负责人
*
* @param deptId 部门ID用于指定需要查询的部门
* @return 返回该部门的负责人ID
*/
Long selectDeptLeaderById(Long deptId);
/**
* 查询部门
*

View File

@ -11,10 +11,10 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.RequiredArgsConstructor;
import org.dromara.common.core.constant.CacheNames;
import org.dromara.common.core.constant.SystemConstants;
import org.dromara.common.core.domain.dto.DeptDTO;
import org.dromara.common.core.domain.dto.TaskAssigneeDTO;
import org.dromara.common.core.domain.model.TaskAssigneeBody;
import org.dromara.common.core.constant.SystemConstants;
import org.dromara.common.core.exception.ServiceException;
import org.dromara.common.core.service.DeptService;
import org.dromara.common.core.utils.*;
@ -181,6 +181,18 @@ public class SysDeptServiceImpl implements ISysDeptService, DeptService {
return String.join(StringUtils.SEPARATOR, list);
}
/**
* 根据部门ID查询部门负责人
*
* @param deptId 部门ID用于指定需要查询的部门
* @return 返回该部门的负责人ID
*/
@Override
public Long selectDeptLeaderById(Long deptId) {
SysDeptVo vo = SpringUtils.getAopProxy(this).selectDeptById(deptId);
return vo.getLeader();
}
/**
* 查询部门
*

View File

@ -2,11 +2,16 @@ package org.dromara.workflow.listener;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.dromara.common.core.service.DeptService;
import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.warm.flow.core.dto.FlowParams;
import org.dromara.warm.flow.core.listener.Listener;
import org.dromara.warm.flow.core.listener.ListenerVariable;
import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.Map;
/**
* 流程启动监听器用于处理流程开始时的用户信息和权限设置
* <p>
@ -22,6 +27,8 @@ import org.springframework.stereotype.Component;
@Slf4j
public class WorkflowStartListener implements Listener {
private final DeptService deptService;
/**
* 全局开始监听器用于在流程开始时设置当前办理人的信息和权限
* <p>
@ -34,8 +41,12 @@ public class WorkflowStartListener implements Listener {
@Override
public void notify(ListenerVariable listenerVariable) {
log.info("流程启动监听器");
// 工作流内置参数
FlowParams flowParams = listenerVariable.getFlowParams();
// 获取当前部门的负责人
Map<String, Object> variable = new HashMap<>();
Long leader = deptService.selectDeptLeaderById(LoginHelper.getDeptId());
variable.put("deptLeader", leader);
flowParams.variable(variable);
log.info("流程启动监听器结束;{}", "开启流程完成");
}