From 177a2651dd830ca8680fa724dd88aeacbce3a8ba Mon Sep 17 00:00:00 2001 From: yewj Date: Tue, 10 Sep 2024 11:26:17 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AC=AC=E4=B8=89=E6=96=B9=E4=BA=A7=E5=93=81?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E9=80=89=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../basic/BasicBackUpdateProductService.java | 115 ++++++++++-------- .../api/service/basic/UdiContrastService.java | 60 ++++----- 2 files changed, 93 insertions(+), 82 deletions(-) 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 0cc5ea113..7bee1d157 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.exception.JsonException; import org.springframework.beans.BeanUtils; import com.glxp.api.common.res.BaseResponse; import com.glxp.api.constant.ConstantStatus; @@ -171,6 +172,8 @@ public class BasicBackUpdateProductService { return -1; } + @Resource + UdiContrastService udiContrastService; //定时或一键下载更新本地所有产品信息 @Async @@ -185,65 +188,71 @@ public class BasicBackUpdateProductService { filterThrInvProductsRequest.setPage(null); List thrProductsEntities = thrProductsService.filterThrProducts(filterThrInvProductsRequest); - SystemParamConfigEntity isUpdate = systemParamConfigService.selectByParamKey("erp_updateErpData_type"); - if (isEnable == null || isEnable == false) { - isUpdate.setParamValue("1"); - } +// SystemParamConfigEntity isUpdate = systemParamConfigService.selectByParamKey("erp_updateErpData_type"); +// if (isEnable == null || isEnable == false) { +// isUpdate.setParamValue("1"); +// } if (thrProductsEntities != null && thrProductsEntities.size() > 0) { for (ThrProductsEntity thrProductsEntity : thrProductsEntities) { UdiRelevanceEntity udiRelevanceEntity = udiRelevanceService.selectByThirdId(thrProductsEntity.getCode(), thirdSysId); if (udiRelevanceEntity == null) { - if (isUpdate.getParamValue().equals("1")) { - - UdiProductEntity udiProductEntity = new UdiProductEntity(); - udiProductEntity.setNameCode(thrProductsEntity.getCode()); - udiProductEntity.setCpmctymc(thrProductsEntity.getName()); - udiProductEntity.setGgxh(thrProductsEntity.getSpec()); - udiProductEntity.setUuid(CustomUtil.getUUId()); - udiProductEntity.setProductType(ConstantStatus.PRODUCT_TYPE_THIRD); - udiProductEntity.setDiType(1); - udiProductEntity.setManufactory(thrProductsEntity.getManufactory()); - udiProductEntity.setYlqxzcrbarmc(thrProductsEntity.getManufactory()); - udiProductEntity.setZczbhhzbapzbh(thrProductsEntity.getRegisterNo()); - udiProductService.insertUdiInfo(udiProductEntity); - UdiRelevanceEntity udiRelevanceEntity1 = new UdiRelevanceEntity(); - udiRelevanceEntity1.setUuid(udiProductEntity.getUuid()); - udiRelevanceEntity1.setIsDisable(false); - udiRelevanceEntity1.setSupName(thrProductsEntity.getSupName()); - - if ("thirdId".equals(thirdSysId)) { - udiRelevanceEntity1.setThirdId(thrProductsEntity.getCode()); - } else if ("thirdId1".equals(thirdSysId)) { - udiRelevanceEntity1.setThirdId1(thrProductsEntity.getCode()); - } else if ("thirdId2".equals(thirdSysId)) { - udiRelevanceEntity1.setThirdId4(thrProductsEntity.getCode()); - } else if ("thirdId3".equals(thirdSysId)) { - udiRelevanceEntity1.setThirdId3(thrProductsEntity.getCode()); - } else if ("thirdId4".equals(thirdSysId)) { - udiRelevanceEntity1.setThirdId4(thrProductsEntity.getCode()); - } - - - ThrSystemEntity thrSystemEntity = thrSystemService.selectMainThrSys(); - String mainSys = thrSystemEntity.getThirdId(); - if (mainSys.equals("thirdId")) { - udiRelevanceEntity1.setMainId(udiRelevanceEntity1.getThirdId()); - } else if (mainSys.equals("thirdId1")) { - udiRelevanceEntity1.setMainId(udiRelevanceEntity1.getThirdId1()); - } else if (mainSys.equals("thirdId2")) { - udiRelevanceEntity1.setMainId(udiRelevanceEntity1.getThirdId2()); - } else if (mainSys.equals("thirdId3")) { - udiRelevanceEntity1.setMainId(udiRelevanceEntity1.getThirdId3()); - } else if (mainSys.equals("thirdId4")) { - udiRelevanceEntity1.setMainId(udiRelevanceEntity1.getThirdId4()); - } +// if (isUpdate.getParamValue().equals("1")) { +// +// UdiProductEntity udiProductEntity = new UdiProductEntity(); +// udiProductEntity.setNameCode(thrProductsEntity.getCode()); +// udiProductEntity.setCpmctymc(thrProductsEntity.getName()); +// udiProductEntity.setGgxh(thrProductsEntity.getSpec()); +// udiProductEntity.setUuid(CustomUtil.getUUId()); +// udiProductEntity.setProductType(ConstantStatus.PRODUCT_TYPE_THIRD); +// udiProductEntity.setDiType(1); +// udiProductEntity.setManufactory(thrProductsEntity.getManufactory()); +// udiProductEntity.setYlqxzcrbarmc(thrProductsEntity.getManufactory()); +// udiProductEntity.setZczbhhzbapzbh(thrProductsEntity.getRegisterNo()); +// udiProductEntity.setRequireScanCode(0); +// udiProductService.insertUdiInfo(udiProductEntity); +// UdiRelevanceEntity udiRelevanceEntity1 = new UdiRelevanceEntity(); +// udiRelevanceEntity1.setUuid(udiProductEntity.getUuid()); +// udiRelevanceEntity1.setIsDisable(false); +// udiRelevanceEntity1.setSupName(thrProductsEntity.getSupName()); +// +// if ("thirdId".equals(thirdSysId)) { +// udiRelevanceEntity1.setThirdId(thrProductsEntity.getCode()); +// } else if ("thirdId1".equals(thirdSysId)) { +// udiRelevanceEntity1.setThirdId1(thrProductsEntity.getCode()); +// } else if ("thirdId2".equals(thirdSysId)) { +// udiRelevanceEntity1.setThirdId4(thrProductsEntity.getCode()); +// } else if ("thirdId3".equals(thirdSysId)) { +// udiRelevanceEntity1.setThirdId3(thrProductsEntity.getCode()); +// } else if ("thirdId4".equals(thirdSysId)) { +// udiRelevanceEntity1.setThirdId4(thrProductsEntity.getCode()); +// } +// +// +// ThrSystemEntity thrSystemEntity = thrSystemService.selectMainThrSys(); +// String mainSys = thrSystemEntity.getThirdId(); +// if (mainSys.equals("thirdId")) { +// udiRelevanceEntity1.setMainId(udiRelevanceEntity1.getThirdId()); +// } else if (mainSys.equals("thirdId1")) { +// udiRelevanceEntity1.setMainId(udiRelevanceEntity1.getThirdId1()); +// } else if (mainSys.equals("thirdId2")) { +// udiRelevanceEntity1.setMainId(udiRelevanceEntity1.getThirdId2()); +// } else if (mainSys.equals("thirdId3")) { +// udiRelevanceEntity1.setMainId(udiRelevanceEntity1.getThirdId3()); +// } else if (mainSys.equals("thirdId4")) { +// udiRelevanceEntity1.setMainId(udiRelevanceEntity1.getThirdId4()); +// } +// +// udiRelevanceEntity1.setThirdId(thrProductsEntity.getCode()); +// udiRelevanceEntity1.setUpdateTime(new Date()); +// udiRelevanceEntity1.setModifyTime(new Date()); +// udiRelevanceEntity1.setId(gennerOrderUtils.getRelId()); +// udiRelevanceService.insertUdiRelevanceignore(udiRelevanceEntity1); +// } + try { + udiContrastService.createOnlyMainId(thrProductsEntity.getCode()); + } catch (JsonException e) { - udiRelevanceEntity1.setThirdId(thrProductsEntity.getCode()); - udiRelevanceEntity1.setUpdateTime(new Date()); - udiRelevanceEntity1.setModifyTime(new Date()); - udiRelevanceEntity1.setId(gennerOrderUtils.getRelId()); - udiRelevanceService.insertUdiRelevanceignore(udiRelevanceEntity1); } } 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 663bfdcd2..86c136cfa 100644 --- a/src/main/java/com/glxp/api/service/basic/UdiContrastService.java +++ b/src/main/java/com/glxp/api/service/basic/UdiContrastService.java @@ -109,7 +109,7 @@ public class UdiContrastService { return false; } - public boolean isDrugExit(String originUuid,String mainId, String thirdSys) { + public boolean isDrugExit(String originUuid, String mainId, String thirdSys) { String deviceRecordKey = null; //国家库的key @@ -267,9 +267,9 @@ public class UdiContrastService { BasicInsDrugEntity basicInsDrugEntity = null; BasicInsMaterialEntity basicInsMaterialEntity = null; - if (thrProductsEntity.getYbbm() != null){ + if (thrProductsEntity.getYbbm() != null) { //判断药品还是器械 - if (thrProductsEntity.getProductType() == 2){ + if (thrProductsEntity.getProductType() == 2) { ThrInsDrugFeeRequest thrInsDrugFeeRequest = new ThrInsDrugFeeRequest(); thrInsDrugFeeRequest.setMedCatalogCode(thrProductsEntity.getYbbm()); List basicInsDrugEntities = basicInsDrugService.filterList(thrInsDrugFeeRequest); @@ -277,38 +277,39 @@ public class UdiContrastService { List filteredEntities = basicInsDrugEntities.stream() .filter(entity -> entity.getGenericName() != null) // 过滤掉 genericName 为 null 的元素 .collect(Collectors.toList()); - if (filteredEntities.size() > 0){ - basicInsDrugEntity= filteredEntities.get(0); - }else { - Boolean aBoolean = insertProduct(thrProductsEntity,basicInsMaterialEntity,udiRelevanceEntity); - if (!aBoolean){ - throw new JsonException(500,"系统繁忙"); + if (filteredEntities.size() > 0) { + basicInsDrugEntity = filteredEntities.get(0); + } else { + Boolean aBoolean = insertProduct(thrProductsEntity, basicInsMaterialEntity, udiRelevanceEntity); + if (!aBoolean) { + throw new JsonException(500, "系统繁忙"); } + return; } int packLevel = 1; // 初始化计数器 //循环插入 - for (BasicInsDrugEntity basicInsDrug : basicInsDrugEntities){ + for (BasicInsDrugEntity basicInsDrug : basicInsDrugEntities) { UdiProductEntity udiProductEntity = new UdiProductEntity(); BeanUtils.copyProperties(thrProductsEntity, udiProductEntity); udiProductEntity.setId(IdUtil.getSnowflakeNextId()); udiProductEntity.setNameCode(basicInsDrug.getTradeName()); - udiProductEntity.setPrepnSpec(basicInsDrug.getPackagingSpec() != null ? basicInsDrug.getPackagingSpec() :basicInsDrugEntity.getPackagingSpec()); + udiProductEntity.setPrepnSpec(basicInsDrug.getPackagingSpec() != null ? basicInsDrug.getPackagingSpec() : basicInsDrugEntity.getPackagingSpec()); // udiProductEntity.setPrepnSpec(basicInsDrug.getPrepnSpec() != null ? basicInsDrug.getPrepnSpec() :basicInsDrugEntity.getPrepnSpec()); - udiProductEntity.setZczbhhzbapzbh(basicInsDrug.getApprovalNum() != null ? basicInsDrug.getApprovalNum() :basicInsDrugEntity.getApprovalNum()); + udiProductEntity.setZczbhhzbapzbh(basicInsDrug.getApprovalNum() != null ? basicInsDrug.getApprovalNum() : basicInsDrugEntity.getApprovalNum()); udiProductEntity.setCpmctymc(thrProductsEntity.getName()); - if (basicInsDrugEntity.getInsuranceDrugClass() != null){ + if (basicInsDrugEntity != null && basicInsDrugEntity.getInsuranceDrugClass() != null) { udiProductEntity.setMedicareType(setMedicareType(basicInsDrugEntity.getInsuranceDrugClass())); } //最小产品单位 - udiProductEntity.setPackUnit(basicInsDrug.getMinPackagingUnit() != null ? basicInsDrug.getMinPackagingUnit() : basicInsDrugEntity.getMinPackagingUnit()); + udiProductEntity.setPackUnit(basicInsDrug.getMinPackagingUnit() != null ? basicInsDrug.getMinPackagingUnit() : basicInsDrugEntity.getMinPackagingUnit()); //设置最小产品数量 - udiProductEntity.setBhxjsl(basicInsDrug.getMinPackagingQuantity() != null ? basicInsDrug.getMinPackagingQuantity() : basicInsDrugEntity.getMinPackagingQuantity()); + udiProductEntity.setBhxjsl(basicInsDrug.getMinPackagingQuantity() != null ? basicInsDrug.getMinPackagingQuantity() : basicInsDrugEntity.getMinPackagingQuantity()); //设置包装级别 udiProductEntity.setPackLevel(packLevel + ""); //生产厂家 - udiProductEntity.setManufactory(basicInsDrug.getManufacturerName() != null ? basicInsDrug.getManufacturerName() : basicInsDrugEntity.getManufacturerName()); + udiProductEntity.setManufactory(basicInsDrug.getManufacturerName() != null ? basicInsDrug.getManufacturerName() : basicInsDrugEntity.getManufacturerName()); //商品条码 essentialDrugMarkName sptm - udiProductEntity.setSptm(basicInsDrug.getEssentialDrugMarkName() != null ? basicInsDrug.getEssentialDrugMarkName() : basicInsDrugEntity.getEssentialDrugMarkName()); + udiProductEntity.setSptm(basicInsDrug.getEssentialDrugMarkName() != null ? basicInsDrug.getEssentialDrugMarkName() : basicInsDrugEntity.getEssentialDrugMarkName()); udiProductEntity.setPrepnUnit(thrProductsEntity.getPrepnUnit() == null ? null : thrProductsEntity.getPrepnUnit()); udiProductEntity.setUuid(udiRelevanceEntity.getUuid()); udiProductEntity.setDiType(1); @@ -331,12 +332,12 @@ public class UdiContrastService { UdiProductEntity byUuid = udiProductService.findByUuid(udiRelevanceEntity.getUuid()); udiRelevanceEntity = udiRelevanceService.insertDefaultLevel(udiRelevanceEntity, byUuid); udiRelevanceService.insertUdiRelevance(udiRelevanceEntity); - }else { + } else { //器械 ThrInsMaterialFeeRequest request = new ThrInsMaterialFeeRequest(); request.setMedCatalogCode(thrProductsEntity.getYbbm()); List basicInsMaterialEntities = basicInsMaterialService.filterList(request); - if (basicInsMaterialEntities.size() > 0){ + if (basicInsMaterialEntities.size() > 0) { basicInsMaterialEntity = basicInsMaterialEntities.get(0); } UdiProductEntity udiProductEntity = new UdiProductEntity(); @@ -370,10 +371,11 @@ public class UdiContrastService { } } else { //没有医保编码 - Boolean aBoolean = insertProduct(thrProductsEntity,basicInsMaterialEntity,udiRelevanceEntity); - if (!aBoolean){ - throw new JsonException(500,"系统繁忙,"); + Boolean aBoolean = insertProduct(thrProductsEntity, basicInsMaterialEntity, udiRelevanceEntity); + if (!aBoolean) { + throw new JsonException(500, "系统繁忙,"); } + return; // UdiProductEntity udiProductEntity = new UdiProductEntity(); // BeanUtils.copyProperties(thrProductsEntity, udiProductEntity); // if (thrProductsEntity.getProductType() != 2){ @@ -416,11 +418,11 @@ public class UdiContrastService { } - public Boolean insertProduct(ThrProductsEntity thrProductsEntity,BasicInsMaterialEntity basicInsMaterialEntity, UdiRelevanceEntity udiRelevanceEntity ){ + public Boolean insertProduct(ThrProductsEntity thrProductsEntity, BasicInsMaterialEntity basicInsMaterialEntity, UdiRelevanceEntity udiRelevanceEntity) { //没有医保编码 UdiProductEntity udiProductEntity = new UdiProductEntity(); BeanUtils.copyProperties(thrProductsEntity, udiProductEntity); - if (thrProductsEntity.getProductType() != 2){ + if (thrProductsEntity.getProductType() != 2) { //不是药品就设置namecode udiProductEntity.setNameCode(thrProductsEntity.getCode()); udiProductEntity.setZczbhhzbapzbh(thrProductsEntity.getRegisterNo()); @@ -443,11 +445,11 @@ public class UdiContrastService { udiProductEntity.setScbssfbhxlh("否"); udiProductEntity.setProductsType(thrProductsEntity.getProductType()); - if (thrProductsEntity.getProductType() == 2){ + if (thrProductsEntity.getProductType() == 2) { udiProductEntity.setRequireScanCode(1); udiProductEntity.setMajorStatus(1); udiProductEntity.setPhysicType(3); - }else { + } else { udiProductEntity.setRequireScanCode(0); } if (StrUtil.isEmpty(udiProductEntity.getPrice())) { @@ -506,7 +508,7 @@ public class UdiContrastService { } } - public Integer setMedicareType(String insuranceDrugClass){ + public Integer setMedicareType(String insuranceDrugClass) { if ("甲类".equals(insuranceDrugClass)) { return 1; } else if ("乙类".equals(insuranceDrugClass)) { @@ -518,9 +520,9 @@ public class UdiContrastService { } } - public void setLevel(String uuid){ + public void setLevel(String uuid) { List list = udiProductService.getList(uuid); - if (list.size() > 1){ + if (list.size() > 1) { // 根据条件设置上级和下级标识 for (int i = 0; i < list.size(); i++) { // 设置上级标识