diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/task/BpmProcessInstanceExtMapper.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/task/BpmProcessInstanceExtMapper.java index bd1b3a53..e8c4b00d 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/task/BpmProcessInstanceExtMapper.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/task/BpmProcessInstanceExtMapper.java @@ -4,14 +4,18 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.iocoder.yudao.framework.mybatis.core.query.MPJLambdaWrapperX; +import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore; import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder; import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance.*; import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmProcessDefinitionExtDO; import cn.iocoder.yudao.module.bpm.dal.dataobject.task.BpmProcessInstanceExtDO; +import cn.iocoder.yudao.module.bpm.service.task.dto.ProcessInstanceVariablesDTO; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; import java.util.Arrays; import java.util.List; +import java.util.Map; import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList; @@ -113,4 +117,7 @@ public interface BpmProcessInstanceExtMapper extends BaseMapperX getProcessInstanceResultStatusStatisticsGroupTime(BpmProcessInstanceStatisticsReqVO pageReqVO); + + @TenantIgnore + List selectFormVariables(@Param("processInstanceId") String processInstanceId); } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskServiceImpl.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskServiceImpl.java index 08c8dfc6..3207f91e 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskServiceImpl.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskServiceImpl.java @@ -33,6 +33,7 @@ import cn.iocoder.yudao.module.bpm.service.oa.BpmOAEntryService; import cn.iocoder.yudao.module.bpm.service.oa.BpmOARegularService; import cn.iocoder.yudao.module.bpm.service.oa.BpmOASalaryService; import cn.iocoder.yudao.module.bpm.service.oa.BpmOASealService; +import cn.iocoder.yudao.module.bpm.service.task.dto.ProcessInstanceVariablesDTO; import cn.iocoder.yudao.module.system.api.dept.DeptApi; import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO; import cn.iocoder.yudao.module.system.api.user.AdminUserApi; @@ -499,7 +500,8 @@ public class BpmTaskServiceImpl implements BpmTaskService { * 判定流程的走向,这里是流程审核节点(就是流程设计中的任意审核节点) * 根据当前审核人的岗位判定流程走向 */ - Map paramMap = processInstanceExtMapper.selectOne(BpmProcessInstanceExtDO::getProcessInstanceId, instance.getProcessInstanceId()).getFormVariables(); + List variables = processInstanceExtMapper.selectFormVariables(instance.getProcessInstanceId()); + Map paramMap = variables.stream().collect(Collectors.toMap(ProcessInstanceVariablesDTO::getName, ProcessInstanceVariablesDTO::getValue)); // 获得审批人User AdminUserRespDTO examineUser = adminUserApi.getUser(userId).getCheckedData(); @@ -520,8 +522,9 @@ public class BpmTaskServiceImpl implements BpmTaskService { //根据审批人用户ID,获取审批人 担任的负责人的部门信息 List deptRespDTOs = deptApi.getDeptByLeaderId(userId).getCheckedData(); - // 设置审批人所在部门的负责人 + // 设置审批人所在部门的负责人和部门层级 paramMap.put("leader_id", examineDept.getLeaderUserId().toString()); + paramMap.put("level", examineDept.getLevel().toString()); //遍历查找, 发起人的上级部门 for (DeptRespDTO deptRespDTO : deptRespDTOs) { if (paramMap.get("dept_flag").toString().contains(deptRespDTO.getFlag())) { diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/dto/ProcessInstanceVariablesDTO.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/dto/ProcessInstanceVariablesDTO.java new file mode 100644 index 00000000..e1dad337 --- /dev/null +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/dto/ProcessInstanceVariablesDTO.java @@ -0,0 +1,15 @@ +package cn.iocoder.yudao.module.bpm.service.task.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Schema(description = "流程Variables Request VO") +@Data +public class ProcessInstanceVariablesDTO { + + @Schema(description = "流程变量的key") + private String name; + + @Schema(description = "流程变量的值") + private String value; +} diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/resources/mapper/task/BpmProcessInstanceExtMapper.xml b/yudao-module-bpm/yudao-module-bpm-biz/src/main/resources/mapper/task/BpmProcessInstanceExtMapper.xml index 95b4ddf7..f260a1c1 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/resources/mapper/task/BpmProcessInstanceExtMapper.xml +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/resources/mapper/task/BpmProcessInstanceExtMapper.xml @@ -106,5 +106,12 @@ GROUP BY name,DATE_FORMAT( create_time, '%Y-%m-%d' ); +