From 1edc06df3b60f050591ffa054d9dd403a8c86a97 Mon Sep 17 00:00:00 2001 From: "1437892690@qq.com" <1437892690@qq.com> Date: Tue, 16 Jul 2024 14:25:12 +0800 Subject: [PATCH] =?UTF-8?q?[=E4=BF=AE=E5=A4=8D]=20=E5=B7=A5=E5=8D=95?= =?UTF-8?q?=E5=A4=84=E7=90=86-=E5=88=9B=E5=BB=BA=E4=BD=9C=E4=B8=9A?= =?UTF-8?q?=E8=8A=82=E7=82=B9=E5=88=86=E6=B4=BE=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1201268003930112]工单处理-创建作业节点分派异常 http://192.168.0.96:8090/demo/rdm.html#/bug-detail/939050947543040/939050947543057/1201268003930112 --- .../component/CreateJobProcessComponent.java | 19 +++++++++++++++++++ .../component/AutoexecProcessComponent.java | 18 ++++++++++++++++++ 2 files changed, 37 insertions(+) diff --git a/src/main/java/neatlogic/module/autoexec/process/stephandler/component/CreateJobProcessComponent.java b/src/main/java/neatlogic/module/autoexec/process/stephandler/component/CreateJobProcessComponent.java index 39c1c836..dac705c2 100644 --- a/src/main/java/neatlogic/module/autoexec/process/stephandler/component/CreateJobProcessComponent.java +++ b/src/main/java/neatlogic/module/autoexec/process/stephandler/component/CreateJobProcessComponent.java @@ -26,6 +26,7 @@ import neatlogic.framework.autoexec.dto.job.AutoexecJobEnvVo; import neatlogic.framework.autoexec.dto.job.AutoexecJobVo; import neatlogic.framework.autoexec.exception.AutoexecCombopActiveVersionNotFoundException; import neatlogic.framework.autoexec.exception.AutoexecCombopVersionNotFoundException; +import neatlogic.framework.common.constvalue.SystemUser; import neatlogic.framework.crossover.CrossoverServiceFactory; import neatlogic.framework.form.dto.AttributeDataVo; import neatlogic.framework.form.dto.FormAttributeVo; @@ -143,10 +144,12 @@ public class CreateJobProcessComponent extends ProcessStepHandlerBase { // 获取工单当前步骤配置信息 String config = selectContentByHashCrossoverMapper.getProcessTaskStepConfigByHash(configHash); if (StringUtils.isBlank(config)) { + processTaskStepComplete(currentProcessTaskStepVo.getId()); return 0; } JSONObject createJobConfig = (JSONObject) JSONPath.read(config, "createJobConfig"); if (MapUtils.isEmpty(createJobConfig)) { + processTaskStepComplete(currentProcessTaskStepVo.getId()); return 0; } CreateJobConfigVo createJobConfigVo = createJobConfig.toJavaObject(CreateJobConfigVo.class); @@ -155,6 +158,7 @@ public class CreateJobProcessComponent extends ProcessStepHandlerBase { if (!Objects.equals(rerunStepToCreateNewJob, 1)) { Long autoexecJobId = autoexecJobMapper.getJobIdByInvokeIdLimitOne(currentProcessTaskStepVo.getId()); if (autoexecJobId != null) { + processTaskStepComplete(currentProcessTaskStepVo.getId()); return 1; } } @@ -170,6 +174,7 @@ public class CreateJobProcessComponent extends ProcessStepHandlerBase { } List configList = createJobConfigVo.getConfigList(); if (CollectionUtils.isEmpty(configList)) { + processTaskStepComplete(currentProcessTaskStepVo.getId()); return 0; } List builderList = new ArrayList<>(); @@ -190,6 +195,9 @@ public class CreateJobProcessComponent extends ProcessStepHandlerBase { builderList.addAll(list); } + if (CollectionUtils.isEmpty(builderList)) { + processTaskStepComplete(currentProcessTaskStepVo.getId()); + } JSONArray errorMessageList = new JSONArray(); boolean flag = false; List jobIdList = new ArrayList<>(); @@ -271,12 +279,23 @@ public class CreateJobProcessComponent extends ProcessStepHandlerBase { doNext(ProcessTaskOperationType.STEP_COMPLETE, new ProcessStepThread(processTaskStepVo) { @Override public void myExecute() { + UserContext.init(SystemUser.SYSTEM); handler.autoComplete(processTaskStepVo); } }); } catch (ProcessTaskNoPermissionException e) { logger.error(e.getMessage(), e); } + } else { + ProcessTaskStepVo processTaskStepVo = processTaskCrossoverMapper.getProcessTaskStepBaseInfoById(processTaskStepId); + IProcessStepHandler processStepHandler = ProcessStepHandlerFactory.getHandler(processTaskStepVo.getHandler()); + if (processStepHandler != null) { + try { + processStepHandler.assign(processTaskStepVo); + } catch (ProcessTaskException e) { + logger.error(e.getMessage(), e); + } + } } } diff --git a/src/main/java/neatlogic/module/autoexec/stephandler/component/AutoexecProcessComponent.java b/src/main/java/neatlogic/module/autoexec/stephandler/component/AutoexecProcessComponent.java index 56d0160d..5e1ca1ec 100644 --- a/src/main/java/neatlogic/module/autoexec/stephandler/component/AutoexecProcessComponent.java +++ b/src/main/java/neatlogic/module/autoexec/stephandler/component/AutoexecProcessComponent.java @@ -187,10 +187,12 @@ public class AutoexecProcessComponent extends ProcessStepHandlerBase { // } // } if (StringUtils.isBlank(config)) { + processTaskStepComplete(currentProcessTaskStepVo.getId(), null); return 0; } JSONObject autoexecConfig = (JSONObject) JSONPath.read(config, "autoexecConfig"); if (MapUtils.isEmpty(autoexecConfig)) { + processTaskStepComplete(currentProcessTaskStepVo.getId(), null); return 0; } // rerunStepToCreateNewJob为1时表示重新激活自动化步骤时创建新作业,rerunStepToCreateNewJob为0时表示重新激活自动化步骤时不创建新作业,也不重跑旧作业,即什么都不做 @@ -198,6 +200,7 @@ public class AutoexecProcessComponent extends ProcessStepHandlerBase { if (!Objects.equals(rerunStepToCreateNewJob, 1)) { Long autoexecJobId = autoexecJobMapper.getJobIdByInvokeIdLimitOne(currentProcessTaskStepVo.getId()); if (autoexecJobId != null) { + processTaskStepComplete(currentProcessTaskStepVo.getId(), null); return 1; } } @@ -210,6 +213,7 @@ public class AutoexecProcessComponent extends ProcessStepHandlerBase { processTaskStepDataCrossoverMapper.deleteProcessTaskStepData(processTaskStepData); JSONArray configList = autoexecConfig.getJSONArray("configList"); if (CollectionUtils.isEmpty(configList)) { + processTaskStepComplete(currentProcessTaskStepVo.getId(), null); return 0; } JSONArray errorMessageList = new JSONArray(); @@ -258,6 +262,9 @@ public class AutoexecProcessComponent extends ProcessStepHandlerBase { } } } + if (CollectionUtils.isEmpty(jobIdList)) { + processTaskStepComplete(currentProcessTaskStepVo.getId(), null); + } // 如果有一个作业创建有异常,则根据失败策略执行操作 if (flag) { ProcessTaskStepDataVo processTaskStepDataVo = new ProcessTaskStepDataVo(); @@ -1311,6 +1318,7 @@ public class AutoexecProcessComponent extends ProcessStepHandlerBase { doNext(ProcessTaskOperationType.STEP_COMPLETE, new ProcessStepThread(processTaskStepVo) { @Override public void myExecute() { + UserContext.init(SystemUser.SYSTEM); handler.autoComplete(processTaskStepVo); } }); @@ -1318,6 +1326,16 @@ public class AutoexecProcessComponent extends ProcessStepHandlerBase { logger.error(e.getMessage(), e); } } + } else { + ProcessTaskStepVo processTaskStepVo = processTaskCrossoverMapper.getProcessTaskStepBaseInfoById(processTaskStepId); + IProcessStepHandler processStepHandler = ProcessStepHandlerFactory.getHandler(processTaskStepVo.getHandler()); + if (processStepHandler != null) { + try { + processStepHandler.assign(processTaskStepVo); + } catch (ProcessTaskException e) { + logger.error(e.getMessage(), e); + } + } } } -- Gitee