From d9cc93ef911945472d653bbd9cd9395d638cb1b8 Mon Sep 17 00:00:00 2001 From: qiuyt Date: Fri, 7 Mar 2025 18:55:02 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81=E6=8A=8A?= =?UTF-8?q?=E5=A4=96=E7=BD=91=E9=80=89=E5=85=A5=E8=8D=AF=E5=93=81=E6=90=AC?= =?UTF-8?q?=E5=88=B0=E5=86=85=E7=BD=91=20=E4=BC=98=E5=8C=96=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../basic/UdiContrastController.java | 17 +- .../thrsys/ThirdAliDrugController.java | 70 +-- .../glxp/api/dto/BasicProductsCreateDto.java | 12 + .../com/glxp/api/entity/thrsys/CodeRel.java | 20 + .../glxp/api/entity/thrsys/ThirdAliDrug.java | 45 +- .../glxp/api/http/sync/SpGetHttpClient.java | 40 ++ .../local/AliBillsDisposeReqeust.java | 2 - .../AlihealthThirdAliDrugInsertReqeust.java | 7 +- .../basic/BasicBackUpdateProductService.java | 6 +- .../api/service/basic/UdiContrastService.java | 438 ++++++++---------- .../api/service/basic/UdiProductService.java | 193 ++------ .../thrsys/impl/ThrProductsServiceImpl.java | 6 +- .../glxp/api/util/alihealth/CopyUtils.java | 15 +- 13 files changed, 410 insertions(+), 461 deletions(-) create mode 100644 src/main/java/com/glxp/api/dto/BasicProductsCreateDto.java diff --git a/src/main/java/com/glxp/api/controller/basic/UdiContrastController.java b/src/main/java/com/glxp/api/controller/basic/UdiContrastController.java index e307c37e7..e851cfeab 100644 --- a/src/main/java/com/glxp/api/controller/basic/UdiContrastController.java +++ b/src/main/java/com/glxp/api/controller/basic/UdiContrastController.java @@ -9,12 +9,15 @@ import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.util.ResultVOUtils; import com.glxp.api.constant.BusinessType; import com.glxp.api.constant.ConstantStatus; +import com.glxp.api.dto.BasicProductsCreateDto; import com.glxp.api.entity.basic.ProductInfoEntity; import com.glxp.api.entity.basic.UdiProductEntity; import com.glxp.api.entity.basic.UdiRelevanceEntity; +import com.glxp.api.entity.thrsys.CodeRel; import com.glxp.api.entity.thrsys.ThrProductsEntity; import com.glxp.api.entity.thrsys.ThrSystemEntity; import com.glxp.api.http.NmpaUdiClient; +import com.glxp.api.http.sync.SpGetHttpClient; import com.glxp.api.req.basic.*; import com.glxp.api.req.thrsys.FilterBasicThirdSysRequest; import com.glxp.api.req.thrsys.ThirdAliDrugRequest; @@ -112,7 +115,10 @@ public class UdiContrastController { if (udiContrastService.isExit(null, thirdId, null)) { buffer.append(thirdId).append(","); } else { - udiContrastService.createOnlyMainId(thirdId); + BasicProductsCreateDto basicProductsCreateDto =new BasicProductsCreateDto(); + basicProductsCreateDto.setMainId(thirdId); + basicProductsCreateDto.setAddCodeRelMark(false); + udiContrastService.createOnlyMainId(basicProductsCreateDto); } } if (StrUtil.isNotBlank(buffer.toString())) { @@ -375,11 +381,18 @@ public class UdiContrastController { return ResultVOUtils.success(udiRelevanceEntity); } - + @Resource + private SpGetHttpClient spGetHttpClient; @AuthRuleAnnotation("") @PostMapping("/udi/udirel/drug/delLevel") public BaseResponse delLevel(@RequestBody AddProductRequest addProductRequest) { boolean b = udiProductService.deleteByNameCode(addProductRequest.getNameCode()); + if( b && StrUtil.isNotEmpty(addProductRequest.getYbbm()) && StrUtil.isNotEmpty(addProductRequest.getNameCode())){ + CodeRel codeRel = new CodeRel(); + codeRel.setYbbm(addProductRequest.getYbbm()); + codeRel.setDrugCode(addProductRequest.getNameCode()); + spGetHttpClient.deleteRelCode(codeRel); + } return ResultVOUtils.success("删除成功!"); } diff --git a/src/main/java/com/glxp/api/controller/thrsys/ThirdAliDrugController.java b/src/main/java/com/glxp/api/controller/thrsys/ThirdAliDrugController.java index 450063891..0c5ee842c 100644 --- a/src/main/java/com/glxp/api/controller/thrsys/ThirdAliDrugController.java +++ b/src/main/java/com/glxp/api/controller/thrsys/ThirdAliDrugController.java @@ -1,5 +1,6 @@ package com.glxp.api.controller.thrsys; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -49,7 +50,6 @@ public class ThirdAliDrugController extends BaseController { if (bindingResult.hasErrors()) { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); } - if (StrUtil.isEmpty(thirdAliDrug.getApprovalNum()) && StrUtil.isEmpty(thirdAliDrug.getNameCode()) && StrUtil.isEmpty(thirdAliDrug.getCpmctymc()) && StrUtil.isEmpty(thirdAliDrug.getManufacturer()) ) { @@ -59,49 +59,51 @@ public class ThirdAliDrugController extends BaseController { filterUdiRelRequest.setUuid(thirdAliDrug.getUuid()); List udiInfoEntities = udiProductService.filterAllUdiInfo(filterUdiRelRequest); List nameCodeIn = new ArrayList<>(); - if(udiInfoEntities!=null && udiInfoEntities.size() >0){ + if (udiInfoEntities != null && udiInfoEntities.size() > 0) { for (UdiProductEntity udiInfoEntity : udiInfoEntities) { - if(StringUtils.isNotEmpty(udiInfoEntity.getNameCode())){ + if (StringUtils.isNotEmpty(udiInfoEntity.getNameCode())) { nameCodeIn.add(udiInfoEntity.getNameCode()); } } } thirdAliDrug.setNameCodeIn(nameCodeIn); - List list = thirdAliDrugService.filterList(thirdAliDrug); - if(CollUtil.isEmpty(list)){ - AuthAliUser authAliUser = authAliUserService.getOne(); - AlihealthThirdAliDrugInsertReqeust alihealthThirdAliDrugInsertReqeust = new AlihealthThirdAliDrugInsertReqeust(); - alihealthThirdAliDrugInsertReqeust.setErpId(authAliUser.getErpid()); - alihealthThirdAliDrugInsertReqeust.setAppSecret(authAliUser.getAppsecret()); - alihealthThirdAliDrugInsertReqeust.setManufactory(thirdAliDrug.getManufacturer()); - alihealthThirdAliDrugInsertReqeust.setGjkSwitch(false); - AlihealthKytDrugrescodeReqeust alihealthKytDrugrescodeReqeust = new AlihealthKytDrugrescodeReqeust(); - alihealthKytDrugrescodeReqeust.setPhysic_name(thirdAliDrug.getCpmctymc()); - alihealthKytDrugrescodeReqeust.setApproval_licence_no(thirdAliDrug.getApprovalNum()); - alihealthKytDrugrescodeReqeust.setPage_size(100); - alihealthKytDrugrescodeReqeust.setPage(1); - alihealthKytDrugrescodeReqeust.setApp_key(authAliUser.getAppkey()); - alihealthKytDrugrescodeReqeust.setRef_ent_id(authAliUser.getRefentid()); - alihealthThirdAliDrugInsertReqeust.setAlihealthKytDrugrescodeReqeust(alihealthKytDrugrescodeReqeust); - try { - BaseResponse baseResponse = spGetHttpClient.thirdAliDrugList(alihealthThirdAliDrugInsertReqeust); - if (baseResponse.getCode() == 20000) { - if (thirdAliDrugService.addOrUpdate((List) baseResponse.getData())) { - list = thirdAliDrugService.filterList(thirdAliDrug); - } else { - log.info("供应商平台获取阿里和国家库码段信息===未查到产品信息"); - } - } else { - log.info("供应商平台获取阿里和国家库码段信息出现错误===" + baseResponse.getMessage()); + List list = new ArrayList<>(); + // 不查本地库全查阿里的库 + // 查询国家库的阿里数据信息 + AuthAliUser authAliUser = authAliUserService.getOne(); + AlihealthThirdAliDrugInsertReqeust alihealthThirdAliDrugInsertReqeust = new AlihealthThirdAliDrugInsertReqeust(); + BeanUtil.copyProperties(thirdAliDrug,alihealthThirdAliDrugInsertReqeust); + alihealthThirdAliDrugInsertReqeust.setErpId(authAliUser.getErpid()); + alihealthThirdAliDrugInsertReqeust.setAppSecret(authAliUser.getAppsecret()); + alihealthThirdAliDrugInsertReqeust.setNameCodeIn(nameCodeIn); + alihealthThirdAliDrugInsertReqeust.setSelectCodeRelMark(false); + + AlihealthKytDrugrescodeReqeust alihealthKytDrugrescodeReqeust = new AlihealthKytDrugrescodeReqeust(); + alihealthKytDrugrescodeReqeust.setPhysic_name(thirdAliDrug.getCpmctymc()); + alihealthKytDrugrescodeReqeust.setApproval_licence_no(thirdAliDrug.getApprovalNum()); + alihealthKytDrugrescodeReqeust.setPage_size(200); + alihealthKytDrugrescodeReqeust.setPage(1); + alihealthKytDrugrescodeReqeust.setApp_key(authAliUser.getAppkey()); + alihealthKytDrugrescodeReqeust.setRef_ent_id(authAliUser.getRefentid()); + alihealthThirdAliDrugInsertReqeust.setAlihealthKytDrugrescodeReqeust(alihealthKytDrugrescodeReqeust); + Integer total = 0; + try { + BaseResponse> baseResponse = spGetHttpClient.thirdAliDrugList(alihealthThirdAliDrugInsertReqeust); + if (baseResponse.getCode() == 20000) { + if (!CollUtil.isEmpty(baseResponse.getData().getList())){ + list = baseResponse.getData().getList(); + total = baseResponse.getData().getTotal(); } - } catch (Exception e) { - e.printStackTrace(); - log.info("供应商平台获取阿里和国家库码段信息出现错误===" + e.getMessage()); + } else { + log.error("获取阿里和国家库码段信息出现错误===" + baseResponse.getMessage()); } + + } catch (Exception e) { + log.error("获取阿里和国家库码段信息出现错误===" + e.getMessage()); + } - PageInfo pageInfo = new PageInfo<>(list); PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); - pageSimpleResponse.setTotal(pageInfo.getTotal()); + pageSimpleResponse.setTotal(Long.valueOf(total)); pageSimpleResponse.setList(list); return ResultVOUtils.success(pageSimpleResponse); } diff --git a/src/main/java/com/glxp/api/dto/BasicProductsCreateDto.java b/src/main/java/com/glxp/api/dto/BasicProductsCreateDto.java new file mode 100644 index 000000000..c5afedc65 --- /dev/null +++ b/src/main/java/com/glxp/api/dto/BasicProductsCreateDto.java @@ -0,0 +1,12 @@ +package com.glxp.api.dto; + +import lombok.Data; + +@Data +public class BasicProductsCreateDto { + private String mainId; + /** + * 新增多玛融合库标识 + */ + private boolean addCodeRelMark; +} diff --git a/src/main/java/com/glxp/api/entity/thrsys/CodeRel.java b/src/main/java/com/glxp/api/entity/thrsys/CodeRel.java index f11e5a2ab..49b6a73bb 100644 --- a/src/main/java/com/glxp/api/entity/thrsys/CodeRel.java +++ b/src/main/java/com/glxp/api/entity/thrsys/CodeRel.java @@ -75,5 +75,25 @@ public class CodeRel { @TableField(value = "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; } diff --git a/src/main/java/com/glxp/api/entity/thrsys/ThirdAliDrug.java b/src/main/java/com/glxp/api/entity/thrsys/ThirdAliDrug.java index afcea4eeb..e3bd65189 100644 --- a/src/main/java/com/glxp/api/entity/thrsys/ThirdAliDrug.java +++ b/src/main/java/com/glxp/api/entity/thrsys/ThirdAliDrug.java @@ -122,7 +122,6 @@ public class ThirdAliDrug implements Serializable { @ApiModelProperty(value = "更新时间") private Date updateTime; - /** * 制剂单位描述 */ @@ -159,10 +158,30 @@ public class ThirdAliDrug implements Serializable { @TableField(value = "packUnitName") @ApiModelProperty(value = "包装单位") 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; 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) { this.type = type; this.manufacturer = manufacturer; this.cpmctymc = cpmctymc; @@ -177,4 +196,26 @@ public class ThirdAliDrug implements Serializable { this.updateTime = updateTime; this.approvalNum = approvalNum; } + + + @Override + public String toString() { + return "ThirdAliDrug{" + + "id=" + id + + ", type='" + type + '\'' + + ", manufacturer='" + manufacturer + '\'' + + ", cpmctymc='" + cpmctymc + '\'' + + ", form='" + form + '\'' + + ", formSpec='" + formSpec + '\'' + + ", bzgg='" + bzgg + '\'' + + ", spmc='" + spmc + '\'' + + ", nameCode='" + nameCode + '\'' + + ", packRatio='" + packRatio + '\'' + + ", packLevel='" + packLevel + '\'' + + ", erpId='" + erpId + '\'' + + ", approvalNum='" + approvalNum + '\'' + + ", createTime=" + createTime + + ", updateTime=" + updateTime + + '}'; + } } diff --git a/src/main/java/com/glxp/api/http/sync/SpGetHttpClient.java b/src/main/java/com/glxp/api/http/sync/SpGetHttpClient.java index 500a5f2b0..6361a6369 100644 --- a/src/main/java/com/glxp/api/http/sync/SpGetHttpClient.java +++ b/src/main/java/com/glxp/api/http/sync/SpGetHttpClient.java @@ -17,6 +17,8 @@ import com.glxp.api.entity.sync.IOOrderStatusEntity; import com.glxp.api.entity.sync.SyncEditLogEntity; import com.glxp.api.entity.sync.SyncEditTypeEntity; import com.glxp.api.entity.system.SyncDataSetEntity; +import com.glxp.api.entity.thrsys.CodeRel; +import com.glxp.api.entity.thrsys.ThirdAliDrug; import com.glxp.api.idc.service.FileService; import com.glxp.api.req.alihealth.AlihealthRelCodeInsertReqeust; import com.glxp.api.req.alihealth.local.AliBillsDisposeReqeust; @@ -32,6 +34,7 @@ import com.glxp.api.req.sync.BasicExportStatusRequest; import com.glxp.api.req.sync.OrderStatusFilterRequest; import com.glxp.api.req.sync.SyncUpLoadRequest; import com.glxp.api.req.system.DeleteRequest; +import com.glxp.api.req.thrsys.ThirdAliDrugRequest; import com.glxp.api.res.PageSimpleResponse; import com.glxp.api.res.inout.RefreshInoiceResponse; import com.glxp.api.res.inv.InvPreProductResponse; @@ -706,4 +709,41 @@ public class SpGetHttpClient { } return response; } + + public BaseResponse codeRelUpdateBatch(List list) { + String json = JSONUtil.toJsonStr(list); + String result = okHttpCli.doPostJson(getIpUrl() + "/directToSpms" + "/spms/alihealth/codeRelUpdateBatch", json, buildHeader()); + BaseResponse response = + JSONObject.parseObject(result, new TypeReference() { + }); + if(response == null){ + return ResultVOUtils.error("访问供应商平台访问不到"); + } + return response; + } + + public BaseResponse deleteRelCode(CodeRel codeRel) { + String json = JSONUtil.toJsonStr(codeRel); + String result = okHttpCli.doPostJson(getIpUrl() + "/directToSpms" + "/spms/alihealth/deleteRelCode", json, buildHeader()); + BaseResponse response = + JSONObject.parseObject(result, new TypeReference() { + }); + if(response == null){ + return ResultVOUtils.error("访问供应商平台访问不到"); + } + return response; + } + public BaseResponse> optThirdAliDrug(ThirdAliDrugRequest thirdAliDrugRequest) { + String json = JSONUtil.toJsonStr(thirdAliDrugRequest); + String result = okHttpCli.doPostJson(getIpUrl() + "/directToSpms" + "/spms/alihealth/optThirdAliDrug", json, buildHeader()); + BaseResponse> response = + JSONObject.parseObject(result, new TypeReference>>() { + + }); + + if(response == null){ + return ResultVOUtils.error("访问供应商平台访问不到"); + } + return response; + } } diff --git a/src/main/java/com/glxp/api/req/alihealth/local/AliBillsDisposeReqeust.java b/src/main/java/com/glxp/api/req/alihealth/local/AliBillsDisposeReqeust.java index 8da1b8297..6787f65d9 100644 --- a/src/main/java/com/glxp/api/req/alihealth/local/AliBillsDisposeReqeust.java +++ b/src/main/java/com/glxp/api/req/alihealth/local/AliBillsDisposeReqeust.java @@ -4,10 +4,8 @@ import com.glxp.api.entity.inout.IoOrderEntity; import lombok.Data; import java.util.List; - @Data public class AliBillsDisposeReqeust { private List ioOrderEntityList; - private String erpName; } diff --git a/src/main/java/com/glxp/api/req/alihealth/local/AlihealthThirdAliDrugInsertReqeust.java b/src/main/java/com/glxp/api/req/alihealth/local/AlihealthThirdAliDrugInsertReqeust.java index 294a004f6..f0ae21765 100644 --- a/src/main/java/com/glxp/api/req/alihealth/local/AlihealthThirdAliDrugInsertReqeust.java +++ b/src/main/java/com/glxp/api/req/alihealth/local/AlihealthThirdAliDrugInsertReqeust.java @@ -11,16 +11,15 @@ import java.util.List; public class AlihealthThirdAliDrugInsertReqeust extends ListPageRequest { private String erpId; private String appSecret; - private String manufactory; - private Boolean gjkSwitch = true; + private String manufacturer; private YbDrug ybDrug; private String formSpec; private String bzgg; private List nameCodeIn; /** - * 药品校验标识 + * 查询多玛融合库标识 */ - private boolean drugCheckMark; + private boolean selectCodeRelMark; private String nameCode; private AlihealthKytDrugrescodeReqeust alihealthKytDrugrescodeReqeust; diff --git a/src/main/java/com/glxp/api/service/basic/BasicBackUpdateProductService.java b/src/main/java/com/glxp/api/service/basic/BasicBackUpdateProductService.java index bf12d518f..b466c8e9a 100644 --- a/src/main/java/com/glxp/api/service/basic/BasicBackUpdateProductService.java +++ b/src/main/java/com/glxp/api/service/basic/BasicBackUpdateProductService.java @@ -1,5 +1,6 @@ package com.glxp.api.service.basic; +import com.glxp.api.dto.BasicProductsCreateDto; import com.glxp.api.entity.basic.UdiRelevanceEntity; import com.glxp.api.entity.thrsys.ThrProductsEntity; import com.glxp.api.req.thrsys.FilterThrProductsRequest; @@ -42,7 +43,10 @@ public class BasicBackUpdateProductService { UdiRelevanceEntity udiRelevanceEntity = udiRelevanceService.selectByThirdId(thrProductsEntity.getCode(), thirdSysId); if (udiRelevanceEntity == null) { try { - udiContrastService.createOnlyMainId(thrProductsEntity.getCode()); + BasicProductsCreateDto basicProductsCreateDto =new BasicProductsCreateDto(); + basicProductsCreateDto.setMainId(thrProductsEntity.getCode()); + basicProductsCreateDto.setAddCodeRelMark(false); + udiContrastService.createOnlyMainId(basicProductsCreateDto); } catch (Exception e) { log.error("拉取基础数据==="+ ExceptionUtils.getStackTrace(e)); } diff --git a/src/main/java/com/glxp/api/service/basic/UdiContrastService.java b/src/main/java/com/glxp/api/service/basic/UdiContrastService.java index b9b0b001b..3778889c1 100644 --- a/src/main/java/com/glxp/api/service/basic/UdiContrastService.java +++ b/src/main/java/com/glxp/api/service/basic/UdiContrastService.java @@ -5,15 +5,14 @@ import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 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.UdiRelevanceDao; +import com.glxp.api.dto.BasicProductsCreateDto; import com.glxp.api.entity.auth.AuthAliUser; import com.glxp.api.entity.basic.UdiProductEntity; import com.glxp.api.entity.basic.UdiRelevanceEntity; -import com.glxp.api.entity.thrsys.BasicInsMaterialEntity; -import com.glxp.api.entity.thrsys.ThirdAliDrug; -import com.glxp.api.entity.thrsys.ThrProductsEntity; -import com.glxp.api.entity.thrsys.YbDrug; +import com.glxp.api.entity.thrsys.*; import com.glxp.api.exception.JsonException; import com.glxp.api.http.NmpaUdiClient; import com.glxp.api.http.sync.SpGetHttpClient; @@ -25,6 +24,7 @@ import com.glxp.api.req.basic.YbDrugDetailFilterRequest; import com.glxp.api.req.thrsys.FilterThrProductsRequest; import com.glxp.api.req.thrsys.ThrInsDrugFeeRequest; import com.glxp.api.req.thrsys.ThrInsMaterialFeeRequest; +import com.glxp.api.res.PageSimpleResponse; import com.glxp.api.res.basic.UdiRelevanceResponse; import com.glxp.api.service.auth.AuthAliUserService; import com.glxp.api.service.thrsys.BasicInsMaterialService; @@ -228,10 +228,6 @@ public class UdiContrastService { } - public List filterAll(FilterUdiRelRequest filterUdiRelRequest) { - List udiRelevanceEntities = udiRelevanceDao.contrastJoinSelect(filterUdiRelRequest); - return udiRelevanceEntities; - } public void createUnionContrast(UdiCombineRequest udiCombineRequest, String key) { @@ -259,10 +255,8 @@ public class UdiContrastService { .orElse(null); } - @Resource - ThirdAliDrugService thirdAliDrugService; - - public void createOnlyMainId(String mainId) { + public BaseResponse createOnlyMainId(BasicProductsCreateDto basicProductsCreateDto) { + String mainId = basicProductsCreateDto.getMainId(); FilterThrProductsRequest filterThrProductsRequest = new FilterThrProductsRequest(); filterThrProductsRequest.setCode(mainId); ThrProductsEntity thrProductsEntity = thrProductsService.selectByCode(mainId); @@ -282,7 +276,6 @@ public class UdiContrastService { if (thrProductsEntity.getYbbm() != null) { //判断药品还是器械 if (thrProductsEntity.getProductType() == 2) { - String error = null; ThrInsDrugFeeRequest thrInsDrugFeeRequest = new ThrInsDrugFeeRequest(); thrInsDrugFeeRequest.setMedCatalogCode(thrProductsEntity.getYbbm()); YbDrugDetailFilterRequest ybHcflDetailFilterRequest = new YbDrugDetailFilterRequest(); @@ -290,217 +283,48 @@ public class UdiContrastService { ybHcflDetailFilterRequest.setPage(1); ybHcflDetailFilterRequest.setGoodsCode(thrProductsEntity.getYbbm()); List list = ybDrugService.getList(ybHcflDetailFilterRequest); - - - UdiProductEntity udiProductEntity = new UdiProductEntity(); - BeanUtils.copyProperties(thrProductsEntity, udiProductEntity); - YbDrug ybDrug = new YbDrug(); - - // 数据处理 - udiProductEntity.setId(IdUtil.getSnowflakeNextId()); -// udiProductEntity.setNameCode(thrProductsEntity.getCode()); - - udiProductEntity.setUuid(udiRelevanceEntity.getUuid()); - udiProductEntity.setDiType(1); - udiProductEntity.setScbssfbhph("是"); - udiProductEntity.setScbssfbhscrq("是"); - udiProductEntity.setScbssfbhsxrq("是"); - udiProductEntity.setScbssfbhxlh("否"); - udiProductEntity.setProductsType(thrProductsEntity.getProductType()); - udiProductEntity.setRequireScanCode(1); - udiProductEntity.setMajorStatus(1); - udiProductEntity.setPhysicType(3); - //设置包装级别 - udiProductEntity.setPackLevel(1 + ""); - if (StrUtil.isEmpty(udiProductEntity.getPrice())) { - udiProductEntity.setPrice("0.00"); - } - udiProductEntity.setUpdateTime(new Date()); - udiProductEntity = UdiInfoUtil.initUdiInfoEntity(udiProductEntity); - + YbDrug ybDrug; if (list != null && list.size() > 0) { ybDrug = list.get(0); - // 数据做处理好查询阿里接口 - if (ybDrug.getApprovalCode().contains("(")) { - String[] charArr = ybDrug.getRegisteredProductName().split("\\("); - ybDrug.setApprovalCode(charArr[0]); - } - -// udiProductEntity.setNameCode(thrProductsEntity.getCode()); - udiProductEntity.setPrepnSpec(ybDrug.getRealityOutlook()); - udiProductEntity.setZczbhhzbapzbh(ybDrug.getApprovalCode()); - udiProductEntity.setCpmctymc(ybDrug.getRegisteredProductName()); - udiProductEntity.setSpmc(ybDrug.getGoodsName()); - - udiProductEntity.setBzgg(String.valueOf(ybDrug.getFactor()) + ybDrug.getMinUnit() + "/" + ybDrug.getUnit()); - udiProductEntity.setMatrial(ybDrug.getMaterialName()); - udiProductEntity.setPackMatrial(ybDrug.getMaterialName()); - udiProductEntity.setMedicareType(setMedicareType(ybDrug.getProductInsuranceType())); - //最小产品单位 - udiProductEntity.setPackUnit(ybDrug.getUnit()); - //设置最小产品数量 - udiProductEntity.setBhxjsl(ybDrug.getFactor()); - - //生产厂家 - udiProductEntity.setManufactory(ybDrug.getCompanyNameSc()); - //商品条码 essentialDrugMarkName sptm -// udiProductEntity.setSptm(ybDrug.getBusinessLicense()); - udiProductEntity.setPrepnUnit(ybDrug.getRealityMedicinemodel()); - - - }else { - udiProductEntity.setCpmctymc(thrProductsEntity.getName()); - } - if (StrUtil.isEmpty(udiProductEntity.getZczbhhzbapzbh()) || StrUtil.isEmpty(udiProductEntity.getCpmctymc())) { - return; - } - List thirdAliDrugList = thirdAliDrugService.list( - new QueryWrapper() - .eq(StringUtils.isNotEmpty(udiProductEntity.getCpmctymc()), "cpmctymc", udiProductEntity.getCpmctymc()) - .eq(StringUtils.isNotEmpty(udiProductEntity.getZczbhhzbapzbh()), "approvalNum", udiProductEntity.getZczbhhzbapzbh()) - .eq(StringUtils.isNotEmpty(udiProductEntity.getManufactory()), "manufacturer", udiProductEntity.getManufactory()) - - ); - if (CollUtil.isNotEmpty(thirdAliDrugList)) { } else { - AuthAliUser authAliUser = authAliUserService.getOne(); - AlihealthThirdAliDrugInsertReqeust alihealthThirdAliDrugInsertReqeust = new AlihealthThirdAliDrugInsertReqeust(); - alihealthThirdAliDrugInsertReqeust.setErpId(authAliUser.getErpid()); - alihealthThirdAliDrugInsertReqeust.setAppSecret(authAliUser.getAppsecret()); - alihealthThirdAliDrugInsertReqeust.setManufactory(udiProductEntity.getManufactory()); - AlihealthKytDrugrescodeReqeust alihealthKytDrugrescodeReqeust = new AlihealthKytDrugrescodeReqeust(); - alihealthKytDrugrescodeReqeust.setPhysic_name(udiProductEntity.getCpmctymc()); - alihealthKytDrugrescodeReqeust.setApproval_licence_no(udiProductEntity.getZczbhhzbapzbh()); - alihealthKytDrugrescodeReqeust.setPage_size(100); - alihealthKytDrugrescodeReqeust.setPage(1); - alihealthKytDrugrescodeReqeust.setApp_key(authAliUser.getAppkey()); - alihealthKytDrugrescodeReqeust.setRef_ent_id(authAliUser.getRefentid()); - alihealthThirdAliDrugInsertReqeust.setAlihealthKytDrugrescodeReqeust(alihealthKytDrugrescodeReqeust); - try { - BaseResponse baseResponse = spGetHttpClient.thirdAliDrugList(alihealthThirdAliDrugInsertReqeust); - if (baseResponse.getCode() == 20000) { - - - if (thirdAliDrugService.addOrUpdate((List) baseResponse.getData())) { - thirdAliDrugList = thirdAliDrugService.list( - new QueryWrapper() - .eq(StringUtils.isNotEmpty(udiProductEntity.getCpmctymc()), "cpmctymc", udiProductEntity.getCpmctymc()) - .eq(StringUtils.isNotEmpty(udiProductEntity.getZczbhhzbapzbh()), "approvalNum", udiProductEntity.getZczbhhzbapzbh()) - .eq(StringUtils.isNotEmpty(udiProductEntity.getManufactory()), "manufacturer", udiProductEntity.getManufactory()) - - ); - } else { - log.info("供应商平台获取阿里和国家库码段信息===未查到产品信息"); - udiProductService.insertUdiInfo(udiProductEntity); - - } - - - } else { - log.info("供应商平台获取阿里和国家库码段信息出现错误===" + baseResponse.getMessage()); -// udiProductEntity.setBasicPrductRemak8("供应商平台获取阿里和国家库码段信息出现错误===" + baseResponse.getMessage()); -// error = "供应商平台获取阿里和国家库码段信息出现错误===" + baseResponse.getMessage(); - - udiProductService.insertUdiInfo(udiProductEntity); - - } - - } catch (Exception e) { - log.info("供应商平台获取阿里和国家库码段信息出现错误===" + e.getMessage()); -// udiProductEntity.setBasicPrductRemak8("供应商平台获取阿里和国家库码段信息出现错误===" + e.getMessage()); -// error = "供应商平台获取阿里和国家库码段信息出现错误===" + e.getMessage(); - udiProductService.insertUdiInfo(udiProductEntity); - - } - - + return ResultVOUtils.error(500, "未能查询到此医保编码"); } - - 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.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.setBhxjsl(ybDrug.getFactor()); - //生产厂家 -// udiProductEntity.setManufactory(thirdAliDrug.getManufacturer()); - //商品条码 essentialDrugMarkName sptm -// udiProductEntity.setSptm(ybDrug.getBusinessLicense()); - udiProductEntity.setPrepnUnit(CopyUtils.copyNullStr(udiProductEntity.getPrepnUnit(), thirdAliDrug.getPrepnUnitName())); - - List integers = new ArrayList<>(); - if (StrUtil.isNotEmpty(thirdAliDrug.getPackRatio())) { - integers = DimaUtil.calculateLevels(thirdAliDrug.getPackRatio()); - } - udiProductEntity.setPackLevel(thirdAliDrug.getPackLevel()); - try { - udiProductEntity.setBhxjsl(integers.get(IntUtil.value(thirdAliDrug.getPackLevel()) - 1)); - } catch (IndexOutOfBoundsException e) { - e.printStackTrace(); - Log.error("计算包装级别出错" + thirdAliDrug.getPackLevel() + "---" + integers + "-----" + thirdAliDrug.toString()); - 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) { - udiProductEntity.setBhxjsl(DimaUtil.trMinCount(thirdAliDrug.getBzgg())); - } else - udiProductEntity.setBhxjsl(ybDrug.getFactor()); - } - 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.setPackUnit(thirdAliDrug.getPackUnitName()); - - 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()); + if (StrUtil.isEmpty(ybDrug.getApprovalCode()) || StrUtil.isEmpty(ybDrug.getRegisteredProductName())) { + return ResultVOUtils.success(); + } + // 本地查询先注释了 + // 查询多玛融合库 + List thirdAliDrugList = new ArrayList<>(); + AuthAliUser authAliUser = authAliUserService.getOne(); + AlihealthThirdAliDrugInsertReqeust alihealthThirdAliDrugInsertReqeust = new AlihealthThirdAliDrugInsertReqeust(); + alihealthThirdAliDrugInsertReqeust.setErpId(authAliUser.getErpid()); + alihealthThirdAliDrugInsertReqeust.setAppSecret(authAliUser.getAppsecret()); + alihealthThirdAliDrugInsertReqeust.setSelectCodeRelMark(true); +// alihealthThirdAliDrugInsertReqeust.setManufactory(udiProductEntity.getManufactory()); + alihealthThirdAliDrugInsertReqeust.setYbDrug(ybDrug); + AlihealthKytDrugrescodeReqeust alihealthKytDrugrescodeReqeust = new AlihealthKytDrugrescodeReqeust(); + alihealthKytDrugrescodeReqeust.setPhysic_name(ybDrug.getRegisteredProductName()); + alihealthKytDrugrescodeReqeust.setApproval_licence_no(ybDrug.getApprovalCode()); + alihealthKytDrugrescodeReqeust.setPage_size(200); + alihealthKytDrugrescodeReqeust.setPage(1); + alihealthKytDrugrescodeReqeust.setApp_key(authAliUser.getAppkey()); + alihealthKytDrugrescodeReqeust.setRef_ent_id(authAliUser.getRefentid()); + alihealthThirdAliDrugInsertReqeust.setAlihealthKytDrugrescodeReqeust(alihealthKytDrugrescodeReqeust); + try { + BaseResponse> baseResponse = spGetHttpClient.thirdAliDrugList(alihealthThirdAliDrugInsertReqeust); + if (baseResponse.getCode() == 20000) { + thirdAliDrugList = baseResponse.getData().getList(); } - } else { - udiProductService.insertUdiInfo(udiProductEntity); + } catch (Exception e) { + log.error("供应商平台获取阿里和国家库码段信息出现错误===" + e.getMessage()); } + // 处理药品数据 + disposeDrugData(basicProductsCreateDto,thrProductsEntity,ybDrug,thirdAliDrugList,udiRelevanceEntity); // setLevel(udiRelevanceEntity.getUuid()); UdiProductEntity byUuid = udiProductService.findByUuid(udiRelevanceEntity.getUuid()); udiRelevanceEntity = udiRelevanceService.insertDefaultLevel(udiRelevanceEntity, byUuid); -// udiRelevanceEntity.setThirdId4(error); - udiRelevanceEntity.setProductsType(thrProductsEntity.getProductType()); udiRelevanceService.insertUdiRelevance(udiRelevanceEntity); udiProductService.updateLevelCount(udiRelevanceEntity); } else { @@ -516,12 +340,13 @@ public class UdiContrastService { udiProductEntity.setNameCode(thrProductsEntity.getCode()); udiProductEntity.setZczbhhzbapzbh(thrProductsEntity.getRegisterNo()); udiProductEntity.setPackUnit(thrProductsEntity.getMeasname()); - if (basicInsMaterialEntity != null){ + if (basicInsMaterialEntity != null) { udiProductEntity.setGgxh(basicInsMaterialEntity.getSpecification() != null ? basicInsMaterialEntity.getSpecification() : thrProductsEntity.getSpec()); udiProductEntity.setManufactory(basicInsMaterialEntity.getManufacturerName() != null ? basicInsMaterialEntity.getManufacturerName() : thrProductsEntity.getManufactory()); } // udiProductEntity.setBzgg(thrProductsEntity.getSpec()); + udiProductEntity.setGgxh(thrProductsEntity.getSpec()); udiProductEntity.setCpmctymc(thrProductsEntity.getName()); udiProductEntity.setYlqxzcrbarmc(thrProductsEntity.getManufactory()); //包装单位 @@ -552,48 +377,155 @@ public class UdiContrastService { if (!aBoolean) { throw new JsonException(500, "系统繁忙,"); } - return; -// UdiProductEntity udiProductEntity = new UdiProductEntity(); -// BeanUtils.copyProperties(thrProductsEntity, udiProductEntity); -// if (thrProductsEntity.getProductType() != 2){ -// //不是药品就设置namecode -// udiProductEntity.setNameCode(thrProductsEntity.getCode()); -// udiProductEntity.setZczbhhzbapzbh(thrProductsEntity.getRegisterNo()); -// udiProductEntity.setPackUnit(thrProductsEntity.getMeasname()); -// udiProductEntity.setGgxh(basicInsMaterialEntity != null ? basicInsMaterialEntity.getSpecification() : thrProductsEntity.getSpec()); -// udiProductEntity.setManufactory(basicInsMaterialEntity != null ? basicInsMaterialEntity.getManufacturerName() : thrProductsEntity.getManufactory()); -// } -// udiProductEntity.setBzgg(thrProductsEntity.getSpec()); -// udiProductEntity.setCpmctymc(thrProductsEntity.getName()); -// udiProductEntity.setYlqxzcrbarmc(thrProductsEntity.getManufactory()); -// -// //包装单位 -// udiProductEntity.setPrepnUnit(thrProductsEntity.getMeasname()); -// udiProductEntity.setUuid(udiRelevanceEntity.getUuid()); -// udiProductEntity.setProductType(ConstantStatus.PRODUCT_TYPE_THIRD); -// udiProductEntity.setDiType(1); -// udiProductEntity.setScbssfbhph("是"); -// udiProductEntity.setScbssfbhscrq("是"); -// udiProductEntity.setScbssfbhsxrq("是"); -// udiProductEntity.setScbssfbhxlh("否"); -// -// udiProductEntity.setProductsType(thrProductsEntity.getProductType()); -// if (thrProductsEntity.getProductType() == 2){ -// udiProductEntity.setRequireScanCode(1); -// udiProductEntity.setMajorStatus(1); -// }else { -// udiProductEntity.setRequireScanCode(0); -// } -// if (StrUtil.isEmpty(udiProductEntity.getPrice())) { -// udiProductEntity.setPrice(null); -// } -// udiProductEntity = UdiInfoUtil.initUdiInfoEntity(udiProductEntity); -// udiProductService.insertUdiInfo(udiProductEntity); -// udiRelevanceEntity = udiRelevanceService.insertDefaultLevel(udiRelevanceEntity, udiProductEntity); -// udiRelevanceService.insertUdiRelevance(udiRelevanceEntity); + return ResultVOUtils.success(); } + return ResultVOUtils.success(); } + public UdiProductEntity disposeDrugDataNew(ThrProductsEntity thrProductsEntity,UdiRelevanceEntity udiRelevanceEntity, YbDrug ybDrug){ + UdiProductEntity udiProductEntity = new UdiProductEntity(); + BeanUtils.copyProperties(thrProductsEntity, udiProductEntity); + // 数据处理 + udiProductEntity.setId(IdUtil.getSnowflakeNextId()); + udiProductEntity.setUuid(udiRelevanceEntity.getUuid()); + udiProductEntity.setDiType(1); + udiProductEntity.setScbssfbhph("是"); + udiProductEntity.setScbssfbhscrq("是"); + udiProductEntity.setScbssfbhsxrq("是"); + udiProductEntity.setScbssfbhxlh("否"); + udiProductEntity.setProductsType(thrProductsEntity.getProductType()); + udiProductEntity.setRequireScanCode(1); + udiProductEntity.setMajorStatus(1); + udiProductEntity.setPhysicType(3); + //设置包装级别 + udiProductEntity.setPackLevel(1 + ""); + if (StrUtil.isEmpty(udiProductEntity.getPrice())) { + udiProductEntity.setPrice("0.00"); + } + udiProductEntity.setUpdateTime(new Date()); + udiProductEntity = UdiInfoUtil.initUdiInfoEntity(udiProductEntity); + udiProductEntity.setPrepnSpec(ybDrug.getRealityOutlook()); + udiProductEntity.setZczbhhzbapzbh(ybDrug.getApprovalCode()); + udiProductEntity.setCpmctymc(ybDrug.getRegisteredProductName()); + udiProductEntity.setSpmc(ybDrug.getGoodsName()); + udiProductEntity.setBzgg(String.valueOf(ybDrug.getFactor()) + ybDrug.getMinUnit() + "/" + ybDrug.getUnit()); + udiProductEntity.setMatrial(ybDrug.getMaterialName()); + udiProductEntity.setPackMatrial(ybDrug.getMaterialName()); + udiProductEntity.setMedicareType(setMedicareType(ybDrug.getProductInsuranceType())); + //最小产品单位 + udiProductEntity.setPackUnit(ybDrug.getUnit()); + //设置最小产品数量 + udiProductEntity.setBhxjsl(ybDrug.getFactor()); + //生产厂家 + udiProductEntity.setManufactory(ybDrug.getCompanyNameSc()); + //商品条码 essentialDrugMarkName sptm +// udiProductEntity.setSptm(ybDrug.getBusinessLicense()); + udiProductEntity.setPrepnUnit(ybDrug.getRealityMedicinemodel()); + + return udiProductEntity; + } + /** + * 处理药品数据 + * + * @param thrProductsEntity + * @param ybDrug + * @param thirdAliDrugList + */ + public void disposeDrugData(BasicProductsCreateDto basicProductsCreateDto, ThrProductsEntity thrProductsEntity + , YbDrug ybDrug, List thirdAliDrugList,UdiRelevanceEntity udiRelevanceEntity) { + if (thirdAliDrugList != null && thirdAliDrugList.size() > 0) { + List codeRelArrayList = new ArrayList<>(); + for (int i = 0; i < thirdAliDrugList.size(); i++) { + UdiProductEntity udiProductEntity = disposeDrugDataNew(thrProductsEntity,udiRelevanceEntity,ybDrug); + + 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.setBzgg(CopyUtils.copyNullStr(udiProductEntity.getBzgg(), thirdAliDrug.getBzgg())); + udiProductEntity.setPackRatio(CopyUtils.copyNullStr(udiProductEntity.getPackRatio(), thirdAliDrug.getPackRatio())); + //最小产品单位 + udiProductEntity.setPackUnit(CopyUtils.copyNullStr(udiProductEntity.getPackUnit(), thirdAliDrug.getPackUnitName())); + //商品条码 essentialDrugMarkName sptm +// udiProductEntity.setSptm(ybDrug.getBusinessLicense()); + udiProductEntity.setPrepnUnit(CopyUtils.copyNullStr(udiProductEntity.getPrepnUnit(), thirdAliDrug.getPrepnUnitName())); + + List integers = new ArrayList<>(); + if (StrUtil.isNotEmpty(thirdAliDrug.getPackRatio())) { + integers = DimaUtil.calculateLevels(thirdAliDrug.getPackRatio()); + } + udiProductEntity.setPackLevel(thirdAliDrug.getPackLevel()); + try { + udiProductEntity.setBhxjsl(integers.get(IntUtil.value(thirdAliDrug.getPackLevel()) - 1)); + } catch (IndexOutOfBoundsException e) { + e.printStackTrace(); + Log.error("计算包装级别出错" + thirdAliDrug.getPackLevel() + "---" + integers + "-----" + thirdAliDrug.toString()); + 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) { + udiProductEntity.setBhxjsl(DimaUtil.trMinCount(thirdAliDrug.getBzgg())); + } else + udiProductEntity.setBhxjsl(ybDrug.getFactor()); + } else { + udiProductEntity.setXjdw(thirdAliDrug.getPrepnUnitName()); + + } + if (thirdAliDrug.getPackLevel() != null && !thirdAliDrug.getPackLevel().equals("0")) { + udiProductEntity.setDiType(IntUtil.value(thirdAliDrug.getPackLevel()) == 1 ? 1 : 4); + } else { + udiProductEntity.setDiType(1); + } + udiProductEntity.setId(IdUtil.getSnowflakeNextId()); + // 多码融合表拼接参数 + if (basicProductsCreateDto.isAddCodeRelMark()) { + 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 { + udiRelevanceEntity.setDetailSort(Integer.valueOf(thirdAliDrugList.get(0).getPhysicDetailType())); + + } catch (Exception e) { + log.error("明细分类转换出现错误" + e.getMessage()); + } + // 上传到多码融合表 + if (basicProductsCreateDto.isAddCodeRelMark() + && CollUtil.isNotEmpty(codeRelArrayList)) { + spGetHttpClient.codeRelUpdateBatch(codeRelArrayList); + } + + } else { + UdiProductEntity udiProductEntity = disposeDrugDataNew(thrProductsEntity,udiRelevanceEntity,ybDrug); + + udiProductService.insertUdiInfo(udiProductEntity); + + } + } public List disposeYbDrugList(List thirdAliDrugList,YbDrug ybDrug){ List list1 = new ArrayList<>(); List list2 = new ArrayList<>(); diff --git a/src/main/java/com/glxp/api/service/basic/UdiProductService.java b/src/main/java/com/glxp/api/service/basic/UdiProductService.java index 6196408f3..5d2d10536 100644 --- a/src/main/java/com/glxp/api/service/basic/UdiProductService.java +++ b/src/main/java/com/glxp/api/service/basic/UdiProductService.java @@ -12,6 +12,7 @@ import com.glxp.api.common.util.ResultVOUtils; import com.glxp.api.constant.ConstantStatus; import com.glxp.api.dao.basic.UdiProductDao; import com.glxp.api.dao.basic.UdiRelevanceDao; +import com.glxp.api.dto.BasicProductsCreateDto; import com.glxp.api.entity.basic.UdiProductEntity; import com.glxp.api.entity.basic.UdiRelevanceEntity; import com.glxp.api.entity.thrsys.CodeRel; @@ -19,6 +20,7 @@ import com.glxp.api.entity.thrsys.ThirdAliDrug; import com.glxp.api.entity.thrsys.ThrProductsEntity; import com.glxp.api.entity.thrsys.YbDrug; import com.glxp.api.exception.JsonException; +import com.glxp.api.http.sync.SpGetHttpClient; import com.glxp.api.http.sync.SpsDirectClient; import com.glxp.api.req.basic.*; import com.glxp.api.req.thrsys.ThirdAliDrugRequest; @@ -623,169 +625,52 @@ public class UdiProductService extends ServiceImpl().eq("nameCode", thirdAliDrugRequest.getNameCodeRow()).last("limit 1") - ); - String str = ""; - if (thirdAliDrugServiceOne != null) { - List thirdAliDrugList = thirdAliDrugService.list( - new QueryWrapper().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()) - + Integer detailSort = 0; + List thirdAliDrugList = new ArrayList<>(); + thirdAliDrugRequest.setNameCode(thirdAliDrugRequest.getNameCodeRow()); + thirdAliDrugList = spGetHttpClient.optThirdAliDrug(thirdAliDrugRequest).getData(); + // 获取第三方数据 + ThrProductsEntity thrProductsEntity = thrProductsService.selectByCode(thirdAliDrugRequest.getYbbm()); + // 获取医保数据 + YbDrugDetailFilterRequest ybHcflDetailFilterRequest = new YbDrugDetailFilterRequest(); + ybHcflDetailFilterRequest.setLimit(1); + ybHcflDetailFilterRequest.setPage(1); + ybHcflDetailFilterRequest.setGoodsCode(thirdAliDrugRequest.getYbbm()); + List list = ybDrugService.getList(ybHcflDetailFilterRequest); + YbDrug ybDrug; + + if (thrProductsEntity !=null && !CollUtil.isEmpty(list) + && !CollUtil.isEmpty(thirdAliDrugList)) { + ybDrug = list.get(0); + // 多码融合表拼接参数 + List codeRelArrayList = new ArrayList<>(); + // 选入就要把标识为空的数据先删除 + udiProductDao.delete(new QueryWrapper() + .eq("uuid", thirdAliDrugRequest.getUuid()) + .isNull("nameCode") ); - if (thirdAliDrugList != null && thirdAliDrugList.size() > 0) { - udiProductDao.delete(new QueryWrapper() - .eq("uuid",thirdAliDrugRequest.getUuid()) - .isNull("nameCode") - ); - ThrProductsEntity thrProductsEntity = thrProductsService.selectByCode(thirdAliDrugRequest.getYbbm()); - for (ThirdAliDrug thirdAliDrug : thirdAliDrugList) { - ThrInsDrugFeeRequest thrInsDrugFeeRequest = new ThrInsDrugFeeRequest(); - thrInsDrugFeeRequest.setMedCatalogCode(thrProductsEntity.getYbbm()); - YbDrugDetailFilterRequest ybHcflDetailFilterRequest = new YbDrugDetailFilterRequest(); - ybHcflDetailFilterRequest.setLimit(1); - ybHcflDetailFilterRequest.setPage(1); - ybHcflDetailFilterRequest.setGoodsCode(thrProductsEntity.getYbbm()); - List list = ybDrugService.getList(ybHcflDetailFilterRequest); - - - UdiProductEntity udiProductEntity = new UdiProductEntity(); - BeanUtils.copyProperties(thrProductsEntity, udiProductEntity); - YbDrug ybDrug = new YbDrug(); - - // 数据处理 - udiProductEntity.setId(IdUtil.getSnowflakeNextId()); -// udiProductEntity.setNameCode(thrProductsEntity.getCode()); - - udiProductEntity.setUuid(thirdAliDrugRequest.getUuid()); - udiProductEntity.setDiType(1); - udiProductEntity.setScbssfbhph("是"); - udiProductEntity.setScbssfbhscrq("是"); - udiProductEntity.setScbssfbhsxrq("是"); - udiProductEntity.setScbssfbhxlh("否"); - udiProductEntity.setProductsType(thrProductsEntity.getProductType()); - udiProductEntity.setRequireScanCode(1); - udiProductEntity.setMajorStatus(1); - udiProductEntity.setPhysicType(3); - //设置包装级别 - udiProductEntity.setPackLevel(1 + ""); - if (StrUtil.isEmpty(udiProductEntity.getPrice())) { - udiProductEntity.setPrice("0.00"); - } - udiProductEntity.setUpdateTime(new Date()); - udiProductEntity = UdiInfoUtil.initUdiInfoEntity(udiProductEntity); - - if (list != null && list.size() > 0) { - ybDrug = list.get(0); - // 数据做处理好查询阿里接口 - if (ybDrug.getApprovalCode().contains("(")) { - String[] charArr = ybDrug.getRegisteredProductName().split("\\("); - ybDrug.setApprovalCode(charArr[0]); - } - -// udiProductEntity.setNameCode(thrProductsEntity.getCode()); - udiProductEntity.setPrepnSpec(ybDrug.getRealityOutlook()); - udiProductEntity.setZczbhhzbapzbh(ybDrug.getApprovalCode()); - udiProductEntity.setCpmctymc(ybDrug.getRegisteredProductName()); - udiProductEntity.setSpmc(ybDrug.getGoodsName()); - - udiProductEntity.setBzgg(String.valueOf(ybDrug.getFactor()) + ybDrug.getMinUnit() + "/" + ybDrug.getUnit()); - udiProductEntity.setMatrial(ybDrug.getMaterialName()); - udiProductEntity.setPackMatrial(ybDrug.getMaterialName()); - udiProductEntity.setMedicareType(udiContrastService.setMedicareType(ybDrug.getProductInsuranceType())); - //最小产品单位 - udiProductEntity.setPackUnit(ybDrug.getUnit()); - //设置最小产品数量 - udiProductEntity.setBhxjsl(ybDrug.getFactor()); - - //生产厂家 - udiProductEntity.setManufactory(ybDrug.getCompanyNameSc()); - //商品条码 essentialDrugMarkName sptm -// udiProductEntity.setSptm(ybDrug.getBusinessLicense()); - udiProductEntity.setPrepnUnit(ybDrug.getRealityMedicinemodel()); - } else { - udiProductEntity.setCpmctymc(thrProductsEntity.getName()); - } - - - udiProductEntity.setNameCode(CopyUtils.copyNullStr(udiProductEntity.getNameCode(), 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.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.setBhxjsl(ybDrug.getFactor()); - //生产厂家 -// udiProductEntity.setManufactory(thirdAliDrug.getManufacturer()); - //商品条码 essentialDrugMarkName sptm -// udiProductEntity.setSptm(ybDrug.getBusinessLicense()); - udiProductEntity.setPrepnUnit(CopyUtils.copyNullStr(udiProductEntity.getPrepnUnit(), thirdAliDrug.getPrepnUnitName())); - - List integers = new ArrayList<>(); - if (StrUtil.isNotEmpty(thirdAliDrug.getPackRatio())) { - integers = DimaUtil.calculateLevels(thirdAliDrug.getPackRatio()); - } - udiProductEntity.setPackLevel(thirdAliDrug.getPackLevel()); - try { - udiProductEntity.setBhxjsl(integers.get(IntUtil.value(thirdAliDrug.getPackLevel()) - 1)); - } catch (IndexOutOfBoundsException e) { - e.printStackTrace(); - Log.error("计算包装级别出错" + thirdAliDrug.getPackLevel() + "---" + integers + "-----" + thirdAliDrug.toString()); - udiProductEntity.setBhxjsl(0); - } - - if (IntUtil.value(thirdAliDrug.getPackLevel()) == 1) { - udiProductEntity.setXjdw(ybDrug.getMinUnit()); - if (DimaUtil.trMinCount(thirdAliDrug.getBzgg()) != null) { - udiProductEntity.setBhxjsl(DimaUtil.trMinCount(thirdAliDrug.getBzgg())); - } else - udiProductEntity.setBhxjsl(ybDrug.getFactor()); - } - 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.setPackUnit(thirdAliDrug.getPackUnitName()); + try { + detailSort = Integer.valueOf(thirdAliDrugList.get(0).getPhysicDetailType()); + } catch (Exception e) { + log.error("明细分类转换出现错误" + e.getMessage()); + } - udiProductEntity.setId(IdUtil.getSnowflakeNextId()); - udiProductService.insertUdiInfo(udiProductEntity); - } + // 设置新增多玛融合库 + BasicProductsCreateDto basicProductsCreateDto =new BasicProductsCreateDto(); + basicProductsCreateDto.setAddCodeRelMark(true); - 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() - .eq("uuid",thirdAliDrugRequest.getUuid()) - ); - return ResultVOUtils.success(detailSort); + UdiRelevanceEntity udiRelevanceEntity = new UdiRelevanceEntity(); + udiRelevanceEntity.setUuid(thirdAliDrugRequest.getUuid()); + udiContrastService.disposeDrugData(basicProductsCreateDto,thrProductsEntity,ybDrug,thirdAliDrugList,udiRelevanceEntity); + return ResultVOUtils.success(detailSort); - } } + // } return ResultVOUtils.error("获取错误"); diff --git a/src/main/java/com/glxp/api/service/thrsys/impl/ThrProductsServiceImpl.java b/src/main/java/com/glxp/api/service/thrsys/impl/ThrProductsServiceImpl.java index 53f646996..948e5ee32 100644 --- a/src/main/java/com/glxp/api/service/thrsys/impl/ThrProductsServiceImpl.java +++ b/src/main/java/com/glxp/api/service/thrsys/impl/ThrProductsServiceImpl.java @@ -13,6 +13,7 @@ import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.util.ResultVOUtils; import com.glxp.api.dao.basic.UdiRelevanceDao; import com.glxp.api.dao.thrsys.ThrProductsDao; +import com.glxp.api.dto.BasicProductsCreateDto; import com.glxp.api.entity.basic.UdiRelevanceEntity; import com.glxp.api.entity.thrsys.ThrProductsEntity; import com.glxp.api.entity.thrsys.ThrSystemDetailEntity; @@ -221,7 +222,10 @@ public class ThrProductsServiceImpl extends ServiceImpl().eq("mainId", thrProductsEntity.getCode())); if (!isExit) { - udiContrastService.createOnlyMainId(thrProductsEntity.getCode()); + BasicProductsCreateDto basicProductsCreateDto =new BasicProductsCreateDto(); + basicProductsCreateDto.setMainId(thrProductsEntity.getCode()); + basicProductsCreateDto.setAddCodeRelMark(false); + udiContrastService.createOnlyMainId(basicProductsCreateDto); } } } diff --git a/src/main/java/com/glxp/api/util/alihealth/CopyUtils.java b/src/main/java/com/glxp/api/util/alihealth/CopyUtils.java index 0ca947927..da7fb0a96 100644 --- a/src/main/java/com/glxp/api/util/alihealth/CopyUtils.java +++ b/src/main/java/com/glxp/api/util/alihealth/CopyUtils.java @@ -1,17 +1,22 @@ package com.glxp.api.util.alihealth; import com.glxp.api.util.StringUtils; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.exception.ExceptionUtils; import java.lang.reflect.Field; import java.util.Map; import java.util.Objects; import java.util.Set; - +@Slf4j public class CopyUtils { // 第一个参数为空才复制 public static String copyNullStr(String str,String 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 map, Object target) { try { @@ -33,14 +38,8 @@ public class CopyUtils { } } } - - } catch (Exception e) { - System.out.println("错误==="+e); - - e.printStackTrace(); -// BeanUtil.copyProperties(source, target); - + log.error("对象转换错误==="+ExceptionUtils.getStackTrace(e)); } }