From dec7fae828811f2a81cdfb23b3b85d8ba70ba690 Mon Sep 17 00:00:00 2001 From: "1437892690@qq.com" <1437892690@qq.com> Date: Thu, 11 Sep 2025 14:25:30 +0800 Subject: [PATCH] =?UTF-8?q?[=E5=8A=9F=E8=83=BD]=20=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E5=8C=96=E8=8A=82=E7=82=B9=E5=BC=82=E5=B8=B8=E5=A4=84=E7=90=86?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1507967071911936]自动化节点异常处理优化 http://192.168.0.96:8090/demo/rdm.html#/story-detail/939050947543040/939050947543042/1507967071911936 --- .../process/dto/AutoexecJobBuilder.java | 10 ++ .../component/CreateJobProcessComponent.java | 137 ++++++++++-------- 2 files changed, 89 insertions(+), 58 deletions(-) diff --git a/src/main/java/neatlogic/module/autoexec/process/dto/AutoexecJobBuilder.java b/src/main/java/neatlogic/module/autoexec/process/dto/AutoexecJobBuilder.java index 9002d4b1..d687aa43 100644 --- a/src/main/java/neatlogic/module/autoexec/process/dto/AutoexecJobBuilder.java +++ b/src/main/java/neatlogic/module/autoexec/process/dto/AutoexecJobBuilder.java @@ -55,6 +55,8 @@ public class AutoexecJobBuilder { @EntityField(name = "作业参数数据", type = ApiParamType.JSONOBJECT) private JSONObject param; + private String error; + public Long getCombopId() { return combopId; } @@ -131,6 +133,14 @@ public class AutoexecJobBuilder { this.parallelPolicy = parallelPolicy; } + public String getError() { + return error; + } + + public void setError(String error) { + this.error = error; + } + public AutoexecJobBuilder(Long combopId) { this.combopId = combopId; } 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 b5c97e18..f77c3991 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 @@ -219,72 +219,93 @@ public class CreateJobProcessComponent extends ProcessStepHandlerBase { continue; } if (Objects.equals(createJobConfigConfigVo.getType(), "service")) { - JSONObject paramObj = null; - Long processTaskId = processTaskStepVo.getProcessTaskId(); - // 如果工单有表单信息,则查询出表单配置及数据 - IProcessTaskCrossoverService processTaskCrossoverService = CrossoverServiceFactory.getApi(IProcessTaskCrossoverService.class); - List formAttributeList = processTaskCrossoverService.getFormAttributeListByProcessTaskIdAngTagNew(processTaskId, createJobConfigConfigVo.getFormTag()); - if (CollectionUtils.isNotEmpty(formAttributeList)) { - List processTaskFormAttributeDataList = processTaskCrossoverService.getProcessTaskFormAttributeDataListByProcessTaskIdAndTagNew(processTaskId, createJobConfigConfigVo.getFormTag()); - for (ProcessTaskFormAttributeDataVo attributeDataVo : processTaskFormAttributeDataList) { - if (Objects.equals(attributeDataVo.getAttributeUuid(), createJobConfigConfigVo.getFormAttributeUuid())) { - paramObj = (JSONObject) attributeDataVo.getDataObj(); - break; + Long combopId = null; + String jobName = null; + try { + JSONObject paramObj = null; + Long processTaskId = processTaskStepVo.getProcessTaskId(); + // 如果工单有表单信息,则查询出表单配置及数据 + IProcessTaskCrossoverService processTaskCrossoverService = CrossoverServiceFactory.getApi(IProcessTaskCrossoverService.class); + List formAttributeList = processTaskCrossoverService.getFormAttributeListByProcessTaskIdAngTagNew(processTaskId, createJobConfigConfigVo.getFormTag()); + if (CollectionUtils.isNotEmpty(formAttributeList)) { + List processTaskFormAttributeDataList = processTaskCrossoverService.getProcessTaskFormAttributeDataListByProcessTaskIdAndTagNew(processTaskId, createJobConfigConfigVo.getFormTag()); + for (ProcessTaskFormAttributeDataVo attributeDataVo : processTaskFormAttributeDataList) { + if (Objects.equals(attributeDataVo.getAttributeUuid(), createJobConfigConfigVo.getFormAttributeUuid())) { + paramObj = (JSONObject) attributeDataVo.getDataObj(); + break; + } } } - } - if (MapUtils.isNotEmpty(paramObj)) { - Long serviceId = paramObj.getLong("serviceId"); - AutoexecServiceVo autoexecServiceVo = autoexecServiceMapper.getAutoexecServiceById(serviceId); - if (autoexecServiceVo == null) { - throw new AutoexecServiceNotFoundException(serviceId); + if (MapUtils.isNotEmpty(paramObj)) { + Long serviceId = paramObj.getLong("serviceId"); + String name = paramObj.getString("name"); + jobName = name; + AutoexecServiceVo autoexecServiceVo = autoexecServiceMapper.getAutoexecServiceById(serviceId); + if (autoexecServiceVo == null) { + throw new AutoexecServiceNotFoundException(serviceId); + } + if (Objects.equals(autoexecServiceVo.getConfigExpired(), 1)) { + throw new AutoexecServiceConfigExpiredException(autoexecServiceVo.getName()); + } + combopId = autoexecServiceVo.getCombopId(); + AutoexecCombopVersionVo autoexecCombopVersionVo = autoexecCombopVersionMapper.getAutoexecCombopActiveVersionByCombopId(combopId); + if (autoexecCombopVersionVo == null) { + throw new AutoexecCombopActiveVersionNotFoundException(combopId); + } + Long scenarioId = paramObj.getLong("scenarioId"); + JSONArray formAttributeDataList = paramObj.getJSONArray("formAttributeDataList"); + JSONArray hidecomponentList = paramObj.getJSONArray("hidecomponentList"); + Integer roundCount = paramObj.getInteger("roundCount"); + Integer parallelCount = paramObj.getInteger("parallelCount"); + String parallelPolicy = paramObj.getString("parallelPolicy"); + String executeUser = paramObj.getString("executeUser"); + Long protocol = paramObj.getLong("protocol"); + AutoexecCombopExecuteNodeConfigVo executeNodeConfig = paramObj.getObject("executeNodeConfig", AutoexecCombopExecuteNodeConfigVo.class); + JSONObject runtimeParamMap = paramObj.getJSONObject("runtimeParamMap"); + ParamMappingVo runnerGroup = null; + JSONObject runnerGroupObj = paramObj.getJSONObject("runnerGroup"); + if (MapUtils.isNotEmpty(runnerGroupObj)) { + runnerGroup = runnerGroupObj.toJavaObject(ParamMappingVo.class); + } + ParamMappingVo runnerGroupTag = null; + JSONObject runnerGroupTagObj = paramObj.getJSONObject("runnerGroupTag"); + if (MapUtils.isNotEmpty(runnerGroupTagObj)) { + runnerGroupTag = runnerGroupTagObj.toJavaObject(ParamMappingVo.class); + } + AutoexecJobBuilder autoexecJobBuilder = autoexecServiceService.getAutoexecJobBuilder(autoexecServiceVo, autoexecCombopVersionVo, name, scenarioId, formAttributeDataList, hidecomponentList, roundCount, parallelCount, parallelPolicy, executeUser, protocol, executeNodeConfig, runtimeParamMap, runnerGroup, runnerGroupTag); + if (autoexecJobBuilder != null) { + builderList.add(autoexecJobBuilder); + } } - if (Objects.equals(autoexecServiceVo.getConfigExpired(), 1)) { - throw new AutoexecServiceConfigExpiredException(autoexecServiceVo.getName()); + } catch (Exception e) { + logger.error(e.getMessage(), e); + AutoexecJobBuilder autoexecJobBuilder = new AutoexecJobBuilder(combopId); + autoexecJobBuilder.setJobName(jobName); + autoexecJobBuilder.setError(e.getMessage()); + builderList.add(autoexecJobBuilder); + } + } else { + try { + Long activeVersionId = autoexecCombopVersionMapper.getAutoexecCombopActiveVersionIdByCombopId(createJobConfigConfigVo.getCombopId()); + if (activeVersionId == null) { + throw new AutoexecCombopActiveVersionNotFoundException(createJobConfigConfigVo.getCombopId()); } - Long combopId = autoexecServiceVo.getCombopId(); - AutoexecCombopVersionVo autoexecCombopVersionVo = autoexecCombopVersionMapper.getAutoexecCombopActiveVersionByCombopId(combopId); + AutoexecCombopVersionVo autoexecCombopVersionVo = autoexecCombopService.getAutoexecCombopVersionById(activeVersionId); if (autoexecCombopVersionVo == null) { - throw new AutoexecCombopActiveVersionNotFoundException(combopId); - } - String name = paramObj.getString("name"); - Long scenarioId = paramObj.getLong("scenarioId"); - JSONArray formAttributeDataList = paramObj.getJSONArray("formAttributeDataList"); - JSONArray hidecomponentList = paramObj.getJSONArray("hidecomponentList"); - Integer roundCount = paramObj.getInteger("roundCount"); - Integer parallelCount = paramObj.getInteger("parallelCount"); - String parallelPolicy = paramObj.getString("parallelPolicy"); - String executeUser = paramObj.getString("executeUser"); - Long protocol = paramObj.getLong("protocol"); - AutoexecCombopExecuteNodeConfigVo executeNodeConfig = paramObj.getObject("executeNodeConfig", AutoexecCombopExecuteNodeConfigVo.class); - JSONObject runtimeParamMap = paramObj.getJSONObject("runtimeParamMap"); - ParamMappingVo runnerGroup = null; - JSONObject runnerGroupObj = paramObj.getJSONObject("runnerGroup"); - if (MapUtils.isNotEmpty(runnerGroupObj)) { - runnerGroup = runnerGroupObj.toJavaObject(ParamMappingVo.class); - } - ParamMappingVo runnerGroupTag = null; - JSONObject runnerGroupTagObj = paramObj.getJSONObject("runnerGroupTag"); - if (MapUtils.isNotEmpty(runnerGroupTagObj)) { - runnerGroupTag = runnerGroupTagObj.toJavaObject(ParamMappingVo.class); + throw new AutoexecCombopVersionNotFoundException(activeVersionId); } - AutoexecJobBuilder autoexecJobBuilder = autoexecServiceService.getAutoexecJobBuilder(autoexecServiceVo, autoexecCombopVersionVo, name, scenarioId, formAttributeDataList, hidecomponentList, roundCount,parallelCount,parallelPolicy, executeUser, protocol, executeNodeConfig, runtimeParamMap, runnerGroup, runnerGroupTag); - if (autoexecJobBuilder != null) { - builderList.add(autoexecJobBuilder); + // 根据配置信息创建AutoexecJobBuilder对象 + List list = CreateJobConfigUtil.createAutoexecJobBuilderList(processTaskStepVo, createJobConfigConfigVo, autoexecCombopVersionVo); + if (CollectionUtils.isNotEmpty(list)) { + builderList.addAll(list); } + } catch (Exception e) { + logger.error(e.getMessage(), e); + AutoexecJobBuilder autoexecJobBuilder = new AutoexecJobBuilder(createJobConfigConfigVo.getCombopId()); + autoexecJobBuilder.setJobName(createJobConfigConfigVo.getJobName()); + autoexecJobBuilder.setError(e.getMessage()); + builderList.add(autoexecJobBuilder); } - } else { - Long activeVersionId = autoexecCombopVersionMapper.getAutoexecCombopActiveVersionIdByCombopId(createJobConfigConfigVo.getCombopId()); - if (activeVersionId == null) { - throw new AutoexecCombopActiveVersionNotFoundException(createJobConfigConfigVo.getCombopId()); - } - AutoexecCombopVersionVo autoexecCombopVersionVo = autoexecCombopService.getAutoexecCombopVersionById(activeVersionId); - if (autoexecCombopVersionVo == null) { - throw new AutoexecCombopVersionNotFoundException(activeVersionId); - } - // 根据配置信息创建AutoexecJobBuilder对象 - List list = CreateJobConfigUtil.createAutoexecJobBuilderList(processTaskStepVo, createJobConfigConfigVo, autoexecCombopVersionVo); - builderList.addAll(list); } } -- Gitee