From 578e03e4a4a752763dcb73a216d4a59ab4e9da5c Mon Sep 17 00:00:00 2001 From: "1437892690@qq.com" <1437892690@qq.com> Date: Thu, 30 May 2024 14:51:19 +0800 Subject: [PATCH] =?UTF-8?q?[=E4=BF=AE=E5=A4=8D]=20=E6=B5=81=E8=BD=AC?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E4=B8=AD=E8=87=AA=E5=8A=A8=E5=8C=96=E8=8A=82?= =?UTF-8?q?=E7=82=B9=E9=85=8D=E7=BD=AE=E4=B8=8B=E6=8B=89=E6=A1=86=E8=BD=AC?= =?UTF-8?q?=E5=88=B0=E8=87=AA=E5=8A=A8=E5=8C=96=E4=BD=9C=E4=B8=9A=E5=8F=82?= =?UTF-8?q?=E6=95=B0=E6=95=B0=E6=8D=AE=E6=98=AFjson?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1167959156817920]流转配置中自动化节点配置下拉框转到自动化作业参数数据是json http://192.168.0.96:8090/demo/rdm.html#/bug-detail/939050947543040/939050947543057/1167959156817920 --- .../service/AutoexecJobServiceImpl.java | 38 ++++++++- .../component/AutoexecProcessComponent.java | 82 +++++++++++++++---- 2 files changed, 101 insertions(+), 19 deletions(-) diff --git a/src/main/java/neatlogic/module/autoexec/service/AutoexecJobServiceImpl.java b/src/main/java/neatlogic/module/autoexec/service/AutoexecJobServiceImpl.java index 989c3feb..ab39eeea 100644 --- a/src/main/java/neatlogic/module/autoexec/service/AutoexecJobServiceImpl.java +++ b/src/main/java/neatlogic/module/autoexec/service/AutoexecJobServiceImpl.java @@ -482,19 +482,53 @@ public class AutoexecJobServiceImpl implements AutoexecJobService, IAutoexecJobC script = autoexecCombopService.getOperationActiveVersionScriptByOperationId(id); } jobPhaseOperationVo = new AutoexecJobPhaseOperationVo(autoexecCombopPhaseOperationVo, jobPhaseVo, scriptVo, scriptVersionVo, script, jobPhaseVoList, preOperationNameMap); - initIfBlockOperation(autoexecCombopPhaseOperationVo, jobPhaseOperationVo, jobPhaseVo, jobPhaseVoList, jobVo, preOperationNameMap); +// initIfBlockOperation(autoexecCombopPhaseOperationVo, jobPhaseOperationVo, jobPhaseVo, jobPhaseVoList, jobVo, preOperationNameMap); } else { AutoexecToolVo toolVo = autoexecToolMapper.getToolById(id); if (toolVo == null) { throw new AutoexecToolNotFoundException(id); } jobPhaseOperationVo = new AutoexecJobPhaseOperationVo(autoexecCombopPhaseOperationVo, jobPhaseVo, toolVo, jobPhaseVoList, preOperationNameMap); - initIfBlockOperation(autoexecCombopPhaseOperationVo, jobPhaseOperationVo, jobPhaseVo, jobPhaseVoList, jobVo, preOperationNameMap); +// initIfBlockOperation(autoexecCombopPhaseOperationVo, jobPhaseOperationVo, jobPhaseVo, jobPhaseVoList, jobVo, preOperationNameMap); } //用于 if (jobPhaseOperationVo.getParentOperationId() == null) { jobPhaseVo.getOperationList().add(jobPhaseOperationVo); } + if (autoexecCombopPhaseOperationVo.getParentOperationId() != null) { + AutoexecJobPhaseOperationVo parentJobPhaseOperationVo2 = null; + List operationList = jobPhaseVo.getOperationList(); + if (CollectionUtils.isNotEmpty(operationList)) { + for (AutoexecJobPhaseOperationVo jobPhaseOperationVo1 : operationList) { + if (Objects.equals(jobPhaseOperationVo1.getId(), autoexecCombopPhaseOperationVo.getParentOperationId())) { + parentJobPhaseOperationVo2 = jobPhaseOperationVo1; + } + } + } + if (parentJobPhaseOperationVo2 != null) { + JSONObject paramObj = parentJobPhaseOperationVo2.getParam(); + if (paramObj == null) { + paramObj = new JSONObject(); + } + if (Objects.equals(autoexecCombopPhaseOperationVo.getParentOperationType(), "if")) { + JSONArray ifList = paramObj.getJSONArray("ifList"); + if (ifList == null) { + ifList = new JSONArray(); + paramObj.put("ifList", ifList); + } + ifList.add(jobPhaseOperationVo); + } else if (Objects.equals(autoexecCombopPhaseOperationVo.getParentOperationType(), "else")) { + JSONArray elseList = paramObj.getJSONArray("elseList"); + if (elseList == null) { + elseList = new JSONArray(); + paramObj.put("elseList", elseList); + } + elseList.add(jobPhaseOperationVo); + } + parentJobPhaseOperationVo2.setParamStr(paramObj.toJSONString()); + } + } + initIfBlockOperation(autoexecCombopPhaseOperationVo, jobPhaseOperationVo, jobPhaseVo, jobPhaseVoList, jobVo, preOperationNameMap); jobPhaseOperationVoList.add(jobPhaseOperationVo); autoexecJobMapper.insertJobPhaseOperation(jobPhaseOperationVo); autoexecJobMapper.insertIgnoreJobContent(new AutoexecJobContentVo(jobPhaseOperationVo.getParamHash(), jobPhaseOperationVo.getParamStr())); 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 222af36e..e1b1486c 100644 --- a/src/main/java/neatlogic/module/autoexec/stephandler/component/AutoexecProcessComponent.java +++ b/src/main/java/neatlogic/module/autoexec/stephandler/component/AutoexecProcessComponent.java @@ -37,6 +37,8 @@ import neatlogic.framework.common.constvalue.SystemUser; import neatlogic.framework.crossover.CrossoverServiceFactory; import neatlogic.framework.dao.mapper.runner.RunnerMapper; import neatlogic.framework.dto.runner.RunnerGroupVo; +import neatlogic.framework.form.attribute.core.FormAttributeDataConversionHandlerFactory; +import neatlogic.framework.form.attribute.core.IFormAttributeDataConversionHandler; import neatlogic.framework.form.dto.AttributeDataVo; import neatlogic.framework.form.dto.FormAttributeVo; import neatlogic.framework.notify.core.INotifyParamHandler; @@ -304,8 +306,36 @@ public class AutoexecProcessComponent extends ProcessStepHandlerBase { IProcessTaskCrossoverService processTaskCrossoverService = CrossoverServiceFactory.getApi(IProcessTaskCrossoverService.class); List formAttributeList = processTaskCrossoverService.getFormAttributeListByProcessTaskIdAngTag(processTaskId, FORM_EXTEND_ATTRIBUTE_TAG); if (CollectionUtils.isNotEmpty(formAttributeList)) { - formAttributeMap = formAttributeList.stream().collect(Collectors.toMap(e -> e.getUuid(), e -> e)); List processTaskFormAttributeDataList = processTaskCrossoverService.getProcessTaskFormAttributeDataListByProcessTaskIdAndTag(processTaskId, FORM_EXTEND_ATTRIBUTE_TAG); + // 添加表格组件中的子组件到组件列表中 + List allDownwardFormAttributeList = new ArrayList<>(); + for (FormAttributeVo formAttributeVo : formAttributeList) { + JSONObject componentObj = new JSONObject(); + componentObj.put("handler", formAttributeVo.getHandler()); + componentObj.put("uuid", formAttributeVo.getUuid()); + componentObj.put("label", formAttributeVo.getLabel()); + componentObj.put("config", formAttributeVo.getConfig()); + componentObj.put("type", formAttributeVo.getType()); + List downwardFormAttributeList = FormUtil.getFormAttributeList(componentObj, null); + for (FormAttributeVo downwardFormAttribute : downwardFormAttributeList) { + if (Objects.equals(formAttributeVo.getUuid(), downwardFormAttribute.getUuid())) { + continue; + } + allDownwardFormAttributeList.add(downwardFormAttribute); + } + } + formAttributeList.addAll(allDownwardFormAttributeList); + formAttributeMap = formAttributeList.stream().collect(Collectors.toMap(FormAttributeVo::getUuid, e -> e)); + for (ProcessTaskFormAttributeDataVo attributeDataVo : processTaskFormAttributeDataList) { + FormAttributeVo formAttributeVo = formAttributeMap.get(attributeDataVo.getAttributeUuid()); + if (formAttributeVo != null) { + IFormAttributeDataConversionHandler formAttributeDataConversionHandler = FormAttributeDataConversionHandlerFactory.getHandler(formAttributeVo.getHandler()); + if (formAttributeDataConversionHandler != null) { + Object simpleValue = formAttributeDataConversionHandler.getSimpleValue(attributeDataVo.getDataObj()); + attributeDataVo.setDataObj(simpleValue); + } + } + } processTaskFormAttributeDataMap = processTaskFormAttributeDataList.stream().collect(Collectors.toMap(e -> e.getAttributeUuid(), e -> e)); } // 作业策略createJobPolicy为single时表示单次创建作业,createJobPolicy为batch时表示批量创建作业 @@ -450,7 +480,7 @@ public class AutoexecProcessComponent extends ProcessStepHandlerBase { String attributeUuid = batchJobDataSource.getString("attributeUuid"); ProcessTaskFormAttributeDataVo formAttributeDataVo = processTaskFormAttributeDataMap.get(attributeUuid); JSONArray filterList = batchJobDataSource.getJSONArray("filterList"); - JSONArray tbodyList = getTbodyList(formAttributeDataVo, filterList); + JSONArray tbodyList = getTbodyList(formAttributeDataVo, filterList, formAttributeMap); if (CollectionUtils.isEmpty(tbodyList)) { return resultList; } @@ -524,25 +554,18 @@ public class AutoexecProcessComponent extends ProcessStepHandlerBase { FormAttributeVo formAttributeVo = formAttributeMap.get(value); ProcessTaskFormAttributeDataVo attributeDataVo = processTaskFormAttributeDataMap.get(value); JSONArray filterList = scenarioParamObj.getJSONArray("filterList"); - JSONArray tbodyList = getTbodyList(attributeDataVo, filterList); + JSONArray tbodyList = getTbodyList(attributeDataVo, filterList, formAttributeMap); List list = parseFormTableComponentMappingValue(formAttributeVo, tbodyList, column); scenario = convertDateType(type, list); } } else if (Objects.equals(mappingMode, "formCommonComponent")) { ProcessTaskFormAttributeDataVo attributeDataVo = processTaskFormAttributeDataMap.get(value); if (attributeDataVo != null) { - List formSelectAttributeList = new ArrayList<>(); - formSelectAttributeList.add(neatlogic.framework.form.constvalue.FormHandler.FORMSELECT.getHandler()); - formSelectAttributeList.add(neatlogic.framework.form.constvalue.FormHandler.FORMCHECKBOX.getHandler()); - formSelectAttributeList.add(neatlogic.framework.form.constvalue.FormHandler.FORMRADIO.getHandler()); List formTextAttributeList = new ArrayList<>(); formTextAttributeList.add(neatlogic.framework.form.constvalue.FormHandler.FORMTEXT.getHandler()); formTextAttributeList.add(neatlogic.framework.form.constvalue.FormHandler.FORMTEXTAREA.getHandler()); if (formTextAttributeList.contains(attributeDataVo.getHandler())) { scenario = convertDateType(type, (String) attributeDataVo.getDataObj()); - } else if (formSelectAttributeList.contains(attributeDataVo.getHandler())) { - Object valueObject = FormUtil.getFormSelectAttributeValueByOriginalValue(attributeDataVo.getDataObj()); - scenario = valueObject; } else { scenario = attributeDataVo.getDataObj(); } @@ -669,7 +692,7 @@ public class AutoexecProcessComponent extends ProcessStepHandlerBase { return jobNamePrefixValue; } - private JSONArray getTbodyList(ProcessTaskFormAttributeDataVo formAttributeDataVo, JSONArray filterList) { + private JSONArray getTbodyList(ProcessTaskFormAttributeDataVo formAttributeDataVo, JSONArray filterList, Map formAttributeMap) { JSONArray tbodyList = new JSONArray(); if (formAttributeDataVo == null) { return tbodyList; @@ -681,7 +704,26 @@ public class AutoexecProcessComponent extends ProcessStepHandlerBase { if (formAttributeDataVo.getDataObj() == null) { return tbodyList; } - JSONArray dataList = (JSONArray) formAttributeDataVo.getDataObj(); + JSONArray dataList = new JSONArray(); + JSONArray tempList = (JSONArray) formAttributeDataVo.getDataObj(); + for (int i = 0; i < tempList.size(); i++) { + JSONObject newRowData = new JSONObject(); + JSONObject rowData = tempList.getJSONObject(i); + for (Map.Entry entry : rowData.entrySet()) { + FormAttributeVo formAttributeVo = formAttributeMap.get(entry.getKey()); + if (formAttributeVo != null) { + IFormAttributeDataConversionHandler formAttributeDataConversionHandler = FormAttributeDataConversionHandlerFactory.getHandler(formAttributeVo.getHandler()); + if (formAttributeDataConversionHandler != null) { + newRowData.put(entry.getKey(), formAttributeDataConversionHandler.getSimpleValue(entry.getValue())); + } else { + newRowData.put(entry.getKey(), entry.getValue()); + } + } else { + newRowData.put(entry.getKey(), entry.getValue()); + } + } + dataList.add(newRowData); + } // 数据过滤 if (CollectionUtils.isNotEmpty(filterList)) { for (int i = 0; i < dataList.size(); i++) { @@ -796,7 +838,7 @@ public class AutoexecProcessComponent extends ProcessStepHandlerBase { FormAttributeVo formAttributeVo = formAttributeMap.get(value); ProcessTaskFormAttributeDataVo attributeDataVo = processTaskFormAttributeDataMap.get(value); JSONArray filterList = runtimeParamObj.getJSONArray("filterList"); - JSONArray tbodyList = getTbodyList(attributeDataVo, filterList); + JSONArray tbodyList = getTbodyList(attributeDataVo, filterList, formAttributeMap); List list = parseFormTableComponentMappingValue(formAttributeVo, tbodyList, column); param.put(key, convertDateType(type, list)); } @@ -806,8 +848,11 @@ public class AutoexecProcessComponent extends ProcessStepHandlerBase { if (formTextAttributeList.contains(attributeDataVo.getHandler())) { param.put(key, convertDateType(type, (String) attributeDataVo.getDataObj())); } else if (formSelectAttributeList.contains(attributeDataVo.getHandler())) { - Object valueObject = FormUtil.getFormSelectAttributeValueByOriginalValue(attributeDataVo.getDataObj()); - param.put(key, valueObject); + if (attributeDataVo.getDataObj() instanceof String) { + param.put(key, convertDateType(type, (String) attributeDataVo.getDataObj())); + } else if (attributeDataVo.getDataObj() instanceof JSONArray) { + param.put(key, convertDateType(type, JSONObject.toJSONString(attributeDataVo.getDataObj()))); + } } else { param.put(key, attributeDataVo.getDataObj()); } @@ -907,7 +952,7 @@ public class AutoexecProcessComponent extends ProcessStepHandlerBase { FormAttributeVo formAttributeVo = formAttributeMap.get(value); ProcessTaskFormAttributeDataVo attributeDataVo = processTaskFormAttributeDataMap.get(value); JSONArray filterList = executeParamObj.getJSONArray("filterList"); - JSONArray tbodyList = getTbodyList(attributeDataVo, filterList); + JSONArray tbodyList = getTbodyList(attributeDataVo, filterList, formAttributeMap); List list = parseFormTableComponentMappingValue(formAttributeVo, tbodyList, column); if (CollectionUtils.isNotEmpty(list)) { List inputNodeList = new ArrayList<>(); @@ -1203,7 +1248,10 @@ public class AutoexecProcessComponent extends ProcessStepHandlerBase { if (CollectionUtils.isNotEmpty(sourceList)) { JSONArray inputNodeList = new JSONArray(); for (String str : sourceList) { - inputNodeList.add(new AutoexecNodeVo(str)); + if (StringUtils.isNotBlank(str)) { + JSONArray inputNodeArray = (JSONArray) convertDateType(paramType, str); + inputNodeList.addAll(inputNodeArray); + } } return inputNodeList; } -- Gitee