From 235b95a65304dc20c2db66d9c956d99fab132372 Mon Sep 17 00:00:00 2001 From: yang chen Date: Wed, 17 Dec 2025 17:30:42 +0800 Subject: [PATCH] =?UTF-8?q?refactor(job):=20=E4=BC=98=E5=8C=96=E5=B7=A5?= =?UTF-8?q?=E5=8D=95=E4=BB=BB=E5=8A=A1=E4=B8=AD=E7=9A=84JSON=E6=95=B0?= =?UTF-8?q?=E7=BB=84=E5=A4=84=E7=90=86=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 移除无用的Stream导入 - 修改检查内容连接符从空格改为换行符 - 提取公共方法flattenJsonArray处理嵌套JSON数组 - 简化handleSopSchema和handleRelateProcessContent方法实现 - 新增递归展平嵌套JSON数组的功能方法 - 统一JSONArray处理逻辑,提高代码可读性 --- .../module/biz/job/AlibabaWorkOrderJob.java | 50 ++++++++++++++----- 1 file changed, 37 insertions(+), 13 deletions(-) diff --git a/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/job/AlibabaWorkOrderJob.java b/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/job/AlibabaWorkOrderJob.java index 16db8fb..e26b7a9 100644 --- a/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/job/AlibabaWorkOrderJob.java +++ b/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/job/AlibabaWorkOrderJob.java @@ -23,7 +23,6 @@ import java.sql.SQLException; import java.time.LocalDateTime; import java.util.*; import java.util.stream.Collectors; -import java.util.stream.Stream; import static com.jeelowcode.tool.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; @@ -537,7 +536,7 @@ public class AlibabaWorkOrderJob implements JobHandler { List checkContentList = nodeList.stream() .map(node -> new JSONObject(node).getStr("label")) .collect(Collectors.toList()); - return StrUtil.join(" ", checkContentList); + return StrUtil.join("\n", checkContentList); } else { return StringUtils.EMPTY; } @@ -550,10 +549,7 @@ public class AlibabaWorkOrderJob implements JobHandler { * @return 解析并处理后的JSONArray对象 */ private static JSONArray handleSopSchema(String sopSchema) { - return new JSONArray(sopSchema).stream().flatMap(item -> { - JSONArray itemArray = new JSONArray(item); - return Stream.of(itemArray); - }).collect(Collectors.toCollection(JSONArray::new)); + return new JSONArray(flattenJsonArray(sopSchema)); } /** @@ -569,13 +565,7 @@ public class AlibabaWorkOrderJob implements JobHandler { * @return 解析并处理后的JSONArray对象 */ private static JSONArray handleRelateProcessContent(String processContent) { - return new JSONArray(processContent).stream().flatMap(item -> { - JSONArray itemArray = new JSONArray(item); - return Stream.of(itemArray); - }).flatMap(item -> { - JSONArray itemArray = new JSONArray(item); - return Stream.of(itemArray); - }).collect(Collectors.toCollection(JSONArray::new)); + return flattenJsonArray(processContent); } /** @@ -605,4 +595,38 @@ public class AlibabaWorkOrderJob implements JobHandler { }).collect(Collectors.toList()); } + /** + * 将嵌套的JSON数组转换为一维数组 + * + * @param json 嵌套的JSON字符串 + * @return 一维JSONArray + */ + public static JSONArray flattenJsonArray(String json) { + JSONArray inputArray = JSONUtil.parseArray(json); + JSONArray resultArray = new JSONArray(); + flatten(inputArray, resultArray); + return resultArray; + } + + /** + * 递归展平嵌套的JSON数组 + * + * @param input 输入的JSONArray + * @param result 结果JSONArray + */ + private static void flatten(JSONArray input, JSONArray result) { + for (Object item : input) { + if (item instanceof JSONArray) { + // 如果元素是数组,递归处理 + flatten((JSONArray) item, result); + } else if (item instanceof JSONObject) { + // 如果元素是对象,直接添加到结果中 + result.add(item); + } else { + // 如果是基本类型,也直接添加到结果中 + result.add(item); + } + } + } + }