Selaa lähdekoodia

添加http节点

caixiaofeng 6 kuukautta sitten
vanhempi
commit
5467baf00d

+ 70 - 0
flow-workflow/flow-workflow-entity/src/main/java/com/flow/entity/node/HttpNode.java

@@ -0,0 +1,70 @@
+package com.flow.entity.node;
+
+import com.google.common.collect.Lists;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.flowable.bpmn.model.*;
+
+import java.util.*;
+
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class HttpNode extends Node {
+    private String url;
+    private String method;
+    private Map<String,Object> headers;
+    private Map<String,Object> requestBody;
+    private Boolean ignoreException;
+    private Long requestTimeout;
+
+
+    @Override
+    public List<FlowElement> convert() {
+        ArrayList<FlowElement> elements = Lists.newArrayList();
+        HttpServiceTask httpServiceTask = new HttpServiceTask();
+        httpServiceTask.setId(this.getId());
+        httpServiceTask.setName(this.getName());
+        httpServiceTask.setExecutionListeners(this.buidEventListener());
+        // httpServiceTask.setImplementationType(ImplementationType.IMPLEMENTATION_TYPE_DELEGATEEXPRESSION);
+        // httpServiceTask.setImplementation("${httpDelegate}");
+        // 请求参数
+        ArrayList<FieldExtension> fieldExtensions = new ArrayList<>();
+        FieldExtension urlExtension = new FieldExtension();
+        urlExtension.setFieldName("requestUrl");
+        urlExtension.setExpression(this.url);
+        fieldExtensions.add(urlExtension);
+        FieldExtension methodExtension = new FieldExtension();
+        methodExtension.setFieldName("requestMethod");
+        methodExtension.setStringValue(this.method);
+        fieldExtensions.add(methodExtension);
+        FieldExtension headerExtension = new FieldExtension();
+        headerExtension.setFieldName("requestHeaders");
+        headerExtension.setExpression(this.headers.toString());
+        fieldExtensions.add(headerExtension);
+        FieldExtension bodyExtension = new FieldExtension();
+        bodyExtension.setFieldName("requestBody");
+        bodyExtension.setExpression(this.requestBody.toString());
+        fieldExtensions.add(bodyExtension);
+        FieldExtension ignoreExtension = new FieldExtension();
+        ignoreExtension.setFieldName("ignoreException");
+        ignoreExtension.setStringValue(this.ignoreException.toString());
+        fieldExtensions.add(ignoreExtension);
+        FieldExtension timeoutExtension = new FieldExtension();
+        timeoutExtension.setFieldName("requestTimeout");
+        timeoutExtension.setStringValue(this.requestTimeout.toString());
+        fieldExtensions.add(timeoutExtension);
+        httpServiceTask.setFieldExtensions(fieldExtensions);
+        elements.add(httpServiceTask);
+        // 下一个节点的连线
+        Node child = this.getChild();
+        SequenceFlow sequenceFlow = this.buildSequence(child);
+        elements.add(sequenceFlow);
+        // 下一个节点
+        if (Objects.nonNull(child)) {
+            child.setBranchId(this.getBranchId());
+            List<FlowElement> flowElements = child.convert();
+            elements.addAll(flowElements);
+        }
+        return elements;
+    }
+}