package cn.stylefeng.guns.workflow.modular.controller;
|
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.node.ObjectNode;
|
import org.activiti.editor.constants.ModelDataJsonConstants;
|
import org.activiti.engine.ActivitiException;
|
import org.activiti.engine.RepositoryService;
|
import org.activiti.engine.repository.Model;
|
import org.apache.commons.lang3.StringUtils;
|
import org.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.web.bind.annotation.*;
|
|
/**
|
* editor的上下文
|
*
|
* @author fengshuonan
|
* @Date 2019/8/7 23:08
|
*/
|
@RestController
|
public class ModelEditorJsonRestResources implements ModelDataJsonConstants {
|
|
protected static final Logger LOGGER = LoggerFactory.getLogger(ModelEditorJsonRestResources.class);
|
|
@Autowired
|
private RepositoryService repositoryService;
|
|
@Autowired
|
private ObjectMapper objectMapper;
|
|
@RequestMapping(value = "/model/{modelId}/json", method = RequestMethod.GET, produces = "application/json")
|
@ResponseBody
|
public String getEditorJson(@PathVariable String modelId) {
|
ObjectNode modelNode = null;
|
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());
|
ObjectNode editorJsonNode = (ObjectNode) objectMapper.readTree(
|
new String(repositoryService.getModelEditorSource(model.getId()), "utf-8"));
|
modelNode.put("model", editorJsonNode);
|
} catch (Exception e) {
|
LOGGER.error("Error creating model JSON", e);
|
throw new ActivitiException("Error creating model JSON", e);
|
}
|
}
|
|
String s = null;
|
try {
|
s = objectMapper.writeValueAsString(modelNode);
|
} catch (JsonProcessingException e) {
|
e.printStackTrace();
|
}
|
|
return s;
|
}
|
}
|