From a73c65eae975824bd59de8d6f19d383f5636840a Mon Sep 17 00:00:00 2001 From: gssong <1742057357@qq.com> Date: 星期六, 06 四月 2024 11:14:27 +0800 Subject: [PATCH] fix 修改已办任务查询数据错误 --- ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/utils/WorkflowUtils.java | 49 +++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 41 insertions(+), 8 deletions(-) diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/utils/WorkflowUtils.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/utils/WorkflowUtils.java index 96a5089..489d14d 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/utils/WorkflowUtils.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/utils/WorkflowUtils.java @@ -23,13 +23,10 @@ import org.dromara.workflow.common.enums.TaskStatusEnum; import org.dromara.workflow.domain.ActHiProcinst; import org.dromara.workflow.domain.ActHiTaskinst; -import org.dromara.workflow.domain.vo.MultiInstanceVo; -import org.dromara.workflow.domain.vo.ParticipantVo; -import org.dromara.workflow.domain.vo.ProcessInstanceVo; +import org.dromara.workflow.domain.vo.*; import org.dromara.workflow.flowable.cmd.UpdateHiTaskInstCmd; import org.dromara.workflow.mapper.ActHiTaskinstMapper; -import org.dromara.workflow.service.IActHiProcinstService; -import org.dromara.workflow.service.IWorkflowUserService; +import org.dromara.workflow.service.*; import org.flowable.bpmn.model.BpmnModel; import org.flowable.bpmn.model.FlowNode; import org.flowable.common.engine.api.delegate.Expression; @@ -44,7 +41,7 @@ import java.util.*; -import static org.dromara.workflow.common.constant.FlowConstant.PROCESS_INSTANCE_VO; +import static org.dromara.workflow.common.constant.FlowConstant.*; /** * 宸ヤ綔娴佸伐鍏� @@ -58,6 +55,8 @@ private static final IWorkflowUserService WORKFLOW_USER_SERVICE = SpringUtils.getBean(IWorkflowUserService.class); private static final IActHiProcinstService ACT_HI_PROCINST_SERVICE = SpringUtils.getBean(IActHiProcinstService.class); private static final ActHiTaskinstMapper ACT_HI_TASKINST_MAPPER = SpringUtils.getBean(ActHiTaskinstMapper.class); + private static final IWfDefinitionConfigService I_WF_DEFINITION_CONFIG_SERVICE = SpringUtils.getBean(IWfDefinitionConfigService.class); + private static final IWfFormManageService I_WF_FORM_MANAGE_SERVICE = SpringUtils.getBean(IWfFormManageService.class); /** * 鍒涘缓涓�涓柊浠诲姟 @@ -241,7 +240,7 @@ * @param businessKey 涓氬姟id */ public static void setProcessInstanceVo(Object obj, String businessKey) { - if (StringUtils.isBlank(businessKey)) { + if (StringUtils.isBlank(businessKey) || obj == null) { return; } ActHiProcinst actHiProcinst = ACT_HI_PROCINST_SERVICE.selectByBusinessKey(businessKey); @@ -264,7 +263,7 @@ * @param fieldName 涓婚敭灞炴�у悕绉� */ public static void setProcessInstanceListVo(Object obj, List<String> idList, String fieldName) { - if (CollUtil.isEmpty(idList)) { + if (CollUtil.isEmpty(idList) || obj == null) { return; } List<ActHiProcinst> actHiProcinstList = ACT_HI_PROCINST_SERVICE.selectByBusinessKeyIn(idList); @@ -294,6 +293,40 @@ } /** + * 璁剧疆娴佺▼娴佺▼瀹氫箟閰嶇疆 + * + * @param obj 涓氬姟瀵硅薄 + * @param idList 娴佺▼瀹氫箟id + * @param fieldName 娴佺▼瀹氫箟ID灞炴�у悕绉� + */ + public static void setWfDefinitionConfigVo(Object obj, List<String> idList, String fieldName) { + if (CollUtil.isEmpty(idList) || obj == null) { + return; + } + List<WfDefinitionConfigVo> wfDefinitionConfigVoList = I_WF_DEFINITION_CONFIG_SERVICE.queryList(idList); + if (CollUtil.isNotEmpty(wfDefinitionConfigVoList)) { + List<Long> formIds = StreamUtils.toList(wfDefinitionConfigVoList, WfDefinitionConfigVo::getFormId); + List<WfFormManageVo> wfFormManageVos = I_WF_FORM_MANAGE_SERVICE.queryByIds(formIds); + if (CollUtil.isNotEmpty(wfFormManageVos)) { + for (WfDefinitionConfigVo wfDefinitionConfigVo : wfDefinitionConfigVoList) { + wfFormManageVos.stream().filter(e -> ObjectUtil.equals(wfDefinitionConfigVo.getFormId(), e.getId())).findFirst().ifPresent(wfDefinitionConfigVo::setWfFormManageVo); + } + } + } + if (obj instanceof Collection<?> collection) { + for (Object o : collection) { + String fieldValue = ReflectUtils.invokeGetter(o, fieldName).toString(); + if (!CollUtil.isEmpty(wfDefinitionConfigVoList)) { + wfDefinitionConfigVoList.stream().filter(e -> e.getDefinitionId().equals(fieldValue)).findFirst().ifPresent(e -> { + ReflectUtils.invokeSetter(o, WF_DEFINITION_CONFIG_VO, e); + }); + } + } + } + } + + + /** * 鍙戦�佹秷鎭� * * @param list 浠诲姟 -- Gitblit v1.9.3