From adb6a33c36a7f53cdf26756b6ff811eeab1a8bb7 Mon Sep 17 00:00:00 2001 From: yewj Date: Fri, 20 Dec 2024 08:59:10 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=87=E6=8D=A2=E5=88=86=E6=94=AF=E5=A4=87?= =?UTF-8?q?=E4=BB=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/util/alihealth/AlihealthUtils.java | 115 ++++++++++-------- src/main/resources/application-dev.yml | 2 +- 2 files changed, 66 insertions(+), 51 deletions(-) diff --git a/src/main/java/com/glxp/api/util/alihealth/AlihealthUtils.java b/src/main/java/com/glxp/api/util/alihealth/AlihealthUtils.java index 321ace26..aa3d8667 100644 --- a/src/main/java/com/glxp/api/util/alihealth/AlihealthUtils.java +++ b/src/main/java/com/glxp/api/util/alihealth/AlihealthUtils.java @@ -34,6 +34,7 @@ import java.io.IOException; import java.lang.reflect.Field; import java.security.GeneralSecurityException; import java.security.MessageDigest; +import java.text.SimpleDateFormat; import java.util.*; import static com.taobao.api.internal.util.TaobaoUtils.byte2hex; @@ -101,62 +102,76 @@ public class AlihealthUtils { } } - public BaseResponse> thirdAliDrugInsertAll(AlihealthThirdAliDrugInsertReqeust alihealthThirdAliDrugInsertReqeust){ - AlihealthKytDrugrescodeReqeust alihealthKytDrugrescodeReqeust = alihealthThirdAliDrugInsertReqeust.getAlihealthKytDrugrescodeReqeust(); - String physicName = alihealthKytDrugrescodeReqeust.getPhysic_name(); - List list = new ArrayList<>(); - BaseResponse> baseResponse = thirdAliDrugInsert(alihealthThirdAliDrugInsertReqeust); - if(baseResponse.getCode() == 20000){ - List thirdAliDrugList = baseResponse.getData(); - list.addAll(thirdAliDrugList); + public BaseResponse> thirdAliDrugInsertAll(AlihealthThirdAliDrugInsertReqeust request) { + // 初始化变量 + List resultList = new ArrayList<>(); + AlihealthKytDrugrescodeReqeust drugRequest = request.getAlihealthKytDrugrescodeReqeust(); + String originalName = drugRequest.getPhysic_name(); + BaseResponse> baseResponse = null; + + // 尝试原始名称 + baseResponse = tryInsertAndCollect(request, resultList); + + // 处理括号转换 + if (containsBrackets(originalName)) { + String convertedName = convertBrackets(originalName); + drugRequest.setPhysic_name(convertedName); + tryInsertAndCollect(request, resultList); } - if ( (physicName.contains("(") || physicName.contains("("))) { - if (physicName.contains("(")) { - physicName = physicName.replace("(", "(").replace(")", ")"); - } else if (physicName.contains("(")) { - physicName = physicName.replace("(", "(").replace(")", ")"); + // 处理罗马数字转换 + if (containsRomanNumerals(originalName)) { + String convertedName = convertRomanNumerals(originalName); + drugRequest.setPhysic_name(convertedName); + tryInsertAndCollect(request, resultList); + } - } - alihealthKytDrugrescodeReqeust.setPhysic_name(physicName); - baseResponse = thirdAliDrugInsert(alihealthThirdAliDrugInsertReqeust); - if(baseResponse.getCode() == 20000){ - List thirdAliDrugList = baseResponse.getData(); - list.addAll(thirdAliDrugList); - } + // 设置结果 + if (!resultList.isEmpty()) { + baseResponse.setData(resultList); + } + return baseResponse; + } + // 辅助方法 + private boolean containsBrackets(String name) { + return name.contains("(") || name.contains("("); + } + + private String convertBrackets(String name) { + if (name.contains("(")) { + return name.replace("(", "(").replace(")", ")"); + } else { + return name.replace("(", "(").replace(")", ")"); } - physicName = alihealthKytDrugrescodeReqeust.getPhysic_name(); - - if ( physicName.contains("Ⅰ") || physicName.contains("I") - || physicName.contains("Ⅱ") || physicName.contains("II") - || physicName.contains("Ⅲ") || physicName.contains("III")) - { - if (physicName.contains("Ⅰ") - || physicName.contains("Ⅱ") - || physicName.contains("Ⅲ")) { - physicName = physicName.replaceAll("Ⅰ", "I") - .replace("Ⅱ", "II") - .replace("Ⅲ", "III"); - - } else if (physicName.contains("I") - || physicName.contains("II") - || physicName.contains("III")) { - physicName = physicName.replaceAll("I", "Ⅰ") - .replace("II", "Ⅱ") - .replace("III", "Ⅲ"); - } - alihealthKytDrugrescodeReqeust.setPhysic_name(physicName); - baseResponse = thirdAliDrugInsert(alihealthThirdAliDrugInsertReqeust); - if(baseResponse.getCode() == 20000){ - List thirdAliDrugList = baseResponse.getData(); - list.addAll(thirdAliDrugList); - } + } + + private boolean containsRomanNumerals(String name) { + return name.contains("Ⅰ") || name.contains("I") + || name.contains("Ⅱ") || name.contains("II") + || name.contains("Ⅲ") || name.contains("III"); + } + + private String convertRomanNumerals(String name) { + if (name.contains("Ⅰ") || name.contains("Ⅱ") || name.contains("Ⅲ")) { + return name.replace("Ⅰ", "I") + .replace("Ⅱ", "II") + .replace("Ⅲ", "III"); + } else { + return name.replace("I", "Ⅰ") + .replace("II", "Ⅱ") + .replace("III", "Ⅲ"); } - if(list!=null && list.size() >0){ - baseResponse.setData(list); + } + + private BaseResponse> tryInsertAndCollect( + AlihealthThirdAliDrugInsertReqeust request, + List resultList) { + BaseResponse> response = thirdAliDrugInsert(request); + if (response.getCode() == 20000 && response.getData() != null) { + resultList.addAll(response.getData()); } - return baseResponse; + return response; } /** * 查询药品码段信息 @@ -260,7 +275,7 @@ public class AlihealthUtils { } public Map disposeSign(AlihealthKytCommonParametersReqeust alihealthKytCommonParametersReqeust, String secret) { - + alihealthKytCommonParametersReqeust.setTimestamp(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); Map map = BeanUtil.beanToMap(alihealthKytCommonParametersReqeust); String sign; try { diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index 4dc4dc18..6b059776 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -3,7 +3,7 @@ server: spring: datasource: driver-class-name: com.p6spy.engine.spy.P6SpyDriver - jdbc-url: jdbc:p6spy:mysql://127.0.0.1:3306/udi_spms?allowMultiQueries=true&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true + jdbc-url: jdbc:p6spy:mysql://192.168.0.50:3306/udi_spms_hlhy?allowMultiQueries=true&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true username: root password: 123456 hikari: