Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
package com.codingapi.flow.strategy;

import com.codingapi.flow.utils.RandomUtils;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Map;

/**
* 节点审批意见策略
*/
@Data
@NoArgsConstructor
public class AdviceStrategy extends BaseStrategy {

/**
Expand All @@ -20,9 +21,6 @@ public class AdviceStrategy extends BaseStrategy {
*/
private boolean signable;

public AdviceStrategy() {
super(RandomUtils.generateStringId());
}

public static AdviceStrategy defaultStrategy() {
AdviceStrategy strategy = new AdviceStrategy();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,50 +1,25 @@
package com.codingapi.flow.strategy;

import com.codingapi.flow.utils.RandomUtils;
import lombok.Setter;
import lombok.SneakyThrows;

import java.util.HashMap;
import java.util.Map;


/**
* 基础策略
*/
public abstract class BaseStrategy implements INodeStrategy {

@Setter
private String id;

public BaseStrategy(String id) {
this.id = id;
}

@Override
public Map<String, Object> toMap() {
Map<String, Object> map = new HashMap<>();
map.put(TYPE_KEY, strategyType());
map.put("id", getId());
return map;
}

@Override
public String getId() {
return id;
}


@Override
public boolean equals(Object obj) {
if (obj instanceof BaseStrategy strategy) {
String id = this.getId();
return strategy.getId().equals(id);
}
return super.equals(obj);
}

@SneakyThrows
public static <T extends BaseStrategy> T fromMap(Map<String, Object> map, Class<T> clazz) {
if (map == null || map.isEmpty()) return null;
T strategy = clazz.getDeclaredConstructor().newInstance();
strategy.setId((String) map.get("id"));
return strategy;
return clazz.getDeclaredConstructor().newInstance();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,18 @@
import com.codingapi.flow.error.ErrorThrow;
import com.codingapi.flow.script.node.ErrorTriggerScript;
import com.codingapi.flow.session.FlowSession;
import com.codingapi.flow.utils.RandomUtils;
import lombok.NoArgsConstructor;

import java.util.Map;

/**
* 错误触发策略配置(没有匹配到人时)
*/
@NoArgsConstructor
public class ErrorTriggerStrategy extends BaseStrategy {

private ErrorTriggerScript errorTriggerScript;


public ErrorTriggerStrategy() {
super(RandomUtils.generateStringId());
}

public void setErrorTriggerScript(String script) {
this.errorTriggerScript = new ErrorTriggerScript(script);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,18 @@
package com.codingapi.flow.strategy;

import com.codingapi.flow.form.permission.FormFieldPermission;
import com.codingapi.flow.builder.NodeMapBuilder;
import com.codingapi.flow.script.node.ErrorTriggerScript;
import com.codingapi.flow.utils.RandomUtils;
import com.codingapi.flow.form.permission.FormFieldPermission;
import lombok.Data;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

/**
* 表单字段权限策略配置
*/
@Data
public class FormFieldPermissionStrategy extends BaseStrategy {
public class FormFieldPermissionStrategy extends BaseStrategy {

/**
* 表单字段权限
Expand All @@ -20,12 +21,10 @@ public class FormFieldPermissionStrategy extends BaseStrategy {


public FormFieldPermissionStrategy() {
super(RandomUtils.generateStringId());
this.fieldPermissions = new ArrayList<>();
}

public FormFieldPermissionStrategy(List<FormFieldPermission> fieldPermissions) {
super(RandomUtils.generateStringId());
this.fieldPermissions = fieldPermissions;
}

Expand All @@ -48,10 +47,8 @@ public static FormFieldPermissionStrategy fromMap(Map<String, Object> map) {
return strategy;
}

public static ErrorTriggerStrategy defaultStrategy() {
ErrorTriggerStrategy strategy = new ErrorTriggerStrategy();
strategy.setErrorTriggerScript(ErrorTriggerScript.SCRIPT_NODE_DEFAULT);
return strategy;
public static FormFieldPermissionStrategy defaultStrategy() {
return new FormFieldPermissionStrategy();
}


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,15 @@

import java.util.Map;

/**
* 节点配置策略
*/
public interface INodeStrategy {

String TYPE_KEY = "strategyType";

Map<String, Object> toMap();

String getId();

default String strategyType() {
return this.getClass().getSimpleName();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
package com.codingapi.flow.strategy;

import com.codingapi.flow.utils.RandomUtils;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Map;

/**
* 多人审批策略
* 多人审批策略配置
*/
@Data
@NoArgsConstructor
public class MultiOperatorAuditStrategy extends BaseStrategy {

private Type type;
Expand All @@ -26,9 +27,6 @@ public enum Type {
RANDOM_ONE
}

public MultiOperatorAuditStrategy() {
super(RandomUtils.generateStringId());
}

@Override
public void copy(INodeStrategy target) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@
import java.lang.reflect.Method;
import java.util.Map;

/**
* 节点策略配置工厂
*/
public class NodeStrategyFactory {

@Getter
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,21 @@

import com.codingapi.flow.script.node.NodeTitleScript;
import com.codingapi.flow.session.FlowSession;
import com.codingapi.flow.utils.RandomUtils;
import lombok.NoArgsConstructor;

import java.util.Map;

/**
* 节点标题策略配置
*/
@NoArgsConstructor
public class NodeTitleStrategy extends BaseStrategy {

/**
* 审批人配置脚本
*/
private NodeTitleScript nodeTitleScript;

public NodeTitleStrategy() {
super(RandomUtils.generateStringId());
}

@Override
public void copy(INodeStrategy target) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,23 +3,22 @@
import com.codingapi.flow.node.manager.OperatorManager;
import com.codingapi.flow.script.node.OperatorLoadScript;
import com.codingapi.flow.session.FlowSession;
import com.codingapi.flow.utils.RandomUtils;
import lombok.NoArgsConstructor;

import java.util.Map;

/**
* 操作人配置策略
*/
@NoArgsConstructor
public class OperatorLoadStrategy extends BaseStrategy{

/**
* 审批人配置脚本
*/
private OperatorLoadScript operatorLoadScript;

public OperatorLoadStrategy() {
super(RandomUtils.generateStringId());
}

public OperatorLoadStrategy(String script) {
super(RandomUtils.generateStringId());
this.operatorLoadScript = new OperatorLoadScript(script);
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,22 +1,19 @@
package com.codingapi.flow.strategy;

import com.codingapi.flow.utils.RandomUtils;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Map;

/**
* 记录合并策略
* 记录合并策略配置
*/
@Data
@NoArgsConstructor
public class RecordMergeStrategy extends BaseStrategy {

private boolean mergeable;

public RecordMergeStrategy() {
super(RandomUtils.generateStringId());
}

@Override
public void copy(INodeStrategy target) {
this.mergeable = ((RecordMergeStrategy)target).mergeable;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,15 @@

import com.codingapi.flow.utils.RandomUtils;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Map;

/**
* 重新提交策略
* 重新提交策略配置
*/
@Data
@NoArgsConstructor
public class ResubmitStrategy extends BaseStrategy {

private Type type;
Expand All @@ -20,9 +22,6 @@ public enum Type {
CHAIN,
}

public ResubmitStrategy() {
super(RandomUtils.generateStringId());
}

@Override
public void copy(INodeStrategy target) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
package com.codingapi.flow.strategy;

import com.codingapi.flow.utils.RandomUtils;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Map;

/**
* 提交人与审批人一致
* 提交人与审批人一致配置
*/
@Data
@NoArgsConstructor
public class SameOperatorAuditStrategy extends BaseStrategy {

private Type type;
Expand All @@ -20,9 +21,6 @@ public enum Type {
MANUAL_PASS,
}

public SameOperatorAuditStrategy() {
super(RandomUtils.generateStringId());
}

@Override
public void copy(INodeStrategy target) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
package com.codingapi.flow.strategy;

import com.codingapi.flow.utils.RandomUtils;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Map;

/**
* 超时策略
* 超时策略配置
*/
@Data
@NoArgsConstructor
public class TimeoutStrategy extends BaseStrategy {

// 默认超时时间,默认1天
Expand All @@ -26,10 +27,6 @@ public enum Type {
REJECT,
}

public TimeoutStrategy() {
super(RandomUtils.generateStringId());
}


@Override
public void copy(INodeStrategy target) {
Expand Down