From 2b58f2a8e61853886e9ef0feb1c4e46fcb9e65c1 Mon Sep 17 00:00:00 2001 From: yuejiajun <1530620364@qq.com> Date: Mon, 29 Sep 2025 11:22:52 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9E=9A=E4=B8=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../process/core/EnhancedConfigProcessor.java | 10 +++- .../core/EnhancedTemplateGenerator.java | 2 +- .../parser/process/domain/ConfigValue.java | 50 ++++++++++++++++++- .../resources/data/03-任务航线/default.json | 22 ++++---- 4 files changed, 71 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/example/demo/parser/process/core/EnhancedConfigProcessor.java b/src/main/java/com/example/demo/parser/process/core/EnhancedConfigProcessor.java index 96ec961..7d5f2df 100644 --- a/src/main/java/com/example/demo/parser/process/core/EnhancedConfigProcessor.java +++ b/src/main/java/com/example/demo/parser/process/core/EnhancedConfigProcessor.java @@ -226,6 +226,7 @@ public class EnhancedConfigProcessor { // 1. 应用正则表达式 if (configValue.getRegexPattern() != null && configValue.getRegexReplacement() != null) { + System.out.println(); log.info("{}", String.format(ParserProcessConstant.LOG_GROUP_LINE, "应用正则表达式")); log.info("RegexPattern = {}", configValue.getRegexPattern()); log.info("RegexReplacement = {}", configValue.getRegexReplacement()); @@ -240,13 +241,20 @@ public class EnhancedConfigProcessor { // 2. 应用枚举映射 if (configValue.getEnumMapping() != null && configValue.getEnumMapping().containsKey(strValue)) { + System.out.println(); log.info("{}", String.format(ParserProcessConstant.LOG_GROUP_LINE, "应用枚举映射")); log.info("EnumMapping = {}", JSON.toJSONString(configValue.getEnumMapping())); - strValue = configValue.getEnumMapping().get(strValue); + for(String dict : configValue.getEnumMapping().keySet()) { + if(configValue.getEnumMapping().containsKey(dict)) { + strValue = configValue.getEnumMapping().get(dict).get(strValue); + break; + } + } } // 3. 应用工具函数 if (configValue.getUtilFunction() != null && !configValue.getUtilFunction().isEmpty()) { + System.out.println(); log.info("{}", String.format(ParserProcessConstant.LOG_GROUP_LINE, "应用工具函数")); log.info("Function = {}", JSON.toJSONString(configValue.getUtilFunction())); strValue = applyUtilFunction(strValue, configValue.getUtilFunction(), context, loopIndex); diff --git a/src/main/java/com/example/demo/parser/process/core/EnhancedTemplateGenerator.java b/src/main/java/com/example/demo/parser/process/core/EnhancedTemplateGenerator.java index c9dffd9..ab2ea7a 100644 --- a/src/main/java/com/example/demo/parser/process/core/EnhancedTemplateGenerator.java +++ b/src/main/java/com/example/demo/parser/process/core/EnhancedTemplateGenerator.java @@ -386,7 +386,7 @@ public class EnhancedTemplateGenerator { Object enumMappingObj = map.get("enumMapping"); if (enumMappingObj instanceof Map) { @SuppressWarnings("unchecked") - Map enumMapping = (Map) enumMappingObj; + Map> enumMapping = (Map>) enumMappingObj; builder.enumMapping(enumMapping); } } diff --git a/src/main/java/com/example/demo/parser/process/domain/ConfigValue.java b/src/main/java/com/example/demo/parser/process/domain/ConfigValue.java index c3cdeee..e2ad85c 100644 --- a/src/main/java/com/example/demo/parser/process/domain/ConfigValue.java +++ b/src/main/java/com/example/demo/parser/process/domain/ConfigValue.java @@ -1,10 +1,12 @@ package com.example.demo.parser.process.domain; +import com.alibaba.fastjson.JSON; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; +import java.util.HashMap; import java.util.Map; /** @@ -84,7 +86,7 @@ public class ConfigValue { * *

格式说明:key为原始值,value为映射后的值

*/ - private Map enumMapping; + private Map> enumMapping; /** * 工具函数调用配置 @@ -97,4 +99,50 @@ public class ConfigValue { * */ private Map utilFunction; + + public static void main(String[] args) { + ConfigValue configValue = ConfigValue.builder().build(); + Map> enumMapping = new HashMap<>(); + enumMapping = JSON.parseObject(data2, Map.class); + System.out.println(enumMapping); + configValue.setEnumMapping(enumMapping); + System.out.println(JSON.toJSONString(configValue)); + } + + private static String data1 = """ + { + "航线点类型": [ + { + "起飞点": "N1" + }, + { + "航路点": "N2" + }, + { + "降落点": "N3" + }, + { + "拐弯点": "N4" + }, + { + "爬坡点": "N5" + }, + { + "返航点": "N6" + } + ] + } + """; + private static String data2 = """ + { + "航线点类型": { + "起飞点": "N1", + "航路点": "N2", + "降落点": "N3", + "拐弯点": "N4", + "爬坡点": "N5", + "返航点": "N6" + } + } + """; } diff --git a/src/main/resources/data/03-任务航线/default.json b/src/main/resources/data/03-任务航线/default.json index c4be021..3b4e82f 100644 --- a/src/main/resources/data/03-任务航线/default.json +++ b/src/main/resources/data/03-任务航线/default.json @@ -60,17 +60,19 @@ "values": [ { "combined": false, - "value": "{{任务航线.航线点类型}}" + "value": "{{任务航线.航线点类型}}", + "enumMapping": { + "航线点类型": { + "起飞点": "N1", + "航路点": "N2", + "降落点": "N3", + "拐弯点": "N4", + "爬坡点": "N5", + "返航点": "N6" + } + } } - ], - "enumMapping": { - "起飞点": "N1", - "航路点": "N2", - "降落点": "N3", - "拐弯点": "N4", - "爬坡点": "N5", - "返航点": "N6" - } + ] }, { "comment": "准时到达时间",