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 d23c771039a56438d3b74b82fa0add09ac07a7c6..a48094ded848ed637ac3200a8ab139263775c5c5 100644
--- a/src/main/java/neatlogic/framework/autoexec/dao/mapper/AutoexecJobMapper.xml
+++ b/src/main/java/neatlogic/framework/autoexec/dao/mapper/AutoexecJobMapper.xml
@@ -3215,8 +3215,10 @@ along with this program. If not, see .-->
UPDATE `autoexec_job`
SET `status` = #{status}
-
+
,`start_time` = NOW(3)
+
+
,`end_time` = NULL
diff --git a/src/main/java/neatlogic/framework/autoexec/dto/job/AutoexecJobPhaseOperationVo.java b/src/main/java/neatlogic/framework/autoexec/dto/job/AutoexecJobPhaseOperationVo.java
index 613b957cf721453c707c787b102b1f94de041410..3e746704402fdf003afdf2dd150d768cdcc3debf 100644
--- a/src/main/java/neatlogic/framework/autoexec/dto/job/AutoexecJobPhaseOperationVo.java
+++ b/src/main/java/neatlogic/framework/autoexec/dto/job/AutoexecJobPhaseOperationVo.java
@@ -154,13 +154,15 @@ public class AutoexecJobPhaseOperationVo implements Serializable {
List paramMappingVos = operationConfigVo.getParamMappingList();
List argumentMappingVos = operationConfigVo.getArgumentMappingList();
AutoexecOperationBaseVo autoexecOperationBaseVo = autoexecCombopPhaseOperationVo.getOperation();
- List inputParamList = autoexecOperationBaseVo.getInputParamList();
+ List operationInputParamList = autoexecOperationBaseVo.getInputParamList();
AutoexecParamVo argumentParam = autoexecOperationBaseVo.getArgument();
//替换输入参数(上游参数)
if (CollectionUtils.isNotEmpty(paramMappingVos)) {
for (ParamMappingVo paramMappingVo : paramMappingVos) {
- for (AutoexecParamVo input : inputParamList) {
- exchangeParam(paramMappingVo, input, phaseVo, jobPhaseVoList, operationVo, preOperationNameMap);
+ if (CollectionUtils.isNotEmpty(operationInputParamList)) {
+ for (AutoexecParamVo input : operationInputParamList) {
+ exchangeParam(paramMappingVo, input, phaseVo, jobPhaseVoList, operationVo, preOperationNameMap, null);
+ }
}
}
}
@@ -168,7 +170,7 @@ public class AutoexecJobPhaseOperationVo implements Serializable {
if (CollectionUtils.isNotEmpty(argumentMappingVos)) {
for (ParamMappingVo argumentMappingVo : argumentMappingVos) {
if (argumentParam != null) {
- exchangeArgumentParam(jobVo.getConfig().getRuntimeParamList(), argumentMappingVo, argumentParam);
+ exchangeParam(argumentMappingVo, argumentParam, phaseVo, jobPhaseVoList, operationVo, preOperationNameMap, jobVo.getConfig().getRuntimeParamList());
}
}
}
@@ -182,30 +184,6 @@ public class AutoexecJobPhaseOperationVo implements Serializable {
this.profileId = autoexecCombopPhaseOperationVo.getConfig().getProfileId();
}
- /**
- * 自由参数引用作业,应该以作业参数的类型为准
- *
- * @param runtimeParamList 组合工具作业参数
- * @param paramMappingVo 工具自由参数值
- * @param param 工具自由参数
- */
- private void exchangeArgumentParam(List runtimeParamList, ParamMappingVo paramMappingVo, AutoexecParamVo param) {
- Optional argumentParamOptional;
- if (CollectionUtils.isNotEmpty(runtimeParamList)) {
- argumentParamOptional = runtimeParamList.stream().filter(o -> Objects.equals(o.getKey(), paramMappingVo.getValue())).findFirst();
- if (Objects.equals(paramMappingVo.getMappingMode(), ParamMappingMode.RUNTIME_PARAM.getValue()) && argumentParamOptional.isPresent()) {
- paramMappingVo.setType(argumentParamOptional.get().getType());
- } else {
- paramMappingVo.setType(param.getType());
- }
- } else {
- paramMappingVo.setType(param.getType());
- }
- paramMappingVo.setName(param.getName());
- paramMappingVo.setDescription(param.getDescription());
-
- }
-
/**
* 替换参数值(上游参数)
*
@@ -215,10 +193,21 @@ public class AutoexecJobPhaseOperationVo implements Serializable {
* @param jobPhaseVoList 所有阶段
* @param operationVo 工具
* @param preOperationNameMap 记录上游阶段工具uuid对应的名称
+ * @param runtimeParamList 组合工具作业参数
*/
- private void exchangeParam(ParamMappingVo paramMappingVo, AutoexecParamVo param, AutoexecJobPhaseVo phaseVo, List jobPhaseVoList, AutoexecOperationVo operationVo, Map preOperationNameMap) {
- if (Objects.equals(paramMappingVo.getKey(), param.getKey())) {
- paramMappingVo.setType(param.getType());
+ private void exchangeParam(ParamMappingVo paramMappingVo, AutoexecParamVo param, AutoexecJobPhaseVo phaseVo, List jobPhaseVoList, AutoexecOperationVo operationVo, Map preOperationNameMap, List runtimeParamList) {
+ if ((StringUtils.isBlank(paramMappingVo.getKey()) && StringUtils.isBlank(param.getKey())) || Objects.equals(paramMappingVo.getKey(), param.getKey())) {
+ Optional argumentParamOptional;
+ if (CollectionUtils.isNotEmpty(runtimeParamList)) {
+ argumentParamOptional = runtimeParamList.stream().filter(o -> Objects.equals(o.getKey(), paramMappingVo.getValue())).findFirst();
+ if (Objects.equals(paramMappingVo.getMappingMode(), ParamMappingMode.RUNTIME_PARAM.getValue()) && argumentParamOptional.isPresent()) {
+ paramMappingVo.setType(argumentParamOptional.get().getType());
+ } else {
+ paramMappingVo.setType(param.getType());
+ }
+ } else {
+ paramMappingVo.setType(param.getType());
+ }
paramMappingVo.setName(param.getName());
paramMappingVo.setDescription(param.getDescription());
Object value = paramMappingVo.getValue();
diff --git a/src/main/java/neatlogic/framework/autoexec/job/source/type/AutoexecJobSourceTypeHandlerBase.java b/src/main/java/neatlogic/framework/autoexec/job/source/type/AutoexecJobSourceTypeHandlerBase.java
index 5d4ea878243cd2daed62a41bbec19a98b1311211..25352a69b8da0194a3854100f6bea0e58314f0e2 100644
--- a/src/main/java/neatlogic/framework/autoexec/job/source/type/AutoexecJobSourceTypeHandlerBase.java
+++ b/src/main/java/neatlogic/framework/autoexec/job/source/type/AutoexecJobSourceTypeHandlerBase.java
@@ -6,12 +6,18 @@ import neatlogic.framework.autoexec.dao.mapper.AutoexecJobMapper;
import neatlogic.framework.autoexec.dto.AutoexecParamVo;
import neatlogic.framework.autoexec.dto.job.AutoexecJobVo;
import neatlogic.framework.autoexec.exception.AutoexecJobExecutePermissionDeniedException;
+import neatlogic.framework.dao.mapper.UserMapper;
+import neatlogic.framework.dto.UserVo;
+import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
+import java.util.Arrays;
+import java.util.List;
import java.util.Map;
+import java.util.Objects;
/**
* @author longrf
@@ -20,11 +26,18 @@ import java.util.Map;
public abstract class AutoexecJobSourceTypeHandlerBase implements IAutoexecJobSourceTypeHandler {
protected static AutoexecJobMapper autoexecJobMapper;
+ protected static UserMapper userMapper;
+
@Autowired
private void setAutoexecJobMapper(AutoexecJobMapper _autoexecJobMapper) {
autoexecJobMapper = _autoexecJobMapper;
}
+ @Autowired
+ private void setUserMapper(UserMapper _userMapper) {
+ userMapper = _userMapper;
+ }
+
Logger logger = LoggerFactory.getLogger(AutoexecJobSourceTypeHandlerBase.class);
public void getFireParamJson(JSONObject jsonObject, AutoexecJobVo jobVo) {
@@ -48,7 +61,19 @@ public abstract class AutoexecJobSourceTypeHandlerBase implements IAutoexecJobSo
if (jobParam.getIsTakeOver() == 1) {
autoexecJobMapper.updateJobExecUser(jobId, jobParam.getExecUser());
} else {
- throw new AutoexecJobExecutePermissionDeniedException(jobId, execUser, jobParam.getExecUser());
+ List userVos = userMapper.getUserByUserUuidList(Arrays.asList(execUser, originJob.getExecUser()));
+ String currentUserName = execUser;
+ String originUserName = originJob.getExecUser();
+ if (CollectionUtils.isNotEmpty(userVos)) {
+ for (UserVo userVo : userVos) {
+ if (Objects.equals(userVo.getUuid(), currentUserName)) {
+ currentUserName = userVo.getName() + "(" + userVo.getUserId() + ")";
+ } else if (Objects.equals(userVo.getUuid(), originUserName)) {
+ originUserName = userVo.getName() + "(" + userVo.getUserId() + ")";
+ }
+ }
+ }
+ throw new AutoexecJobExecutePermissionDeniedException(jobId, currentUserName, originUserName);
}
}
}