选入药品规则改变

dev_unify
qiuyt 6 months ago
parent d95563602f
commit 2fd90c032d

@ -426,14 +426,11 @@ public class UdiContrastService {
// udiProductService.insertUdiInfo(udiProductEntity);
}
if (thirdAliDrugList != null && thirdAliDrugList.size() > 0) {
int errCount = 0;
thirdAliDrugList = disposeYbDrugList(thirdAliDrugList,ybDrug);
if (thirdAliDrugList != null && thirdAliDrugList.size() > 0) {
for (int i = 0; i < thirdAliDrugList.size(); i++) {
ThirdAliDrug thirdAliDrug = thirdAliDrugList.get(i);
if(!drugRulesVerify(ybDrug,thirdAliDrug)){
errCount++;
continue;
}
udiProductEntity.setNameCode(thirdAliDrug.getNameCode());
@ -492,9 +489,11 @@ public class UdiContrastService {
udiProductEntity.setId(IdUtil.getSnowflakeNextId());
udiProductService.insertUdiInfo(udiProductEntity);
}
if(errCount == thirdAliDrugList.size()){
}else {
udiProductService.insertUdiInfo(udiProductEntity);
}
try {
udiRelevanceEntity.setDetailSort(Integer.valueOf(thirdAliDrugList.get(0).getPhysicDetailType()));
@ -603,31 +602,51 @@ public class UdiContrastService {
}
}
public boolean drugRulesVerify(YbDrug ybDrug,ThirdAliDrug thirdAliDrug ){
public List<ThirdAliDrug> disposeYbDrugList(List<ThirdAliDrug> thirdAliDrugList,YbDrug ybDrug){
List<ThirdAliDrug> list1 = new ArrayList<>();
List<ThirdAliDrug> list2 = new ArrayList<>();
for (ThirdAliDrug thirdAliDrug : thirdAliDrugList) {
String str = drugRulesVerify(ybDrug,thirdAliDrug);
if(StringUtils.isNotEmpty(str)){
if(str.equals("1")){
list1.add(thirdAliDrug);
}else if(str.equals("2")){
list2.add(thirdAliDrug);
}
}
}
if(list1 !=null && list1.size() >0){
return list1;
}else if(list2 !=null && list2.size() >0){
return list2;
}
return new ArrayList<>();
}
public String drugRulesVerify(YbDrug ybDrug,ThirdAliDrug thirdAliDrug ){
try {
Integer bzggInt = DimaUtil.trMinCount(thirdAliDrug.getBzgg());
// 按照医保数量与阿里包装规格对比
if((bzggInt == ybDrug.getFactor())){
return true;
return "1";
}
// 医保规格拆分与阿里规格拆分做匹配
List<String> list = DimaUtil.extractNumbers(ybDrug.getRealityOutlook());
if(list!=null && list.size() >0){
for (String str : list) {
if(str.equals(bzggInt+"")){
return true;
if(str.equals(String.valueOf(bzggInt))){
return "2";
}
}
}
// 医保的规格与阿里制剂规格完全匹配
if(thirdAliDrug.getFormSpec().equals(ybDrug.getRealityOutlook())){
return true;
}
// // 医保的规格与阿里制剂规格完全匹配
// if(thirdAliDrug.getFormSpec().equals(ybDrug.getRealityOutlook())){
// return "3";
// }
}catch (Exception e){
log.error("药品校验出现错误==="+e.getMessage());
return false;
return null;
}
return false;
return null;
}

@ -64,19 +64,19 @@ public class DimaUtil {
}
public static List<String> extractNumbers(String input) {
List<String> numberList = new ArrayList<>();
// 匹配小数的正则表达式
Pattern decimalPattern = Pattern.compile("\\d+\\.\\d+");
Matcher decimalMatcher = decimalPattern.matcher(input);
while (decimalMatcher.find()) {
numberList.add(decimalMatcher.group());
List<String> result = new ArrayList<>();
// 定义匹配小数和整数的正则表达式
String patternStr = "\\d+\\.\\d+|\\d+";
Pattern pattern = Pattern.compile(patternStr);
Matcher matcher = pattern.matcher(input);
while (matcher.find()) {
String match = matcher.group();
if (match.contains(".")) {
result.add(Double.parseDouble(match)+"");
} else {
result.add(Integer.parseInt(match)+"");
}
// 匹配整数的正则表达式
Pattern integerPattern = Pattern.compile("\\d+");
Matcher integerMatcher = integerPattern.matcher(input);
while (integerMatcher.find()) {
numberList.add(integerMatcher.group());
}
return numberList;
return result;
}
}

Loading…
Cancel
Save