选入药品规则改变

dev_unify
qiuyt 6 months ago
parent d95563602f
commit 2fd90c032d

@ -426,75 +426,74 @@ public class UdiContrastService {
// udiProductService.insertUdiInfo(udiProductEntity); // udiProductService.insertUdiInfo(udiProductEntity);
} }
if (thirdAliDrugList != null && thirdAliDrugList.size() > 0) { if (thirdAliDrugList != null && thirdAliDrugList.size() > 0) {
int errCount = 0; thirdAliDrugList = disposeYbDrugList(thirdAliDrugList,ybDrug);
for (int i = 0; i < thirdAliDrugList.size(); i++) { if (thirdAliDrugList != null && thirdAliDrugList.size() > 0) {
ThirdAliDrug thirdAliDrug = thirdAliDrugList.get(i);
if(!drugRulesVerify(ybDrug,thirdAliDrug)){
errCount++;
continue;
}
for (int i = 0; i < thirdAliDrugList.size(); i++) {
ThirdAliDrug thirdAliDrug = thirdAliDrugList.get(i);
udiProductEntity.setNameCode(thirdAliDrug.getNameCode()); udiProductEntity.setNameCode(thirdAliDrug.getNameCode());
// 数据处理 // 数据处理
udiProductEntity.setPrepnSpec(CopyUtils.copyNullStr(udiProductEntity.getPrepnSpec(), thirdAliDrug.getFormSpec())); udiProductEntity.setPrepnSpec(CopyUtils.copyNullStr(udiProductEntity.getPrepnSpec(), thirdAliDrug.getFormSpec()));
udiProductEntity.setZczbhhzbapzbh(CopyUtils.copyNullStr(udiProductEntity.getZczbhhzbapzbh(), thirdAliDrug.getApprovalNum())); udiProductEntity.setZczbhhzbapzbh(CopyUtils.copyNullStr(udiProductEntity.getZczbhhzbapzbh(), thirdAliDrug.getApprovalNum()));
udiProductEntity.setCpmctymc(CopyUtils.copyNullStr(udiProductEntity.getCpmctymc(), thirdAliDrug.getCpmctymc())); udiProductEntity.setCpmctymc(CopyUtils.copyNullStr(udiProductEntity.getCpmctymc(), thirdAliDrug.getCpmctymc()));
udiProductEntity.setSpmc(CopyUtils.copyNullStr(udiProductEntity.getSpmc(), thirdAliDrug.getSpmc())); udiProductEntity.setSpmc(CopyUtils.copyNullStr(udiProductEntity.getSpmc(), thirdAliDrug.getSpmc()));
udiProductEntity.setBzgg(CopyUtils.copyNullStr(udiProductEntity.getBzgg(), thirdAliDrug.getBzgg())); udiProductEntity.setBzgg(CopyUtils.copyNullStr(udiProductEntity.getBzgg(), thirdAliDrug.getBzgg()));
udiProductEntity.setPackRatio(CopyUtils.copyNullStr(udiProductEntity.getPackRatio(), thirdAliDrug.getPackRatio())); udiProductEntity.setPackRatio(CopyUtils.copyNullStr(udiProductEntity.getPackRatio(), thirdAliDrug.getPackRatio()));
// udiProductEntity.setMatrial(ybDrug.getMaterialName()); // udiProductEntity.setMatrial(ybDrug.getMaterialName());
// udiProductEntity.setPackMatrial(ybDrug.getMaterialName()); // udiProductEntity.setPackMatrial(ybDrug.getMaterialName());
// udiProductEntity.setMedicareType(setMedicareType(ybDrug.getProductInsuranceType())); // udiProductEntity.setMedicareType(setMedicareType(ybDrug.getProductInsuranceType()));
//最小产品单位 //最小产品单位
udiProductEntity.setPackUnit(CopyUtils.copyNullStr(udiProductEntity.getPackUnit(), thirdAliDrug.getPackUnitName())); udiProductEntity.setPackUnit(CopyUtils.copyNullStr(udiProductEntity.getPackUnit(), thirdAliDrug.getPackUnitName()));
//设置最小产品数量 //设置最小产品数量
// udiProductEntity.setBhxjsl(ybDrug.getFactor()); // udiProductEntity.setBhxjsl(ybDrug.getFactor());
//生产厂家 //生产厂家
// udiProductEntity.setManufactory(thirdAliDrug.getManufacturer()); // udiProductEntity.setManufactory(thirdAliDrug.getManufacturer());
//商品条码 essentialDrugMarkName sptm //商品条码 essentialDrugMarkName sptm
// udiProductEntity.setSptm(ybDrug.getBusinessLicense()); // udiProductEntity.setSptm(ybDrug.getBusinessLicense());
udiProductEntity.setPrepnUnit(CopyUtils.copyNullStr(udiProductEntity.getPrepnUnit(), thirdAliDrug.getPrepnUnitName())); udiProductEntity.setPrepnUnit(CopyUtils.copyNullStr(udiProductEntity.getPrepnUnit(), thirdAliDrug.getPrepnUnitName()));
List<Integer> integers = new ArrayList<>(); List<Integer> integers = new ArrayList<>();
if (StrUtil.isNotEmpty(thirdAliDrug.getPackRatio())) { if (StrUtil.isNotEmpty(thirdAliDrug.getPackRatio())) {
integers = DimaUtil.calculateLevels(thirdAliDrug.getPackRatio()); integers = DimaUtil.calculateLevels(thirdAliDrug.getPackRatio());
} }
udiProductEntity.setPackLevel(thirdAliDrug.getPackLevel()); udiProductEntity.setPackLevel(thirdAliDrug.getPackLevel());
try { try {
udiProductEntity.setBhxjsl(integers.get(IntUtil.value(thirdAliDrug.getPackLevel()) - 1)); udiProductEntity.setBhxjsl(integers.get(IntUtil.value(thirdAliDrug.getPackLevel()) - 1));
} catch (IndexOutOfBoundsException e) { } catch (IndexOutOfBoundsException e) {
e.printStackTrace(); e.printStackTrace();
Log.error("计算包装级别出错" + thirdAliDrug.getPackLevel() + "---" + integers + "-----" + thirdAliDrug.toString()); Log.error("计算包装级别出错" + thirdAliDrug.getPackLevel() + "---" + integers + "-----" + thirdAliDrug.toString());
udiProductEntity.setBhxjsl(0); udiProductEntity.setBhxjsl(0);
} }
if (IntUtil.value(udiProductEntity.getBhxjsl()) == 0) { if (IntUtil.value(udiProductEntity.getBhxjsl()) == 0) {
udiProductEntity.setBhxjsl(IntUtil.value(ybDrug.getFactor())); udiProductEntity.setBhxjsl(IntUtil.value(ybDrug.getFactor()));
} }
if (IntUtil.value(thirdAliDrug.getPackLevel()) == 1) { if (IntUtil.value(thirdAliDrug.getPackLevel()) == 1) {
udiProductEntity.setXjdw(ybDrug.getMinUnit()); udiProductEntity.setXjdw(ybDrug.getMinUnit());
if (DimaUtil.trMinCount(thirdAliDrug.getBzgg()) != null) { if (DimaUtil.trMinCount(thirdAliDrug.getBzgg()) != null) {
udiProductEntity.setBhxjsl(DimaUtil.trMinCount(thirdAliDrug.getBzgg())); udiProductEntity.setBhxjsl(DimaUtil.trMinCount(thirdAliDrug.getBzgg()));
} else } else
udiProductEntity.setBhxjsl(ybDrug.getFactor()); udiProductEntity.setBhxjsl(ybDrug.getFactor());
} }
if (thirdAliDrug.getPackLevel() != null && !thirdAliDrug.getPackLevel().equals("0")) { if (thirdAliDrug.getPackLevel() != null && !thirdAliDrug.getPackLevel().equals("0")) {
udiProductEntity.setDiType(IntUtil.value(thirdAliDrug.getPackLevel()) == 1 ? 1 : 4); udiProductEntity.setDiType(IntUtil.value(thirdAliDrug.getPackLevel()) == 1 ? 1 : 4);
} else { } else {
udiProductEntity.setDiType(1); udiProductEntity.setDiType(1);
} }
udiProductEntity.setXjdw(thirdAliDrug.getPrepnUnitName()); udiProductEntity.setXjdw(thirdAliDrug.getPrepnUnitName());
udiProductEntity.setPackUnit(thirdAliDrug.getPackUnitName()); udiProductEntity.setPackUnit(thirdAliDrug.getPackUnitName());
udiProductEntity.setId(IdUtil.getSnowflakeNextId()); udiProductEntity.setId(IdUtil.getSnowflakeNextId());
udiProductService.insertUdiInfo(udiProductEntity); udiProductService.insertUdiInfo(udiProductEntity);
} }
if(errCount == thirdAliDrugList.size()){ }else {
udiProductService.insertUdiInfo(udiProductEntity); udiProductService.insertUdiInfo(udiProductEntity);
} }
try { try {
udiRelevanceEntity.setDetailSort(Integer.valueOf(thirdAliDrugList.get(0).getPhysicDetailType())); 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 { try {
Integer bzggInt = DimaUtil.trMinCount(thirdAliDrug.getBzgg()); Integer bzggInt = DimaUtil.trMinCount(thirdAliDrug.getBzgg());
// 按照医保数量与阿里包装规格对比 // 按照医保数量与阿里包装规格对比
if((bzggInt == ybDrug.getFactor())){ if((bzggInt == ybDrug.getFactor())){
return true; return "1";
} }
// 医保规格拆分与阿里规格拆分做匹配 // 医保规格拆分与阿里规格拆分做匹配
List<String> list = DimaUtil.extractNumbers(ybDrug.getRealityOutlook()); List<String> list = DimaUtil.extractNumbers(ybDrug.getRealityOutlook());
if(list!=null && list.size() >0){ if(list!=null && list.size() >0){
for (String str : list) { for (String str : list) {
if(str.equals(bzggInt+"")){ if(str.equals(String.valueOf(bzggInt))){
return true; return "2";
} }
} }
} }
// 医保的规格与阿里制剂规格完全匹配 // // 医保的规格与阿里制剂规格完全匹配
if(thirdAliDrug.getFormSpec().equals(ybDrug.getRealityOutlook())){ // if(thirdAliDrug.getFormSpec().equals(ybDrug.getRealityOutlook())){
return true; // return "3";
} // }
}catch (Exception e){ }catch (Exception e){
log.error("药品校验出现错误==="+e.getMessage()); 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) { public static List<String> extractNumbers(String input) {
List<String> numberList = new ArrayList<>(); List<String> result = new ArrayList<>();
// 匹配小数的正则表达式 // 定义匹配小数和整数的正则表达式
Pattern decimalPattern = Pattern.compile("\\d+\\.\\d+"); String patternStr = "\\d+\\.\\d+|\\d+";
Matcher decimalMatcher = decimalPattern.matcher(input); Pattern pattern = Pattern.compile(patternStr);
while (decimalMatcher.find()) { Matcher matcher = pattern.matcher(input);
numberList.add(decimalMatcher.group()); while (matcher.find()) {
} String match = matcher.group();
// 匹配整数的正则表达式 if (match.contains(".")) {
Pattern integerPattern = Pattern.compile("\\d+"); result.add(Double.parseDouble(match)+"");
Matcher integerMatcher = integerPattern.matcher(input); } else {
while (integerMatcher.find()) { result.add(Integer.parseInt(match)+"");
numberList.add(integerMatcher.group()); }
} }
return numberList; return result;
} }
} }

Loading…
Cancel
Save