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