From 72d9611cccd34d712ba9222ed7c59f589cacdce2 Mon Sep 17 00:00:00 2001 From: qiuyt Date: Fri, 13 Dec 2024 15:50:22 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E7=BC=96=E8=BE=91=E8=8D=AF=E5=93=81?= =?UTF-8?q?=E9=80=89=E5=85=A5=E4=BA=A7=E5=93=81=E6=A0=87=E8=AF=86=E9=87=8D?= =?UTF-8?q?=E6=96=B0=E5=BB=BA=E4=B8=AA=E8=AF=B7=E6=B1=82=E5=86=99=E9=80=BB?= =?UTF-8?q?=E8=BE=91=202=E3=80=81=E8=8D=AF=E5=93=81=E7=BC=96=E8=BE=91?= =?UTF-8?q?=E7=BB=B4=E6=8A=A4=E9=80=89=E5=85=A5=E6=9F=A5=E8=AF=A2=E9=98=BF?= =?UTF-8?q?=E9=87=8C=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../basic/UdiContrastController.java | 8 +- .../thrsys/ThirdAliDrugController.java | 53 +++++++ .../api/req/thrsys/ThirdAliDrugRequest.java | 46 +++++++ .../api/service/basic/UdiContrastService.java | 2 + .../api/service/basic/UdiProductService.java | 4 + .../basic/impl/UdiProductServiceImpl.java | 129 +++++++++++++++++- .../service/inout/impl/IoCodeTempService.java | 24 ++-- .../service/thrsys/ThirdAliDrugService.java | 22 +++ 8 files changed, 276 insertions(+), 12 deletions(-) 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 6a426ad7..7b83982c 100644 --- a/src/main/java/com/glxp/api/controller/basic/UdiContrastController.java +++ b/src/main/java/com/glxp/api/controller/basic/UdiContrastController.java @@ -23,6 +23,7 @@ import com.glxp.api.entity.thrsys.ThrSystemEntity; import com.glxp.api.http.NmpaUdiClient; import com.glxp.api.req.basic.*; import com.glxp.api.req.thrsys.FilterBasicThirdSysRequest; +import com.glxp.api.req.thrsys.ThirdAliDrugRequest; import com.glxp.api.res.DiLevelResponse; import com.glxp.api.res.PageSimpleResponse; import com.glxp.api.res.basic.UdiRelevanceResponse; @@ -372,7 +373,12 @@ public class UdiContrastController{ udiProductService.saveOrUpadateLevelDrug(updateLevelDrugRequest); return ResultVOUtils.success("更新成功"); } - + @AuthRuleAnnotation("") + @PostMapping("/udi/udirel/updateLevelDrugAli") + public BaseResponse updateLevelDrugAli(@RequestBody ThirdAliDrugRequest thirdAliDrug) { + udiProductService.saveOrUpadateLevelDrugAli(thirdAliDrug); + return ResultVOUtils.success("更新成功"); + } @AuthRuleAnnotation("") @PostMapping("/udi/udirel/calculateDistCount") public BaseResponse calculateDistCount(@RequestBody UdiProductEntity udiProductEntity) { 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 35fd93c2..ac7e96da 100644 --- a/src/main/java/com/glxp/api/controller/thrsys/ThirdAliDrugController.java +++ b/src/main/java/com/glxp/api/controller/thrsys/ThirdAliDrugController.java @@ -2,6 +2,7 @@ package com.glxp.api.controller.thrsys; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.github.pagehelper.PageInfo; import com.glxp.api.annotation.CusRedissonAnnotation; import com.glxp.api.annotation.RepeatSubmit; @@ -10,13 +11,20 @@ import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.util.ResultVOUtils; import com.glxp.api.constant.RedissonCacheKey; import com.glxp.api.controller.BaseController; +import com.glxp.api.controller.alihealth.AlihealthBusController; +import com.glxp.api.entity.auth.AuthAliUser; import com.glxp.api.entity.thrsys.ThirdAliDrug; +import com.glxp.api.req.alihealth.AlihealthKytDrugrescodeReqeust; +import com.glxp.api.req.alihealth.local.AlihealthThirdAliDrugInsertReqeust; import com.glxp.api.req.thrsys.FilterThrCorpRequest; import com.glxp.api.req.thrsys.ThirdAliDrugRequest; import com.glxp.api.res.PageSimpleResponse; import com.glxp.api.res.collect.RelCodeDetailResponse; import com.glxp.api.res.thrsys.ThrCorpsResponse; +import com.glxp.api.service.auth.AuthAliUserService; import com.glxp.api.service.thrsys.ThirdAliDrugService; +import com.glxp.api.util.StringUtils; +import lombok.extern.slf4j.Slf4j; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; @@ -28,10 +36,15 @@ import javax.annotation.Resource; import java.util.List; @RestController +@Slf4j public class ThirdAliDrugController extends BaseController { @Resource private ThirdAliDrugService thirdAliDrugService; + @Resource + private AlihealthBusController alihealthBusController; + @Resource + private AuthAliUserService authAliUserService; /** * 上传文件保存 @@ -62,6 +75,46 @@ public class ThirdAliDrugController extends BaseController { return ResultVOUtils.success("查询参数不能为空"); } List list = thirdAliDrugService.filterList(thirdAliDrug); + if(list == null || list.size() == 0){ + AuthAliUser authAliUser = authAliUserService.getOne(); + AlihealthThirdAliDrugInsertReqeust alihealthThirdAliDrugInsertReqeust = new AlihealthThirdAliDrugInsertReqeust(); + alihealthThirdAliDrugInsertReqeust.setErpId(authAliUser.getErpid()); + alihealthThirdAliDrugInsertReqeust.setAppSecret(authAliUser.getAppsecret()); + 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 = alihealthBusController.thirdAliDrugList(alihealthThirdAliDrugInsertReqeust); + if (baseResponse.getCode() == 20000) { + + + if (thirdAliDrugService.addOrUpdate((List) baseResponse.getData())) { + list = thirdAliDrugService.filterList(thirdAliDrug); + + } else { + log.info("供应商平台获取阿里和国家库码段信息===未查到产品信息"); + + } + + + } else { + log.info("供应商平台获取阿里和国家库码段信息出现错误===" + baseResponse.getMessage()); +// udiProductEntity.setBasicPrductRemak8("供应商平台获取阿里和国家库码段信息出现错误===" + baseResponse.getMessage()); +// error = "供应商平台获取阿里和国家库码段信息出现错误===" + baseResponse.getMessage(); + + + } + + } catch (Exception e) { + log.info("供应商平台获取阿里和国家库码段信息出现错误===" + e.getMessage()); + + } + } PageInfo pageInfo = new PageInfo<>(list); PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); pageSimpleResponse.setTotal(pageInfo.getTotal()); diff --git a/src/main/java/com/glxp/api/req/thrsys/ThirdAliDrugRequest.java b/src/main/java/com/glxp/api/req/thrsys/ThirdAliDrugRequest.java index cd8c2b2f..187ab5aa 100644 --- a/src/main/java/com/glxp/api/req/thrsys/ThirdAliDrugRequest.java +++ b/src/main/java/com/glxp/api/req/thrsys/ThirdAliDrugRequest.java @@ -92,6 +92,9 @@ public class ThirdAliDrugRequest extends ListPageRequest { @ApiModelProperty(value = "包装级别") private String erpId; + + + /** * 创建时间 */ @@ -106,7 +109,50 @@ public class ThirdAliDrugRequest extends ListPageRequest { @ApiModelProperty(value = "更新时间") private Date updateTime; + /** + * 制剂单位描述 + */ + @TableField(value = "prepnUnit") + @ApiModelProperty(value = "制剂单位描述") + private String prepnUnit; + /** + * 制剂单位描述 + */ + @TableField(value = "prepnUnitName") + @ApiModelProperty(value = "制剂单位描述") + private String prepnUnitName; + /** + * 药品详情类型 + */ + @TableField(value = "physicDetailType") + @ApiModelProperty(value = "药品详情类型") + private String physicDetailType; + /** + * 药品类型详情描述 + */ + @TableField(value = "physicDetailTypeDesc") + @ApiModelProperty(value = "药品类型详情描述") + private String physicDetailTypeDesc; + /** + * 药品类型描述 + */ + @TableField(value = "physicTypeDesc") + @ApiModelProperty(value = "药品类型描述") + private String physicTypeDesc; + /** + * 包装单位 + */ + @TableField(value = "packUnitName") + @ApiModelProperty(value = "包装单位") + private String packUnitName; + + + private String approvalNum; + private String uuid; + private String ybbm; + + } 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 01b1cce3..da1e142d 100644 --- a/src/main/java/com/glxp/api/service/basic/UdiContrastService.java +++ b/src/main/java/com/glxp/api/service/basic/UdiContrastService.java @@ -316,6 +316,8 @@ public class UdiContrastService { //商品条码 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; 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 2f941037..733ec72c 100644 --- a/src/main/java/com/glxp/api/service/basic/UdiProductService.java +++ b/src/main/java/com/glxp/api/service/basic/UdiProductService.java @@ -6,6 +6,7 @@ import com.glxp.api.req.basic.AddProductRequest; import com.glxp.api.req.basic.FilterUdiRelRequest; import com.glxp.api.req.basic.UdiInfoRequest; import com.glxp.api.req.basic.UpdateLevelDrugRequest; +import com.glxp.api.req.thrsys.ThirdAliDrugRequest; import com.glxp.api.res.DiLevelResponse; import com.glxp.api.res.basic.UdiRelevanceResponse; @@ -84,4 +85,7 @@ public interface UdiProductService { boolean deleteByNameCode(String nameCode); UdiProductEntity findProductByNameCode(String nameCode); + + void saveOrUpadateLevelDrugAli(ThirdAliDrugRequest thirdAliDrugRequest); + } diff --git a/src/main/java/com/glxp/api/service/basic/impl/UdiProductServiceImpl.java b/src/main/java/com/glxp/api/service/basic/impl/UdiProductServiceImpl.java index b2da3b05..49145e6d 100644 --- a/src/main/java/com/glxp/api/service/basic/impl/UdiProductServiceImpl.java +++ b/src/main/java/com/glxp/api/service/basic/impl/UdiProductServiceImpl.java @@ -10,19 +10,29 @@ import com.glxp.api.dao.basic.UdiProductDao; import com.glxp.api.dao.basic.UdiRelevanceDao; import com.glxp.api.entity.basic.UdiProductEntity; import com.glxp.api.entity.basic.UdiRelevanceEntity; +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.req.basic.AddProductRequest; import com.glxp.api.req.basic.FilterUdiRelRequest; import com.glxp.api.req.basic.UdiInfoRequest; import com.glxp.api.req.basic.UpdateLevelDrugRequest; +import com.glxp.api.req.thrsys.ThirdAliDrugRequest; import com.glxp.api.res.DiLevelResponse; import com.glxp.api.res.basic.UdiRelevanceResponse; import com.glxp.api.service.auth.CustomerService; import com.glxp.api.service.basic.UdiProductService; +import com.glxp.api.service.thrsys.ThirdAliDrugService; +import com.glxp.api.service.thrsys.ThrProductsService; +import com.glxp.api.util.DimaUtil; import com.glxp.api.util.IntUtil; import com.glxp.api.util.PinyinUtils; import com.glxp.api.util.udi.FilterUdiUtils; +import com.glxp.api.util.udi.UdiInfoUtil; +import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.exception.ExceptionUtils; +import org.jfree.util.Log; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.BeanUtils; @@ -461,8 +471,8 @@ public class UdiProductServiceImpl implements UdiProductService { List udiInfoEntities = findByUuids(udiRelevanceEntity.getUuid()); List diLevelResponses = new ArrayList<>(); if (CollUtil.isNotEmpty(udiInfoEntities)) { - for (UdiProductEntity udiProductEntity:udiInfoEntities){ - if(udiProductEntity.getPackLevel() == null){ + for (UdiProductEntity udiProductEntity : udiInfoEntities) { + if (udiProductEntity.getPackLevel() == null) { udiProductEntity.setPackLevel("1"); } } @@ -595,6 +605,121 @@ public class UdiProductServiceImpl implements UdiProductService { return udiProductDao.findByNameCode(nameCode); } + @Resource + private ThrProductsService thrProductsService; + @Resource + private UdiProductService udiProductService; + @Resource + private ThirdAliDrugService thirdAliDrugService; + @Override + public void saveOrUpadateLevelDrugAli(ThirdAliDrugRequest thirdAliDrugRequest) { + // 查询现在如果有码为空的就进行替代掉 + List list = udiProductDao.selectList( + new QueryWrapper().eq("uuid", thirdAliDrugRequest.getUuid()) + ); + + ThrProductsEntity thrProductsEntity = thrProductsService.selectByCode(thirdAliDrugRequest.getYbbm()); + ThirdAliDrug thirdAliDrug = thirdAliDrugService.getOne( + new QueryWrapper().eq("nameCode",thirdAliDrugRequest.getNameCode()).last("limit 1") + ); + + 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); +// for (int i = 0; i < thirdAliDrugList.size(); i++) { +// ThirdAliDrug thirdAliDrug = thirdAliDrugList.get(i); + + udiProductEntity.setNameCode(thirdAliDrug.getNameCode()); + + // 数据处理 + udiProductEntity.setPrepnSpec(thirdAliDrug.getFormSpec()); + udiProductEntity.setZczbhhzbapzbh(thirdAliDrug.getApprovalNum()); + udiProductEntity.setCpmctymc(thirdAliDrug.getCpmctymc()); + udiProductEntity.setSpmc(thirdAliDrug.getSpmc()); + + udiProductEntity.setBzgg(thirdAliDrug.getBzgg()); +// udiProductEntity.setMatrial(ybDrug.getMaterialName()); +// udiProductEntity.setPackMatrial(ybDrug.getMaterialName()); +// udiProductEntity.setMedicareType(setMedicareType(ybDrug.getProductInsuranceType())); + //最小产品单位 + udiProductEntity.setPackUnit(thirdAliDrug.getPackUnitName()); + //设置最小产品数量 +// udiProductEntity.setBhxjsl(ybDrug.getFactor()); + //生产厂家 + udiProductEntity.setManufactory(thirdAliDrug.getManufacturer()); + //商品条码 essentialDrugMarkName sptm +// udiProductEntity.setSptm(ybDrug.getBusinessLicense()); + udiProductEntity.setPrepnUnit(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()); + + udiProductEntity.setId(IdUtil.getSnowflakeNextId()); + udiProductEntity.setCpmctymc(thirdAliDrug.getCpmctymc()); + udiProductEntity.setZczbhhzbapzbh(thirdAliDrug.getApprovalNum()); + if (list != null && list.size() == 1) { + if (StringUtils.isEmpty(udiProductEntity.getNameCode())) { + udiProductEntity.setId(list.get(0).getId()); + udiProductDao.updateById(udiProductEntity); + return; + } + + } + + udiProductService.insertUdiInfo(udiProductEntity); + +// } + + } + /** * 根据当前层级标识计算流通拆零数量 */ diff --git a/src/main/java/com/glxp/api/service/inout/impl/IoCodeTempService.java b/src/main/java/com/glxp/api/service/inout/impl/IoCodeTempService.java index 49181fef..1c1c3240 100644 --- a/src/main/java/com/glxp/api/service/inout/impl/IoCodeTempService.java +++ b/src/main/java/com/glxp/api/service/inout/impl/IoCodeTempService.java @@ -686,20 +686,26 @@ public class IoCodeTempService { .last("limit 1") ); if(relCodeBatchOne!=null){ - genDetaiEntity.setBatchNo(relCodeBatchOne.getBatchNo()); - genDetaiEntity.setProduceDate(relCodeBatchOne.getMadeDate()); - genDetaiEntity.setExpireDate(relCodeBatchOne.getValidateDate()); + String mabeDate = relCodeBatchOne.getMadeDate(); + String validateDate = relCodeBatchOne.getValidateDate(); - IoOrderDetailBizEntity ioOrderDetailBizEntity = new IoOrderDetailBizEntity(); - ioOrderDetailBizEntity.setBatchNo(relCodeBatchOne.getBatchNo()); - if(relCodeBatchOne.getMadeDate().length() > 10){ - ioOrderDetailBizEntity.setProductDate( relCodeBatchOne.getMadeDate().replace("-","").substring(2,8)); + + if(mabeDate.length() > 10){ + mabeDate =mabeDate.replace("-","").substring(2,8); } - if(relCodeBatchOne.getValidateDate().length() > 10){ - ioOrderDetailBizEntity.setExpireDate(relCodeBatchOne.getValidateDate().replace("-","").substring(2,8)); + if(validateDate.length() > 10){ + validateDate = validateDate.replace("-","").substring(2,8); } + genDetaiEntity.setBatchNo(relCodeBatchOne.getBatchNo()); + genDetaiEntity.setProduceDate(mabeDate); + genDetaiEntity.setExpireDate(validateDate); + + IoOrderDetailBizEntity ioOrderDetailBizEntity = new IoOrderDetailBizEntity(); + ioOrderDetailBizEntity.setBatchNo(relCodeBatchOne.getBatchNo()); + ioOrderDetailBizEntity.setProductDate( mabeDate); + ioOrderDetailBizEntity.setExpireDate(validateDate); ioOrderDetailBizDao.update(ioOrderDetailBizEntity, new QueryWrapper().eq("orderIdFk",orderEntity.getBillNo()) diff --git a/src/main/java/com/glxp/api/service/thrsys/ThirdAliDrugService.java b/src/main/java/com/glxp/api/service/thrsys/ThirdAliDrugService.java index c83a3f3d..581d547c 100644 --- a/src/main/java/com/glxp/api/service/thrsys/ThirdAliDrugService.java +++ b/src/main/java/com/glxp/api/service/thrsys/ThirdAliDrugService.java @@ -3,6 +3,7 @@ package com.glxp.api.service.thrsys; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.io.FileUtil; import cn.hutool.core.util.StrUtil; +import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.github.pagehelper.PageHelper; @@ -266,5 +267,26 @@ public class ThirdAliDrugService extends ServiceImpl0){ + for (Object object : list) { + ThirdAliDrug thirdAliDrug = JSONUtil.toBean(object.toString(),ThirdAliDrug.class); + ThirdAliDrug thirdAliDrugNew = this.getOne(new QueryWrapper().eq("nameCode", thirdAliDrug.getNameCode()) + .last("limit 1") + ); + if (Objects.isNull(thirdAliDrugNew)) { + + this.save(thirdAliDrug); + + } else { + this.update(thirdAliDrug, new QueryWrapper().eq("nameCode", thirdAliDrug.getNameCode())); + } + } + return true; + + }else { + return false; + } + } }