Browse Source

feat:解析xml数据,根据当前任务节点得到下一任务节点方法

xuezizhuo 1 year ago
parent
commit
906037a7d5

+ 22 - 0
ruoyi-common/src/main/java/com/ruoyi/common/utils/bpm/XmlDataParserUtils.java

@@ -136,4 +136,26 @@ public class XmlDataParserUtils {
         return data;
     }
 
+    /**
+     * 获取下一节点key
+     * @param xmlData xml内容
+     * @param taskNodeKey 当前节点key
+     * @return
+     */
+    public static String getNextNodeKey(String xmlData, String taskNodeKey){
+        //下一节点key
+        String nextTaskNodeKey = null;
+        Document document= XmlUtil.parseXml(xmlData);
+        //获得XML文档根节点
+        Element elementG=XmlUtil.getRootElement(document);
+        //获取所有序列流(顺序),循环得到开始节点的下一个节点
+        NodeList elementsByTagName = elementG.getElementsByTagName("bpmn:sequenceFlow");
+        for (int i = 0; i < elementsByTagName.getLength(); i++) {
+            if(taskNodeKey.equals(elementsByTagName.item(i).getAttributes().getNamedItem("sourceRef").getNodeValue())){
+                nextTaskNodeKey = elementsByTagName.item(i).getAttributes().getNamedItem("targetRef").getNodeValue();
+            }
+        }
+        return nextTaskNodeKey;
+    }
+
 }