From e83639bcc959c6ce9dbfa6ecf6e89a7e3adf0390 Mon Sep 17 00:00:00 2001 From: lvzk <897706680@qq.com> Date: Mon, 21 Jul 2025 14:25:12 +0800 Subject: [PATCH 1/3] =?UTF-8?q?[=E4=BF=AE=E5=A4=8D]=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E5=8C=96=E8=87=AA=E7=94=B1=E5=8F=82=E6=95=B0=E5=BC=95=E7=94=A8?= =?UTF-8?q?=E4=B8=8A=E6=B8=B8=E5=87=BA=E5=8F=82=E5=AF=BC=E5=87=BA=E4=BD=9C?= =?UTF-8?q?=E4=B8=9A=E5=87=BA=E5=8F=82=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/job/AutoexecJobPhaseOperationVo.java | 51 ++++++++----------- 1 file changed, 20 insertions(+), 31 deletions(-) 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 613b957c..3e746704 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(); -- Gitee From 754d12a0fb48a15adcd4a0f237c86a982e896190 Mon Sep 17 00:00:00 2001 From: lvzk <897706680@qq.com> Date: Mon, 21 Jul 2025 18:03:28 +0800 Subject: [PATCH 2/3] =?UTF-8?q?[=E4=BF=AE=E5=A4=8D]=E9=87=8D=E8=B7=91?= =?UTF-8?q?=E9=98=B6=E6=AE=B5=EF=BC=8C=E4=BD=9C=E4=B8=9A=E5=BC=80=E5=A7=8B?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E8=A2=AB=E9=87=8D=E7=BD=AE=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../framework/autoexec/dao/mapper/AutoexecJobMapper.xml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 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 d23c7710..a48094de 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 -- Gitee From 9a9bdae98197d76858630761903aa28b25d61b41 Mon Sep 17 00:00:00 2001 From: lvzk <897706680@qq.com> Date: Thu, 24 Jul 2025 11:02:05 +0800 Subject: [PATCH 3/3] =?UTF-8?q?[=E4=BF=AE=E5=A4=8D]=E4=BE=9B=E5=A4=96?= =?UTF-8?q?=E9=83=A8=E5=88=9B=E5=BB=BA=E8=87=AA=E5=8A=A8=E5=8C=96=E4=BD=9C?= =?UTF-8?q?=E4=B8=9A=E6=8E=A5=E5=8F=A3=E6=8C=87=E5=AE=9A=E6=89=A7=E8=A1=8C?= =?UTF-8?q?=E4=BA=BA=E6=89=A7=E8=A1=8C=E6=9D=83=E9=99=90=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AutoexecJobSourceTypeHandlerBase.java | 27 ++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) 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 5d4ea878..25352a69 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); } } } -- Gitee