diff --git a/ruoyi-system/src/main/java/com/ruoyi/workflow/domain/WfDeployForm.java b/ruoyi-system/src/main/java/com/ruoyi/workflow/domain/WfDeployForm.java index 949ff715..0c16d4a7 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/workflow/domain/WfDeployForm.java +++ b/ruoyi-system/src/main/java/com/ruoyi/workflow/domain/WfDeployForm.java @@ -29,6 +29,11 @@ public class WfDeployForm { */ private String nodeKey; + /** + * 表单名称 + */ + private String formName; + /** * 节点名称 */ diff --git a/ruoyi-system/src/main/java/com/ruoyi/workflow/domain/vo/WfDeployFormVo.java b/ruoyi-system/src/main/java/com/ruoyi/workflow/domain/vo/WfDeployFormVo.java index 229a2c5b..185d190e 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/workflow/domain/vo/WfDeployFormVo.java +++ b/ruoyi-system/src/main/java/com/ruoyi/workflow/domain/vo/WfDeployFormVo.java @@ -28,6 +28,11 @@ public class WfDeployFormVo { */ private String nodeKey; + /** + * 表单名称 + */ + private String formName; + /** * 节点名称 */ diff --git a/ruoyi-system/src/main/java/com/ruoyi/workflow/service/impl/WfDeployFormServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/workflow/service/impl/WfDeployFormServiceImpl.java index 754b8757..76b12e0b 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/workflow/service/impl/WfDeployFormServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/workflow/service/impl/WfDeployFormServiceImpl.java @@ -113,12 +113,7 @@ public class WfDeployFormServiceImpl implements IWfDeployFormService { * @return 部署表单关联对象。若无表单信息(formKey),则返回null */ private WfDeployForm buildDeployForm(String deployId, FlowNode node) { - String formKey = null; - if (node instanceof StartEvent) { - formKey = ((StartEvent) node).getFormKey(); - } else if (node instanceof UserTask) { - formKey = ((UserTask) node).getFormKey(); - } + String formKey = ModelUtils.getFormKey(node); if (StringUtils.isEmpty(formKey)) { return null; } @@ -129,9 +124,10 @@ public class WfDeployFormServiceImpl implements IWfDeployFormService { } WfDeployForm deployForm = new WfDeployForm(); deployForm.setDeployId(deployId); - deployForm.setNodeKey(node.getId()); - deployForm.setNodeName(node.getName()); deployForm.setFormKey(formKey); + deployForm.setNodeKey(node.getId()); + deployForm.setFormName(wfForm.getFormName()); + deployForm.setNodeName(node.getName()); deployForm.setContent(wfForm.getContent()); return deployForm; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/workflow/service/impl/WfProcessServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/workflow/service/impl/WfProcessServiceImpl.java index e58828ac..8e40b73a 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/workflow/service/impl/WfProcessServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/workflow/service/impl/WfProcessServiceImpl.java @@ -736,16 +736,19 @@ public class WfProcessServiceImpl extends FlowServiceFactory implements IWfProce variables = historicProcIns.getProcessVariables(); processFormKeys.add(formKey); } - // 兼容旧版数据,旧版此处查询可能出现多条 + // 非节点表单此处查询结果可能有多条,只获取第一条信息 List formInfoList = deployFormMapper.selectVoList(new LambdaQueryWrapper() .eq(WfDeployForm::getDeployId, deployId) .eq(WfDeployForm::getFormKey, formKey) .eq(localScope, WfDeployForm::getNodeKey, flowElement.getId())); - if (CollUtil.isNotEmpty(formInfoList)) { - WfDeployFormVo formInfo = formInfoList.get(0); + WfDeployFormVo formInfo = formInfoList.iterator().next(); + if (ObjectUtil.isNotNull(formInfo)) { + // 旧数据 formInfo.getFormName() 为 null + String formName = Optional.ofNullable(formInfo.getFormName()).orElse(StringUtils.EMPTY); + String title = localScope ? formName.concat("(" + flowElement.getName() + ")") : formName; FormConf formConf = JsonUtils.parseObject(formInfo.getContent(), FormConf.class); if (null != formConf) { - formConf.setTitle(flowElement.getName()); + formConf.setTitle(title); formConf.setDisabled(true); formConf.setFormBtns(false); ProcessFormUtils.fillFormData(formConf, variables);