优化流程实例变量获取方式
- 新增 selectFormVariables 方法,直接获取流程实例变量 - 修改 getProcessInstanceExtDO 方法中的变量获取逻辑 - 优化代码结构,提高可维护性
This commit is contained in:
parent
549e13267c
commit
51bb4c20a0
@ -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<BpmProcessInsta
|
||||
* @return
|
||||
*/
|
||||
List<BpmProcessInstanceResultStatusStatisticsGroupTimeVO> getProcessInstanceResultStatusStatisticsGroupTime(BpmProcessInstanceStatisticsReqVO pageReqVO);
|
||||
|
||||
@TenantIgnore
|
||||
List<ProcessInstanceVariablesDTO> selectFormVariables(@Param("processInstanceId") String processInstanceId);
|
||||
}
|
||||
|
@ -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<String, Object> paramMap = processInstanceExtMapper.selectOne(BpmProcessInstanceExtDO::getProcessInstanceId, instance.getProcessInstanceId()).getFormVariables();
|
||||
List<ProcessInstanceVariablesDTO> variables = processInstanceExtMapper.selectFormVariables(instance.getProcessInstanceId());
|
||||
Map<String, Object> 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<DeptRespDTO> 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())) {
|
||||
|
@ -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;
|
||||
}
|
@ -106,5 +106,12 @@
|
||||
GROUP BY name,DATE_FORMAT( create_time, '%Y-%m-%d' );
|
||||
</select>
|
||||
|
||||
<select id="selectFormVariables" resultType="cn.iocoder.yudao.module.bpm.service.task.dto.ProcessInstanceVariablesDTO">
|
||||
SELECT
|
||||
NAME_ AS name,
|
||||
TEXT_ AS value
|
||||
FROM act_ru_variable
|
||||
WHERE PROC_INST_ID_ = #{processInstanceId}
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
Loading…
Reference in New Issue
Block a user