From 6f5a368c86c3818b968ad1055f5215f86c989084 Mon Sep 17 00:00:00 2001 From: gssong <1742057357@qq.com> Date: 星期四, 21 三月 2024 21:02:16 +0800 Subject: [PATCH] add 添加流程表单配置 --- ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/utils/WorkflowUtils.java | 33 +++++++++++++++++++++++++++++++-- 1 files changed, 31 insertions(+), 2 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..faedab0 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 @@ -26,9 +26,11 @@ 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.WfFormDefinitionVo; import org.dromara.workflow.flowable.cmd.UpdateHiTaskInstCmd; import org.dromara.workflow.mapper.ActHiTaskinstMapper; import org.dromara.workflow.service.IActHiProcinstService; +import org.dromara.workflow.service.IWfFormDefinitionService; import org.dromara.workflow.service.IWorkflowUserService; import org.flowable.bpmn.model.BpmnModel; import org.flowable.bpmn.model.FlowNode; @@ -45,6 +47,7 @@ import java.util.*; import static org.dromara.workflow.common.constant.FlowConstant.PROCESS_INSTANCE_VO; +import static org.dromara.workflow.common.constant.FlowConstant.WF_FORM_DEFINITION_VO; /** * 宸ヤ綔娴佸伐鍏� @@ -58,6 +61,7 @@ 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 IWfFormDefinitionService I_WF_FORM_DEFINITION_SERVICE = SpringUtils.getBean(IWfFormDefinitionService.class); /** * 鍒涘缓涓�涓柊浠诲姟 @@ -241,7 +245,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 +268,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 +298,31 @@ } /** + * 璁剧疆娴佺▼琛ㄥ崟閰嶇疆 + * + * @param obj 涓氬姟瀵硅薄 + * @param idList 娴佺▼瀹氫箟id + * @param fieldName 娴佺▼瀹氫箟ID灞炴�у悕绉� + */ + public static void setWfFormDefinitionVo(Object obj, List<String> idList, String fieldName) { + if (CollUtil.isEmpty(idList) || obj == null) { + return; + } + List<WfFormDefinitionVo> wfFormDefinitionVoList = I_WF_FORM_DEFINITION_SERVICE.queryList(idList); + if (obj instanceof Collection<?> collection) { + for (Object o : collection) { + String fieldValue = ReflectUtils.invokeGetter(o, fieldName).toString(); + if (!CollUtil.isEmpty(wfFormDefinitionVoList)) { + wfFormDefinitionVoList.stream().filter(e -> e.getDefinitionId().equals(fieldValue)).findFirst().ifPresent(e -> { + ReflectUtils.invokeSetter(o, WF_FORM_DEFINITION_VO, BeanUtil.toBean(e, WfFormDefinitionVo.class)); + }); + } + } + } + } + + + /** * 鍙戦�佹秷鎭� * * @param list 浠诲姟 -- Gitblit v1.9.3