diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/component/JsonToXmlConversionService.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/component/JsonToXmlConversionService.java index f0fffc1..02305d2 100644 --- a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/component/JsonToXmlConversionService.java +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/component/JsonToXmlConversionService.java @@ -10,6 +10,7 @@ import com.njcn.gather.icd.mapping.pojo.vo.*; import com.njcn.gather.icd.mapping.pojo.enums.GenerateStatus; import com.njcn.gather.icd.mapping.pojo.bo.mapping.MappingDocument; import com.njcn.gather.icd.mapping.utils.GeneratedFileNameUtil; +import io.swagger.models.auth.In; import lombok.var; import org.springframework.stereotype.Component; import org.springframework.stereotype.Service; @@ -42,30 +43,7 @@ public class JsonToXmlConversionService { this.objectMapper = new ObjectMapper(); this.objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); } - - /** - * 从JSON字符串转换为XML文件 - * - * @param mappingJson JSON格式的映射文档 - * @param templateStream XML模板流 - * @param ruleStreams 规则文件流列表 - * @param indexMapping 索引映射配置 - * @return 生成的XML文件路径 - * @throws Exception 转换异常 - */ - public String convertFromJson(String mappingJson, - InputStream templateStream, - List ruleStreams, - IcdToXmlMappingService.IndexMappingConfig indexMapping) throws Exception { - String xmlContent = buildXmlContentFromJson(mappingJson, templateStream, ruleStreams, indexMapping); - - // 3. 保存为临时文件 - Path tempPath = Paths.get(System.getProperty("java.io.tmpdir"), - GeneratedFileNameUtil.appendToday("converted_" + java.util.UUID.randomUUID().toString().replace("-", "") + ".xml")); - Files.write(tempPath, xmlContent.getBytes(StandardCharsets.UTF_8), StandardOpenOption.CREATE_NEW); - - return tempPath.toString(); - } + /** * 从 JSON 字符串转换为 XML 内容,供前端直接展示。 @@ -74,24 +52,19 @@ public class JsonToXmlConversionService { * @param templateStream XML 模板流 * @param ruleStreams 规则文件流列表 * @param indexMapping 索引映射配置 + * @param configType pms3.0或者linux前置 * @return 生成后的 XML 内容 * @throws Exception 转换异常 */ - public String buildXmlContentFromJson(String mappingJson, - InputStream templateStream, - List ruleStreams, - IcdToXmlMappingService.IndexMappingConfig indexMapping) throws Exception { - return buildXmlContentFromJson(mappingJson, templateStream, ruleStreams, indexMapping, null); - } - public String buildXmlContentFromJson(String mappingJson, InputStream templateStream, List ruleStreams, IcdToXmlMappingService.IndexMappingConfig indexMapping, + Integer configType, List methodDescribeList) throws Exception { // 反序列化 JSON 后复用现有规则引擎生成 XML,避免文件输出链路重复实现。 MappingDocument mappingDocument = objectMapper.readValue(mappingJson, MappingDocument.class); - return buildXmlFromMapping(mappingDocument, templateStream, ruleStreams, indexMapping, methodDescribeList); + return buildXmlFromMapping(mappingDocument, templateStream, ruleStreams, indexMapping, configType, methodDescribeList); } /** @@ -101,6 +74,7 @@ public class JsonToXmlConversionService { InputStream templateStream, List ruleStreams, IcdToXmlMappingService.IndexMappingConfig indexMapping, + Integer configType, List methodDescribeList) throws Exception { // 读取模板 String templateContent = readInputStreamToString(templateStream); @@ -109,7 +83,7 @@ public class JsonToXmlConversionService { //填充ReportControls信息 xmlContent = fillReportControlsFromMapping(xmlContent, mappingDocument); //填充do da信息 - xmlContent = applyRulesFromMapping(xmlContent, mappingDocument, ruleStreams, indexMapping, methodDescribeList); + xmlContent = applyRulesFromMapping(xmlContent, mappingDocument, ruleStreams, indexMapping, configType,methodDescribeList); return xmlContent; } @@ -345,11 +319,12 @@ public class JsonToXmlConversionService { MappingDocument mappingDocument, List ruleStreams, IcdToXmlMappingService.IndexMappingConfig indexMapping, + Integer configType, List methodDescribeList) throws Exception { //合并所有规则文件 var mergedRules = mergeAllRulesDesc(ruleStreams, indexMapping); //读取mappingDocument - var mappingMetrics = extractMetricsFromMapping(mappingDocument); + var mappingMetrics = extractMetricsFromMapping(mappingDocument, configType); addMethodDescribe(methodDescribeList, "========== 开始从JSON匹配规则 =========="); addMethodDescribe(methodDescribeList, "规则文件中定义规则总数: " + mergedRules.size()); @@ -742,7 +717,7 @@ public class JsonToXmlConversionService { /** * 从MappingDocument提取指标信息 */ - private java.util.Map extractMetricsFromMapping(MappingDocument mappingDocument) { + private java.util.Map extractMetricsFromMapping(MappingDocument mappingDocument,Integer configType) { java.util.Map metrics = new java.util.HashMap<>(); if (mappingDocument == null || mappingDocument.getDataSetList() == null) { @@ -770,6 +745,9 @@ public class JsonToXmlConversionService { continue; } String daPath = buildDaPath(sdiItem.getName(), typeItem.getName(), doiItem); + if(2==configType && (sdiItem.getDesc().contains("AB")||sdiItem.getDesc().contains("BC")||sdiItem.getDesc().contains("CA"))){ + daPath = "1_" + daPath; + } MetricInfo info = new MetricInfo(); info.setLnClass(dataSetGroup.getLnClass()); info.setLnInst(instItem.getInst()); 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 f2c2326..8e5b880 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 @@ -72,44 +72,6 @@ public class IcdToXmlTaskAppService { /** 将 MMS JSON 中间态转换为 XML 内容。 */ private final JsonToXmlConversionService jsonToXmlConversionService; - /** - * 解析 ICD 并按索引绑定关系直接生成 XML 内容。 - */ - public IcdToXmlGenerateResult generateFromIcd(IcdToXmlGenerateCommand command) { - return executeTask(ICD_TO_XML_TASK_NAME, result -> { - IcdToXmlTaskContext context = buildTaskContext(command, result); - - if (isIndexSelectionEmpty(command.getIndexSelection())) { - markNeedIndexSelection(result); - return; - } - - ValidationResult validationResult = indexValidationService.validate(context.indexAnalysis, command.getIndexSelection()); - if (!validationResult.isValid()) { - markNeedIndexSelection(result); - result.getProblems().addAll(validationResult.getProblems()); - return; - } - - MappingDocument mappingDocument = mappingGenerationService.generate( - context.icdDocument, - context.template, - context.indexAnalysis, - command.getIndexSelection(), - command.getVersion(), - command.getAuthor() - ); - result.setMappingDocument(mappingDocument); - - String mappingJson = mappingDocumentSerializer.toPrettyJson(mappingDocument); - bindIndexMapping(command.getIndexSelection()); - fillXmlContent(result, mappingJson, loadXmlResources()); - - result.setStatus(GenerateStatus.SUCCESS); - result.setMessage(MAPPING_GENERATE_SUCCESS_MESSAGE); - }); - } - /** * 直接从 JSON 字符串生成 XML 内容。 * @@ -124,7 +86,7 @@ public class IcdToXmlTaskAppService { return; } - fillXmlContent(result, mappingJson, loadXmlResources(configType)); + fillXmlContent(result, mappingJson, loadXmlResources(configType),configType); result.setStatus(GenerateStatus.SUCCESS); result.setMessage(XML_GENERATE_SUCCESS_MESSAGE); }); @@ -210,13 +172,15 @@ public class IcdToXmlTaskAppService { */ private void fillXmlContent(IcdToXmlGenerateResult result, String mappingJson, - XmlResourceContext xmlResourceContext) throws Exception { + XmlResourceContext xmlResourceContext, + Integer configType) throws Exception { List methodDescribeList = new ArrayList<>(); String xmlContent = jsonToXmlConversionService.buildXmlContentFromJson( mappingJson, xmlResourceContext.templateStream, xmlResourceContext.ruleStreams, icdToXmlMappingService.getIndexMapping(), + configType, methodDescribeList ); result.setXmlContent(xmlContent); diff --git a/tools/mms-mapping/src/main/resources/template/默认规则.txt b/tools/mms-mapping/src/main/resources/template/默认规则.txt index 60c7bfd..f080dbb 100644 --- a/tools/mms-mapping/src/main/resources/template/默认规则.txt +++ b/tools/mms-mapping/src/main/resources/template/默认规则.txt @@ -286,7 +286,7 @@ - +