From c007f0ca1785db093d48f4846cda82fe8e955765 Mon Sep 17 00:00:00 2001
From: kimi <kimi42345@gmail.com>
Date: 星期三, 27 五月 2020 09:59:29 +0800
Subject: [PATCH] merage

---
 src/main/java/com/highdatas/mdm/service/impl/ModelEditorServiceImpl.java |   60 +++++++++++++++++++++++++++++++++++++++---------------------
 1 files changed, 39 insertions(+), 21 deletions(-)

diff --git a/src/main/java/com/highdatas/mdm/service/impl/ModelEditorServiceImpl.java b/src/main/java/com/highdatas/mdm/service/impl/ModelEditorServiceImpl.java
index 185c9bc..ed8806c 100644
--- a/src/main/java/com/highdatas/mdm/service/impl/ModelEditorServiceImpl.java
+++ b/src/main/java/com/highdatas/mdm/service/impl/ModelEditorServiceImpl.java
@@ -1,9 +1,13 @@
 package com.highdatas.mdm.service.impl;
 
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.node.ObjectNode;
 import com.highdatas.mdm.pojo.Result;
 import com.highdatas.mdm.service.ModelEditorService;
+import com.highdatas.mdm.util.Constant;
 import com.highdatas.mdm.util.DbUtils;
 import org.activiti.editor.constants.ModelDataJsonConstants;
 import org.activiti.engine.ActivitiException;
@@ -15,10 +19,10 @@
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-import org.springframework.util.MultiValueMap;
 
 import java.io.InputStream;
 import java.io.UnsupportedEncodingException;
+import java.util.Map;
 
 /**
  * @author kimi
@@ -46,33 +50,47 @@
 
         Model model = repositoryService.getModel(modelId);
 
-        if (model != null) {
-            try {
-                if (StringUtils.isNotEmpty(model.getMetaInfo())) {
-                    modelNode = (ObjectNode) objectMapper.readTree(model.getMetaInfo());
-                } else {
-                    modelNode = objectMapper.createObjectNode();
-                    modelNode.put(MODEL_NAME, model.getName());
-                }
-                modelNode.put(MODEL_ID, model.getId());
-                byte[] modelEditorSource = repositoryService.getModelEditorSource(model.getId());
-                String s = new String(modelEditorSource, "utf-8");
-                ObjectNode editorJsonNode = (ObjectNode) objectMapper.readTree(s);
-
-                modelNode.put("model", editorJsonNode);
-
-            } catch (Exception e) {
-                LOGGER.error("Error creating model JSON", e);
-                throw new ActivitiException("Error creating model JSON", e);
+        if (model != null) try {
+            if (StringUtils.isNotEmpty(model.getMetaInfo())) {
+                modelNode = (ObjectNode) objectMapper.readTree(model.getMetaInfo());
+            } else {
+                modelNode = objectMapper.createObjectNode();
+                modelNode.put(MODEL_NAME, model.getName());
             }
-        }else {
+            modelNode.put(MODEL_ID, model.getId());
+            byte[] modelEditorSource = repositoryService.getModelEditorSource(model.getId());
+            String s = new String(modelEditorSource, "utf-8");
+            JSONObject editorJsonNode = JSONObject.parseObject(s);
+            JSONArray childShapes = editorJsonNode.getJSONArray("childShapes");
+            for (Object childShape : childShapes) {
+                JSONObject nextJsonNode = (JSONObject) childShape;
+                JSONObject stencil = nextJsonNode.getJSONObject("stencil");
+                String nodeType = stencil.getString(Constant.ID);
+
+                if (!nodeType.equalsIgnoreCase("SequenceFlow")) {
+                    continue;
+                }
+
+                JSONObject properties = nextJsonNode.getJSONObject("properties");
+                String etlCondition = properties.getString("conditionsequenceflow");
+                etlCondition = etlCondition.replace("&&", "++");
+                properties.put("conditionsequenceflow", etlCondition);
+            }
+            JsonNode jsonNode = objectMapper.readTree(editorJsonNode.toJSONString());
+            modelNode.put("model", jsonNode);
+
+        } catch (Exception e) {
+            LOGGER.error("Error creating model JSON", e);
+            throw new ActivitiException("Error creating model JSON", e);
+        }
+        else {
 
         }
         return modelNode;
     }
 
     @Override
-    public Result saveModel(String modelId, MultiValueMap<String, String> values) {
+    public Result saveModel(String modelId, Map<String, String> values) {
         return null;
     }
 

--
Gitblit v1.8.0