Browse Source

流程编辑器逻辑修改

zhenglingfeng 8 years ago
parent
commit
b5408c5e34

+ 6 - 2
src/main/java/com/yihu/hos/system/controller/ProcessController.java

@ -53,8 +53,12 @@ public class ProcessController  extends BaseController {
    @ResponseBody
    public Result getFlowchart(Integer flowId) {
        try {
            String flowchat = processManager.getFlowchart(flowId);
            return Result.success(flowchat);
            if (flowId != null) {
                String flowchart = processManager.getFlowchart(flowId);
                return Result.success(flowchart);
            } else {
                return Result.success("无初始化数据");
            }
        } catch (Exception e) {
            return Result.error("生成业务流程失败");
        }

+ 14 - 14
src/main/java/com/yihu/hos/system/service/ProcessEditor.java

@ -66,8 +66,7 @@ public class ProcessEditor {
        JsonNode node = nodeMap.get(nodeName);
        String nodeType = node.get("nodeType").asText();
        String config = node.get("config").asText();
        String value = node.get("value").asText();
        String name = node.get("name").asText();
//        String name = node.get("name").asText();
        StringBuilder bodyBuilderTemp = new StringBuilder();
        if (nodeType.equals("start")) {
            bodyBuilder.append("from(\"");
@ -76,9 +75,10 @@ public class ProcessEditor {
                bodyBuilder.append(".routeId(\""+code+"\")");
            }
        } else if (nodeType.equals("processor")) {
            String className = config.substring(value.lastIndexOf(".") + 1, value.length());
            String value = node.get("value").asText();
            String className = value.substring(value.lastIndexOf(".") + 1, value.length());
            addPackageList("import " + config + ";\n");
            addPackageList("import " + value + ";\n");
            if (config == null) {
                bodyBuilderTemp.append("\n.process(new "+className+"(\"\"))");
            } else {
@ -113,9 +113,9 @@ public class ProcessEditor {
        return bodyBuilderTemp;
    }
    public void judgement(String value, String nodeName, StringBuilder builder) {
    public void judgement(String config, String nodeName, StringBuilder builder) {
        builder.append("\n.choice()");
        builder.append("\n.when("+value+")");
        builder.append("\n.when("+config+")");
        String trueNodeName = "";
        String falseNodeName = "";
        for (Edge<String> edge : mDG.getEdgeList(nodeName)) {
@ -123,7 +123,7 @@ public class ProcessEditor {
            String nextNodeName = edge.getDest();
            String nextLineName = edge.getName();
            JsonNode nextLine = lineMap.get(nextLineName);
            if (nextLine.get("value") != null && nextLine.get("value").asText().equals("correct")) {
            if (nextLine.get("config") != null && nextLine.get("config").asText().equals("true")) {
                trueNodeName = nextNodeName;
            } else {
                falseNodeName = nextNodeName;
@ -142,17 +142,17 @@ public class ProcessEditor {
    }
    public void split(String value, StringBuilder builder) {
    public void split(String config, StringBuilder builder) {
        addPackageList("import com.yihu.hos.broker.util.Split;\n");
        builder.append("\n.split().method(Split.class, \""+value+"\")");
        builder.append("\n.split().method(Split.class, \""+config+"\")");
    }
    public void aggregate(String value, StringBuilder builder) {
    public void aggregate(String config, StringBuilder builder) {
        addPackageList("import com.yihu.hos.broker.util.Aggregate;\n");
        builder.append("\n.aggregate(header(\""+value+"\"), new Aggregate()).completionSize(3)");
        builder.append("\n.aggregate(header(\""+config+"\"), new Aggregate()).completionSize(3)");
    }
    public void multicast(String value, String nodeName, StringBuilder builder) {
    public void multicast(String config, String nodeName, StringBuilder builder) {
        String directs = "";
        int i = 'a';
@ -175,11 +175,11 @@ public class ProcessEditor {
        builder.append("\n.multicast().stopOnException().to("+directs+").end()");
    }
    public void format(String value, String nodeName, StringBuilder builder) {
    public void format(String config, String nodeName, StringBuilder builder) {
        addPackageList("import org.apache.camel.model.dataformat.XmlJsonDataFormat;\n");
        preferBuilder.append("XmlJsonDataFormat xmlJsonFormat = new XmlJsonDataFormat();\n");
        builder.append("\n."+value + "(xmlJsonFormat)");
        builder.append("\n."+config + "(xmlJsonFormat)");
    }
    public void addPackageList(String pack) {

+ 1 - 1
src/main/java/com/yihu/hos/system/service/ProcessManager.java

@ -130,7 +130,7 @@ public class ProcessManager {
            ProcessResultModel resultModel = new ProcessResultModel();
            resultModel.setName(processor.getName());
            resultModel.setValue(processor.getPackageName() + "." + processor.getClassName());
            resultModel.setConfig(processor.getPackageName() + "." + processor.getClassName());
            resultModel.setConfig("");
            resultModel.setNodeType("processor");
            resultModelList.add(resultModel);
        }

+ 1 - 1
src/main/webapp/WEB-INF/ehr/jsp/system/process/processJs.jsp

@ -6,7 +6,7 @@
<script type="text/javascript" src="${contextRoot}/develop/lib/gooflow/js/GooFlow.js"></script>
<script type="text/javascript">
 	$(function () {
		var esb = $('#esb').createGooFlow();
		var esb = $('#esb').createGooFlow({},'${contextRoot}');
	    var id = "${flowId}";
	    var dataGetURL = "/esb/process/chart?flowId="+ id;
	    esb.loadData(dataGetURL);

+ 8 - 9
src/main/webapp/develop/lib/gooflow/js/GooFlow.js

@ -48,7 +48,7 @@ var GooFunc = {
 * Date: 2017/2/15
 * time: 14:59
 * */
function GooFlow(bgDiv, property) {
function GooFlow(bgDiv, property,url) {
	/*
	 * Todo: 初始化属性设置 【初始化】
	 * Author: LE
@ -102,10 +102,9 @@ function GooFlow(bgDiv, property) {
	var that = this;
	// *************************************************** 【请求地址】
	var URL = "http://localhost:8080",
		getAllEndpointsURL = URL + "/esb/process/getAllEndpoints",
		getAllProcessorsURL = URL + "/esb/process/getAllProcessors";
		dataPostURL = URL + "/esb/process/json";
	var getAllEndpointsURL = url + "/process/getAllEndpoints",
		getAllProcessorsURL = url + "/process/getAllProcessors",
		dataPostURL = URL + "/process/json";
@ -1134,7 +1133,7 @@ GooFlow.prototype = {
                    break;
                case "complex":
                    json.name = '循环';
                    json.config = '';
                    json.config = 'splitJsonArray';
                    json.nodeType = 'circle'
                    break;
                case "join":
@ -1922,7 +1921,7 @@ GooFlow.prototype = {
		// 存储所有结点名,并将判断和循环结点单独存储
		for (var i in nodes) {
			nodeArr.push(i);
			if (nodes[i].nodeType === 'judgement' || nodes[i].nodeType === 'circle') {
			if (nodes[i].nodeType === 'judgement') {
				specialArr.push(i)
			}
		}
@ -2063,7 +2062,7 @@ GooFlow.prototype = {
 * time: 14:59
 * */
$.fn.extend({
	createGooFlow: function (property) {
	createGooFlow: function (property,url) {
		/*
		 * Todo: 初始化配置参数
		 * Author: LE
@ -2090,6 +2089,6 @@ $.fn.extend({
		};
		var options = $.extend({}, defaultOption, property);
		return new GooFlow(this, options);
		return new GooFlow(this, options,url);
	}
});