选入药品逻辑优化

dev_drug
qiuyt 6 months ago
parent d32c2f476c
commit 67c76aa67d

@ -31,8 +31,11 @@ import com.glxp.api.res.alihealth.AlihealthKytGetentinfoResponse;
import com.glxp.api.service.alihealth.AlihealthBusService; import com.glxp.api.service.alihealth.AlihealthBusService;
import com.glxp.api.service.basic.UdiContrastService; import com.glxp.api.service.basic.UdiContrastService;
import com.glxp.api.service.inout.IoOrderService; import com.glxp.api.service.inout.IoOrderService;
import com.glxp.api.util.DimaUtil;
import com.glxp.api.util.IntUtil;
import com.glxp.api.util.JsonUtils; import com.glxp.api.util.JsonUtils;
import com.glxp.api.util.alihealth.AlihealthUtils; import com.glxp.api.util.alihealth.AlihealthUtils;
import com.glxp.api.util.alihealth.CopyUtils;
import com.google.api.client.json.Json; import com.google.api.client.json.Json;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
@ -99,6 +102,7 @@ public class AlihealthBusController extends BaseController {
} }
@Resource @Resource
private UdiContrastService udiContrastService; private UdiContrastService udiContrastService;
@PostMapping("/spms/alihealth/thirdAliDrugList") @PostMapping("/spms/alihealth/thirdAliDrugList")
@Log(title = "获取阿里药品码段信息列表包括查询国家库", businessType = BusinessType.OTHER) @Log(title = "获取阿里药品码段信息列表包括查询国家库", businessType = BusinessType.OTHER)
public BaseResponse<List<ThirdAliDrug>> thirdAliDrugList(@RequestBody AlihealthThirdAliDrugInsertReqeust alihealthThirdAliDrugInsertReqeust) { public BaseResponse<List<ThirdAliDrug>> thirdAliDrugList(@RequestBody AlihealthThirdAliDrugInsertReqeust alihealthThirdAliDrugInsertReqeust) {
@ -126,6 +130,10 @@ public class AlihealthBusController extends BaseController {
} }
} }
// 校验标识判断 为false不会后续增加多玛融合库的逻辑 直接返回
if(alihealthThirdAliDrugInsertReqeust.isDrugCheckMark() == false){
return ResultVOUtils.success(thirdAliDrugsListGjk);
}
// 查询国家库药品信息 并且要插入到多玛融合表 // 查询国家库药品信息 并且要插入到多玛融合表
AlihealthKytDrugrescodeReqeust alihealthKytDrugrescodeReqeust = alihealthThirdAliDrugInsertReqeust.getAlihealthKytDrugrescodeReqeust(); AlihealthKytDrugrescodeReqeust alihealthKytDrugrescodeReqeust = alihealthThirdAliDrugInsertReqeust.getAlihealthKytDrugrescodeReqeust();
@ -151,6 +159,10 @@ public class AlihealthBusController extends BaseController {
map.put("bzgg", alihealthThirdAliDrugInsertReqeust.getBzgg()); map.put("bzgg", alihealthThirdAliDrugInsertReqeust.getBzgg());
} }
map.put("page", alihealthThirdAliDrugInsertReqeust.getPage());
map.put("limit", alihealthThirdAliDrugInsertReqeust.getLimit());
if(alihealthThirdAliDrugInsertReqeust.getGjkSwitch()){ if(alihealthThirdAliDrugInsertReqeust.getGjkSwitch()){
try { try {
String response = HttpUtil.get(udiUrl + "/udiwms/aliDrug/getDrugLevelList", map); String response = HttpUtil.get(udiUrl + "/udiwms/aliDrug/getDrugLevelList", map);
@ -198,32 +210,6 @@ public class AlihealthBusController extends BaseController {
){ ){
// 规则匹配 // 规则匹配
thirdAliDrugsListGjk = udiContrastService.disposeYbDrugList(thirdAliDrugsListGjk,ybDrug,alihealthThirdAliDrugInsertReqeust.getNameCodeIn()); thirdAliDrugsListGjk = udiContrastService.disposeYbDrugList(thirdAliDrugsListGjk,ybDrug,alihealthThirdAliDrugInsertReqeust.getNameCodeIn());
if(thirdAliDrugsListGjk!=null && thirdAliDrugsListGjk.size()>0){
List<CodeRel> list = new ArrayList<>();
for (ThirdAliDrug thirdAliDrug : thirdAliDrugsListGjk) {
CodeRel codeRel = new CodeRel();
codeRel.setDrugCode(thirdAliDrug.getNameCode());
codeRel.setYbbm(ybDrug.getGoodsCode());
codeRel.setUpdateTime(new Date());
list.add(codeRel);
}
try {
String response = HttpUtil.post(udiUrl + "/udchs/codeRel/updateBatch", JSONUtil.toJsonStr(list));
BaseResponse<String> baseResponse = JSONUtil.toBean(response,BaseResponse.class);
if(baseResponse.getCode() == 2000){
log.error("国家库===上传多码关系===成功===");
}else {
log.error("国家库===上传多码关系===出现错误===" + baseResponse.getMessage());
}
} catch (Exception e) {
log.error("国家库===上传多码关系===出现错误===" + e.getMessage());
}
}
} }
return ResultVOUtils.success(thirdAliDrugsListGjk); return ResultVOUtils.success(thirdAliDrugsListGjk);

@ -13,6 +13,7 @@ import com.glxp.api.constant.AsyncDiDlHelper;
import com.glxp.api.constant.BusinessType; import com.glxp.api.constant.BusinessType;
import com.glxp.api.constant.ConstantStatus; import com.glxp.api.constant.ConstantStatus;
import com.glxp.api.controller.BaseController; import com.glxp.api.controller.BaseController;
import com.glxp.api.dto.BasicProductsCreateDto;
import com.glxp.api.entity.basic.CompanyProductRelevanceEntity; import com.glxp.api.entity.basic.CompanyProductRelevanceEntity;
import com.glxp.api.entity.basic.ProductInfoEntity; import com.glxp.api.entity.basic.ProductInfoEntity;
import com.glxp.api.entity.basic.UdiProductEntity; import com.glxp.api.entity.basic.UdiProductEntity;
@ -120,7 +121,11 @@ public class UdiContrastController {
if (udiContrastService.isExit(null, thirdId, null)) { if (udiContrastService.isExit(null, thirdId, null)) {
buffer.append(thirdId).append(","); buffer.append(thirdId).append(",");
} else { } else {
udiContrastService.createOnlyMainId(thirdId); BasicProductsCreateDto basicProductsCreateDto =new BasicProductsCreateDto();
basicProductsCreateDto.setMainId(thirdId);
basicProductsCreateDto.setDrugCheckMark(true);
udiContrastService.createOnlyMainId(basicProductsCreateDto);
} }
} }
if (StrUtil.isNotBlank(buffer.toString())) { if (StrUtil.isNotBlank(buffer.toString())) {

@ -108,6 +108,8 @@ public class ThirdAliDrugController extends BaseController {
alihealthThirdAliDrugInsertReqeust.setFormSpec(thirdAliDrug.getFormSpec()); alihealthThirdAliDrugInsertReqeust.setFormSpec(thirdAliDrug.getFormSpec());
alihealthThirdAliDrugInsertReqeust.setNameCodeIn(nameCodeIn); alihealthThirdAliDrugInsertReqeust.setNameCodeIn(nameCodeIn);
alihealthThirdAliDrugInsertReqeust.setGjkSwitch(true); alihealthThirdAliDrugInsertReqeust.setGjkSwitch(true);
alihealthThirdAliDrugInsertReqeust.setPage(thirdAliDrug.getPage());
alihealthThirdAliDrugInsertReqeust.setLimit(thirdAliDrug.getLimit());
AlihealthKytDrugrescodeReqeust alihealthKytDrugrescodeReqeust = new AlihealthKytDrugrescodeReqeust(); AlihealthKytDrugrescodeReqeust alihealthKytDrugrescodeReqeust = new AlihealthKytDrugrescodeReqeust();
alihealthKytDrugrescodeReqeust.setPhysic_name(thirdAliDrug.getCpmctymc()); alihealthKytDrugrescodeReqeust.setPhysic_name(thirdAliDrug.getCpmctymc());
alihealthKytDrugrescodeReqeust.setApproval_licence_no(thirdAliDrug.getApprovalNum()); alihealthKytDrugrescodeReqeust.setApproval_licence_no(thirdAliDrug.getApprovalNum());
@ -124,6 +126,7 @@ public class ThirdAliDrugController extends BaseController {
BaseResponse baseResponse = alihealthBusController.thirdAliDrugList(alihealthThirdAliDrugInsertReqeust); BaseResponse baseResponse = alihealthBusController.thirdAliDrugList(alihealthThirdAliDrugInsertReqeust);
if (baseResponse.getCode() == 20000) { if (baseResponse.getCode() == 20000) {
list = thirdAliDrugService.filterList(thirdAliDrug);
if (thirdAliDrugService.addOrUpdate((List) baseResponse.getData())) { if (thirdAliDrugService.addOrUpdate((List) baseResponse.getData())) {
list = thirdAliDrugService.filterList(thirdAliDrug); list = thirdAliDrugService.filterList(thirdAliDrug);

@ -0,0 +1,10 @@
package com.glxp.api.dto;
import lombok.Data;
@Data
public class BasicProductsCreateDto {
private String mainId;
private boolean drugCheckMark;
}

@ -76,6 +76,25 @@ public class CodeRel {
@TableField(value = "fromType") @TableField(value = "fromType")
public Integer fromType; public Integer fromType;
/**
*
*/
@TableField(value = "packUnit")
public String packUnit;
/**
*
*/
@TableField(value = "bhxjsl")
public Integer bhxjsl;
/**
*
*/
@TableField(value = "xjdw")
public String xjdw;
/**
*
*/
@TableField(value = "ybBzgg")
public String ybBzgg;
}
}

@ -159,8 +159,28 @@ public class ThirdAliDrug implements Serializable {
@TableField(value = "packUnitName") @TableField(value = "packUnitName")
@ApiModelProperty(value = "包装单位") @ApiModelProperty(value = "包装单位")
private String packUnitName; private String packUnitName;
/**
*
*/
@TableField(exist = false)
public String packUnit;
/**
*
*/
@TableField(exist = false)
public Integer bhxjsl;
/**
*
*/
@TableField(exist = false)
public String xjdw;
/**
*
*/
@TableField(exist = false)
public String ybBzgg;
@TableField(exist = false)
public boolean dmcx = false;
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
public ThirdAliDrug(String type, String manufacturer, String cpmctymc, String form, String formSpec, String bzgg,String approvalNum, String spmc, String nameCode, String packRatio, String packLevel, Date createTime, Date updateTime) { public ThirdAliDrug(String type, String manufacturer, String cpmctymc, String form, String formSpec, String bzgg,String approvalNum, String spmc, String nameCode, String packRatio, String packLevel, Date createTime, Date updateTime) {

@ -2,12 +2,14 @@ package com.glxp.api.req.alihealth.local;
import com.glxp.api.entity.thrsys.YbDrug; import com.glxp.api.entity.thrsys.YbDrug;
import com.glxp.api.req.alihealth.AlihealthKytDrugrescodeReqeust; import com.glxp.api.req.alihealth.AlihealthKytDrugrescodeReqeust;
import com.glxp.api.req.thrsys.ThirdAliDrugRequest;
import com.glxp.api.util.page.ListPageRequest;
import lombok.Data; import lombok.Data;
import java.util.List; import java.util.List;
@Data @Data
public class AlihealthThirdAliDrugInsertReqeust { public class AlihealthThirdAliDrugInsertReqeust extends ListPageRequest {
private String erpId; private String erpId;
private String appSecret; private String appSecret;
private String manufactory; private String manufactory;
@ -16,6 +18,10 @@ public class AlihealthThirdAliDrugInsertReqeust {
private String formSpec; private String formSpec;
private String bzgg; private String bzgg;
private List<String> nameCodeIn; private List<String> nameCodeIn;
/**
*
*/
private boolean drugCheckMark;
private AlihealthKytDrugrescodeReqeust alihealthKytDrugrescodeReqeust; private AlihealthKytDrugrescodeReqeust alihealthKytDrugrescodeReqeust;
} }

@ -2,6 +2,7 @@ package com.glxp.api.service.basic;
import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.constant.ConstantStatus; import com.glxp.api.constant.ConstantStatus;
import com.glxp.api.dto.BasicProductsCreateDto;
import com.glxp.api.entity.basic.UdiProductEntity; import com.glxp.api.entity.basic.UdiProductEntity;
import com.glxp.api.entity.basic.UdiRelevanceEntity; import com.glxp.api.entity.basic.UdiRelevanceEntity;
import com.glxp.api.entity.system.SystemParamConfigEntity; import com.glxp.api.entity.system.SystemParamConfigEntity;
@ -253,7 +254,10 @@ public class BasicBackUpdateProductService {
// udiRelevanceService.insertUdiRelevanceignore(udiRelevanceEntity1); // udiRelevanceService.insertUdiRelevanceignore(udiRelevanceEntity1);
// } // }
try { try {
udiContrastService.createOnlyMainId(thrProductsEntity.getCode()); BasicProductsCreateDto basicProductsCreateDto =new BasicProductsCreateDto();
basicProductsCreateDto.setMainId(thrProductsEntity.getCode());
basicProductsCreateDto.setDrugCheckMark(false);
udiContrastService.createOnlyMainId(basicProductsCreateDto);
} catch (Exception e) { } catch (Exception e) {
} }

@ -12,6 +12,7 @@ import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.constant.ConstantStatus; import com.glxp.api.constant.ConstantStatus;
import com.glxp.api.controller.alihealth.AlihealthBusController; import com.glxp.api.controller.alihealth.AlihealthBusController;
import com.glxp.api.dao.basic.UdiRelevanceDao; import com.glxp.api.dao.basic.UdiRelevanceDao;
import com.glxp.api.dto.BasicProductsCreateDto;
import com.glxp.api.entity.auth.AuthAliUser; import com.glxp.api.entity.auth.AuthAliUser;
import com.glxp.api.entity.basic.UdiProductEntity; import com.glxp.api.entity.basic.UdiProductEntity;
import com.glxp.api.entity.basic.UdiRelevanceEntity; import com.glxp.api.entity.basic.UdiRelevanceEntity;
@ -47,6 +48,8 @@ import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.*; import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/** /**
* *
@ -234,8 +237,10 @@ public class UdiContrastService {
ThirdAliDrugService thirdAliDrugService; ThirdAliDrugService thirdAliDrugService;
@Resource @Resource
private AlihealthBusController alihealthBusController; private AlihealthBusController alihealthBusController;
// @Transactional // @Transactional
public void createOnlyMainId(String mainId) { public void createOnlyMainId(BasicProductsCreateDto basicProductsCreateDto) {
String mainId = basicProductsCreateDto.getMainId();
FilterThrProductsRequest filterThrProductsRequest = new FilterThrProductsRequest(); FilterThrProductsRequest filterThrProductsRequest = new FilterThrProductsRequest();
filterThrProductsRequest.setCode(mainId); filterThrProductsRequest.setCode(mainId);
ThrProductsEntity thrProductsEntity = thrProductsService.selectByCode(mainId); ThrProductsEntity thrProductsEntity = thrProductsService.selectByCode(mainId);
@ -338,24 +343,26 @@ public class UdiContrastService {
// //
// } else { // } else {
AuthAliUser authAliUser = authAliUserService.getOne(); AuthAliUser authAliUser = authAliUserService.getOne();
AlihealthThirdAliDrugInsertReqeust alihealthThirdAliDrugInsertReqeust = new AlihealthThirdAliDrugInsertReqeust(); AlihealthThirdAliDrugInsertReqeust alihealthThirdAliDrugInsertReqeust = new AlihealthThirdAliDrugInsertReqeust();
alihealthThirdAliDrugInsertReqeust.setErpId(authAliUser.getErpid()); basicProductsCreateDto.setDrugCheckMark(basicProductsCreateDto.isDrugCheckMark());
alihealthThirdAliDrugInsertReqeust.setAppSecret(authAliUser.getAppsecret()); alihealthThirdAliDrugInsertReqeust.setErpId(authAliUser.getErpid());
alihealthThirdAliDrugInsertReqeust.setAppSecret(authAliUser.getAppsecret());
alihealthThirdAliDrugInsertReqeust.setDrugCheckMark(basicProductsCreateDto.isDrugCheckMark());
// alihealthThirdAliDrugInsertReqeust.setManufactory(udiProductEntity.getManufactory()); // alihealthThirdAliDrugInsertReqeust.setManufactory(udiProductEntity.getManufactory());
alihealthThirdAliDrugInsertReqeust.setYbDrug(ybDrug); alihealthThirdAliDrugInsertReqeust.setYbDrug(ybDrug);
AlihealthKytDrugrescodeReqeust alihealthKytDrugrescodeReqeust = new AlihealthKytDrugrescodeReqeust(); AlihealthKytDrugrescodeReqeust alihealthKytDrugrescodeReqeust = new AlihealthKytDrugrescodeReqeust();
alihealthKytDrugrescodeReqeust.setPhysic_name(udiProductEntity.getCpmctymc()); alihealthKytDrugrescodeReqeust.setPhysic_name(udiProductEntity.getCpmctymc());
alihealthKytDrugrescodeReqeust.setApproval_licence_no(udiProductEntity.getZczbhhzbapzbh()); alihealthKytDrugrescodeReqeust.setApproval_licence_no(udiProductEntity.getZczbhhzbapzbh());
alihealthKytDrugrescodeReqeust.setPage_size(200); alihealthKytDrugrescodeReqeust.setPage_size(200);
alihealthKytDrugrescodeReqeust.setPage(1); alihealthKytDrugrescodeReqeust.setPage(1);
alihealthKytDrugrescodeReqeust.setApp_key(authAliUser.getAppkey()); alihealthKytDrugrescodeReqeust.setApp_key(authAliUser.getAppkey());
alihealthKytDrugrescodeReqeust.setRef_ent_id(authAliUser.getRefentid()); alihealthKytDrugrescodeReqeust.setRef_ent_id(authAliUser.getRefentid());
alihealthThirdAliDrugInsertReqeust.setAlihealthKytDrugrescodeReqeust(alihealthKytDrugrescodeReqeust); alihealthThirdAliDrugInsertReqeust.setAlihealthKytDrugrescodeReqeust(alihealthKytDrugrescodeReqeust);
try { try {
BaseResponse baseResponse = alihealthBusController.thirdAliDrugList(alihealthThirdAliDrugInsertReqeust); BaseResponse baseResponse = alihealthBusController.thirdAliDrugList(alihealthThirdAliDrugInsertReqeust);
if (baseResponse.getCode() == 20000) { if (baseResponse.getCode() == 20000) {
thirdAliDrugList = (List) baseResponse.getData(); thirdAliDrugList = (List) baseResponse.getData();
// if (thirdAliDrugService.addOrUpdate((List) baseResponse.getData())) { // if (thirdAliDrugService.addOrUpdate((List) baseResponse.getData())) {
// thirdAliDrugList = thirdAliDrugService.list( // thirdAliDrugList = thirdAliDrugService.list(
@ -372,22 +379,22 @@ public class UdiContrastService {
// } // }
} else { } else {
log.error("供应商平台获取阿里和国家库码段信息出现错误===" + baseResponse.getMessage()); log.error("供应商平台获取阿里和国家库码段信息出现错误===" + baseResponse.getMessage());
// udiProductEntity.setBasicPrductRemak8("供应商平台获取阿里和国家库码段信息出现错误===" + baseResponse.getMessage()); // udiProductEntity.setBasicPrductRemak8("供应商平台获取阿里和国家库码段信息出现错误===" + baseResponse.getMessage());
// error = "供应商平台获取阿里和国家库码段信息出现错误===" + baseResponse.getMessage(); // error = "供应商平台获取阿里和国家库码段信息出现错误===" + baseResponse.getMessage();
udiProductService.insertUdiInfo(udiProductEntity); udiProductService.insertUdiInfo(udiProductEntity);
} }
} catch (Exception e) { } catch (Exception e) {
log.error("供应商平台获取阿里和国家库码段信息出现错误===" + e.getMessage()); log.error("供应商平台获取阿里和国家库码段信息出现错误===" + e.getMessage());
// udiProductEntity.setBasicPrductRemak8("供应商平台获取阿里和国家库码段信息出现错误===" + e.getMessage()); // udiProductEntity.setBasicPrductRemak8("供应商平台获取阿里和国家库码段信息出现错误===" + e.getMessage());
// error = "供应商平台获取阿里和国家库码段信息出现错误===" + e.getMessage(); // error = "供应商平台获取阿里和国家库码段信息出现错误===" + e.getMessage();
udiProductService.insertUdiInfo(udiProductEntity); udiProductService.insertUdiInfo(udiProductEntity);
} }
// thirdAliDrugList = thirdAliDrugService.list( // thirdAliDrugList = thirdAliDrugService.list(
// new QueryWrapper<ThirdAliDrug>() // new QueryWrapper<ThirdAliDrug>()
@ -398,74 +405,102 @@ public class UdiContrastService {
// udiProductService.insertUdiInfo(udiProductEntity); // udiProductService.insertUdiInfo(udiProductEntity);
// } // }
if (thirdAliDrugList != null && thirdAliDrugList.size() > 0) { if (thirdAliDrugList != null && thirdAliDrugList.size() > 0) {
List<CodeRel> codeRelArrayList = new ArrayList<>();
for (int i = 0; i < thirdAliDrugList.size(); i++) { for (int i = 0; i < thirdAliDrugList.size(); i++) {
ThirdAliDrug thirdAliDrug = thirdAliDrugList.get(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());
} } else {
if (thirdAliDrug.getPackLevel() != null && !thirdAliDrug.getPackLevel().equals("0")) {
udiProductEntity.setDiType(IntUtil.value(thirdAliDrug.getPackLevel()) == 1 ? 1 : 4);
} else {
udiProductEntity.setDiType(1);
}
udiProductEntity.setXjdw(thirdAliDrug.getPrepnUnitName()); udiProductEntity.setXjdw(thirdAliDrug.getPrepnUnitName());
udiProductEntity.setPackUnit(thirdAliDrug.getPackUnitName());
udiProductEntity.setId(IdUtil.getSnowflakeNextId());
udiProductService.insertUdiInfo(udiProductEntity);
} }
if (thirdAliDrug.getPackLevel() != null && !thirdAliDrug.getPackLevel().equals("0")) {
udiProductEntity.setDiType(IntUtil.value(thirdAliDrug.getPackLevel()) == 1 ? 1 : 4);
} else {
udiProductEntity.setDiType(1);
}
// udiProductEntity.setPackUnit(thirdAliDrug.getPackUnitName());
udiProductEntity.setId(IdUtil.getSnowflakeNextId());
// 多码融合表拼接参数
if (basicProductsCreateDto.isDrugCheckMark() && !thirdAliDrug.isDmcx()) {
CodeRel codeRel = new CodeRel();
codeRel.setDrugCode(thirdAliDrug.getNameCode());
codeRel.setUpdateTime(new Date());
codeRel.setYbbm(ybDrug.getGoodsCode());
codeRel.setPackUnit(udiProductEntity.getPackUnit());
codeRel.setBhxjsl(udiProductEntity.getBhxjsl());
codeRel.setXjdw(udiProductEntity.getXjdw());
codeRel.setYbBzgg(udiProductEntity.getBzgg());
codeRelArrayList.add(codeRel);
}
// 多码融合存在就以多码融合为准
udiProductEntity.setPackUnit(CopyUtils.copyNullStr(thirdAliDrug.getPackUnit(), udiProductEntity.getPackUnit()));
udiProductEntity.setBhxjsl(CopyUtils.copyNullNum(thirdAliDrug.getBhxjsl(), udiProductEntity.getBhxjsl()));
udiProductEntity.setXjdw(CopyUtils.copyNullStr(thirdAliDrug.getXjdw(), udiProductEntity.getXjdw()));
udiProductEntity.setBzgg(CopyUtils.copyNullStr(thirdAliDrug.getBzgg(), udiProductEntity.getBzgg()));
udiProductService.insertUdiInfo(udiProductEntity);
}
try { try {
udiRelevanceEntity.setDetailSort(Integer.valueOf(thirdAliDrugList.get(0).getPhysicDetailType())); udiRelevanceEntity.setDetailSort(Integer.valueOf(thirdAliDrugList.get(0).getPhysicDetailType()));
}catch (Exception e){ } catch (Exception e) {
log.error("明细分类转换出现错误"+e.getMessage()); log.error("明细分类转换出现错误" + e.getMessage());
} }
// 上传到多码融合表
if (basicProductsCreateDto.isDrugCheckMark()
&& CollUtil.isNotEmpty(codeRelArrayList)) {
this.codeRelUpdateBatch(codeRelArrayList);
}
} else { } else {
udiProductService.insertUdiInfo(udiProductEntity); udiProductService.insertUdiInfo(udiProductEntity);
@ -568,24 +603,56 @@ public class UdiContrastService {
} }
} }
public List<ThirdAliDrug> disposeYbDrugList(List<ThirdAliDrug> thirdAliDrugList,YbDrug ybDrug,List<String> codeIn){
/**
*
*
* @param list
*/
public void codeRelUpdateBatch(List<CodeRel> list) {
if (list != null && list.size() > 0) {
try {
String response = HttpUtil.post(udiUrl + "/udchs/codeRel/updateBatch", JSONUtil.toJsonStr(list));
BaseResponse<String> baseResponse = JSONUtil.toBean(response, BaseResponse.class);
if (baseResponse.getCode() == 2000) {
log.error("国家库===上传多码关系===" + list.get(0).getYbbm() + "成功===");
} else {
log.error("国家库===上传多码关系===出现错误===" + baseResponse.getMessage());
}
} catch (Exception e) {
log.error("国家库===上传多码关系===出现错误===" + e.getMessage());
}
} else {
log.error("国家库===上传多码关系===出现错误===数据为空");
}
}
public List<ThirdAliDrug> disposeYbDrugList(List<ThirdAliDrug> thirdAliDrugList, YbDrug ybDrug, List<String> codeIn) {
List<ThirdAliDrug> list1 = new ArrayList<>(); List<ThirdAliDrug> list1 = new ArrayList<>();
String result=null; String result = null;
if(codeIn!=null && codeIn.size() >0){ if (codeIn != null && codeIn.size() > 0) {
result = String.join(", ", codeIn); result = String.join(", ", codeIn);
} }
if(thirdAliDrugList!=null && thirdAliDrugList.size() >0){ if (thirdAliDrugList != null && thirdAliDrugList.size() > 0) {
// List<ThirdAliDrug> list2 = new ArrayList<>(); // List<ThirdAliDrug> list2 = new ArrayList<>();
for (ThirdAliDrug thirdAliDrug : thirdAliDrugList) { for (ThirdAliDrug thirdAliDrug : thirdAliDrugList) {
String str = drugRulesVerify(ybDrug,thirdAliDrug); String str = drugRulesVerify(ybDrug, thirdAliDrug);
if(StringUtils.isNotEmpty(str)){ if (StringUtils.isNotEmpty(str)) {
if(str.equals("1") || str.equals("2")){ if (str.equals("1")) {
if(StringUtils.isNotEmpty(result)){ if (StringUtils.isNotEmpty(result)) {
if(!result.contains(thirdAliDrug.getNameCode())){ if (!result.contains(thirdAliDrug.getNameCode())) {
list1.add(thirdAliDrug); list1.add(thirdAliDrug);
} }
}else { } else {
list1.add(thirdAliDrug); list1.add(thirdAliDrug);
} }
@ -601,28 +668,27 @@ public class UdiContrastService {
return list1; return list1;
} }
public String drugRulesVerify(YbDrug ybDrug,ThirdAliDrug thirdAliDrug ){
public String drugRulesVerify(YbDrug ybDrug, ThirdAliDrug thirdAliDrug) {
try { try {
Integer bzggInt = DimaUtil.trMinCount(thirdAliDrug.getBzgg()); Integer bzggInt = DimaUtil.trMinCount(thirdAliDrug.getBzgg());
// 医保规格和阿里制剂规格双方都去除特殊符号和空格之后进行精准匹配
String realityOutlook = DimaUtil.specialCharactersRemover(ybDrug.getRealityOutlook());
String formSpec = DimaUtil.specialCharactersRemover(thirdAliDrug.getFormSpec());
// 按照医保数量与阿里包装规格对比 // 按照医保数量与阿里包装规格对比
if((bzggInt == ybDrug.getFactor())){ if ((bzggInt == ybDrug.getFactor()) && realityOutlook.equals(formSpec)) {
return "1"; 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())){ // if(thirdAliDrug.getFormSpec().equals(ybDrug.getRealityOutlook())){
// return "3"; // return "3";
// } // }
}catch (Exception e){ } catch (Exception e) {
log.error("药品校验出现错误==="+e.getMessage()); log.error("药品校验出现错误===" + e.getMessage());
return null; return null;
} }
return null; return null;

@ -321,6 +321,10 @@ public class UdiProductServiceImpl implements UdiProductService {
codeRel.setDrugCode(udiProductEntity.getNameCode()); codeRel.setDrugCode(udiProductEntity.getNameCode());
codeRel.setYbbm(udiProductEntity.getYbbm()); codeRel.setYbbm(udiProductEntity.getYbbm());
codeRel.setUpdateTime(new Date()); codeRel.setUpdateTime(new Date());
codeRel.setPackUnit(udiProductEntity.getPackUnit());
codeRel.setBhxjsl(udiProductEntity.getBhxjsl());
codeRel.setXjdw(udiProductEntity.getXjdw());
codeRel.setYbBzgg(udiProductEntity.getBzgg());
list.add(codeRel); list.add(codeRel);
int i = udiProductDao.updateById(udiProductEntity); int i = udiProductDao.updateById(udiProductEntity);
if (i == 0) { if (i == 0) {

@ -79,4 +79,19 @@ public class DimaUtil {
} }
return result; return result;
} }
public static String specialCharactersRemover(String input){
if(StringUtils.isNotEmpty(input)){
Pattern pattern = Pattern.compile("\\W+");
Matcher matcher = pattern.matcher(input);
StringBuffer sb = new StringBuffer();
while (matcher.find()) {
matcher.appendReplacement(sb, "");
}
matcher.appendTail(sb);
return sb.toString();
}else {
return "";
}
}
} }

@ -13,6 +13,9 @@ public class CopyUtils {
public static String copyNullStr(String str,String strNew){ public static String copyNullStr(String str,String strNew){
return StringUtils.isNotEmpty(str) ? str : strNew; return StringUtils.isNotEmpty(str) ? str : strNew;
} }
public static Integer copyNullNum(Integer integer,Integer integerNew){
return integer!=null ? integer : integerNew;
}
public static void compatibleCopy(Map<String,Object> map, Object target) { public static void compatibleCopy(Map<String,Object> map, Object target) {
try { try {

@ -83,7 +83,7 @@
AND nameCode LIKE concat('%', #{nameCode}, '%') AND nameCode LIKE concat('%', #{nameCode}, '%')
</if> </if>
<if test="approvalNum != '' and approvalNum != null"> <if test="approvalNum != '' and approvalNum != null">
AND approvalNum = #{approvalNum} AND approvalNum LIKE concat('%', #{approvalNum}, '%')
</if> </if>
<if test="nameCodeIn!=null and nameCodeIn.size()>0"> <if test="nameCodeIn!=null and nameCodeIn.size()>0">
AND nameCode NOT IN AND nameCode NOT IN

Loading…
Cancel
Save