Browse Source

使用LinkedHashMap修正任务节点的获取顺序

buzhanyi 2 years atrás
parent
commit
3126b8313d

+ 13 - 22
common/common-flow/src/main/java/com/ankaibei/workFlow/common/flow/controller/FlowOperationController.java

@@ -73,6 +73,7 @@ import java.nio.charset.StandardCharsets;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.HashSet;
 import java.util.LinkedHashMap;
 import java.util.LinkedHashSet;
@@ -724,7 +725,7 @@ public class FlowOperationController {
      * @return 流程图。
      */
     @GetMapping("/viewProcessBpmnS")
-    public ResponseResult<LinkedHashMap<String, List<String>>> viewProcessBpmnS(@RequestParam String processDefinitionId, @RequestParam String processInstanceId) throws IOException {
+    public ResponseResult viewProcessBpmnS(@RequestParam String processDefinitionId, @RequestParam String processInstanceId) throws IOException {
         BpmnGetElement getElement = new BpmnGetElement();
         BpmnXMLConverter converter = new BpmnXMLConverter();
         BpmnModel bpmnModel = flowApiService.getBpmnModelByDefinitionId(processDefinitionId);
@@ -746,17 +747,16 @@ public class FlowOperationController {
         //已完成的任务
         List<String> finishedTaskList = new ArrayList<>();
         if (finishedTaskSplit.length > 0) {
-            for (int i = 0; i < finishedTaskSplit.length; i++) {
-                finishedTaskList.add(finishedTaskSplit[i]);
-            }
+            finishedTaskList.addAll(Arrays.asList(finishedTaskSplit));
         }
 
         //未完成的任务
         List<String> unfinishedTaskList = new ArrayList<>();
         if (unfinishedTaskSplit.length > 0) {
-            for (int i = 0; i < unfinishedTaskSplit.length; i++) {
-                unfinishedTaskList.add(unfinishedTaskSplit[i]);
-            }
+            unfinishedTaskList.addAll(Arrays.asList(unfinishedTaskSplit));
+        }
+        for (FlowTaskComment taskComment : flowTaskCommentList) {
+            System.err.println("**已执行Key:" + taskComment.getTaskKey() + ",:" + taskComment.getTaskName());
         }
         //转换进行统计
         Set<String> strings = userTasks.keySet();
@@ -778,27 +778,18 @@ public class FlowOperationController {
                 }
             }
         }
-        for (int o = 0; o < stringsList.size(); o++) {
-            for (int i = 0; i < unfinishedTaskList.size(); i++) {
-                if (unfinishedTaskList.get(i).contains(userTasks.get(stringsList.get(o)))) {
+
+        for (String value : stringsList) {
+            for (String s : unfinishedTaskList) {
+                if (s.contains(userTasks.get(value))) {
                     List<String> list = new ArrayList<>();
                     list.add("未处理");
-                    countTasks.remove(stringsList.get(o));
-                    countTasks.put(stringsList.get(o), list);
+                    countTasks.remove(value);
+                    countTasks.put(value, list);
                 }
             }
         }
-
         System.err.println("++++++++返回的节点数据:" + countTasks);
-        //for (FlowTaskComment taskComment : flowTaskCommentList) {
-        //    System.err.println("KeyLength:" + taskComment.getTaskKey().length());
-        //}
-        //for (String s : finishedTaskList) {
-        //    System.err.println("++++++++已通过节点:" + s + ",KeyLength:" + s.length());
-        //}
-        //for (String s : unfinishedTaskList) {
-        //    System.err.println("++++++++未执行节点:" + s + ",KeyLength:" + s.length());
-        //}
         return ResponseResult.success(countTasks);
     }
 

+ 2 - 1
common/common-flow/src/main/java/com/ankaibei/workFlow/common/flow/util/BpmnGetElement.java

@@ -4,6 +4,7 @@ import java.io.IOException;
 import java.io.StringReader;
 import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -42,7 +43,7 @@ public class BpmnGetElement {
             Element process = (Element) jiedian.get(0);
             List processChildren = process.getChildren();
 //获得XML中的命名空间(XML中未定义可不写)
-            Map<String, String> params = new HashMap<>();
+            Map<String, String> params = new LinkedHashMap<>();
             Element et = null;
             for (int i = 0; i < processChildren.size(); i++) {
                 //循环依次得到子元素