diff --git a/src/main/java/neatlogic/framework/autoexec/dao/mapper/AutoexecJobMapper.xml b/src/main/java/neatlogic/framework/autoexec/dao/mapper/AutoexecJobMapper.xml
index 2960d54acd6f81393183a0a12e86f823159b2521..c0ab33700e498b4c2e0525d0dbe1f82ba45a30f3 100644
--- a/src/main/java/neatlogic/framework/autoexec/dao/mapper/AutoexecJobMapper.xml
+++ b/src/main/java/neatlogic/framework/autoexec/dao/mapper/AutoexecJobMapper.xml
@@ -750,6 +750,8 @@ along with this program. If not, see .-->
aj.`exec_user` as execUser,
aj.`source`,
aj.`round_count` as roundCount,
+ aj.`parallel_count` as parallelCount,
+ aj.`parallel_policy` as parallelPolicy,
aj.`param_hash` as paramHash,
aj.`config_hash` as configHash,
aj.`trigger_type` as triggerType
diff --git a/src/main/java/neatlogic/framework/autoexec/dto/combop/AutoexecCombopExecuteConfigVo.java b/src/main/java/neatlogic/framework/autoexec/dto/combop/AutoexecCombopExecuteConfigVo.java
index 22d84aa209fb8f062237d96f520f36368ee75be8..c8711a5117cf17ff1ad174232b9204ec722bab1c 100644
--- a/src/main/java/neatlogic/framework/autoexec/dto/combop/AutoexecCombopExecuteConfigVo.java
+++ b/src/main/java/neatlogic/framework/autoexec/dto/combop/AutoexecCombopExecuteConfigVo.java
@@ -15,6 +15,7 @@ along with this program. If not, see .*/
package neatlogic.framework.autoexec.dto.combop;
+import com.alibaba.fastjson.JSONObject;
import neatlogic.framework.autoexec.dto.node.AutoexecNodeVo;
import neatlogic.framework.common.constvalue.ApiParamType;
import neatlogic.framework.restful.annotation.EntityField;
@@ -57,7 +58,8 @@ public class AutoexecCombopExecuteConfigVo implements Serializable {
@EntityField(name = "并发策略", type = ApiParamType.STRING)
private String parallelPolicy;
@EntityField(name = "前置执行目标配置", type = ApiParamType.JSONOBJECT)
- private AutoexecCombopExecuteNodeConfigVo combopNodeConfig; //设置过滤器后,执行时只能在过滤器范围内选择执行目标
+ private JSONObject preCondition; //设置过滤器后,执行时只能在过滤器范围内选择执行目标
+
public String getProtocol() {
return protocol;
@@ -139,12 +141,12 @@ public class AutoexecCombopExecuteConfigVo implements Serializable {
this.roundCount = roundCount;
}
- public AutoexecCombopExecuteNodeConfigVo getCombopNodeConfig() {
- return combopNodeConfig;
+ public JSONObject getPreCondition() {
+ return preCondition;
}
- public void setCombopNodeConfig(AutoexecCombopExecuteNodeConfigVo combopNodeConfig) {
- this.combopNodeConfig = combopNodeConfig;
+ public void setPreCondition(JSONObject preCondition) {
+ this.preCondition = preCondition;
}
public ParamMappingVo getRunnerGroup() {
diff --git a/src/main/java/neatlogic/framework/autoexec/job/node/IUpdateNodes.java b/src/main/java/neatlogic/framework/autoexec/job/node/IUpdateNodes.java
index 1f01a9e98e99eab3e9001676bddb0b783f06a33f..137fe16664ba26a7039c71db7318e1a6b84a104c 100644
--- a/src/main/java/neatlogic/framework/autoexec/job/node/IUpdateNodes.java
+++ b/src/main/java/neatlogic/framework/autoexec/job/node/IUpdateNodes.java
@@ -15,18 +15,18 @@ along with this program. If not, see .*/
package neatlogic.framework.autoexec.job.node;
-import neatlogic.framework.autoexec.dto.combop.AutoexecCombopExecuteNodeConfigVo;
+import neatlogic.framework.autoexec.dto.combop.AutoexecCombopExecuteConfigVo;
import neatlogic.framework.autoexec.dto.job.AutoexecJobVo;
public interface IUpdateNodes {
/**
* 更新自动化执行目标
- * @param executeNodeConfigVo 执行目标配置
+ * @param executeConfigVo 执行目标配置
* @param jobVo 作业
* @param userName 执行用户
* @param protocolId 协议id
*/
- boolean update(AutoexecCombopExecuteNodeConfigVo executeNodeConfigVo, AutoexecJobVo jobVo, String userName, Long protocolId);
+ boolean update(AutoexecCombopExecuteConfigVo executeConfigVo, AutoexecJobVo jobVo, String userName, Long protocolId);
}
diff --git a/src/main/java/neatlogic/framework/autoexec/job/node/UpdateNodesFactory.java b/src/main/java/neatlogic/framework/autoexec/job/node/UpdateNodesFactory.java
index 6d7c993f877564709921d8b579b1d821f18e2bc1..e89e31fe48e70d2eb5510e46276fddb70ba3a9df 100644
--- a/src/main/java/neatlogic/framework/autoexec/job/node/UpdateNodesFactory.java
+++ b/src/main/java/neatlogic/framework/autoexec/job/node/UpdateNodesFactory.java
@@ -16,11 +16,13 @@ along with this program. If not, see .*/
package neatlogic.framework.autoexec.job.node;
import neatlogic.framework.applicationlistener.core.ModuleInitializedListenerBase;
-import neatlogic.framework.autoexec.dto.combop.AutoexecCombopExecuteNodeConfigVo;
+import neatlogic.framework.autoexec.dto.combop.AutoexecCombopConfigVo;
+import neatlogic.framework.autoexec.dto.combop.AutoexecCombopExecuteConfigVo;
import neatlogic.framework.autoexec.dto.job.AutoexecJobVo;
import neatlogic.framework.bootstrap.NeatLogicWebApplicationContext;
import neatlogic.framework.common.RootComponent;
import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.collections4.MapUtils;
import java.util.ArrayList;
import java.util.List;
@@ -38,7 +40,7 @@ public class UpdateNodesFactory extends ModuleInitializedListenerBase {
if (beansOfTypeMap.size() == 0) {
return;
}
- if(CollectionUtils.isNotEmpty(beansOfTypeMap.values())) {
+ if (CollectionUtils.isNotEmpty(beansOfTypeMap.values())) {
updateNodeList.addAll(beansOfTypeMap.values());
}
}
@@ -50,16 +52,28 @@ public class UpdateNodesFactory extends ModuleInitializedListenerBase {
/**
* 遍历所有获取目标的方式,获取到就退出
- * @param jobVo 作业
- * @param executeNodeConfigVo 执行目标配置
- * @param userName 执行用户
- * @param protocolId 协议id
+ *
+ * @param jobVo 作业
+ * @param executeConfigVo 执行目标配置
+ * @param userName 执行用户
+ * @param protocolId 协议id
*/
- public static boolean updateNodes(AutoexecCombopExecuteNodeConfigVo executeNodeConfigVo, AutoexecJobVo jobVo,String userName,Long protocolId){
+ public static boolean updateNodes(AutoexecCombopExecuteConfigVo executeConfigVo, AutoexecJobVo jobVo, String userName, Long protocolId) {
boolean isHasNode = false;
- for (IUpdateNodes updateNode : updateNodeList){
- isHasNode = updateNode.update(executeNodeConfigVo,jobVo,userName,protocolId);
- if(isHasNode){
+ for (IUpdateNodes updateNode : updateNodeList) {
+ AutoexecCombopConfigVo config = jobVo.getConfig();
+ //如果局部不存在前置过滤器,则使用全局的
+ if (executeConfigVo == null || executeConfigVo.getExecuteNodeConfig() == null) {
+ return false;
+ } else {
+ if (MapUtils.isEmpty(executeConfigVo.getPreCondition()) && config != null && config.getExecuteConfig() != null
+ && MapUtils.isNotEmpty(config.getExecuteConfig().getPreCondition())
+ ) {
+ executeConfigVo.setPreCondition(config.getExecuteConfig().getPreCondition());
+ }
+ }
+ isHasNode = updateNode.update(executeConfigVo, jobVo, userName, protocolId);
+ if (isHasNode) {
break;
}
}