|
|
|
@ -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<List<ThirdAliDrug>> thirdAliDrugInsertAll(AlihealthThirdAliDrugInsertReqeust alihealthThirdAliDrugInsertReqeust){
|
|
|
|
|
AlihealthKytDrugrescodeReqeust alihealthKytDrugrescodeReqeust = alihealthThirdAliDrugInsertReqeust.getAlihealthKytDrugrescodeReqeust();
|
|
|
|
|
String physicName = alihealthKytDrugrescodeReqeust.getPhysic_name();
|
|
|
|
|
List<ThirdAliDrug> list = new ArrayList<>();
|
|
|
|
|
BaseResponse<List<ThirdAliDrug>> baseResponse = thirdAliDrugInsert(alihealthThirdAliDrugInsertReqeust);
|
|
|
|
|
if(baseResponse.getCode() == 20000){
|
|
|
|
|
List<ThirdAliDrug> thirdAliDrugList = baseResponse.getData();
|
|
|
|
|
list.addAll(thirdAliDrugList);
|
|
|
|
|
public BaseResponse<List<ThirdAliDrug>> thirdAliDrugInsertAll(AlihealthThirdAliDrugInsertReqeust request) {
|
|
|
|
|
// 初始化变量
|
|
|
|
|
List<ThirdAliDrug> resultList = new ArrayList<>();
|
|
|
|
|
AlihealthKytDrugrescodeReqeust drugRequest = request.getAlihealthKytDrugrescodeReqeust();
|
|
|
|
|
String originalName = drugRequest.getPhysic_name();
|
|
|
|
|
BaseResponse<List<ThirdAliDrug>> 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<ThirdAliDrug> 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<ThirdAliDrug> 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<List<ThirdAliDrug>> tryInsertAndCollect(
|
|
|
|
|
AlihealthThirdAliDrugInsertReqeust request,
|
|
|
|
|
List<ThirdAliDrug> resultList) {
|
|
|
|
|
BaseResponse<List<ThirdAliDrug>> 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<String, Object> map = BeanUtil.beanToMap(alihealthKytCommonParametersReqeust);
|
|
|
|
|
String sign;
|
|
|
|
|
try {
|
|
|
|
|