diff --git a/src/main/java/neatlogic/module/autoexec/process/util/CreateJobConfigUtil.java b/src/main/java/neatlogic/module/autoexec/process/util/CreateJobConfigUtil.java index 9a569d414ff69d8714c31afcf91cf9435dfe6d1f..abfb723f279b1d802a56cab4fefbd5904df11416 100644 --- a/src/main/java/neatlogic/module/autoexec/process/util/CreateJobConfigUtil.java +++ b/src/main/java/neatlogic/module/autoexec/process/util/CreateJobConfigUtil.java @@ -60,11 +60,18 @@ public class CreateJobConfigUtil { public static List createAutoexecJobBuilderList(ProcessTaskStepVo currentProcessTaskStepVo, CreateJobConfigConfigVo createJobConfigConfigVo, AutoexecCombopVersionVo autoexecCombopVersionVo) { Long processTaskId = currentProcessTaskStepVo.getProcessTaskId(); // 如果工单有表单信息,则查询出表单配置及数据 - Map formAttributeDataMap = new HashMap<>(); + Map formTableComponentDataMap = new HashMap<>(); + Map formCommonComponentDataMap = new HashMap<>(); Map originalFormAttributeDataMap = new HashMap<>(); IProcessTaskCrossoverService processTaskCrossoverService = CrossoverServiceFactory.getApi(IProcessTaskCrossoverService.class); List formAttributeList = processTaskCrossoverService.getFormAttributeListByProcessTaskIdAngTagNew(processTaskId, createJobConfigConfigVo.getFormTag()); if (CollectionUtils.isNotEmpty(formAttributeList)) { + Map formAttributeMap = new HashMap<>(); + for (FormAttributeVo formAttributeVo : formAttributeList) { + if (!formAttributeMap.containsKey(formAttributeVo.getUuid())) { + formAttributeMap.put(formAttributeVo.getUuid(), formAttributeVo); + } + } List processTaskFormAttributeDataList = processTaskCrossoverService.getProcessTaskFormAttributeDataListByProcessTaskIdAndTagNew(processTaskId, createJobConfigConfigVo.getFormTag()); for (ProcessTaskFormAttributeDataVo attributeDataVo : processTaskFormAttributeDataList) { // 放入表单普通组件数据 @@ -74,15 +81,29 @@ public class CreateJobConfigUtil { IFormAttributeDataConversionHandler handler = FormAttributeDataConversionHandlerFactory.getHandler(attributeDataVo.getHandler()); if (handler != null) { Object simpleValue = handler.getSimpleValue(attributeDataVo.getDataObj()); - formAttributeDataMap.put(attributeDataVo.getAttributeUuid(), simpleValue); - formAttributeDataMap.put(attributeDataVo.getAttributeKey(), simpleValue); + formTableComponentDataMap.put(attributeDataVo.getAttributeUuid(), simpleValue); + formTableComponentDataMap.put(attributeDataVo.getAttributeKey(), simpleValue); } else { Object dataObj = attributeDataVo.getDataObj(); - formAttributeDataMap.put(attributeDataVo.getAttributeUuid(), dataObj); - formAttributeDataMap.put(attributeDataVo.getAttributeKey(), dataObj); + formTableComponentDataMap.put(attributeDataVo.getAttributeUuid(), dataObj); + formTableComponentDataMap.put(attributeDataVo.getAttributeKey(), dataObj); } } Object dataObj = attributeDataVo.getDataObj(); + FormAttributeVo formAttributeVo = formAttributeMap.get(attributeDataVo.getAttributeUuid()); + if (dataObj != null && formAttributeVo != null) { + IFormAttributeDataConversionHandler handler = FormAttributeDataConversionHandlerFactory.getHandler(formAttributeVo.getHandler()); + if (handler != null) { + Object enhanceReadabilityValue = handler.getEnhanceReadabilityValue(dataObj, formAttributeVo); + formCommonComponentDataMap.put(formAttributeVo.getUuid(), enhanceReadabilityValue); + formCommonComponentDataMap.put(formAttributeVo.getKey(), enhanceReadabilityValue); + formCommonComponentDataMap.put(formAttributeVo.getLabel(), enhanceReadabilityValue); + } else { + formCommonComponentDataMap.put(attributeDataVo.getAttributeUuid(), dataObj); + formCommonComponentDataMap.put(attributeDataVo.getAttributeKey(), dataObj); + formCommonComponentDataMap.put(attributeDataVo.getAttributeLabel(), dataObj); + } + } originalFormAttributeDataMap.put(attributeDataVo.getAttributeUuid(), dataObj); originalFormAttributeDataMap.put(attributeDataVo.getAttributeKey(), dataObj); } @@ -109,12 +130,12 @@ public class CreateJobConfigUtil { // 作业策略createJobPolicy为single时表示单次创建作业,createJobPolicy为batch时表示批量创建作业 String createPolicy = createJobConfigConfigVo.getCreatePolicy(); if (Objects.equals(createPolicy, "single")) { - AutoexecJobBuilder builder = createSingleAutoexecJobBuilder(currentProcessTaskStepVo, createJobConfigConfigVo, autoexecCombopVersionVo, formAttributeList, originalFormAttributeDataMap, formAttributeDataMap, processTaskParam); + AutoexecJobBuilder builder = createSingleAutoexecJobBuilder(currentProcessTaskStepVo, createJobConfigConfigVo, autoexecCombopVersionVo, formAttributeList, originalFormAttributeDataMap, formTableComponentDataMap, formCommonComponentDataMap, processTaskParam); List builderList = new ArrayList<>(); builderList.add(builder); return builderList; } else if (Objects.equals(createPolicy, "batch")) { - List builderList = createBatchAutoexecJobBuilder(currentProcessTaskStepVo, createJobConfigConfigVo, autoexecCombopVersionVo, formAttributeList, originalFormAttributeDataMap, formAttributeDataMap, processTaskParam); + List builderList = createBatchAutoexecJobBuilder(currentProcessTaskStepVo, createJobConfigConfigVo, autoexecCombopVersionVo, formAttributeList, originalFormAttributeDataMap, formTableComponentDataMap, formCommonComponentDataMap, processTaskParam); return builderList; } else { return null; @@ -128,7 +149,8 @@ public class CreateJobConfigUtil { * @param createJobConfigConfigVo * @param formAttributeList * @param originalFormAttributeDataMap - * @param formAttributeDataMap + * @param formTableComponentDataMap + * @param formCommonComponentDataMap * @param processTaskParam * @return */ @@ -138,7 +160,8 @@ public class CreateJobConfigUtil { AutoexecCombopVersionVo autoexecCombopVersionVo, List formAttributeList, Map originalFormAttributeDataMap, - Map formAttributeDataMap, + Map formTableComponentDataMap, + Map formCommonComponentDataMap, JSONObject processTaskParam) { List resultList = new ArrayList<>(); @@ -147,7 +170,7 @@ public class CreateJobConfigUtil { if (batchDataSourceMapping == null) { return resultList; } - JSONArray tbodyList = parseFormTableComponentMappingMode(batchDataSourceMapping, formAttributeList, originalFormAttributeDataMap, formAttributeDataMap, processTaskParam); + JSONArray tbodyList = parseFormTableComponentMappingMode(batchDataSourceMapping, formAttributeList, originalFormAttributeDataMap, formTableComponentDataMap, formCommonComponentDataMap, processTaskParam); if (CollectionUtils.isEmpty(tbodyList)) { return resultList; } @@ -161,9 +184,9 @@ public class CreateJobConfigUtil { // 遍历表格数据,创建AutoexecJobVo对象列表 for (Object obj : tbodyList) { List list = Collections.singletonList(obj); - formAttributeDataMap.put(formAttributeVo.getUuid(), list); - formAttributeDataMap.put(formAttributeVo.getKey(), list); - AutoexecJobBuilder builder = createSingleAutoexecJobBuilder(currentProcessTaskStepVo, createJobConfigConfigVo, autoexecCombopVersionVo, formAttributeList, originalFormAttributeDataMap, formAttributeDataMap, processTaskParam); + formTableComponentDataMap.put(formAttributeVo.getUuid(), list); + formTableComponentDataMap.put(formAttributeVo.getKey(), list); + AutoexecJobBuilder builder = createSingleAutoexecJobBuilder(currentProcessTaskStepVo, createJobConfigConfigVo, autoexecCombopVersionVo, formAttributeList, originalFormAttributeDataMap, formTableComponentDataMap, formCommonComponentDataMap, processTaskParam); resultList.add(builder); } return resultList; @@ -176,7 +199,7 @@ public class CreateJobConfigUtil { * @param createJobConfigConfigVo * @param formAttributeList * @param originalFormAttributeDataMap - * @param formAttributeDataMap + * @param formTableComponentDataMap * @param processTaskParam * @return */ @@ -186,7 +209,8 @@ public class CreateJobConfigUtil { AutoexecCombopVersionVo autoexecCombopVersionVo, List formAttributeList, Map originalFormAttributeDataMap, - Map formAttributeDataMap, + Map formTableComponentDataMap, + Map formCommonComponentDataMap, JSONObject processTaskParam) { // 组合工具ID Long combopId = createJobConfigConfigVo.getCombopId(); @@ -197,7 +221,7 @@ public class CreateJobConfigUtil { rawData.put("autoexecCombopVersionVo", autoexecCombopVersionVo); rawData.put("formAttributeList", formAttributeList); rawData.put("originalFormAttributeDataMap", originalFormAttributeDataMap); - rawData.put("formAttributeDataMap", formAttributeDataMap); + rawData.put("formTableComponentDataMap", formTableComponentDataMap); rawData.put("processTaskParam", processTaskParam); builder.setRawData(JSONObject.parseObject(rawData.toJSONString())); // 作业名称 @@ -207,7 +231,7 @@ public class CreateJobConfigUtil { if (CollectionUtils.isNotEmpty(versionConfig.getScenarioList())) { List scenarioParamMappingGroupList = createJobConfigConfigVo.getScenarioParamMappingGroupList(); if (CollectionUtils.isNotEmpty(scenarioParamMappingGroupList)) { - JSONArray jsonArray = parseCreateJobConfigMappingGroup(scenarioParamMappingGroupList.get(0), formAttributeList, originalFormAttributeDataMap, formAttributeDataMap, processTaskParam); + JSONArray jsonArray = parseCreateJobConfigMappingGroup(scenarioParamMappingGroupList.get(0), formAttributeList, originalFormAttributeDataMap, formTableComponentDataMap, formCommonComponentDataMap, processTaskParam); Long scenarioId = getScenarioId(jsonArray, versionConfig.getScenarioList()); builder.setScenarioId(scenarioId); } @@ -224,7 +248,7 @@ public class CreateJobConfigUtil { if (autoexecParamVo == null) { continue; } - JSONArray jsonArray = parseCreateJobConfigMappingGroup(mappingGroupVo, formAttributeList, originalFormAttributeDataMap, formAttributeDataMap, processTaskParam); + JSONArray jsonArray = parseCreateJobConfigMappingGroup(mappingGroupVo, formAttributeList, originalFormAttributeDataMap, formTableComponentDataMap, formCommonComponentDataMap, processTaskParam); if (CollectionUtils.isEmpty(jsonArray)) { continue; } @@ -277,7 +301,7 @@ public class CreateJobConfigUtil { executeConfig.setWhenToSpecify(CombopNodeSpecify.RUNTIME.getValue()); CreateJobConfigMappingGroupVo mappingGroupVo = executeParamMappingGroupMap.get("executeNodeConfig"); if (mappingGroupVo != null) { - JSONArray jsonArray = parseCreateJobConfigMappingGroup(mappingGroupVo, formAttributeList, originalFormAttributeDataMap, formAttributeDataMap, processTaskParam); + JSONArray jsonArray = parseCreateJobConfigMappingGroup(mappingGroupVo, formAttributeList, originalFormAttributeDataMap, formTableComponentDataMap, formCommonComponentDataMap, processTaskParam); AutoexecCombopExecuteNodeConfigVo executeNodeConfigVo = getExecuteNodeConfig(jsonArray); if (executeNodeConfigVo != null) { executeConfig.setExecuteNodeConfig(executeNodeConfigVo); @@ -291,7 +315,7 @@ public class CreateJobConfigUtil { } else { CreateJobConfigMappingGroupVo mappingGroupVo = executeParamMappingGroupMap.get("protocolId"); if (mappingGroupVo != null) { - JSONArray jsonArray = parseCreateJobConfigMappingGroup(mappingGroupVo, formAttributeList, originalFormAttributeDataMap, formAttributeDataMap, processTaskParam); + JSONArray jsonArray = parseCreateJobConfigMappingGroup(mappingGroupVo, formAttributeList, originalFormAttributeDataMap, formTableComponentDataMap, formCommonComponentDataMap, processTaskParam); Long protocolId = getProtocolId(jsonArray); executeConfig.setProtocolId(protocolId); } @@ -304,7 +328,7 @@ public class CreateJobConfigUtil { } else { CreateJobConfigMappingGroupVo mappingGroupVo = executeParamMappingGroupMap.get("executeUser"); if (mappingGroupVo != null) { - JSONArray jsonArray = parseCreateJobConfigMappingGroup(mappingGroupVo, formAttributeList, originalFormAttributeDataMap, formAttributeDataMap, processTaskParam); + JSONArray jsonArray = parseCreateJobConfigMappingGroup(mappingGroupVo, formAttributeList, originalFormAttributeDataMap, formTableComponentDataMap, formCommonComponentDataMap, processTaskParam); String executeUser = getFirstNotBlankString(jsonArray); if (StringUtils.isNotBlank(executeUser)) { ParamMappingVo paramMappingVo = new ParamMappingVo(); @@ -321,7 +345,7 @@ public class CreateJobConfigUtil { } else { CreateJobConfigMappingGroupVo mappingGroupVo = executeParamMappingGroupMap.get("roundCount"); if (mappingGroupVo != null) { - JSONArray jsonArray = parseCreateJobConfigMappingGroup(mappingGroupVo, formAttributeList, originalFormAttributeDataMap, formAttributeDataMap, processTaskParam); + JSONArray jsonArray = parseCreateJobConfigMappingGroup(mappingGroupVo, formAttributeList, originalFormAttributeDataMap, formTableComponentDataMap, formCommonComponentDataMap, processTaskParam); Integer roundCount = getFirstNotBlankInteger(jsonArray); if (roundCount != null) { builder.setRoundCount(roundCount); @@ -663,7 +687,8 @@ public class CreateJobConfigUtil { private static JSONArray parseCreateJobConfigMappingGroup(CreateJobConfigMappingGroupVo mappingGroupVo, List formAttributeList, Map originalFormAttributeDataMap, - Map formAttributeDataMap, + Map formTableComponentDataMap, + Map formCommonComponentDataMap, JSONObject processTaskParam) { JSONArray resultList = new JSONArray(); List mappingList = mappingGroupVo.getMappingList(); @@ -677,16 +702,16 @@ public class CreateJobConfigUtil { } String mappingMode = mappingVo.getMappingMode(); if (Objects.equals(mappingMode, "formTableComponent")) { - resultList.addAll(parseFormTableComponentMappingMode(mappingVo, formAttributeList, originalFormAttributeDataMap, formAttributeDataMap, processTaskParam)); + resultList.addAll(parseFormTableComponentMappingMode(mappingVo, formAttributeList, originalFormAttributeDataMap, formTableComponentDataMap, formCommonComponentDataMap, processTaskParam)); } else if (Objects.equals(mappingMode, "formCommonComponent")) { - resultList.add(formAttributeDataMap.get(value)); + resultList.add(formCommonComponentDataMap.get(value)); } else if (Objects.equals(mappingMode, "constant")) { resultList.add(value); } else if (Objects.equals(mappingMode, "processTaskParam")) { resultList.add(processTaskParam.get(value)); } else if (Objects.equals(mappingMode, "expression")) { if (value instanceof JSONArray) { - resultList.add(parseExpression((JSONArray) value, formAttributeList, originalFormAttributeDataMap, formAttributeDataMap, processTaskParam)); + resultList.add(parseExpression((JSONArray) value, formAttributeList, originalFormAttributeDataMap, formTableComponentDataMap, formCommonComponentDataMap, processTaskParam)); } } } @@ -698,17 +723,19 @@ public class CreateJobConfigUtil { * @param mappingVo * @param formAttributeList * @param originalFormAttributeDataMap - * @param formAttributeDataMap + * @param formTableComponentDataMap + * @param formCommonComponentDataMap * @param processTaskParam * @return */ private static JSONArray parseFormTableComponentMappingMode(CreateJobConfigMappingVo mappingVo, List formAttributeList, Map originalFormAttributeDataMap, - Map formAttributeDataMap, + Map formTableComponentDataMap, + Map formCommonComponentDataMap, Map processTaskParam) { JSONArray resultList = new JSONArray(); - List mainTableDataList = getFormTableComponentData(formAttributeList, originalFormAttributeDataMap, formAttributeDataMap, mappingVo.getValue().toString()); + List mainTableDataList = getFormTableComponentData(formAttributeList, originalFormAttributeDataMap, formTableComponentDataMap, mappingVo.getValue().toString()); if (CollectionUtils.isEmpty(mainTableDataList)) { return resultList; } @@ -737,7 +764,7 @@ public class CreateJobConfigUtil { } } if (!flag) { - List rightTableDataList = getFormTableComponentData(formAttributeList, originalFormAttributeDataMap, formAttributeDataMap, filterVo.getRightValue()); + List rightTableDataList = getFormTableComponentData(formAttributeList, originalFormAttributeDataMap, formTableComponentDataMap, filterVo.getRightValue()); if (CollectionUtils.isNotEmpty(rightTableDataList)) { for (JSONObject rowData : totalDerivedTableDataList) { Object leftData = rowData.get(filterVo.getLeftValue() + "." + filterVo.getLeftColumn()); @@ -764,7 +791,7 @@ public class CreateJobConfigUtil { } } } else if (Objects.equals(filterVo.getRightMappingMode() ,"formCommonComponent")) { - Object rightData = formAttributeDataMap.get(filterVo.getRightValue()); + Object rightData = formCommonComponentDataMap.get(filterVo.getRightValue()); for (JSONObject rowData : totalDerivedTableDataList) { Object leftData = rowData.get(filterVo.getLeftValue() + "." + filterVo.getLeftColumn()); if (expressionAssert(leftData, filterVo.getExpression(), rightData)) { @@ -902,7 +929,7 @@ public class CreateJobConfigUtil { private static List getFormTableComponentData( List formAttributeList, Map originalFormAttributeDataMap, - Map formAttributeDataMap, + Map formTableComponentDataMap, String attribute) { List resultList = new ArrayList<>(); FormAttributeVo formAttributeVo = getFormAttributeVo(formAttributeList, attribute); @@ -912,7 +939,7 @@ public class CreateJobConfigUtil { if (formAttributeVo == null) { return resultList; } - Object object = formAttributeDataMap.get(attribute); + Object object = formTableComponentDataMap.get(attribute); if (object != null) { return (List) object; } @@ -986,14 +1013,16 @@ public class CreateJobConfigUtil { * @param valueList * @param formAttributeList * @param originalFormAttributeDataMap - * @param formAttributeDataMap + * @param formTableComponentDataMap + * @param formCommonComponentDataMap * @param processTaskParam * @return */ private static String parseExpression(JSONArray valueList, List formAttributeList, Map originalFormAttributeDataMap, - Map formAttributeDataMap, + Map formTableComponentDataMap, + Map formCommonComponentDataMap, JSONObject processTaskParam) { StringBuilder stringBuilder = new StringBuilder(); List mappingList = valueList.toJavaList(CreateJobConfigMappingVo.class); @@ -1001,14 +1030,14 @@ public class CreateJobConfigUtil { String value = mappingVo.getValue().toString(); String mappingMode = mappingVo.getMappingMode(); if (Objects.equals(mappingMode, "formTableComponent")) { - JSONArray array = parseFormTableComponentMappingMode(mappingVo, formAttributeList, originalFormAttributeDataMap, formAttributeDataMap, processTaskParam); + JSONArray array = parseFormTableComponentMappingMode(mappingVo, formAttributeList, originalFormAttributeDataMap, formTableComponentDataMap, formCommonComponentDataMap, processTaskParam); List list = new ArrayList<>(); for (int j = 0; j < array.size(); j++) { list.add(array.getString(j)); } stringBuilder.append(String.join(",", list)); } else if (Objects.equals(mappingMode, "formCommonComponent")) { - Object obj = formAttributeDataMap.get(value); + Object obj = formCommonComponentDataMap.get(value); if (obj != null) { if (obj instanceof JSONArray) { List list = new ArrayList<>(); diff --git a/src/main/java/neatlogic/module/autoexec/script/paramtype/ScriptParamTypePassword.java b/src/main/java/neatlogic/module/autoexec/script/paramtype/ScriptParamTypePassword.java index 3a692cd992dbac63e3ced6788d1bbd7dc94f5b63..eb7d00339737a3d7fdad80cc4fb074f52170fdde 100644 --- a/src/main/java/neatlogic/module/autoexec/script/paramtype/ScriptParamTypePassword.java +++ b/src/main/java/neatlogic/module/autoexec/script/paramtype/ScriptParamTypePassword.java @@ -98,6 +98,6 @@ public class ScriptParamTypePassword extends ScriptParamTypeBase { @Override public Object convertDataForProcessComponent(JSONArray jsonArray) { - return String.join(",", getStringList(jsonArray)); + return getString(jsonArray); } } diff --git a/src/main/java/neatlogic/module/autoexec/script/paramtype/ScriptParamTypeText.java b/src/main/java/neatlogic/module/autoexec/script/paramtype/ScriptParamTypeText.java index a26e3a380d830a02950f8692d1d0854f88b87a4e..c583537e45458be0e86840f60945b8e3962d13e1 100644 --- a/src/main/java/neatlogic/module/autoexec/script/paramtype/ScriptParamTypeText.java +++ b/src/main/java/neatlogic/module/autoexec/script/paramtype/ScriptParamTypeText.java @@ -85,6 +85,6 @@ public class ScriptParamTypeText extends ScriptParamTypeBase { @Override public Object convertDataForProcessComponent(JSONArray jsonArray) { - return String.join(",", getStringList(jsonArray)); + return getString(jsonArray); } } diff --git a/src/main/java/neatlogic/module/autoexec/script/paramtype/ScriptParamTypeTextarea.java b/src/main/java/neatlogic/module/autoexec/script/paramtype/ScriptParamTypeTextarea.java index e7617496dfd0527ad981bd00518f58e25afc5f4b..42966e5811deeee3573f22d537dbd81116f1bcc8 100644 --- a/src/main/java/neatlogic/module/autoexec/script/paramtype/ScriptParamTypeTextarea.java +++ b/src/main/java/neatlogic/module/autoexec/script/paramtype/ScriptParamTypeTextarea.java @@ -85,6 +85,6 @@ public class ScriptParamTypeTextarea extends ScriptParamTypeBase { @Override public Object convertDataForProcessComponent(JSONArray jsonArray) { - return String.join(",", getStringList(jsonArray)); + return getString(jsonArray); } }