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 64cc4361f..eb0f57535 100644 --- a/src/main/java/com/glxp/api/controller/basic/UdiContrastController.java +++ b/src/main/java/com/glxp/api/controller/basic/UdiContrastController.java @@ -18,6 +18,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; @@ -357,6 +358,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("") diff --git a/src/main/java/com/glxp/api/controller/thrsys/ThirdAliDrugController.java b/src/main/java/com/glxp/api/controller/thrsys/ThirdAliDrugController.java new file mode 100644 index 000000000..7e4a0c746 --- /dev/null +++ b/src/main/java/com/glxp/api/controller/thrsys/ThirdAliDrugController.java @@ -0,0 +1,150 @@ +package com.glxp.api.controller.thrsys; + +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.github.pagehelper.PageInfo; +import com.glxp.api.annotation.CusRedissonAnnotation; +import com.glxp.api.annotation.RepeatSubmit; +import com.glxp.api.common.enums.ResultEnum; +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.entity.auth.AuthAliUser; +import com.glxp.api.entity.basic.UdiProductEntity; +import com.glxp.api.entity.thrsys.ThirdAliDrug; +import com.glxp.api.http.sync.SpGetHttpClient; +import com.glxp.api.req.alihealth.AlihealthKytDrugrescodeReqeust; +import com.glxp.api.req.alihealth.local.AlihealthThirdAliDrugInsertReqeust; +import com.glxp.api.req.basic.FilterUdiRelRequest; +import com.glxp.api.req.thrsys.ThirdAliDrugRequest; +import com.glxp.api.res.PageSimpleResponse; +import com.glxp.api.service.auth.AuthAliUserService; +import com.glxp.api.service.basic.UdiProductService; +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; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; + +@RestController +@Slf4j +public class ThirdAliDrugController extends BaseController { + + @Resource + private ThirdAliDrugService thirdAliDrugService; + + @Resource + private AuthAliUserService authAliUserService; + @Resource + private UdiProductService udiProductService; + + @Resource + private SpGetHttpClient spGetHttpClient; + + + @GetMapping("/udiwms/aliDrug/getDrugLevelList") + public BaseResponse getDrugLevelList(ThirdAliDrugRequest thirdAliDrug, BindingResult bindingResult) { + 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()) + ) { + return ResultVOUtils.success("查询参数不能为空"); + } + FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest(); + filterUdiRelRequest.setUuid(thirdAliDrug.getUuid()); + List udiInfoEntities = udiProductService.filterAllUdiInfo(filterUdiRelRequest); + List nameCodeIn = new ArrayList<>(); + if(udiInfoEntities!=null && udiInfoEntities.size() >0){ + for (UdiProductEntity udiInfoEntity : udiInfoEntities) { + if(StringUtils.isNotEmpty(udiInfoEntity.getNameCode())){ + nameCodeIn.add(udiInfoEntity.getNameCode()); + } + } + + } + thirdAliDrug.setNameCodeIn(nameCodeIn); + 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()); + alihealthThirdAliDrugInsertReqeust.setManufactory(thirdAliDrug.getManufacturer()); + 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()); +// udiProductEntity.setBasicPrductRemak8("供应商平台获取阿里和国家库码段信息出现错误===" + baseResponse.getMessage()); +// error = "供应商平台获取阿里和国家库码段信息出现错误===" + baseResponse.getMessage(); + + + } + + } catch (Exception e) { + e.printStackTrace(); + log.info("供应商平台获取阿里和国家库码段信息出现错误===" + e.getMessage()); + + } + } + PageInfo pageInfo = new PageInfo<>(list); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(pageInfo.getTotal()); + pageSimpleResponse.setList(list); + return ResultVOUtils.success(pageSimpleResponse); + } + + @GetMapping("/udiwms/aliDrug/getDrugLevelListBycode") + public BaseResponse getDrugLevelListBycode(ThirdAliDrugRequest thirdAliDrug, BindingResult bindingResult) { + String nameCode = thirdAliDrug.getNameCode(); + if (StrUtil.isEmpty(nameCode)) { + return ResultVOUtils.error("标识参数不能为空"); + } + ThirdAliDrug one = thirdAliDrugService.getOne(new LambdaQueryWrapper().eq(ThirdAliDrug::getNameCode, nameCode)); + if (one == null) { + return ResultVOUtils.error("标识参数错误"); + } + + List list = thirdAliDrugService.list(new LambdaQueryWrapper() + .eq(ThirdAliDrug::getApprovalNum, one.getApprovalNum()) + .eq(ThirdAliDrug::getCpmctymc, one.getCpmctymc()) + .eq(ThirdAliDrug::getForm, one.getForm()) + .eq(ThirdAliDrug::getBzgg, one.getBzgg()) + .eq(ThirdAliDrug::getPackRatio, one.getPackRatio())); + + return ResultVOUtils.success(list); + } + +} 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 cd8c2b2f5..c08b3e2ed 100644 --- a/src/main/java/com/glxp/api/req/thrsys/ThirdAliDrugRequest.java +++ b/src/main/java/com/glxp/api/req/thrsys/ThirdAliDrugRequest.java @@ -8,6 +8,7 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.Date; +import java.util.List; @Data public class ThirdAliDrugRequest extends ListPageRequest { @@ -92,6 +93,9 @@ public class ThirdAliDrugRequest extends ListPageRequest { @ApiModelProperty(value = "包装级别") private String erpId; + + + /** * 创建时间 */ @@ -106,7 +110,51 @@ 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; + private List nameCodeIn; + private String nameCodeRow; + } 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 402679c7f..fd4cfc3fd 100644 --- a/src/main/java/com/glxp/api/service/basic/UdiProductService.java +++ b/src/main/java/com/glxp/api/service/basic/UdiProductService.java @@ -17,19 +17,28 @@ import com.glxp.api.entity.basic.UdiEntity; 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.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.SpsDirectClient; -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.basic.*; +import com.glxp.api.req.thrsys.ThirdAliDrugRequest; +import com.glxp.api.req.thrsys.ThrInsDrugFeeRequest; 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.thrsys.ThirdAliDrugService; +import com.glxp.api.service.thrsys.ThrProductsService; +import com.glxp.api.service.thrsys.YbDrugService; import com.glxp.api.util.*; +import com.glxp.api.util.alihealth.CopyUtils; 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.apache.poi.ss.formula.functions.Offset; +import org.jfree.util.Log; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.BeanUtils; @@ -624,6 +633,163 @@ public class UdiProductService extends ServiceImpl().eq("nameCode", thirdAliDrugRequest.getNameCodeRow()).last("limit 1") + ); + if (thirdAliDrugServiceOne != null) { + List thirdAliDrugList = thirdAliDrugService.list( + new QueryWrapper().eq(org.apache.commons.lang3.StringUtils.isNotBlank( thirdAliDrugServiceOne.getBzgg()),"bzgg", thirdAliDrugServiceOne.getBzgg()) + .eq(org.apache.commons.lang3.StringUtils.isNotBlank( thirdAliDrugServiceOne.getPackRatio()),"packRatio", thirdAliDrugServiceOne.getPackRatio()) + .eq(org.apache.commons.lang3.StringUtils.isNotBlank( thirdAliDrugRequest.getCpmctymc()),"cpmctymc", thirdAliDrugRequest.getCpmctymc()) + .eq(org.apache.commons.lang3.StringUtils.isNotBlank( thirdAliDrugRequest.getManufacturer()),"manufacturer", thirdAliDrugRequest.getManufacturer()) + .eq(StringUtils.isNotBlank( thirdAliDrugRequest.getApprovalNum()),"approvalNum", thirdAliDrugRequest.getApprovalNum()) + + ); + if (thirdAliDrugList != null && thirdAliDrugList.size() > 0) { + 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()); + + udiProductEntity.setId(IdUtil.getSnowflakeNextId()); + udiProductService.insertUdiInfo(udiProductEntity); + } + } + } + + +// } + + } public static class CountWrapper { private int count; diff --git a/src/main/resources/mybatis/mapper/thrsys/ThirdAliDrugMapper.xml b/src/main/resources/mybatis/mapper/thrsys/ThirdAliDrugMapper.xml new file mode 100644 index 000000000..691b68b7f --- /dev/null +++ b/src/main/resources/mybatis/mapper/thrsys/ThirdAliDrugMapper.xml @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + id, + `type`, + manufacturer, + cpmctymc, + form, + formSpec, + bzgg, + spmc, + nameCode, + packRatio, + packLevel, + createTime, + erpId, + updateTime + + + + + + + replace INTO third_ali_drug (`type`, manufacturer, cpmctymc, form, formSpec, bzgg, spmc, nameCode, packRatio, + packLevel, createTime, updateTime, erpId, approvalNum) + VALUES + + (#{item.type}, #{item.manufacturer}, #{item.cpmctymc}, #{item.form}, #{item.formSpec}, #{item.bzgg}, + #{item.spmc}, #{item.nameCode}, + #{item.packRatio}, #{item.packLevel}, #{item.createTime}, #{item.updateTime}, #{item.erpId}, + #{item.approvalNum}) + + + + + +