从供应商选入药品选入药品层级功能搬到内网

dev_unify
qiuyt 6 months ago
parent 01036e5cfb
commit b10ee4d443

@ -424,33 +424,35 @@ public class UdiContrastService {
}
if (thirdAliDrugList != null && thirdAliDrugList.size() > 0) {
thirdAliDrugList = disposeYbDrugList(thirdAliDrugList,ybDrug);
if (thirdAliDrugList != null && thirdAliDrugList.size() > 0) {
for (int i = 0; i < thirdAliDrugList.size(); i++) {
ThirdAliDrug thirdAliDrug = thirdAliDrugList.get(i);
udiProductEntity.setNameCode(thirdAliDrug.getNameCode());
// 数据处理
udiProductEntity.setPrepnSpec(CopyUtils.copyNullStr(udiProductEntity.getPrepnSpec(),thirdAliDrug.getFormSpec()));
udiProductEntity.setZczbhhzbapzbh(CopyUtils.copyNullStr(udiProductEntity.getZczbhhzbapzbh(),thirdAliDrug.getApprovalNum()));
udiProductEntity.setCpmctymc(CopyUtils.copyNullStr(udiProductEntity.getCpmctymc(),thirdAliDrug.getCpmctymc()));
udiProductEntity.setSpmc(CopyUtils.copyNullStr(udiProductEntity.getSpmc(),thirdAliDrug.getSpmc()));
udiProductEntity.setPrepnSpec(CopyUtils.copyNullStr(udiProductEntity.getPrepnSpec(), thirdAliDrug.getFormSpec()));
udiProductEntity.setZczbhhzbapzbh(CopyUtils.copyNullStr(udiProductEntity.getZczbhhzbapzbh(), thirdAliDrug.getApprovalNum()));
udiProductEntity.setCpmctymc(CopyUtils.copyNullStr(udiProductEntity.getCpmctymc(), thirdAliDrug.getCpmctymc()));
udiProductEntity.setSpmc(CopyUtils.copyNullStr(udiProductEntity.getSpmc(), thirdAliDrug.getSpmc()));
udiProductEntity.setBzgg(CopyUtils.copyNullStr(udiProductEntity.getBzgg(),thirdAliDrug.getBzgg()));
udiProductEntity.setPackRatio(CopyUtils.copyNullStr(udiProductEntity.getPackRatio(),thirdAliDrug.getPackRatio()));
udiProductEntity.setBzgg(CopyUtils.copyNullStr(udiProductEntity.getBzgg(), thirdAliDrug.getBzgg()));
udiProductEntity.setPackRatio(CopyUtils.copyNullStr(udiProductEntity.getPackRatio(), thirdAliDrug.getPackRatio()));
// udiProductEntity.setMatrial(ybDrug.getMaterialName());
// udiProductEntity.setPackMatrial(ybDrug.getMaterialName());
// 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.setManufactory(thirdAliDrug.getManufacturer());
//商品条码 essentialDrugMarkName sptm
// 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<>();
if (StrUtil.isNotEmpty(thirdAliDrug.getPackRatio())) {
@ -465,6 +467,9 @@ public class UdiContrastService {
udiProductEntity.setBhxjsl(0);
}
if (IntUtil.value(udiProductEntity.getBhxjsl()) == 0) {
udiProductEntity.setBhxjsl(IntUtil.value(ybDrug.getFactor()));
}
if (IntUtil.value(thirdAliDrug.getPackLevel()) == 1) {
udiProductEntity.setXjdw(ybDrug.getMinUnit());
if (DimaUtil.trMinCount(thirdAliDrug.getBzgg()) != null) {
@ -482,6 +487,20 @@ public class UdiContrastService {
udiProductEntity.setId(IdUtil.getSnowflakeNextId());
udiProductService.insertUdiInfo(udiProductEntity);
}
}else {
udiProductService.insertUdiInfo(udiProductEntity);
}
try {
udiRelevanceEntity.setDetailSort(Integer.valueOf(thirdAliDrugList.get(0).getPhysicDetailType()));
}catch (Exception e){
log.error("明细分类转换出现错误"+e.getMessage());
}
} else {
udiProductService.insertUdiInfo(udiProductEntity);
}
// setLevel(udiRelevanceEntity.getUuid());
@ -582,6 +601,54 @@ public class UdiContrastService {
}
}
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 "1";
}
// 医保规格拆分与阿里规格拆分做匹配
List<String> list = DimaUtil.extractNumbers(ybDrug.getRealityOutlook());
if(list!=null && list.size() >0){
for (String str : list) {
if(str.equals(String.valueOf(bzggInt))){
return "2";
}
}
}
// // 医保的规格与阿里制剂规格完全匹配
// if(thirdAliDrug.getFormSpec().equals(ybDrug.getRealityOutlook())){
// return "3";
// }
}catch (Exception e){
log.error("药品校验出现错误==="+e.getMessage());
return null;
}
return null;
}
public Boolean insertProduct(ThrProductsEntity thrProductsEntity, BasicInsMaterialEntity basicInsMaterialEntity, UdiRelevanceEntity udiRelevanceEntity) {

@ -8,10 +8,15 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.constant.ConstantStatus;
import com.glxp.api.dao.basic.BasicProductsDao;
import com.glxp.api.dao.basic.SupEvaluateDetailMapper;
import com.glxp.api.dao.basic.UdiProductDao;
import com.glxp.api.dao.basic.UdiRelevanceDao;
import com.glxp.api.dao.thrsys.ThirdAliDrugMapper;
import com.glxp.api.dao.thrsys.ThrProductsDao;
import com.glxp.api.entity.basic.SupEvaluateDetailEntity;
import com.glxp.api.entity.basic.UdiEntity;
import com.glxp.api.entity.basic.UdiProductEntity;
@ -643,22 +648,30 @@ public class UdiProductService extends ServiceImpl<UdiProductDao, UdiProductEnti
private YbDrugService ybDrugService;
@Resource
private UdiContrastService udiContrastService;
@Resource
private UdiRelevanceService udiRelevanceService;
public void saveOrUpadateLevelDrugAli(ThirdAliDrugRequest thirdAliDrugRequest) {
public BaseResponse saveOrUpadateLevelDrugAli(ThirdAliDrugRequest thirdAliDrugRequest) {
Integer detailSort=0;
ThirdAliDrug thirdAliDrugServiceOne = thirdAliDrugService.getOne(
new QueryWrapper<ThirdAliDrug>().eq("nameCode", thirdAliDrugRequest.getNameCodeRow()).last("limit 1")
);
String str = "";
if (thirdAliDrugServiceOne != null) {
List<ThirdAliDrug> thirdAliDrugList = thirdAliDrugService.list(
new QueryWrapper<ThirdAliDrug>().eq(org.apache.commons.lang3.StringUtils.isNotBlank( thirdAliDrugServiceOne.getBzgg()),"bzgg", thirdAliDrugServiceOne.getBzgg())
.eq(org.apache.commons.lang3.StringUtils.isNotBlank( thirdAliDrugServiceOne.getPackRatio()),"packRatio", thirdAliDrugServiceOne.getPackRatio())
.eq(org.apache.commons.lang3.StringUtils.isNotBlank( thirdAliDrugRequest.getCpmctymc()),"cpmctymc", thirdAliDrugRequest.getCpmctymc())
.eq(org.apache.commons.lang3.StringUtils.isNotBlank( thirdAliDrugRequest.getManufacturer()),"manufacturer", thirdAliDrugRequest.getManufacturer())
new QueryWrapper<ThirdAliDrug>().eq(StringUtils.isNotBlank( thirdAliDrugServiceOne.getBzgg()),"bzgg", thirdAliDrugServiceOne.getBzgg())
.eq(StringUtils.isNotBlank( thirdAliDrugServiceOne.getPackRatio()),"packRatio", thirdAliDrugServiceOne.getPackRatio())
.like(StringUtils.isNotBlank( thirdAliDrugRequest.getCpmctymc()),"cpmctymc", thirdAliDrugRequest.getCpmctymc())
.like(StringUtils.isNotBlank( thirdAliDrugRequest.getManufacturer()),"manufacturer", thirdAliDrugRequest.getManufacturer())
.eq(StringUtils.isNotBlank( thirdAliDrugRequest.getApprovalNum()),"approvalNum", thirdAliDrugRequest.getApprovalNum())
);
if (thirdAliDrugList != null && thirdAliDrugList.size() > 0) {
udiProductDao.delete(new QueryWrapper<UdiProductEntity>()
.eq("uuid",thirdAliDrugRequest.getUuid())
.isNull("nameCode")
);
ThrProductsEntity thrProductsEntity = thrProductsService.selectByCode(thirdAliDrugRequest.getYbbm());
for (ThirdAliDrug thirdAliDrug : thirdAliDrugList) {
ThrInsDrugFeeRequest thrInsDrugFeeRequest = new ThrInsDrugFeeRequest();
@ -783,11 +796,24 @@ public class UdiProductService extends ServiceImpl<UdiProductDao, UdiProductEnti
udiProductEntity.setId(IdUtil.getSnowflakeNextId());
udiProductService.insertUdiInfo(udiProductEntity);
}
UdiRelevanceEntity udiRelevanceEntity = new UdiRelevanceEntity();
try {
udiRelevanceEntity.setDetailSort(Integer.valueOf(thirdAliDrugList.get(0).getPhysicDetailType()));
detailSort = udiRelevanceEntity.getDetailSort();
}catch (Exception e){
log.error("明细分类转换出现错误"+e.getMessage());
}
}
udiRelevanceService.update(udiRelevanceEntity,new QueryWrapper<UdiRelevanceEntity>()
.eq("uuid",thirdAliDrugRequest.getUuid())
);
return ResultVOUtils.success(detailSort);
}
}
// }
return ResultVOUtils.error("获取错误");
}

@ -50,4 +50,20 @@ public class DimaUtil {
return null;
}
public static List<String> extractNumbers(String input) {
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)+"");
}
}
return result;
}
}

Loading…
Cancel
Save