From 218c101a40c3ea0a26aa20b29e9661c9993d1e56 Mon Sep 17 00:00:00 2001 From: wangwei <1610949092@qq.com> Date: Fri, 6 Sep 2024 11:51:28 +0800 Subject: [PATCH] =?UTF-8?q?9/6=20=E8=8D=AF=E5=93=81=E5=9F=BA=E7=A1=80?= =?UTF-8?q?=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../basic/UdiRelevanceController.java | 12 +- .../inout/IoCodeTempController.java | 2 +- .../api/service/basic/UdiContrastService.java | 147 +++++++++++++++--- .../api/service/basic/UdiProductService.java | 1 + 4 files changed, 136 insertions(+), 26 deletions(-) diff --git a/src/main/java/com/glxp/api/controller/basic/UdiRelevanceController.java b/src/main/java/com/glxp/api/controller/basic/UdiRelevanceController.java index 3050ce53d..24d608803 100644 --- a/src/main/java/com/glxp/api/controller/basic/UdiRelevanceController.java +++ b/src/main/java/com/glxp/api/controller/basic/UdiRelevanceController.java @@ -316,12 +316,12 @@ public class UdiRelevanceController extends BaseController { if (udiRelevanceEntities == null || udiRelevanceEntities.isEmpty()) { udiProductService.deleteByUuid(udiRelevanceEntity.getUuid()); } -// //调用同步删除的方法 todo -// BasicDataRequest basicDataRequest = new BasicDataRequest(); -// basicDataRequest.setDeleteRequest(deleteRequest); -// basicDataRequest.setKey(SyncDelType.BASIC_MAINTAIN); -// Long userId = getUserId(); -// spGetHttpClient.deleteBasicData(basicDataRequest, userId + ""); +// //调用同步删除的方法 + BasicDataRequest basicDataRequest = new BasicDataRequest(); + basicDataRequest.setDeleteRequest(deleteRequest); + basicDataRequest.setKey(SyncDelType.BASIC_MAINTAIN); + Long userId = getUserId(); + spGetHttpClient.deleteBasicData(basicDataRequest, userId + ""); return ResultVOUtils.success("删除成功"); } diff --git a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java index 10f89717b..dc07e2d68 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java @@ -991,7 +991,7 @@ public class IoCodeTempController extends BaseController { //判断此产品是否开启允许无批次号 UdiProductEntity udiInfoEntity = udiProductService.findByNameCode(udiEntity.getUdi()); if (udiInfoEntity == null) { - return ResultVOUtils.error(500, "耗材字典不存在此产品!"); + return ResultVOUtils.error(500, "药品字典不存在此产品!"); } if (StrUtil.isEmpty(udiEntity.getBatchNo())) { IoCodeLostEntity codeLostEntity = codeLostService.findByCode(addOrderRequest.getCode()); 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 f74861a4c..ec6c42ee6 100644 --- a/src/main/java/com/glxp/api/service/basic/UdiContrastService.java +++ b/src/main/java/com/glxp/api/service/basic/UdiContrastService.java @@ -2,11 +2,13 @@ package com.glxp.api.service.basic; import com.glxp.api.entity.thrsys.BasicInsDrugEntity; import com.glxp.api.entity.thrsys.BasicInsMaterialEntity; +import com.glxp.api.exception.JsonException; import com.glxp.api.req.thrsys.ThrInsDrugFeeRequest; import com.glxp.api.req.thrsys.ThrInsMaterialFeeRequest; import com.glxp.api.service.thrsys.BasicInsDrugService; import com.glxp.api.service.thrsys.BasicInsMaterialService; import com.glxp.api.util.IntUtil; +import org.apache.xmlbeans.impl.xb.xsdschema.Public; import org.springframework.beans.BeanUtils; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.IdUtil; @@ -274,7 +276,54 @@ public class UdiContrastService { .collect(Collectors.toList()); if (filteredEntities.size() > 0){ basicInsDrugEntity= filteredEntities.get(0); + }else { + Boolean aBoolean = insertProduct(thrProductsEntity,basicInsMaterialEntity,udiRelevanceEntity); + if (!aBoolean){ + throw new JsonException(500,"系统繁忙"); + } + } + //循环插入 + for (BasicInsDrugEntity basicInsDrug : basicInsDrugEntities){ + UdiProductEntity udiProductEntity = new UdiProductEntity(); + BeanUtils.copyProperties(thrProductsEntity, udiProductEntity); + udiProductEntity.setId(IdUtil.getSnowflakeNextId()); + udiProductEntity.setNameCode(basicInsDrug.getTradeName()); + udiProductEntity.setBzgg(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.setCpmctymc(thrProductsEntity.getName()); + if (basicInsDrugEntity.getInsuranceDrugClass() != null){ + udiProductEntity.setMedicareType(setMedicareType(basicInsDrugEntity.getInsuranceDrugClass())); + } + //最小产品单位 + udiProductEntity.setPackUnit(basicInsDrug.getMinPackagingUnit() != null ? basicInsDrug.getMinPackagingUnit() : basicInsDrugEntity.getMinPackagingUnit()); + //设置最小产品数量 + udiProductEntity.setBhxjsl(basicInsDrug.getMinPackagingQuantity() != null ? basicInsDrug.getMinPackagingQuantity() : basicInsDrugEntity.getMinPackagingQuantity()); + //生产厂家 + udiProductEntity.setManufactory(basicInsDrug.getManufacturerName() != null ? basicInsDrug.getManufacturerName() : basicInsDrugEntity.getManufacturerName()); + //商品条码 essentialDrugMarkName sptm + udiProductEntity.setSptm(basicInsDrug.getEssentialDrugMarkName() != null ? basicInsDrug.getEssentialDrugMarkName() : basicInsDrugEntity.getEssentialDrugMarkName()); + udiProductEntity.setPrepnUnit(thrProductsEntity.getPrepnUnit() == null ? null : thrProductsEntity.getPrepnUnit()); + 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); + if (StrUtil.isEmpty(udiProductEntity.getPrice())) { + udiProductEntity.setPrice(null); + } + udiProductEntity = UdiInfoUtil.initUdiInfoEntity(udiProductEntity); + udiProductService.insertUdiInfo(udiProductEntity); } + UdiProductEntity byUuid = udiProductService.findByUuid(udiRelevanceEntity.getUuid()); + udiRelevanceEntity = udiRelevanceService.insertDefaultLevel(udiRelevanceEntity, byUuid); + udiRelevanceService.insertUdiRelevance(udiRelevanceEntity); + return ; }else { //器械 ThrInsMaterialFeeRequest request = new ThrInsMaterialFeeRequest(); @@ -283,9 +332,85 @@ public class UdiContrastService { if (basicInsMaterialEntities.size() > 0){ basicInsMaterialEntity = basicInsMaterialEntities.get(0); } + UdiProductEntity udiProductEntity = new UdiProductEntity(); + BeanUtils.copyProperties(thrProductsEntity, udiProductEntity); + 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.getPrepnUnit() == null ? null : thrProductsEntity.getPrepnUnit()); + 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()); + 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); + } + } else { + //没有医保编码 + Boolean aBoolean = insertProduct(thrProductsEntity,basicInsMaterialEntity,udiRelevanceEntity); + if (!aBoolean){ + throw new JsonException(500,"系统繁忙,"); } +// 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); } + } + + public Boolean insertProduct(ThrProductsEntity thrProductsEntity,BasicInsMaterialEntity basicInsMaterialEntity, UdiRelevanceEntity udiRelevanceEntity ){ + //没有医保编码 UdiProductEntity udiProductEntity = new UdiProductEntity(); BeanUtils.copyProperties(thrProductsEntity, udiProductEntity); if (thrProductsEntity.getProductType() != 2){ @@ -296,29 +421,12 @@ public class UdiContrastService { udiProductEntity.setGgxh(basicInsMaterialEntity != null ? basicInsMaterialEntity.getSpecification() : thrProductsEntity.getSpec()); udiProductEntity.setManufactory(basicInsMaterialEntity != null ? basicInsMaterialEntity.getManufacturerName() : thrProductsEntity.getManufactory()); } - if (basicInsDrugEntity != null){ - if (thrProductsEntity.getProductType() == 2){ - //药品设置 - udiProductEntity.setBzgg(basicInsDrugEntity.getPackagingSpec()); - udiProductEntity.setPrepnSpec(basicInsDrugEntity.getPrepnSpec()); - udiProductEntity.setZczbhhzbapzbh(basicInsDrugEntity.getApprovalNum()); - if (basicInsDrugEntity.getInsuranceDrugClass() != null){ - udiProductEntity.setMedicareType(setMedicareType(basicInsDrugEntity.getInsuranceDrugClass())); - } - //最小产品单位 - udiProductEntity.setPackUnit(basicInsDrugEntity.getMinPackagingUnit()); - //设置最小产品数量 - udiProductEntity.setBhxjsl(basicInsDrugEntity.getMinPackagingQuantity()); - //生产厂家 - udiProductEntity.setManufactory(basicInsDrugEntity.getManufacturerName() != null ? basicInsDrugEntity.getManufacturerName() : thrProductsEntity.getManufactory()); - } - } udiProductEntity.setBzgg(thrProductsEntity.getSpec()); udiProductEntity.setCpmctymc(thrProductsEntity.getName()); udiProductEntity.setYlqxzcrbarmc(thrProductsEntity.getManufactory()); //包装单位 - udiProductEntity.setPrepnUnit(thrProductsEntity.getMeasname()); + udiProductEntity.setPackUnit(thrProductsEntity.getMeasname()); udiProductEntity.setUuid(udiRelevanceEntity.getUuid()); udiProductEntity.setProductType(ConstantStatus.PRODUCT_TYPE_THIRD); udiProductEntity.setDiType(1); @@ -331,6 +439,7 @@ public class UdiContrastService { if (thrProductsEntity.getProductType() == 2){ udiProductEntity.setRequireScanCode(1); udiProductEntity.setMajorStatus(1); + udiProductEntity.setPhysicType(3); }else { udiProductEntity.setRequireScanCode(0); } @@ -340,8 +449,8 @@ public class UdiContrastService { udiProductEntity = UdiInfoUtil.initUdiInfoEntity(udiProductEntity); udiProductService.insertUdiInfo(udiProductEntity); udiRelevanceEntity = udiRelevanceService.insertDefaultLevel(udiRelevanceEntity, udiProductEntity); - udiRelevanceService.insertUdiRelevance(udiRelevanceEntity); + return true; } 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 7048b803c..5ffed1aa3 100644 --- a/src/main/java/com/glxp/api/service/basic/UdiProductService.java +++ b/src/main/java/com/glxp/api/service/basic/UdiProductService.java @@ -474,6 +474,7 @@ public class UdiProductService { udiProductEntity1.setBhxjcpbm(updateLevelDrugRequest.getBhxjcpbm()); udiProductEntity1.setBhxjsl(updateLevelDrugRequest.getMyBhxjsl()); udiProductDao.updateById(udiProductEntity1); + return; } } udiProductEntity1 = udiProductDao.findByNameCode(updateLevelDrugRequest.getNameCode());