|
@@ -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;
|
|
|
+ }
|
|
|
+}
|