Pārlūkot izejas kodu

外部任务节点

caixiaofeng 5 mēneši atpakaļ
vecāks
revīzija
f7815b9ec3

+ 1 - 0
flow-workflow/flow-workflow-biz/src/main/java/com/flow/service/impl/FlowInstanceServiceImpl.java

@@ -121,6 +121,7 @@ public class FlowInstanceServiceImpl extends BaseServiceImpl<FlowInstanceDao, Fl
         formInfo.setStartTime(instance.getStartTime());
         formInfo.setEndTime(instance.getEndTime());
         formInfo.setStatus(instance.getStatus());
+        formInfo.setCancelDays(instance.getCancelDays());
         return formInfo;
     }
 

+ 1 - 0
flow-workflow/flow-workflow-biz/src/main/java/com/flow/service/impl/FlowTaskServiceImpl.java

@@ -117,6 +117,7 @@ public class FlowTaskServiceImpl extends BaseServiceImpl<FlowTaskDao, FlowTask>
         formInfo.setTaskId(task.getId());
         formInfo.setFormName(instance.getName());
         formInfo.setStartUserId(instance.getStartUserId());
+        formInfo.setCancelDays(instance.getCancelDays());
         formInfo.setStartTime(instance.getStartTime());
         if (task instanceof HistoricTaskInstance) {
             HistoricTaskInstance historicTaskInstance = (HistoricTaskInstance) task;

+ 2 - 0
flow-workflow/flow-workflow-entity/src/main/java/com/flow/constant/NodeTypeConstant.java

@@ -35,4 +35,6 @@ public interface NodeTypeConstant {
     String END = "end";
     // 调用活动
     String CALL = "call";
+    // 外部任务
+    String EXTERNAL = "external";
 }

+ 41 - 0
flow-workflow/flow-workflow-entity/src/main/java/com/flow/entity/node/ExternalNode.java

@@ -0,0 +1,41 @@
+package com.flow.entity.node;
+
+import com.google.common.collect.Lists;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.flowable.bpmn.model.ExternalWorkerServiceTask;
+import org.flowable.bpmn.model.FlowElement;
+import org.flowable.bpmn.model.SequenceFlow;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class ExternalNode extends Node {
+    private String topic;
+
+    @Override
+    public List<FlowElement> convert() {
+        ArrayList<FlowElement> elements = Lists.newArrayList();
+        // 外部任务
+        ExternalWorkerServiceTask externalWorkerServiceTask = new ExternalWorkerServiceTask();
+        externalWorkerServiceTask.setId(this.getId());
+        externalWorkerServiceTask.setName(this.getName());
+        externalWorkerServiceTask.setTopic(this.topic);
+        externalWorkerServiceTask.setExecutionListeners(this.buidEventListener());
+        elements.add(externalWorkerServiceTask);
+        // 下一个节点的连线
+        Node next = this.getNext();
+        SequenceFlow sequenceFlow = this.buildSequence(next);
+        elements.add(sequenceFlow);
+        // 下一个节点
+        if (Objects.nonNull(next)) {
+            next.setBranchId(this.getBranchId());
+            List<FlowElement> flowElements = next.convert();
+            elements.addAll(flowElements);
+        }
+        return elements;
+    }
+}

+ 1 - 0
flow-workflow/flow-workflow-entity/src/main/java/com/flow/entity/node/Node.java

@@ -37,6 +37,7 @@ import java.util.stream.Collectors;
         @JsonSubTypes.Type(value = ServiceNode.class, name = NodeTypeConstant.SERVICE),
         @JsonSubTypes.Type(value = SubNode.class, name = NodeTypeConstant.SUB),
         @JsonSubTypes.Type(value = CallNode.class, name = NodeTypeConstant.CALL),
+        @JsonSubTypes.Type(value = ExternalNode.class, name = NodeTypeConstant.EXTERNAL),
         @JsonSubTypes.Type(value = EndNode.class, name = NodeTypeConstant.END)
 })
 @JsonIgnoreProperties(ignoreUnknown = true)

+ 2 - 0
flow-workflow/flow-workflow-entity/src/main/java/com/flow/model/FormInfo.java

@@ -30,6 +30,8 @@ public class FormInfo {
     private ProcessStatus status;
     // 发起人
     private String startUserId;
+    // 撤回天数
+    private Integer cancelDays;
     // 发起时间
     private LocalDateTime startTime;
     // 结束时间