优化流程实例变量获取方式
- 新增 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.mapper.BaseMapperX;
|
||||||
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||||
import cn.iocoder.yudao.framework.mybatis.core.query.MPJLambdaWrapperX;
|
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.framework.tenant.core.context.TenantContextHolder;
|
||||||
import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance.*;
|
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.definition.BpmProcessDefinitionExtDO;
|
||||||
import cn.iocoder.yudao.module.bpm.dal.dataobject.task.BpmProcessInstanceExtDO;
|
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.Mapper;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList;
|
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList;
|
||||||
|
|
||||||
@ -113,4 +117,7 @@ public interface BpmProcessInstanceExtMapper extends BaseMapperX<BpmProcessInsta
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
List<BpmProcessInstanceResultStatusStatisticsGroupTimeVO> getProcessInstanceResultStatusStatisticsGroupTime(BpmProcessInstanceStatisticsReqVO pageReqVO);
|
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.BpmOARegularService;
|
||||||
import cn.iocoder.yudao.module.bpm.service.oa.BpmOASalaryService;
|
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.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.DeptApi;
|
||||||
import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO;
|
import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO;
|
||||||
import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
|
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
|
// 获得审批人User
|
||||||
AdminUserRespDTO examineUser = adminUserApi.getUser(userId).getCheckedData();
|
AdminUserRespDTO examineUser = adminUserApi.getUser(userId).getCheckedData();
|
||||||
@ -520,8 +522,9 @@ public class BpmTaskServiceImpl implements BpmTaskService {
|
|||||||
//根据审批人用户ID,获取审批人 担任的负责人的部门信息
|
//根据审批人用户ID,获取审批人 担任的负责人的部门信息
|
||||||
List<DeptRespDTO> deptRespDTOs = deptApi.getDeptByLeaderId(userId).getCheckedData();
|
List<DeptRespDTO> deptRespDTOs = deptApi.getDeptByLeaderId(userId).getCheckedData();
|
||||||
|
|
||||||
// 设置审批人所在部门的负责人
|
// 设置审批人所在部门的负责人和部门层级
|
||||||
paramMap.put("leader_id", examineDept.getLeaderUserId().toString());
|
paramMap.put("leader_id", examineDept.getLeaderUserId().toString());
|
||||||
|
paramMap.put("level", examineDept.getLevel().toString());
|
||||||
//遍历查找, 发起人的上级部门
|
//遍历查找, 发起人的上级部门
|
||||||
for (DeptRespDTO deptRespDTO : deptRespDTOs) {
|
for (DeptRespDTO deptRespDTO : deptRespDTOs) {
|
||||||
if (paramMap.get("dept_flag").toString().contains(deptRespDTO.getFlag())) {
|
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' );
|
GROUP BY name,DATE_FORMAT( create_time, '%Y-%m-%d' );
|
||||||
</select>
|
</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>
|
</mapper>
|
||||||
|
Loading…
Reference in New Issue
Block a user