From c0cf4de315567552739b514cb078ce1c7e9c2086 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E5=AE=87=20=E8=94=A1?= <2418394595@qq.com> Date: Fri, 12 Jun 2026 08:52:36 +0800 Subject: [PATCH] =?UTF-8?q?feat(mapping):=20=E6=B7=BB=E5=8A=A0=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E6=96=87=E4=BB=B6=E7=B1=BB=E5=9E=8B=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 generateXmlFromJson 方法中添加 configType 参数以支持不同配置文件 - 新增 loadXmlResources(Integer configType) 方法用于加载指定类型的XML资源 - 更新 JsonToXmlRequest 类添加 configType 属性定义 - 修改 MappingController 中的 getXmlFromJson 方法以传递配置类型参数 - 扩展 RuleBasedXmlMappingService 的 loadDefaultXmlFile 方法支持配置类型选择 - 在调试类 JsonToXmlDebugRunner 中设置默认使用配置类型2进行测试 --- .../component/RuleBasedXmlMappingService.java | 16 +++++++++++++--- .../mapping/controller/MappingController.java | 8 ++++++-- .../icd/mapping/pojo/param/JsonToXmlRequest.java | 12 ++++++++++++ .../service/impl/IcdToXmlTaskAppService.java | 11 ++++++++--- .../icd/mapping/debug/JsonToXmlDebugRunner.java | 2 +- 5 files changed, 40 insertions(+), 9 deletions(-) diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/component/RuleBasedXmlMappingService.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/component/RuleBasedXmlMappingService.java index 8f68d6d..7a127d9 100644 --- a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/component/RuleBasedXmlMappingService.java +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/component/RuleBasedXmlMappingService.java @@ -60,14 +60,24 @@ public class RuleBasedXmlMappingService { private static final Pattern DO_INDEX_PATTERN = Pattern.compile("(MMXU|MHAI|MSQI|MFLK|QVVR)(\\d+)"); private static final Pattern DO_NO_INDEX_PATTERN = Pattern.compile("(MMXU|MHAI|MSQI|MFLK|QVVR)\\$"); - public InputStream loadDefaultXmlFile( ) throws Exception { - ClassPathResource templateResource = new ClassPathResource("template/JiangSu_Config1.xml"); + public InputStream loadDefaultXmlFile() throws Exception { + return loadDefaultXmlFile(1); + } + + public InputStream loadDefaultXmlFile(Integer configType) throws Exception { + String fileName; + if (configType != null && configType == 2) { + fileName = "template/JiangSu_Config1.xml"; + } else { + fileName = "template/JiangSu_Config2.xml"; + } + + ClassPathResource templateResource = new ClassPathResource(fileName); if (!templateResource.exists()) { return null; } - return templateResource.getInputStream(); } diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/controller/MappingController.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/controller/MappingController.java index 61c2e26..2694fc1 100644 --- a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/controller/MappingController.java +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/controller/MappingController.java @@ -165,9 +165,13 @@ public class MappingController extends BaseController { public IcdToXmlResponse getXmlFromJson(@Validated @RequestPart("request") JsonToXmlRequest request) { String methodDescribe = getMethodDescribe("getXmlFromJson") + ",开始将 MMS JSON 转换为 XML"; - // 直接返回 XML 内容给前端展示,不再输出临时文件。 + Integer configType = request == null ? null : request.getConfigType(); + if (configType == null || (configType != 1 && configType != 2)) { + configType = 2; + } + IcdToXmlGenerateResult result = - icdToXmlTaskAppService.generateXmlFromJson(request == null ? null : request.getMappingJson()); + icdToXmlTaskAppService.generateXmlFromJson(request == null ? null : request.getMappingJson(), configType); if (result.getMethodDescribe() != null && !result.getMethodDescribe().trim().isEmpty()) { methodDescribe = methodDescribe + "\n" + result.getMethodDescribe(); } diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/pojo/param/JsonToXmlRequest.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/pojo/param/JsonToXmlRequest.java index c527f17..ae7d96e 100644 --- a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/pojo/param/JsonToXmlRequest.java +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/pojo/param/JsonToXmlRequest.java @@ -13,6 +13,10 @@ public class JsonToXmlRequest { @ApiModelProperty(value = "MMS 映射 JSON 字符串", required = true) private String mappingJson; + /** 配置文件类型:1-读取 Jiangsuconfig2.xml,2-读取 Jiangsuconfig1.xml,空或错误时默认为 1。 */ + @ApiModelProperty(value = "配置文件类型:1-Jiangsuconfig2.xml,2-Jiangsuconfig1.xml,默认1") + private Integer configType; + public String getMappingJson() { return mappingJson; } @@ -20,4 +24,12 @@ public class JsonToXmlRequest { public void setMappingJson(String mappingJson) { this.mappingJson = mappingJson; } + + public Integer getConfigType() { + return configType; + } + + public void setConfigType(Integer configType) { + this.configType = configType; + } } diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/service/impl/IcdToXmlTaskAppService.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/service/impl/IcdToXmlTaskAppService.java index b2462f3..f2c2326 100644 --- a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/service/impl/IcdToXmlTaskAppService.java +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/service/impl/IcdToXmlTaskAppService.java @@ -114,16 +114,17 @@ public class IcdToXmlTaskAppService { * 直接从 JSON 字符串生成 XML 内容。 * * @param mappingJson MMS 映射 JSON 字符串(由 getIcdMmsJson 接口返回) + * @param configType 配置文件类型:1-读取 Jiangsuconfig2.xml,2-读取 Jiangsuconfig1.xml,空或错误时默认为 1 * @return XML 生成结果 */ - public IcdToXmlGenerateResult generateXmlFromJson(String mappingJson) { + public IcdToXmlGenerateResult generateXmlFromJson(String mappingJson, Integer configType) { return executeTask(JSON_TO_XML_TASK_NAME, result -> { if (isBlank(mappingJson)) { markFailed(result, JSON_TO_XML_TASK_NAME, MAPPING_JSON_EMPTY_MESSAGE); return; } - fillXmlContent(result, mappingJson, loadXmlResources()); + fillXmlContent(result, mappingJson, loadXmlResources(configType)); result.setStatus(GenerateStatus.SUCCESS); result.setMessage(XML_GENERATE_SUCCESS_MESSAGE); }); @@ -179,7 +180,11 @@ public class IcdToXmlTaskAppService { * 加载 XML 模板和规则文件。 */ private XmlResourceContext loadXmlResources() throws Exception { - InputStream templateStream = ruleBasedXmlMappingService.loadDefaultXmlFile(); + return loadXmlResources(1); + } + + private XmlResourceContext loadXmlResources(Integer configType) throws Exception { + InputStream templateStream = ruleBasedXmlMappingService.loadDefaultXmlFile(configType); if (templateStream == null) { throw new IllegalArgumentException(DEFAULT_XML_MISSING_MESSAGE); } diff --git a/tools/mms-mapping/src/test/java/com/njcn/gather/icd/mapping/debug/JsonToXmlDebugRunner.java b/tools/mms-mapping/src/test/java/com/njcn/gather/icd/mapping/debug/JsonToXmlDebugRunner.java index cf42dad..ff3f810 100644 --- a/tools/mms-mapping/src/test/java/com/njcn/gather/icd/mapping/debug/JsonToXmlDebugRunner.java +++ b/tools/mms-mapping/src/test/java/com/njcn/gather/icd/mapping/debug/JsonToXmlDebugRunner.java @@ -82,7 +82,7 @@ public class JsonToXmlDebugRunner { if (VERBOSE_LOG) { System.out.println("正在转换 JSON 为 XML..."); } - IcdToXmlGenerateResult result = icdToXmlTaskAppService.generateXmlFromJson(mappingJson); + IcdToXmlGenerateResult result = icdToXmlTaskAppService.generateXmlFromJson(mappingJson,2); // 输出结果 printResult(result, objectMapper);