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 886b605..1c4849f 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 @@ -7,7 +7,7 @@ import com.example.demo.parser.process.constant.ParserProcessConstant; import com.example.demo.parser.process.domain.ConfigValue; import com.example.demo.parser.process.domain.LevelConfig; import com.example.demo.parser.process.domain.ValueConfig; -import com.example.demo.draft.demo043.util.FormatUtil; +import com.example.demo.parser.process.util.FormatUtil; import lombok.extern.slf4j.Slf4j; import java.lang.reflect.Method; 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 ab2ea7a..784012c 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 @@ -6,7 +6,7 @@ import com.alibaba.fastjson2.JSON; import com.example.demo.parser.process.domain.ConfigValue; import com.example.demo.parser.process.domain.LevelConfig; import com.example.demo.parser.process.domain.ValueConfig; -import com.example.demo.draft.demo043.util.FormatUtil; +import com.example.demo.parser.process.util.FormatUtil; import com.hubspot.jinjava.Jinjava; import com.hubspot.jinjava.JinjavaConfig; diff --git a/src/main/java/com/example/demo/draft/demo043/util/FormatUtil.java b/src/main/java/com/example/demo/parser/process/util/FormatUtil.java similarity index 99% rename from src/main/java/com/example/demo/draft/demo043/util/FormatUtil.java rename to src/main/java/com/example/demo/parser/process/util/FormatUtil.java index 87be656..fc2631a 100644 --- a/src/main/java/com/example/demo/draft/demo043/util/FormatUtil.java +++ b/src/main/java/com/example/demo/parser/process/util/FormatUtil.java @@ -1,4 +1,4 @@ -package com.example.demo.draft.demo043.util; +package com.example.demo.parser.process.util; import com.alibaba.fastjson.JSON; import lombok.extern.slf4j.Slf4j; diff --git a/src/main/resources/application-rule.yml b/src/main/resources/application-dict.yml similarity index 100% rename from src/main/resources/application-rule.yml rename to src/main/resources/application-dict.yml diff --git a/src/main/resources/application-parser.yml b/src/main/resources/application-parser.yml deleted file mode 100644 index c6fafde..0000000 --- a/src/main/resources/application-parser.yml +++ /dev/null @@ -1,17 +0,0 @@ - -# 自定义配置 -xml-parser: - # 文件存储配置 - file: - upload-dir: ${user.dir}/upload - temp-dir: ${user.dir}/temp - - # 解析配置 - parser: - default-encoding: UTF-8 - validate-xml: true - - # 转换配置 - converter: - default-encoding: UTF-8 - indent-size: 4 diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 053d216..7219c11 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -23,5 +23,5 @@ spring: profiles: active: dev group: - dev: orm,h2,sqlite,parser,rule,springdoc - prod: orm,h2,sqlite,parser,rule + dev: orm,h2,sqlite,springdoc + prod: orm,h2,sqlite diff --git a/src/main/resources/data/02-单个空中平台任务数据/default.json b/src/main/resources/data/02-单个空中平台任务数据/default.json index 1e4fbf5..47f8851 100644 --- a/src/main/resources/data/02-单个空中平台任务数据/default.json +++ b/src/main/resources/data/02-单个空中平台任务数据/default.json @@ -4,7 +4,7 @@ { "levelName": "platform", "enableLoop": true, - "loopCount": "单个空中平台任务数据.架数", + "loopCount": "{{单个空中平台任务数据.架数}}", "subLevels": [ { "levelName": "comm", @@ -14,7 +14,7 @@ "values": [ { "combined": false, - "value": "string tacanWorkChannel = \"单个空中平台任务数据.塔康工作频道\" # 塔康工作频道" + "value": "string tacanWorkChannel = \"{{单个空中平台任务数据.塔康工作频道}}\" # 塔康工作频道" } ] } @@ -32,7 +32,7 @@ "values": [ { "combined": false, - "value": "string platformIdCardCode = \"单个空中平台任务数据.平台识别码\" # 平台识别码" + "value": "string platformIdCardCode = \"{{单个空中平台任务数据.平台识别码}}\" # 平台识别码" } ] }, @@ -40,7 +40,7 @@ "values": [ { "combined": false, - "value": "string platformIdCardNumber = \"单个空中平台任务数据.平台识别号\" # 平台识别号" + "value": "string platformIdCardNumber = \"{{单个空中平台任务数据.平台识别号}}\" # 平台识别号" } ] } @@ -62,8 +62,8 @@ } ], "values": [ - "单个空中平台任务数据.主挂载武器", - "单个空中平台任务数据.挂载类型" + "{{单个空中平台任务数据.主挂载武器}}", + "{{单个空中平台任务数据.挂载类型}}" ] }, { @@ -81,8 +81,8 @@ } ], "values": [ - "单个空中平台任务数据.次挂载武器", - "单个空中平台任务数据.挂载类型" + "{{单个空中平台任务数据.次挂载武器}}", + "{{单个空中平台任务数据.挂载类型}}" ] } ], @@ -107,8 +107,8 @@ } ], "values": [ - "单个空中平台任务数据.平台名称", - "单个空中平台任务数据.机型" + "{{单个空中平台任务数据.平台名称}}", + "{{单个空中平台任务数据.机型}}" ] } ] diff --git a/src/main/resources/data/04-空域数据/default.json b/src/main/resources/data/04-空域数据/default.json index 23c9215..342051f 100644 --- a/src/main/resources/data/04-空域数据/default.json +++ b/src/main/resources/data/04-空域数据/default.json @@ -15,7 +15,7 @@ "values": [ { "combined": false, - "value": "空域数据.空域生效时间段.日期时间使用模式" + "value": "{{空域数据.空域生效时间段.日期时间使用模式}}" } ] }, @@ -25,7 +25,7 @@ "values": [ { "combined": false, - "value": "空域数据.空域生效时间段.开始时间" + "value": "{{空域数据.空域生效时间段.开始时间}}" } ] }, @@ -35,7 +35,7 @@ "values": [ { "combined": false, - "value": "空域数据.空域生效时间段.结束时间" + "value": "{{空域数据.空域生效时间段.结束时间}}" } ] }, @@ -45,7 +45,7 @@ "values": [ { "combined": false, - "value": "空域数据.空域生效时间段.结束时间标识符" + "value": "{{空域数据.空域生效时间段.结束时间标识符}}" } ] }, @@ -55,7 +55,7 @@ "values": [ { "combined": false, - "value": "空域数据.空域生效时间段.间隔频率" + "value": "{{空域数据.空域生效时间段.间隔频率}}" } ] }, @@ -65,7 +65,7 @@ "values": [ { "combined": false, - "value": "空域数据.空域生效时间段.间隔结束时间" + "value": "{{空域数据.空域生效时间段.间隔结束时间}}" } ] }, @@ -75,7 +75,7 @@ "values": [ { "combined": false, - "value": "空域数据.空域生效时间段.相对时开始时间" + "value": "{{空域数据.空域生效时间段.相对时开始时间}}" } ] }, @@ -85,7 +85,7 @@ "values": [ { "combined": false, - "value": "空域数据.空域生效时间段.相对时结束数据" + "value": "{{空域数据.空域生效时间段.相对时结束数据}}" } ] }, @@ -95,7 +95,7 @@ "values": [ { "combined": false, - "value": "空域数据.空域生效时间段.时间类型" + "value": "{{空域数据.空域生效时间段.时间类型}}" } ] } @@ -113,7 +113,7 @@ "values": [ { "combined": false, - "value": "空域数据.代表空域相关的控制点.控制点类型" + "value": "{{空域数据.代表空域相关的控制点.控制点类型}}" } ] }, @@ -123,7 +123,7 @@ "values": [ { "combined": false, - "value": "空域数据.空域几何数据.几何数据信息.纬度N 空域数据.空域几何数据.几何数据信息.经度E" + "value": "{{空域数据.空域几何数据.几何数据信息.纬度}}N {{空域数据.空域几何数据.几何数据信息.经度}}E" } ] }, @@ -134,7 +134,7 @@ { "combined": false, "unit": "m", - "value": "空域数据.代表空域相关的控制点.控制点的顶高" + "value": "{{空域数据.代表空域相关的控制点.控制点的顶高}}" } ] }, @@ -145,7 +145,7 @@ { "combined": false, "unit": "m", - "value": "空域数据.代表空域相关的控制点.控制点的底高" + "value": "{{空域数据.代表空域相关的控制点.控制点的底高}}" } ] }, @@ -155,14 +155,14 @@ "values": [ { "combined": false, - "value": "空域数据.代表空域相关的控制点.是否隐藏控制点" + "value": "{{空域数据.代表空域相关的控制点.是否隐藏控制点}}" } ] } ], "values": [ - "空域数据.代表空域相关的控制点.控制点ID", - "空域数据.代表空域相关的控制点.控制点名称" + "{{空域数据.代表空域相关的控制点.控制点ID}}", + "{{空域数据.代表空域相关的控制点.控制点名称}}" ] }, { @@ -176,7 +176,7 @@ "values": [ { "combined": false, - "value": "空域数据.空域几何数据.形状类型" + "value": "{{空域数据.空域几何数据.形状类型}}" } ] }, @@ -186,7 +186,7 @@ "values": [ { "combined": false, - "value": "空域数据.代表空域相关的控制点.控制点的坐标位置纬度N 空域数据.代表空域相关的控制点.控制点的坐标位置经度E" + "value": "{{空域数据.代表空域相关的控制点.控制点的坐标位置纬度}}N {{空域数据.代表空域相关的控制点.控制点的坐标位置经度}}E" } ] }, @@ -196,7 +196,7 @@ "values": [ { "combined": false, - "value": "空域数据.空域几何数据.数据点数目" + "value": "{{空域数据.空域几何数据.数据点数目}}" } ] } @@ -211,7 +211,7 @@ "values": [ { "combined": false, - "value": "空域数据.空域ID" + "value": "{{空域数据.空域ID}}" } ] }, @@ -221,7 +221,7 @@ "values": [ { "combined": false, - "value": "空域数据.空域名称" + "value": "{{空域数据.空域名称}}" } ] }, @@ -231,7 +231,7 @@ "values": [ { "combined": false, - "value": "空域数据.协调措施所属的大类型" + "value": "{{空域数据.协调措施所属的大类型}}" } ] }, @@ -241,7 +241,7 @@ "values": [ { "combined": false, - "value": "空域数据.空域的具体协调措施类型" + "value": "{{空域数据.空域的具体协调措施类型}}" } ] }, @@ -251,7 +251,7 @@ "values": [ { "combined": false, - "value": "空域数据.空域管控状态" + "value": "{{空域数据.空域管控状态}}" } ] }, diff --git a/src/test/java/com/example/demo/draft/demo043/LoopCountIntegrationTest.java b/src/test/java/com/example/demo/draft/demo043/LoopCountIntegrationTest.java deleted file mode 100644 index 43751be..0000000 --- a/src/test/java/com/example/demo/draft/demo043/LoopCountIntegrationTest.java +++ /dev/null @@ -1,75 +0,0 @@ -package com.example.demo.draft.demo043; - -import com.alibaba.fastjson2.JSON; -import com.example.demo.parser.process.domain.ConfigDocument; -import com.example.demo.parser.process.domain.LevelConfig; -import org.junit.jupiter.api.Test; - -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.charset.StandardCharsets; - -import static org.junit.jupiter.api.Assertions.*; - -/** - * LevelConfig loopCount字段集成测试 - */ -class LoopCountIntegrationTest { - - @Test - void testLoopCountFieldParsing() throws Exception { - // 读取default.json文件 - String templateContent = Files.readString( - Path.of("src/main/resources/data/02-单个空中平台任务数据/default.json"), - StandardCharsets.UTF_8 - ); - - // 解析JSON到ConfigDocument对象 - ConfigDocument document = JSON.parseObject(templateContent, ConfigDocument.class); - - // 验证解析结果 - assertNotNull(document); - assertNotNull(document.getLevelConfigs()); - assertEquals(1, document.getLevelConfigs().size()); - - LevelConfig platformLevel = document.getLevelConfigs().get(0); - - // 验证关键字段 - assertEquals("platform", platformLevel.getLevelName()); - assertTrue(platformLevel.getEnableLoop(), "enableLoop字段应该为true"); - assertEquals("单个空中平台任务数据.架数", platformLevel.getLoopCount(), "loopCount字段应该正确获取值"); - - System.out.println("✅ SUCCESS: loopCount字段已正确获取值: " + platformLevel.getLoopCount()); - System.out.println("✅ SUCCESS: enableLoop字段已正确获取值: " + platformLevel.getEnableLoop()); - } - - @Test - void testApplicationTest__02Scenario() throws Exception { - // 模拟ApplicationTest__02中的场景 - String templateContent = Files.readString( - Path.of("src/main/resources/data/02-单个空中平台任务数据/default.json"), - StandardCharsets.UTF_8 - ); - - ConfigDocument document = JSON.parseObject(templateContent, ConfigDocument.class); - String result = JSON.toJSONString(document); - - // 验证JSON序列化和反序列化过程 - ConfigDocument reParsedDocument = JSON.parseObject(result, ConfigDocument.class); - - assertNotNull(reParsedDocument); - assertNotNull(reParsedDocument.getLevelConfigs()); - - LevelConfig platformLevel = reParsedDocument.getLevelConfigs().get(0); - - // 验证关键字段在序列化/反序列化后仍然正确 - assertEquals("platform", platformLevel.getLevelName()); - assertTrue(platformLevel.getEnableLoop()); - assertEquals("单个空中平台任务数据.架数", platformLevel.getLoopCount()); - - System.out.println("✅ SUCCESS: ApplicationTest__02场景测试通过"); - System.out.println("levelName: " + platformLevel.getLevelName()); - System.out.println("enableLoop: " + platformLevel.getEnableLoop()); - System.out.println("loopCount: " + platformLevel.getLoopCount()); - } -} \ No newline at end of file diff --git a/src/test/java/com/example/demo/draft/demo043/core/EnhancedTemplateGeneratorTest.java b/src/test/java/com/example/demo/draft/demo043/core/EnhancedTemplateGeneratorTest.java deleted file mode 100644 index 62bd066..0000000 --- a/src/test/java/com/example/demo/draft/demo043/core/EnhancedTemplateGeneratorTest.java +++ /dev/null @@ -1,147 +0,0 @@ -package com.example.demo.draft.demo043.core; - -import com.alibaba.fastjson2.JSON; -import com.example.demo.parser.process.core.EnhancedTemplateGenerator; -import org.junit.jupiter.api.Test; - -import java.util.*; - -import static org.junit.jupiter.api.Assertions.*; - -/** - * EnhancedTemplateGenerator 测试类 - * 用于验证 applyEnhancedProcessing 方法修复后的功能 - */ -public class EnhancedTemplateGeneratorTest { - - @Test - public void testApplyEnhancedProcessing_WithValueConfigs() { - // 构建包含 valueConfigs 的测试数据 - Map testData = new HashMap<>(); - - // 构建 levelConfigs - List> levelConfigs = new ArrayList<>(); - - // 构建平台层级配置 - Map platformLevel = new HashMap<>(); - platformLevel.put("levelName", "platform"); - platformLevel.put("values", Arrays.asList("airspace", "AERIAL_REGION")); - - // 构建平台层级的 valueConfigs - List> platformValueConfigs = new ArrayList<>(); - - Map platformValueConfig = new HashMap<>(); - platformValueConfig.put("valueName", "platform_config"); - platformValueConfig.put("comment", "平台配置信息"); - - List> platformConfigValues = new ArrayList<>(); - Map configValue1 = new HashMap<>(); - configValue1.put("value", "config_value_1"); - configValue1.put("unit", "unit1"); - platformConfigValues.add(configValue1); - - platformValueConfig.put("values", platformConfigValues); - platformValueConfigs.add(platformValueConfig); - - platformLevel.put("valueConfigs", platformValueConfigs); - - // 构建子层级 - List> subLevels = new ArrayList<>(); - - // 时间窗口子层级 - Map timeWindowLevel = new HashMap<>(); - timeWindowLevel.put("levelName", "time_window"); - timeWindowLevel.put("values", Arrays.asList("【不应该为空,实际有值】")); - timeWindowLevel.put("comment", "空域生效时间配置"); - subLevels.add(timeWindowLevel); - - // 控制点子层级 - Map controlPointLevel = new HashMap<>(); - controlPointLevel.put("levelName", "control_point"); - controlPointLevel.put("values", Arrays.asList("CP001", "训练区中心")); - controlPointLevel.put("comment", "控制点ID和名称"); - subLevels.add(controlPointLevel); - - // 几何形状子层级 - Map geometryLevel = new HashMap<>(); - geometryLevel.put("levelName", "geometry"); - geometryLevel.put("values", new ArrayList<>()); // 空数组 - geometryLevel.put("comment", "空域几何形状配置"); - - // 几何形状的 valueConfigs - List> geometryValueConfigs = new ArrayList<>(); - - Map geometryValueConfig = new HashMap<>(); - geometryValueConfig.put("valueName", "geometry_config"); - geometryValueConfig.put("comment", "几何形状配置"); - - List> geometryConfigValues = new ArrayList<>(); - Map configValue2 = new HashMap<>(); - configValue2.put("value", "geometry_value_1"); - configValue2.put("unit", "unit2"); - geometryConfigValues.add(configValue2); - - geometryValueConfig.put("values", geometryConfigValues); - geometryValueConfigs.add(geometryValueConfig); - - geometryLevel.put("valueConfigs", geometryValueConfigs); - subLevels.add(geometryLevel); - - platformLevel.put("subLevels", subLevels); - levelConfigs.add(platformLevel); - - testData.put("levelConfigs", levelConfigs); - testData.put("conditionMap", new HashMap<>()); - - System.out.println("原始数据:"); - System.out.println(JSON.toJSONString(testData)); - - // 应用增强处理 - Map processedData = EnhancedTemplateGenerator.applyEnhancedProcessing(testData); - - System.out.println("\n处理后的数据:"); - System.out.println(JSON.toJSONString(processedData)); - - // 验证处理结果 - assertNotNull(processedData, "处理后的数据不应为空"); - assertTrue(processedData.containsKey("levelConfigs"), "处理后的数据应包含 levelConfigs"); - - @SuppressWarnings("unchecked") - List processedLevelConfigs = (List) processedData.get("levelConfigs"); - assertFalse(processedLevelConfigs.isEmpty(), "处理后的 levelConfigs 不应为空"); - - // 验证平台层级的 valueConfigs 是否存在 - @SuppressWarnings("unchecked") - Map processedPlatformLevel = (Map) processedLevelConfigs.get(0); - assertTrue(processedPlatformLevel.containsKey("valueConfigs"), "平台层级的 valueConfigs 不应丢失"); - - @SuppressWarnings("unchecked") - List platformValueConfigsResult = (List) processedPlatformLevel.get("valueConfigs"); - assertFalse(platformValueConfigsResult.isEmpty(), "平台层级的 valueConfigs 不应为空"); - - // 验证几何形状层级的 valueConfigs 是否存在 - @SuppressWarnings("unchecked") - List processedSubLevels = (List) processedPlatformLevel.get("subLevels"); - assertFalse(processedSubLevels.isEmpty(), "子层级不应为空"); - - // 找到几何形状层级 - Map processedGeometryLevel = null; - for (Object subLevel : processedSubLevels) { - @SuppressWarnings("unchecked") - Map subLevelMap = (Map) subLevel; - if ("geometry".equals(subLevelMap.get("levelName"))) { - processedGeometryLevel = subLevelMap; - break; - } - } - - assertNotNull(processedGeometryLevel, "几何形状层级不应丢失"); - assertTrue(processedGeometryLevel.containsKey("valueConfigs"), "几何形状层级的 valueConfigs 不应丢失"); - - @SuppressWarnings("unchecked") - List geometryValueConfigsResult = (List) processedGeometryLevel.get("valueConfigs"); - assertFalse(geometryValueConfigsResult.isEmpty(), "几何形状层级的 valueConfigs 不应为空"); - - System.out.println("\n测试通过:valueConfigs 数据已正确保留!"); - } -} \ No newline at end of file diff --git a/src/test/java/com/example/demo/draft/demo043/domain/LevelConfigTest.java b/src/test/java/com/example/demo/draft/demo043/domain/LevelConfigTest.java deleted file mode 100644 index 656d43d..0000000 --- a/src/test/java/com/example/demo/draft/demo043/domain/LevelConfigTest.java +++ /dev/null @@ -1,93 +0,0 @@ -package com.example.demo.draft.demo043.domain; - -import com.alibaba.fastjson.JSON; -import com.example.demo.parser.process.domain.ConfigDocument; -import com.example.demo.parser.process.domain.LevelConfig; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; - -/** - * LevelConfig JSON解析测试 - */ -class LevelConfigTest { - - @Test - void testLevelConfigJsonParsing() { - // 测试JSON数据,包含enableLoop和loopCount字段 - String json = """ - { - "levelName": "platform", - "enableLoop": true, - "loopCount": "单个空中平台任务数据.架数", - "values": ["单个空中平台任务数据.平台名称", "单个空中平台任务数据.机型"], - "valueConfigs": [], - "subLevels": [] - } - """; - - // 解析JSON到LevelConfig对象 - LevelConfig levelConfig = JSON.parseObject(json, LevelConfig.class); - - // 验证字段值 - assertNotNull(levelConfig); - assertEquals("platform", levelConfig.getLevelName()); - assertTrue(levelConfig.getEnableLoop()); - assertEquals("单个空中平台任务数据.架数", levelConfig.getLoopCount()); - assertNotNull(levelConfig.getValues()); - assertEquals(2, levelConfig.getValues().size()); - - System.out.println("LevelConfig解析成功:"); - System.out.println("levelName: " + levelConfig.getLevelName()); - System.out.println("enableLoop: " + levelConfig.getEnableLoop()); - System.out.println("loopCount: " + levelConfig.getLoopCount()); - } - - @Test - void testConfigDocumentJsonParsing() { - // 测试完整的ConfigDocument JSON解析 - String json = """ - { - "conditionMap": {}, - "levelConfigs": [ - { - "levelName": "platform", - "enableLoop": true, - "loopCount": "单个空中平台任务数据.架数", - "values": ["单个空中平台任务数据.平台名称", "单个空中平台任务数据.机型"], - "valueConfigs": [ - { - "valueName": "side", - "values": [ - { - "combined": false, - "value": "red" - } - ] - } - ], - "subLevels": [] - } - ] - } - """; - - // 解析JSON到ConfigDocument对象 - ConfigDocument document = JSON.parseObject(json, ConfigDocument.class); - - // 验证字段值 - assertNotNull(document); - assertNotNull(document.getLevelConfigs()); - assertEquals(1, document.getLevelConfigs().size()); - - LevelConfig levelConfig = document.getLevelConfigs().get(0); - assertEquals("platform", levelConfig.getLevelName()); - assertTrue(levelConfig.getEnableLoop()); - assertEquals("单个空中平台任务数据.架数", levelConfig.getLoopCount()); - - System.out.println("ConfigDocument解析成功:"); - System.out.println("levelName: " + levelConfig.getLevelName()); - System.out.println("enableLoop: " + levelConfig.getEnableLoop()); - System.out.println("loopCount: " + levelConfig.getLoopCount()); - } -} \ No newline at end of file diff --git a/src/main/java/com/example/demo/draft/demo043/0.java b/src/test/java/com/example/demo/parser/process/0.java similarity index 92% rename from src/main/java/com/example/demo/draft/demo043/0.java rename to src/test/java/com/example/demo/parser/process/0.java index 29b7f10..2e3e472 100644 --- a/src/main/java/com/example/demo/draft/demo043/0.java +++ b/src/test/java/com/example/demo/parser/process/0.java @@ -11,13 +11,13 @@ // 7、 XML标签值 部分内容需要确定统一单位,例如: 速度单位 m/s // TODO XML 转成 JSON 可能存在的问题 - // 8、 XML标签,一定存在部分数据是固定数据,例如: 各种类型、枚举 // 9、 XML标签、值、属性 内容需要合并 // 97、 增量更新问题,例如: 推演过程中,数据是动态不断更新的,这种是需要追加旧数据,还是读到什么数据就是什么数据? // 98、 允许组合规则、条件生效 // 99、 对接时,需要一个字段一个字段对应 // DONE + // 8、 XML标签,一定存在部分数据是固定数据,例如: 各种类型、枚举 // 10、 XML标签 自定义函数问题 // 可以调用自定义函数 // 11、 XML标签值,存在一部分值需要拆分成多个数据 diff --git a/src/main/java/com/example/demo/draft/demo043/ApplicationTest__01.java b/src/test/java/com/example/demo/parser/process/core/draft/ApplicationTest__01.java similarity index 96% rename from src/main/java/com/example/demo/draft/demo043/ApplicationTest__01.java rename to src/test/java/com/example/demo/parser/process/core/draft/ApplicationTest__01.java index 9097226..caddcd5 100644 --- a/src/main/java/com/example/demo/draft/demo043/ApplicationTest__01.java +++ b/src/test/java/com/example/demo/parser/process/core/draft/ApplicationTest__01.java @@ -1,10 +1,10 @@ -package com.example.demo.draft.demo043; +package com.example.demo.parser.process.core.draft; import com.alibaba.fastjson.JSON; import com.example.demo.parser.process.domain.ConfigDocument; import com.example.demo.parser.process.core.EnhancedTemplateGenerator; import com.example.demo.parser.process.core.Xml2AFSIMTransformation; -import com.example.demo.draft.demo043.util.FormatUtil; +import com.example.demo.parser.process.util.FormatUtil; import java.io.File; import java.io.IOException; diff --git a/src/main/java/com/example/demo/draft/demo043/ApplicationTest__02.java b/src/test/java/com/example/demo/parser/process/core/draft/ApplicationTest__02.java similarity index 83% rename from src/main/java/com/example/demo/draft/demo043/ApplicationTest__02.java rename to src/test/java/com/example/demo/parser/process/core/draft/ApplicationTest__02.java index f1a38f1..0d21687 100644 --- a/src/main/java/com/example/demo/draft/demo043/ApplicationTest__02.java +++ b/src/test/java/com/example/demo/parser/process/core/draft/ApplicationTest__02.java @@ -1,10 +1,10 @@ -package com.example.demo.draft.demo043; +package com.example.demo.parser.process.core.draft; import com.alibaba.fastjson.JSON; import com.example.demo.parser.process.domain.ConfigDocument; import com.example.demo.parser.process.core.EnhancedTemplateGenerator; import com.example.demo.parser.process.core.Xml2AFSIMTransformation; -import com.example.demo.draft.demo043.util.FormatUtil; +import com.example.demo.parser.process.util.FormatUtil; import java.io.File; import java.io.IOException; @@ -44,8 +44,11 @@ public class ApplicationTest__02 { } // Step.2 - String targetContent = Files.readString(Path.of(processJSONFile), StandardCharsets.UTF_8); - List list = JSON.parseArray(targetContent); +// String targetContent = Files.readString(Path.of(processJSONFile), StandardCharsets.UTF_8); +// List list = JSON.parseArray(targetContent); + + // 通过 {{key}} 限制变量范围 + List list = FormatUtil.loadJSON(processJSONFile); String templateContent = Files.readString(Path.of(inputTemplateData), StandardCharsets.UTF_8); ConfigDocument document = JSON.parseObject(templateContent, ConfigDocument.class); @@ -54,7 +57,8 @@ public class ApplicationTest__02 { System.out.println(result); for(Object obj: list) { Map map = JSON.parseObject(JSON.toJSONString(obj), Map.class); - result = FormatUtil.stealBeamsAndReplacePillars(result, map); +// result = FormatUtil.stealBeamsAndReplacePillars(result, map); + result = FormatUtil.stealBeamsAndReplacePillars(result, map, true, false, false); } // Step.3 diff --git a/src/main/java/com/example/demo/draft/demo043/ApplicationTest__03.java b/src/test/java/com/example/demo/parser/process/core/draft/ApplicationTest__03.java similarity index 90% rename from src/main/java/com/example/demo/draft/demo043/ApplicationTest__03.java rename to src/test/java/com/example/demo/parser/process/core/draft/ApplicationTest__03.java index 3236e99..edecf69 100644 --- a/src/main/java/com/example/demo/draft/demo043/ApplicationTest__03.java +++ b/src/test/java/com/example/demo/parser/process/core/draft/ApplicationTest__03.java @@ -1,10 +1,10 @@ -package com.example.demo.draft.demo043; +package com.example.demo.parser.process.core.draft; import com.alibaba.fastjson.JSON; import com.example.demo.parser.process.domain.ConfigDocument; import com.example.demo.parser.process.core.EnhancedTemplateGenerator; import com.example.demo.parser.process.core.Xml2AFSIMTransformation; -import com.example.demo.draft.demo043.util.FormatUtil; +import com.example.demo.parser.process.util.FormatUtil; import java.io.File; import java.io.IOException; @@ -18,11 +18,11 @@ public class ApplicationTest__03 { public static void main(String[] args) throws IOException { List dataList = new ArrayList<>() {{ -// add("20250923_4c32c8.xml"); + add("20250923_4c32c8.xml"); add("20250923_82c579.xml"); -// add("20250923_422dc2.xml"); -// add("20250923_b43a26.xml"); -// add("20250923_c87aa1.xml"); + add("20250923_422dc2.xml"); + add("20250923_b43a26.xml"); + add("20250923_c87aa1.xml"); }}; String prefix = "src/main/resources/data/03-任务航线/"; diff --git a/src/main/java/com/example/demo/draft/demo043/ApplicationTest__04.java b/src/test/java/com/example/demo/parser/process/core/draft/ApplicationTest__04.java similarity index 82% rename from src/main/java/com/example/demo/draft/demo043/ApplicationTest__04.java rename to src/test/java/com/example/demo/parser/process/core/draft/ApplicationTest__04.java index e0d500d..dee1222 100644 --- a/src/main/java/com/example/demo/draft/demo043/ApplicationTest__04.java +++ b/src/test/java/com/example/demo/parser/process/core/draft/ApplicationTest__04.java @@ -1,10 +1,10 @@ -package com.example.demo.draft.demo043; +package com.example.demo.parser.process.core.draft; import com.alibaba.fastjson.JSON; import com.example.demo.parser.process.domain.ConfigDocument; import com.example.demo.parser.process.core.EnhancedTemplateGenerator; import com.example.demo.parser.process.core.Xml2AFSIMTransformation; -import com.example.demo.draft.demo043.util.FormatUtil; +import com.example.demo.parser.process.util.FormatUtil; import java.io.File; import java.io.IOException; @@ -42,8 +42,11 @@ public class ApplicationTest__04 { } // Step.2 - String targetContent = Files.readString(Path.of(processJSONFile), StandardCharsets.UTF_8); - List list = JSON.parseArray(targetContent); +// String targetContent = Files.readString(Path.of(processJSONFile), StandardCharsets.UTF_8); +// List list = JSON.parseArray(targetContent); + + // 通过 {{key}} 限制变量范围 + List list = FormatUtil.loadJSON(processJSONFile); String templateContent = Files.readString(Path.of(inputTemplateData), StandardCharsets.UTF_8); ConfigDocument document = JSON.parseObject(templateContent, ConfigDocument.class); @@ -52,7 +55,8 @@ public class ApplicationTest__04 { System.out.println(result); for(Object obj: list) { Map map = JSON.parseObject(JSON.toJSONString(obj), Map.class); - result = FormatUtil.stealBeamsAndReplacePillars(result, map); +// result = FormatUtil.stealBeamsAndReplacePillars(result, map); + result = FormatUtil.stealBeamsAndReplacePillars(result, map, true, false, false); } // Step.3 diff --git a/src/main/java/com/example/demo/draft/demo043/QA-AI.txt b/src/test/java/com/example/demo/parser/process/domain/QA-AI.txt similarity index 100% rename from src/main/java/com/example/demo/draft/demo043/QA-AI.txt rename to src/test/java/com/example/demo/parser/process/domain/QA-AI.txt diff --git a/src/main/java/com/example/demo/draft/demo043/TestLoopCountFix.java b/src/test/java/com/example/demo/parser/process/domain/TestLoopCountFix.java similarity index 93% rename from src/main/java/com/example/demo/draft/demo043/TestLoopCountFix.java rename to src/test/java/com/example/demo/parser/process/domain/TestLoopCountFix.java index 33c4e2a..6eefee1 100644 --- a/src/main/java/com/example/demo/draft/demo043/TestLoopCountFix.java +++ b/src/test/java/com/example/demo/parser/process/domain/TestLoopCountFix.java @@ -1,8 +1,6 @@ -package com.example.demo.draft.demo043; +package com.example.demo.parser.process.domain; import com.alibaba.fastjson2.JSON; -import com.example.demo.parser.process.domain.ConfigDocument; -import com.example.demo.parser.process.domain.LevelConfig; import java.nio.file.Files; import java.nio.file.Path; diff --git a/src/main/java/com/example/demo/draft/demo043/ConfigDataCreator__02.java b/src/test/java/com/example/demo/parser/process/domain/draft/ConfigDataCreator__02.java similarity index 99% rename from src/main/java/com/example/demo/draft/demo043/ConfigDataCreator__02.java rename to src/test/java/com/example/demo/parser/process/domain/draft/ConfigDataCreator__02.java index 84f79cc..e03837c 100644 --- a/src/main/java/com/example/demo/draft/demo043/ConfigDataCreator__02.java +++ b/src/test/java/com/example/demo/parser/process/domain/draft/ConfigDataCreator__02.java @@ -1,4 +1,4 @@ -package com.example.demo.draft.demo043; +package com.example.demo.parser.process.domain.draft; import com.alibaba.fastjson.JSON; import com.example.demo.parser.process.core.EnhancedTemplateGenerator; diff --git a/src/main/java/com/example/demo/draft/demo043/ConfigDataCreator__03.java b/src/test/java/com/example/demo/parser/process/domain/draft/ConfigDataCreator__03.java similarity index 99% rename from src/main/java/com/example/demo/draft/demo043/ConfigDataCreator__03.java rename to src/test/java/com/example/demo/parser/process/domain/draft/ConfigDataCreator__03.java index ccf8be7..78754b7 100644 --- a/src/main/java/com/example/demo/draft/demo043/ConfigDataCreator__03.java +++ b/src/test/java/com/example/demo/parser/process/domain/draft/ConfigDataCreator__03.java @@ -1,4 +1,4 @@ -package com.example.demo.draft.demo043; +package com.example.demo.parser.process.domain.draft; import com.alibaba.fastjson.JSON; import com.example.demo.parser.process.core.EnhancedTemplateGenerator; diff --git a/src/main/java/com/example/demo/draft/demo043/ConfigDataCreator__04.java b/src/test/java/com/example/demo/parser/process/domain/draft/ConfigDataCreator__04.java similarity index 99% rename from src/main/java/com/example/demo/draft/demo043/ConfigDataCreator__04.java rename to src/test/java/com/example/demo/parser/process/domain/draft/ConfigDataCreator__04.java index 600e367..0da471e 100644 --- a/src/main/java/com/example/demo/draft/demo043/ConfigDataCreator__04.java +++ b/src/test/java/com/example/demo/parser/process/domain/draft/ConfigDataCreator__04.java @@ -1,4 +1,4 @@ -package com.example.demo.draft.demo043; +package com.example.demo.parser.process.domain.draft; import com.alibaba.fastjson.JSON; import com.example.demo.parser.process.core.EnhancedTemplateGenerator; diff --git a/src/test/java/com/example/demo/FormatUtilTest.java b/src/test/java/com/example/demo/parser/process/util/FormatUtilTest.java similarity index 99% rename from src/test/java/com/example/demo/FormatUtilTest.java rename to src/test/java/com/example/demo/parser/process/util/FormatUtilTest.java index 420b5fa..ccccf31 100644 --- a/src/test/java/com/example/demo/FormatUtilTest.java +++ b/src/test/java/com/example/demo/parser/process/util/FormatUtilTest.java @@ -1,4 +1,4 @@ -package com.example.demo; +package com.example.demo.parser.process.util; import com.alibaba.fastjson2.JSON; import org.junit.jupiter.api.Test; @@ -7,8 +7,6 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.AfterEach; import static org.junit.jupiter.api.Assertions.*; -import com.example.demo.draft.demo043.util.FormatUtil; - import java.util.HashMap; import java.util.LinkedHashMap; import java.util.Map; @@ -955,7 +953,7 @@ public class FormatUtilTest { // 执行测试 Object result = FormatUtil.cartesianConvert(coordinate, params); // 断言验证 - String expectedResult = "HELLO WORLD"; + String expectedResult = "待定 。。。"; log.info("预期结果:'{}'", expectedResult); log.info("实际结果:'{}'", result); assertEquals(expectedResult, result); @@ -1597,6 +1595,5 @@ public class FormatUtilTest { return; } assertTrue(false); - } } \ No newline at end of file