241 Star 2.9K Fork 615

GVPaizuda/flowlong

 / 详情

流程设计器生成json添加childNode节点时候没有将nodeKey的生成,导致报错com.aizuda.bpm.engine.exception.FlowLongException: There are duplicate node keys present

已完成
创建于  
2024-07-06 17:44

该问题是怎么引起的?

重现步骤

报错信息

评论 (2)

tiger 创建了任务

默认从flowlong-designer中复制的json中没有nodeKey,可以取巧一下,修改一下源码:ProcessModel#buildParentNode添加逻辑:

public void buildParentNode(NodeModel rootNode) {
        if (rootNode.getNodeKey() == null) {
            rootNode.setNodeKey(rootNode.getNodeName());
        }
        List<ConditionNode> conditionNodes = rootNode.getConditionNodes();
        if (null != conditionNodes) {
            for (ConditionNode conditionNode : conditionNodes) {
                NodeModel conditionChildNode = conditionNode.getChildNode();
                if (null != conditionChildNode) {
                    conditionChildNode.setParentNode(rootNode);
                    this.buildParentNode(conditionChildNode);
                }
            }
        }
        List<NodeModel> parallelNodes = rootNode.getParallelNodes();
        if (null != parallelNodes) {
            for (NodeModel nodeModel : parallelNodes) {
                nodeModel.setParentNode(rootNode);
                this.buildParentNode(nodeModel);
            }
        }
        NodeModel childNode = rootNode.getChildNode();
        if (null != childNode) {
            childNode.setParentNode(rootNode);
            this.buildParentNode(childNode);
        }
    }

开源设计器已经支持了 NodeKey 自动生成 https://gitee.com/flowlong/flowlong-designer

开源设计覆盖不全,后续类似问题自己解决

青苗 任务状态待办的 修改为已完成

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(3)
12260 jobob 1695284587 2019546 tiger angel 1578964417
Java
1
https://gitee.com/aizuda/flowlong.git
git@gitee.com:aizuda/flowlong.git
aizuda
flowlong
flowlong

搜索帮助

Cb406eda 1850385 E526c682 1850385