From 9b9b4783640cfd47ddaad3c25c31d5a23942f4eb Mon Sep 17 00:00:00 2001 From: wangwei <1610949092@qq.com> Date: Mon, 14 Oct 2024 15:04:52 +0800 Subject: [PATCH] =?UTF-8?q?10/14=20=E8=8D=AF=E5=93=81=E5=9F=BA=E7=A1=80?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../basic/UdiContrastController.java | 52 +- .../basic/UdiRelevanceController.java | 51 +- .../inout/IoCodeTempController.java | 17 +- .../sync/SpsSyncBasicController.java | 2 +- .../thrsys/ThrProductsAddDiController.java | 4 +- .../thrsys/ThrProductsController.java | 4 +- .../dao/thrsys/BasicInsMaterialMapper.java | 13 + .../com/glxp/api/dao/thrsys/YbDrugMapper.java | 17 + .../api/entity/basic/UdiProductEntity.java | 193 ++----- .../api/entity/basic/UdiRelevanceEntity.java | 126 ++++- .../entity/thrsys/BasicInsMaterialEntity.java | 529 ++++++++++++++++++ .../api/entity/thrsys/ThrProductsEntity.java | 86 ++- .../com/glxp/api/entity/thrsys/YbDrug.java | 149 +++++ .../com/glxp/api/http/ErpBasicClient.java | 15 + .../glxp/api/req/basic/AddProductRequest.java | 36 +- .../api/req/basic/FilterUdiRelRequest.java | 62 +- .../req/basic/UdiRelevanceSaveRequest.java | 39 +- .../api/req/basic/UpdateLevelDrugRequest.java | 9 + .../req/basic/YbDrugDetailFilterRequest.java | 14 + .../api/req/thrsys/ThrInsDrugFeeRequest.java | 31 + .../req/thrsys/ThrInsMaterialFeeRequest.java | 20 + .../com/glxp/api/res/DiLevelResponse.java | 21 + .../api/res/basic/UdiRelevanceResponse.java | 107 +++- .../basic/BasicBackUpdateProductService.java | 116 ++-- .../api/service/basic/UdiContrastService.java | 281 ++++++++-- .../api/service/basic/UdiProductService.java | 12 + .../service/basic/UdiRelevanceService.java | 4 + .../basic/impl/UdiProductServiceImpl.java | 339 ++++++++--- .../basic/impl/UdiRelevanceServiceImpl.java | 26 + .../thrsys/BasicInsMaterialService.java | 26 + .../api/service/thrsys/YbDrugService.java | 36 ++ .../com/glxp/api/task/AsyncDiDlService.java | 2 +- .../java/com/glxp/api/util/PinyinUtils.java | 57 ++ .../mybatis/mapper/basic/UdiProductDao.xml | 218 +++----- .../mybatis/mapper/basic/UdiRelevanceDao.xml | 275 +++++---- .../mapper/thrsys/BasicInsMaterialMapper.xml | 17 + .../mybatis/mapper/thrsys/YbDrugMapper.xml | 135 +++++ 37 files changed, 2423 insertions(+), 718 deletions(-) create mode 100644 src/main/java/com/glxp/api/dao/thrsys/BasicInsMaterialMapper.java create mode 100644 src/main/java/com/glxp/api/dao/thrsys/YbDrugMapper.java create mode 100644 src/main/java/com/glxp/api/entity/thrsys/BasicInsMaterialEntity.java create mode 100644 src/main/java/com/glxp/api/entity/thrsys/YbDrug.java create mode 100644 src/main/java/com/glxp/api/req/basic/YbDrugDetailFilterRequest.java create mode 100644 src/main/java/com/glxp/api/req/thrsys/ThrInsDrugFeeRequest.java create mode 100644 src/main/java/com/glxp/api/req/thrsys/ThrInsMaterialFeeRequest.java create mode 100644 src/main/java/com/glxp/api/res/DiLevelResponse.java create mode 100644 src/main/java/com/glxp/api/service/thrsys/BasicInsMaterialService.java create mode 100644 src/main/java/com/glxp/api/service/thrsys/YbDrugService.java create mode 100644 src/main/java/com/glxp/api/util/PinyinUtils.java create mode 100644 src/main/resources/mybatis/mapper/thrsys/BasicInsMaterialMapper.xml create mode 100644 src/main/resources/mybatis/mapper/thrsys/YbDrugMapper.xml 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 e35dc4ae..1f6e7dcf 100644 --- a/src/main/java/com/glxp/api/controller/basic/UdiContrastController.java +++ b/src/main/java/com/glxp/api/controller/basic/UdiContrastController.java @@ -22,6 +22,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.res.DiLevelResponse; import com.glxp.api.res.PageSimpleResponse; import com.glxp.api.res.basic.UdiRelevanceResponse; import com.glxp.api.service.auth.CustomerService; @@ -81,7 +82,6 @@ public class UdiContrastController { @PostMapping("/udi/udirel/revleance") @Log(title = "耗材字典", businessType = BusinessType.INSERT) public BaseResponse revleanceUdi(@RequestBody UdiCombineRequest udiCombineRequest) { - udiCombineRequest.setCustomerId(Long.valueOf(customerService.getCustomerId())); List keys = udiCombineRequest.getKeys(); if (keys != null && keys.size() > 0) { for (String key : keys) { @@ -92,21 +92,6 @@ public class UdiContrastController { return ResultVOUtils.error(500, "已存在相同的对照关系,对照失败!"); } else { udiContrastService.createUnionContrast(udiCombineRequest, key); - if (udiCombineRequest.isIdSpliUdi()) { - List temps = udiContrastService.findByUnion(key, udiCombineRequest.getThirdId()); - if (CollUtil.isNotEmpty(temps)) { - UdiRelevanceResponse temp = temps.get(0); - CompanyEntity companyEntity = companyService.findCompany(udiCombineRequest.getCustomerId() + ""); - CompanyProductRelevanceEntity companyProductRelevanceEntity = new CompanyProductRelevanceEntity(); - companyProductRelevanceEntity.setCreateTime(new Date()); - companyProductRelevanceEntity.setUpdateTime(new Date()); - companyProductRelevanceEntity.setAuditStatus("3"); - companyProductRelevanceEntity.setUnitFk(companyEntity.getUnitIdFk()); - companyProductRelevanceEntity.setUdiRlIdFk(temp.getId()); - companyProductRelevanceEntity.setCustomerId(companyEntity.getCustomerId()); - boolean b = companyProductRelevanceService.insertCompanyProductRelevance(companyProductRelevanceEntity); - } - } } } else { //只添加DI @@ -380,11 +365,46 @@ public class UdiContrastController { } + @AuthRuleAnnotation("") @PostMapping("/udi/udirel/updateLevelDrug") public BaseResponse updateLevelDrug(@RequestBody UpdateLevelDrugRequest updateLevelDrugRequest) { udiProductService.saveOrUpadateLevelDrug(updateLevelDrugRequest); return ResultVOUtils.success("更新成功"); + } + + @AuthRuleAnnotation("") + @PostMapping("/udi/udirel/calculateDistCount") + public BaseResponse calculateDistCount(@RequestBody UdiProductEntity udiProductEntity) { + UdiRelevanceEntity udiRelevanceEntity = new UdiRelevanceEntity(); + udiProductService.calculateDistCount(udiProductEntity, udiRelevanceEntity); + return ResultVOUtils.success(udiRelevanceEntity); + } + + + @AuthRuleAnnotation("") + @PostMapping("/udi/udirel/calculateUseCount") + public BaseResponse calculateUseCount(@RequestBody UdiProductEntity udiProductEntity) { + UdiRelevanceEntity udiRelevanceEntity = new UdiRelevanceEntity(); + udiProductService.calculateUseCount(udiProductEntity, udiRelevanceEntity); + return ResultVOUtils.success(udiRelevanceEntity); + } + + @AuthRuleAnnotation("") + @PostMapping("/udi/udirel/drug/delLevel") + public BaseResponse delLevel(@RequestBody AddProductRequest addProductRequest) { + boolean b = udiProductService.deleteByNameCode(addProductRequest.getNameCode()); + return ResultVOUtils.success("删除成功!"); + } + + /** + * 耗材字典信息获取同一产品对应DI信息 + */ + @AuthRuleAnnotation("") + @GetMapping("/udiwms/udi/local/levelByUuid") + public BaseResponse filterLocalByUuid(FilterUdiRelRequest filterUdiRelRequest) { + List diLevelResponses = udiProductService.findLevelByRelId(filterUdiRelRequest.getId()); + return ResultVOUtils.success(diLevelResponses); } public void updateDi(UdiRelevanceEntity udiRelevanceEntity, String key) { 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 3d98821a..35c41c96 100644 --- a/src/main/java/com/glxp/api/controller/basic/UdiRelevanceController.java +++ b/src/main/java/com/glxp/api/controller/basic/UdiRelevanceController.java @@ -233,15 +233,15 @@ public class UdiRelevanceController extends BaseController { @GetMapping("udiwms/udiinfo/local/filterByUuid") public BaseResponse filterLocalByUuid(FilterUdiRelRequest filterUdiRelRequest) { - if (filterUdiRelRequest.getId() == null) { - return ResultVOUtils.error(500, "产品ID主键不能为空!"); - } if (filterUdiRelRequest.getId() == null) { return ResultVOUtils.error(500, "产品ID主键不能为空!"); } UdiRelevanceEntity udiRelevanceEntity = udiRelevanceService.selectById(filterUdiRelRequest.getId()); FilterUdiRelRequest tempRequest = new FilterUdiRelRequest(); tempRequest.setUuid(udiRelevanceEntity.getUuid()); + if (filterUdiRelRequest.getProductsType() == 2) { + tempRequest.setNameCode(filterUdiRelRequest.getNameCode()); + } List udiInfoEntities = udiProductService.filterAllUdiInfo(tempRequest); List udiRelevanceResponses = new ArrayList<>(); if (CollUtil.isNotEmpty(udiInfoEntities)) { @@ -250,6 +250,7 @@ public class UdiRelevanceController extends BaseController { BeanUtils.copyProperties(udiProductEntity, udiRelevanceResponse); BeanUtil.copyProperties(udiRelevanceEntity, udiRelevanceResponse); udiRelevanceResponse.setFlbm(udiProductEntity.getFlbm()); + udiRelevanceResponse.setProductId(udiProductEntity.getId()); udiRelevanceResponses.add(udiRelevanceResponse); } } @@ -257,7 +258,6 @@ public class UdiRelevanceController extends BaseController { } - //多选删除 @AuthRuleAnnotation("") @PostMapping("/udi/udirel/deleteAll") @@ -332,12 +332,26 @@ public class UdiRelevanceController extends BaseController { //更新关联表 UdiRelevanceEntity udiRelevanceEntity = new UdiRelevanceEntity(); - BeanUtil.copyProperties(udiRelevanceSaveRequest, udiRelevanceEntity); + BeanUtils.copyProperties(udiRelevanceSaveRequest, udiRelevanceEntity); udiRelevanceEntity.setId(udiRelevanceSaveRequest.getId()); udiRelevanceEntity.setUpdateTime(new Date()); udiRelevanceEntity.setModifyTime(new Date()); udiRelevanceEntity.setUpdateUser(customerService.getUserId() + ""); udiRelevanceEntity.setUseMuti(udiRelevanceEntity.getUseMuti()); +// udiRelevanceEntity.setUseLeverCount(udiRelevanceSaveRequest.getUseLeverCount()); + udiRelevanceEntity.setSplitEnable(udiRelevanceSaveRequest.getSplitEnable()); + udiRelevanceEntity.setAutoCode(udiRelevanceSaveRequest.getAutoCode()); +// udiRelevanceEntity.setUseLevelDi(udiRelevanceSaveRequest.getUseLevelDi()); +// udiRelevanceEntity.setUseLevelUnit(udiRelevanceSaveRequest.getUseLevelUnit()); + udiRelevanceEntity.setUseLevel(udiRelevanceSaveRequest.getUseLevel()); +// udiRelevanceEntity.setDistributeLevelDi(udiRelevanceSaveRequest.getDistributeLevelDi()); +// udiRelevanceEntity.setDistributeLevelUnit(udiRelevanceSaveRequest.getDistributeLevelUnit()); +// udiRelevanceEntity.setDistributeLevelCount(udiRelevanceSaveRequest.getDistributeLevelCount()); + udiRelevanceEntity.setDistributeLevel(udiRelevanceSaveRequest.getDistributeLevel()); + udiRelevanceEntity.setPayFeeCode(udiRelevanceSaveRequest.getPayFeeCode()); + udiRelevanceEntity.setSplitEnable(udiRelevanceSaveRequest.getSplitEnable()); + udiRelevanceEntity.setAutoCode(udiRelevanceSaveRequest.getAutoCode()); + udiRelevanceEntity.setPayFeeCode(udiRelevanceSaveRequest.getPayFeeCode()); udiRelevanceService.updateUdiRelevance(udiRelevanceEntity); //关联更新 @@ -348,12 +362,12 @@ public class UdiRelevanceController extends BaseController { udiProductEntity.setCpms(udiRelevanceSaveRequest.getCpms()); udiProductEntity.setPrice(udiRelevanceSaveRequest.getPrice()); udiProductEntity.setSpmc(udiRelevanceSaveRequest.getSpmc()); + udiProductEntity.setBzgg(udiRelevanceSaveRequest.getBzgg()); udiProductEntity.setAllowNoBatch(udiRelevanceSaveRequest.getAllowNoBatch()); udiProductEntity.setAllowNoExpire(udiRelevanceSaveRequest.getAllowNoExpire()); udiProductEntity.setAllowNoProduct(udiRelevanceSaveRequest.getAllowNoProduct()); udiProductEntity.setAllowNoSerial(udiRelevanceSaveRequest.getAllowNoSerial()); udiProductEntity.setZxxsbzbhsydysl(udiRelevanceEntity.getUseNum()); - udiProductEntity.setGroupBuy(udiRelevanceSaveRequest.getGroupBuy()); udiProductEntity.setBasicPrductRemak1(udiRelevanceSaveRequest.getBasicPrductRemak1()); udiProductEntity.setBasicPrductRemak2(udiRelevanceSaveRequest.getBasicPrductRemak2()); udiProductEntity.setBasicPrductRemak3(udiRelevanceSaveRequest.getBasicPrductRemak3()); @@ -363,14 +377,13 @@ public class UdiRelevanceController extends BaseController { udiProductEntity.setBasicPrductRemak7(udiRelevanceSaveRequest.getBasicPrductRemak7()); udiProductEntity.setBasicPrductRemak8(udiRelevanceSaveRequest.getBasicPrductRemak8()); - udiProductEntity.setCatalogcode(udiRelevanceSaveRequest.getCatalogcode()); udiProductEntity.setCatalogname1(udiRelevanceSaveRequest.getCatalogname1()); udiProductEntity.setCatalogname2(udiRelevanceSaveRequest.getCatalogname2()); udiProductEntity.setCatalogname3(udiRelevanceSaveRequest.getCatalogname3()); udiProductEntity.setMatrial(udiRelevanceSaveRequest.getMatrial()); udiProductEntity.setRequireScanCode(udiRelevanceSaveRequest.getRequireScanCode()); udiProductEntity.setFlbm(udiRelevanceSaveRequest.getFlbm()); - udiProductEntity.setBzgg(udiRelevanceSaveRequest.getBzgg()); + udiProductEntity.setWorkPlaceCount(udiRelevanceSaveRequest.getWorkPlaceCount()); // udiProductEntity = UdiInfoUtil.initUdiInfoEntity(udiProductEntity); if (StrUtil.isNotEmpty(udiRelevanceSaveRequest.getOriginUuid())) { udiProductEntity.setProductType(ConstantStatus.PRODUCT_TYPE_UDI); @@ -378,6 +391,8 @@ public class UdiRelevanceController extends BaseController { udiProductEntity.setUuid(udiRelevanceSaveRequest.getUuid()); udiProductService.updateUdiInfoByUuid(udiProductEntity); + udiProductService.updateLevelCount(udiRelevanceEntity); + return ResultVOUtils.success("更新成功"); } @@ -733,10 +748,10 @@ public class UdiRelevanceController extends BaseController { } boolean falg = udiProductService.updateUdiInfoById(udiProductEntity); UdiRelevanceEntity udiRelevanceEntity = new UdiRelevanceEntity(); - udiRelevanceEntity.setId(udiProductEntity.getUid()); - udiRelevanceEntity.setGroupBuy(IntUtil.value(udiProductEntity.getGroupBuy())); +// udiRelevanceEntity.setId(udiProductEntity.getUid()); +// udiRelevanceEntity.setGroupBuy(IntUtil.value(udiProductEntity.getGroupBuy())); udiRelevanceEntity.setPurType(udiProductEntity.getPurType()); - udiRelevanceEntity.setAttributeType(udiProductEntity.getAttributeType()); +// udiRelevanceEntity.setAttributeType(udiProductEntity.getAttributeType()); udiRelevanceEntity.setHcType(udiProductEntity.getHcType()); udiRelevanceEntity.setIsStack(udiProductEntity.getIsStack()); udiRelevanceEntity.setUpdateTime(new Date()); @@ -767,13 +782,13 @@ public class UdiRelevanceController extends BaseController { } boolean falg = udiProductService.updateUdiInfoById(udiProductEntity); UdiRelevanceEntity udiRelevanceEntity = new UdiRelevanceEntity(); - udiRelevanceEntity.setId(udiProductEntity.getUid()); - udiRelevanceEntity.setUseLeverCount(udiProductEntity.getUseLeverCount()); - udiRelevanceEntity.setUseLevelDi(udiProductEntity.getUseLevelDi()); - udiRelevanceEntity.setUseLevelUnit(udiProductEntity.getUseLevelUnit()); - udiRelevanceEntity.setDistributeLevelDi(udiProductEntity.getDistributeLevelDi()); - udiRelevanceEntity.setDistributeLevelUnit(udiProductEntity.getDistributeLevelUnit()); - udiRelevanceEntity.setDistributeLevelCount(udiProductEntity.getDistributeLevelCount()); +// udiRelevanceEntity.setId(udiProductEntity.getUid()); +// udiRelevanceEntity.setUseLeverCount(udiProductEntity.getUseLeverCount()); +// udiRelevanceEntity.setUseLevelDi(udiProductEntity.getUseLevelDi()); +// udiRelevanceEntity.setUseLevelUnit(udiProductEntity.getUseLevelUnit()); +// udiRelevanceEntity.setDistributeLevelDi(udiProductEntity.getDistributeLevelDi()); +// udiRelevanceEntity.setDistributeLevelUnit(udiProductEntity.getDistributeLevelUnit()); +// udiRelevanceEntity.setDistributeLevelCount(udiProductEntity.getDistributeLevelCount()); udiRelevanceEntity.setUpdateTime(new Date()); boolean b = udiRelevanceService.updateUdiRelevance(udiRelevanceEntity); if (udiProductEntity.getRelSupId() != null) { 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 3df3222b..66af806c 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java @@ -772,14 +772,13 @@ public class IoCodeTempController extends BaseController { return ResultVOUtils.error(500, "该产品不可配送,请联系院方!"); } - if (bussinessTypeEntity.getVailGroupBuy() == 1 && !IntUtil.value(udiRelevanceResponse.getGroupBuy())) { //只采集集采产品 - return ResultVOUtils.error(500, bussinessTypeEntity.getName() + "只允许录入集采产品!"); + if (bussinessTypeEntity.getVailGroupBuy() == 1 && !udiRelevanceResponse.isGroupBuy()) { //只采集集采产品 + return ResultVOUtils.error(500, bussinessTypeEntity.getName() + "单只允许录入集采产品!"); } - if (bussinessTypeEntity.getVailGroupBuy() == 2 && IntUtil.value(udiRelevanceResponse.getGroupBuy())) { //只采集非集采产品 - return ResultVOUtils.error(500, bussinessTypeEntity.getName() + "只允许录入非集采产品!"); + if (bussinessTypeEntity.getVailGroupBuy() == 2 && udiRelevanceResponse.isGroupBuy()) { //只采集非集采产品 + return ResultVOUtils.error(500, bussinessTypeEntity.getName() + "单只允许录入非集采产品!"); } - //计算实际数量 codeEnttity.setReCount(codeEnttity.getMyCount() * udiCalCountUtil.getActCount(udiRelevanceResponse)); } else if (udiRelevanceResponses.size() == 0) { @@ -1095,12 +1094,12 @@ public class IoCodeTempController extends BaseController { return ResultVOUtils.error(500, "该产品不可配送,请联系院方!"); } - if (bussinessTypeEntity.getVailGroupBuy() == 1 && !IntUtil.value(udiRelevanceResponse.getGroupBuy())) { //只采集集采产品 - return ResultVOUtils.error(500, bussinessTypeEntity.getName() + "只允许录入集采产品!"); + if (bussinessTypeEntity.getVailGroupBuy() == 1 && !udiRelevanceResponse.isGroupBuy()) { //只采集集采产品 + return ResultVOUtils.error(500, bussinessTypeEntity.getName() + "单只允许录入集采产品!"); } - if (bussinessTypeEntity.getVailGroupBuy() == 2 && IntUtil.value(udiRelevanceResponse.getGroupBuy())) { //只采集非集采产品 - return ResultVOUtils.error(500, bussinessTypeEntity.getName() + "只允许录入非集采产品!"); + if (bussinessTypeEntity.getVailGroupBuy() == 2 && udiRelevanceResponse.isGroupBuy()) { //只采集非集采产品 + return ResultVOUtils.error(500, bussinessTypeEntity.getName() + "单只允许录入非集采产品!"); } //计算实际数量 diff --git a/src/main/java/com/glxp/api/controller/sync/SpsSyncBasicController.java b/src/main/java/com/glxp/api/controller/sync/SpsSyncBasicController.java index 8da8ffb8..0ce91568 100644 --- a/src/main/java/com/glxp/api/controller/sync/SpsSyncBasicController.java +++ b/src/main/java/com/glxp/api/controller/sync/SpsSyncBasicController.java @@ -62,7 +62,7 @@ public class SpsSyncBasicController { //入院申请,无DI的数据需更新产品编码 if (IntUtil.value(udiRelevanceEntity.getNewNeedUpload())) { UdiProductEntity udiProductEntity = udiProductService.findByUuid(udiRelevanceEntity.getUuid()); - udiProductEntity.setRemark(udiProductEntity.getNameCode()); +// udiProductEntity.setRemark(udiProductEntity.getNameCode()); udiProductEntity.setNameCode(udiRelevanceEntity.getMainId()); udiProductService.updateUdiInfoByUuid(udiProductEntity); ThrProductsAddDiEntity thrProductsAddDiEntity = thrProductsAddDiDao.selectOne(new QueryWrapper().eq("code", udiProductEntity.getRemark()).last("limit 1")); diff --git a/src/main/java/com/glxp/api/controller/thrsys/ThrProductsAddDiController.java b/src/main/java/com/glxp/api/controller/thrsys/ThrProductsAddDiController.java index 22b32b64..4fe3074f 100644 --- a/src/main/java/com/glxp/api/controller/thrsys/ThrProductsAddDiController.java +++ b/src/main/java/com/glxp/api/controller/thrsys/ThrProductsAddDiController.java @@ -227,7 +227,7 @@ public class ThrProductsAddDiController { udiProductEntity.setBasicPrductRemak6(thrProductsAddDiEntity.getBasicPrductRemak6()); udiProductEntity.setBasicPrductRemak7(thrProductsAddDiEntity.getBasicPrductRemak7()); udiProductEntity.setBasicPrductRemak8(thrProductsAddDiEntity.getBasicPrductRemak8()); - udiProductEntity.setGroupBuy(thrProductsAddDiEntity.getGroupBuy()); +// udiProductEntity.setGroupBuy(thrProductsAddDiEntity.getGroupBuy()); udiProductEntity.setCatalogname1(thrProductsAddDiEntity.getCatalogname1()); udiProductEntity.setCatalogname2(thrProductsAddDiEntity.getCatalogname2()); udiProductEntity.setCatalogname3(thrProductsAddDiEntity.getCatalogname3()); @@ -320,7 +320,7 @@ public class ThrProductsAddDiController { udiProductEntity.setBasicPrductRemak6(thrProductsAddDiResponse.getBasicPrductRemak6()); udiProductEntity.setBasicPrductRemak7(thrProductsAddDiResponse.getBasicPrductRemak7()); udiProductEntity.setBasicPrductRemak8(thrProductsAddDiResponse.getBasicPrductRemak8()); - udiProductEntity.setGroupBuy(thrProductsAddDiResponse.getGroupBuy()); +// udiProductEntity.setGroupBuy(thrProductsAddDiResponse.getGroupBuy()); udiProductEntity.setCatalogname1(thrProductsAddDiResponse.getCatalogname1()); udiProductEntity.setCatalogname2(thrProductsAddDiResponse.getCatalogname2()); udiProductEntity.setCatalogname3(thrProductsAddDiResponse.getCatalogname3()); diff --git a/src/main/java/com/glxp/api/controller/thrsys/ThrProductsController.java b/src/main/java/com/glxp/api/controller/thrsys/ThrProductsController.java index 2b6a28f5..a95d3973 100644 --- a/src/main/java/com/glxp/api/controller/thrsys/ThrProductsController.java +++ b/src/main/java/com/glxp/api/controller/thrsys/ThrProductsController.java @@ -212,8 +212,8 @@ public class ThrProductsController { udiProductEntity.setYlqxzcrbarmc(thrProductsEntity.getYlqxzcrbarmc()); if (StrUtil.isNotEmpty(thrProductsEntity.getCpms())) udiProductEntity.setCpms(thrProductsEntity.getCpms()); - if (StrUtil.isNotEmpty(thrProductsEntity.getBzgg())) - udiProductEntity.setBzgg(thrProductsEntity.getBzgg()); +// if (StrUtil.isNotEmpty(thrProductsEntity.getBzgg())) +// udiProductEntity.setBzgg(thrProductsEntity.getBzgg()); // if (StrUtil.isNotEmpty(thrProductsEntity.getStandard())) // udiProductEntity.setGgxh(thrProductsEntity.getStandard()); udiProductService.updateUdiInfo(udiProductEntity); diff --git a/src/main/java/com/glxp/api/dao/thrsys/BasicInsMaterialMapper.java b/src/main/java/com/glxp/api/dao/thrsys/BasicInsMaterialMapper.java new file mode 100644 index 00000000..ec0adabe --- /dev/null +++ b/src/main/java/com/glxp/api/dao/thrsys/BasicInsMaterialMapper.java @@ -0,0 +1,13 @@ +package com.glxp.api.dao.thrsys; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.glxp.api.entity.thrsys.BasicInsMaterialEntity; +import com.glxp.api.req.thrsys.ThrInsMaterialFeeRequest; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface BasicInsMaterialMapper extends BaseMapper { + List filterList(ThrInsMaterialFeeRequest thrInsMaterialFeeRequest); +} diff --git a/src/main/java/com/glxp/api/dao/thrsys/YbDrugMapper.java b/src/main/java/com/glxp/api/dao/thrsys/YbDrugMapper.java new file mode 100644 index 00000000..fc511c0e --- /dev/null +++ b/src/main/java/com/glxp/api/dao/thrsys/YbDrugMapper.java @@ -0,0 +1,17 @@ +package com.glxp.api.dao.thrsys; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.glxp.api.entity.thrsys.YbDrug; +import com.glxp.api.req.basic.YbDrugDetailFilterRequest; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +@Mapper +public interface YbDrugMapper extends BaseMapper { + + void batchSaveOrUpdateByGoodsCode(@Param("list")List ybHcflEntities); + + List list(YbDrugDetailFilterRequest param); +} \ No newline at end of file diff --git a/src/main/java/com/glxp/api/entity/basic/UdiProductEntity.java b/src/main/java/com/glxp/api/entity/basic/UdiProductEntity.java index c510ad48..3aa2246c 100644 --- a/src/main/java/com/glxp/api/entity/basic/UdiProductEntity.java +++ b/src/main/java/com/glxp/api/entity/basic/UdiProductEntity.java @@ -1,11 +1,14 @@ package com.glxp.api.entity.basic; +import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.math.BigDecimal; import java.util.Date; /** @@ -14,129 +17,7 @@ import java.util.Date; @Data @TableName("basic_products") public class UdiProductEntity { -// -// private Long id; -// private String uuid; -// private String originUuid; -// private String nameCode; -// private String deviceRecordKey; -// private String packRatio; -// private String packLevel; -// private String packUnit; -// private Integer bhxjsl; -// private Integer bhzxxsbzsl; -// private Integer zxxsbzbhsydysl; -// private String bhxjcpbm; -// private String bzcj; -// private String cpmctymc; -// private String cplb; -// private String flbm; -// private String ggxh; -// private String qxlb; -// private String tyshxydm; -// private String ylqxzcrbarmc; -// private String zczbhhzbapzbh; -// private String ylqxzcrbarywmc; -// private String sydycpbs; -// private String sjcpbm; -// private Integer versionNumber; -// private Integer diType; -// private String ybbm; -// private String sptm; -// private String manufactory; -// private String manufactoryCode; -// private String measname; -// private Integer productType; -// private String scbssfbhph; -// private String scbssfbhxlh; -// private String scbssfbhscrq; -// private String scbssfbhsxrq; -// private String cpms; -// private Boolean allowNoBatch; -// private Boolean allowNoExpire; -// private Boolean allowNoProduct; -// private Boolean allowNoSerial; -// private String spmc; -// private String cplx; -// private String hchzsb; -// private String cpdls; -// private String basicPrductRemak1; -// private String basicPrductRemak2; -// private String basicPrductRemak3; -// private String basicPrductRemak4; -// private String basicPrductRemak5; -// private String basicPrductRemak6; -// private String basicPrductRemak7; -// private String basicPrductRemak8; -// private String price; -// -// -// private String sfwblztlcp; -// private String cgzmraqxgxx; -// private String sfbjwycxsy; -// private String zdcfsycs; -// private String sfwwjbz; -// private String syqsfxyjxmj; -// private String mjfs; -// private String categoryName; -// -// -// //本地生成信息 -// private String batchNo; -// private String produceDate; -// private String expireDate; -// private String serialNo; -// private String udi; -// private String code; -// private Integer count; -// private String warehouseCode; -// private String deptCode; -// private String udplatCode; -// private String relId;//关联ID主键 -// private Integer status; -// private String supId; - - - - private Long relSupId; - - private Boolean groupBuy; - - private Long uid; - - private Integer attributeType; - - - -// - - - - private String remark; - private String catalogcode; -// - /** - * 一级分类名称(学科,品名) - */ - @TableField(value = "catalogCode1") - @ApiModelProperty(value = "一级分类名称(学科,品名)") - private Integer catalogCode1; -// - /** - * 二级分类名称(用途、品目) - */ - @TableField(value = "catalogCode2") - @ApiModelProperty(value = "二级分类名称(用途、品目)") - private Integer catalogCode2; -// -// /** -// * 三级分类名称(部位、功能、品种) -// */ - @TableField(value = "catalogCode3") - @ApiModelProperty(value = "三级分类名称(部位、功能、品种)") - private Integer catalogCode3; - @TableField(exist = false) - private Boolean isStack; + @TableId(value = "id", type = IdType.INPUT) private Long id; @TableField(value = "uuid") private String uuid; @@ -246,7 +127,6 @@ public class UdiProductEntity { @TableField(exist = false) //本地生成信息 private String batchNo; - @TableField(exist = false) private String produceDate; @TableField(exist = false) private String expireDate; @@ -272,11 +152,12 @@ public class UdiProductEntity { private String supId; @TableField(exist = false) private Boolean useMuti; //是否多次使用 - + @TableField(exist = false) + private Long relSupId; @TableField(value = "pinyinInitial") private String pinyinInitial; @TableField(value = "zdcfsycs") - private String zdcfsycs; + private Integer zdcfsycs; @TableField(value = "sfwblztlcp") private String sfwblztlcp; @@ -311,6 +192,12 @@ public class UdiProductEntity { @TableField(value = "bzgg") private String bzgg; + /** + * 包装规格 + */ + @TableField(value = "remark") + private String remark; + /** * 一级分类名称(学科,品名) */ @@ -344,6 +231,7 @@ public class UdiProductEntity { private Integer hcType; @TableField(value = "requireScanCode") private Integer requireScanCode; + private Boolean isStack; /** @@ -365,6 +253,11 @@ public class UdiProductEntity { @TableField(value = "prepnUnit") private String prepnUnit; + /** + * 包装材质 + */ + @TableField(value = "packMatrial") + private String packMatrial; /** * 使用属性 @@ -395,7 +288,7 @@ public class UdiProductEntity { * 使用属性 */ @TableField(value = "indate") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'") private Date indate; @@ -411,12 +304,6 @@ public class UdiProductEntity { @TableField(value = "prepnSpec") private String prepnSpec; - /** - * 包装材质 - */ - @TableField(value = "packMatrial") - private String packMatrial; - /** * 药品分类 */ @@ -433,17 +320,33 @@ public class UdiProductEntity { @TableField(value = "majorStatus") private Integer majorStatus; - @TableField(exist = false) - private String distributeLevelDi; - @TableField(exist = false) - private String distributeLevelUnit; - @TableField(exist = false) - private Integer distributeLevelCount; - @TableField(exist = false) - private String useLevelDi; - @TableField(exist = false) - private String useLevelUnit; - @TableField(exist = false) - private Integer useLeverCount; + /** + * 当前层级包含流通层级使用数量 + */ + @TableField(value = "bhltcjsl") + private Integer bhltcjsl; + + /** + * 当前层级包含使用层级数量 + */ + @TableField(value = "bhsycjsl") + private Integer bhsycjsl; + + + //工位预警数量 + @TableField(value = "workPlaceCount") + private Integer workPlaceCount; + + /** + * 下级单位 + */ + @TableField(value = "xjdw") + private String xjdw; + + public Integer getMyBhxjsl() { + if (bhxjsl == null || bhxjsl == 0) + return 1; + return bhxjsl; + } } diff --git a/src/main/java/com/glxp/api/entity/basic/UdiRelevanceEntity.java b/src/main/java/com/glxp/api/entity/basic/UdiRelevanceEntity.java index 4f65ca4b..dbe5db06 100644 --- a/src/main/java/com/glxp/api/entity/basic/UdiRelevanceEntity.java +++ b/src/main/java/com/glxp/api/entity/basic/UdiRelevanceEntity.java @@ -4,7 +4,10 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import lombok.AllArgsConstructor; +import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; import java.util.Date; @@ -13,6 +16,9 @@ import java.util.Date; */ @Data +@Builder +@AllArgsConstructor +@NoArgsConstructor @TableName("basic_udirel") public class UdiRelevanceEntity { @@ -96,24 +102,23 @@ public class UdiRelevanceEntity { */ @TableField(value = "isAdavence") private Boolean isAdavence; + + /** * 采购类型 1:入账产品;2:预验收产品;3:寄售产品 */ @TableField(value = "purType") private Integer purType; - /** * 产品属性类型 0:未定义;1:设备(用于设备管理);2:耗材;3.伴随服务费 */ @TableField(value = "attributeType") private Integer attributeType; - /** * 产品分类高值 :1:高值耗材;2.普通耗材 */ @TableField(value = "hcType") private Integer hcType; - /** * 是否允许多次使用出库 */ @@ -178,11 +183,9 @@ public class UdiRelevanceEntity { private Integer useExpireTime; @TableField(value = "dispatch") private Boolean dispatch; - - //是否集采产品 - @TableField(value = "groupBuy") + @TableField(value = "groupBuy") //是否可配送 private Boolean groupBuy; - //是否可配送 + //是否集采产品 @TableField(value = "isDateBy") private Integer isDateBy; @TableField(value = "needCert") @@ -190,53 +193,89 @@ public class UdiRelevanceEntity { @TableField(value = "certIdFk") private String certIdFk; - /** - * 系统新增需要上传 - */ - @TableField(value = "newNeedUpload") - private Boolean newNeedUpload; /** - * 是否组套 + * 上传状态 0:未上传;1:已上传; */ - @TableField(value = "isStack") - private Boolean isStack; + @TableField(value = "uploadFlag") + private Integer uploadFlag; /** - * 流通计量层层级标识 + * 上传日志信息 */ - @TableField(value = "distributeLevelDi") - private String distributeLevelDi; + @TableField(value = "uploadMsg") + private String uploadMsg; /** - * 流通计量层级单位 + * 系统新增需要上传 */ - @TableField(value = "distributeLevelUnit") - private String distributeLevelUnit; + @TableField(value = "newNeedUpload") + private Boolean newNeedUpload; + +// /** +// * 流通计量层层级标识 +// */ +// @TableField(value = "distributeLevelDi") +// private String distributeLevelDi; +// +// /** +// * 流通计量层级单位 +// */ +// @TableField(value = "distributeLevelUnit") +// private String distributeLevelUnit; +// /** - * 流通时包含计量单元的数量 + * 流通时最小包装层级包含计量单元的数量 */ @TableField(value = "distributeLevelCount") private Integer distributeLevelCount; /** - * 使用计量层级标识 + * 流通层级 + */ + @TableField(value = "distributeLevel") + private Integer distributeLevel; + + +// /** +// * 使用计量层级标识 +// */ +// @TableField(value = "useLevelDi") +// private String useLevelDi; +// +// /** +// * 使用计量层级单位 +// */ +// @TableField(value = "useLevelUnit") +// private String useLevelUnit; +// +// /** +// * 使用是当前层级包含计量单元数量 +// */ +// @TableField(value = "useLeverCount") +// private Integer useLeverCount; + + + /** + * 使用层级 */ - @TableField(value = "useLevelDi") - private String useLevelDi; + @TableField(value = "useLevel") + private Integer useLevel; + /** - * 使用计量层级单位 + * 是否自动赋码 */ - @TableField(value = "useLevelUnit") - private String useLevelUnit; + @TableField(value = "autoCode") + private Boolean autoCode; + /** - * 使用是当前层级包含计量单元数量 + * 是否拆零 */ - @TableField(value = "useLeverCount") - private Integer useLeverCount; + @TableField(value = "splitEnable") + private Boolean splitEnable; /** @@ -247,4 +286,29 @@ public class UdiRelevanceEntity { @TableField(value = "productsType") private Integer productsType; + + + /** + * 是否组套 + */ + @TableField(value = "isStack") + private Boolean isStack; + /** + * 配送时允许采集的最大层级 + */ + @TableField(value = "distributeMaxLevel") + private Integer distributeMaxLevel; + /** + * 使用时允许采集的最大层级 + */ + @TableField(value = "useMaxLevel") + private Integer useMaxLevel; + + + /** + * 拆包后可用时长(小时) + */ + @TableField(value = "unpackUseTime") + private Integer unpackUseTime; + } diff --git a/src/main/java/com/glxp/api/entity/thrsys/BasicInsMaterialEntity.java b/src/main/java/com/glxp/api/entity/thrsys/BasicInsMaterialEntity.java new file mode 100644 index 00000000..847a9ac6 --- /dev/null +++ b/src/main/java/com/glxp/api/entity/thrsys/BasicInsMaterialEntity.java @@ -0,0 +1,529 @@ +package com.glxp.api.entity.thrsys; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * 医用耗材目录 + */ +@ApiModel(value="com-glxp-api-entity-thrsys-BasicInsMaterial") +@Data +@TableName(value = "basic_ins_material") +public class BasicInsMaterialEntity implements Serializable { + @TableId(value = "id", type = IdType.INPUT) + @ApiModelProperty(value="") + private Integer id; + + /** + * 医疗目录编码 + */ + @TableField(value = "medCatalogCode") + @ApiModelProperty(value="医疗目录编码") + private String medCatalogCode; + + /** + * 耗材名称 + */ + @TableField(value = "consumableName") + @ApiModelProperty(value="耗材名称") + private String consumableName; + + /** + * 医疗器械唯一标识码 + */ + @TableField(value = "deviceUniqueCode") + @ApiModelProperty(value="医疗器械唯一标识码") + private String deviceUniqueCode; + + /** + * 医保通用名代码 + */ + @TableField(value = "insuranceGenericCode") + @ApiModelProperty(value="医保通用名代码") + private String insuranceGenericCode; + + /** + * 医保通用名 + */ + @TableField(value = "insuranceGenericName") + @ApiModelProperty(value="医保通用名") + private String insuranceGenericName; + + /** + * 产品型号 + */ + @TableField(value = "productModel") + @ApiModelProperty(value="产品型号") + private String productModel; + + /** + * 规格代码 + */ + @TableField(value = "specCode") + @ApiModelProperty(value="规格代码") + private String specCode; + + /** + * 规格 + */ + @TableField(value = "specification") + @ApiModelProperty(value="规格") + private String specification; + + /** + * 耗材分类 + */ + @TableField(value = "consumableCategory") + @ApiModelProperty(value="耗材分类") + private String consumableCategory; + + /** + * 规格型号 + */ + @TableField(value = "specModel") + @ApiModelProperty(value="规格型号") + private String specModel; + + /** + * 材质代码 + */ + @TableField(value = "materialCode") + @ApiModelProperty(value="材质代码") + private String materialCode; + + /** + * 耗材材质 + */ + @TableField(value = "consumableMaterial") + @ApiModelProperty(value="耗材材质") + private String consumableMaterial; + + /** + * 包装规格 + */ + @TableField(value = "packagingSpec") + @ApiModelProperty(value="包装规格") + private String packagingSpec; + + /** + * 包装数量 + */ + @TableField(value = "packagingQuantity") + @ApiModelProperty(value="包装数量") + private Integer packagingQuantity; + + /** + * 产品包装材质 + */ + @TableField(value = "packagingMaterial") + @ApiModelProperty(value="产品包装材质") + private String packagingMaterial; + + /** + * 包装单位 + */ + @TableField(value = "packagingUnit") + @ApiModelProperty(value="包装单位") + private String packagingUnit; + + /** + * 产品转换比 + */ + @TableField(value = "productConversionRate") + @ApiModelProperty(value="产品转换比") + private Double productConversionRate; + + /** + * 最小使用单位 + */ + @TableField(value = "minUsageUnit") + @ApiModelProperty(value="最小使用单位") + private String minUsageUnit; + + /** + * 生产地类别 + */ + @TableField(value = "productionAreaType") + @ApiModelProperty(value="生产地类别") + private String productionAreaType; + + /** + * 生产地类别名称 + */ + @TableField(value = "productionAreaName") + @ApiModelProperty(value="生产地类别名称") + private String productionAreaName; + + /** + * 产品标准 + */ + @TableField(value = "productStandard") + @ApiModelProperty(value="产品标准") + private String productStandard; + + /** + * 产品有效期 + */ + @TableField(value = "productExpiry") + @ApiModelProperty(value="产品有效期") + private String productExpiry; + + /** + * 性能结构与组成 + */ + @TableField(value = "structureComposition") + @ApiModelProperty(value="性能结构与组成") + private String structureComposition; + + /** + * 适用范围 + */ + @TableField(value = "applicableScope") + @ApiModelProperty(value="适用范围") + private String applicableScope; + + /** + * 产品使用方法 + */ + @TableField(value = "usageMethod") + @ApiModelProperty(value="产品使用方法") + private String usageMethod; + + /** + * 产品图片编号 + */ + @TableField(value = "productImageCode") + @ApiModelProperty(value="产品图片编号") + private String productImageCode; + + /** + * 产品质量标准 + */ + @TableField(value = "qualityStandard") + @ApiModelProperty(value="产品质量标准") + private String qualityStandard; + + /** + * 说明书 + */ + @TableField(value = "instructions") + @ApiModelProperty(value="说明书") + private String instructions; + + /** + * 其他证明材料 + */ + @TableField(value = "otherCertMaterials") + @ApiModelProperty(value="其他证明材料") + private String otherCertMaterials; + + /** + * 专机专用标志 + */ + @TableField(value = "dedicatedMachineFlag") + @ApiModelProperty(value="专机专用标志") + private Byte dedicatedMachineFlag; + + /** + * 专机名称 + */ + @TableField(value = "dedicatedMachineName") + @ApiModelProperty(value="专机名称") + private String dedicatedMachineName; + + /** + * 组套名称 + */ + @TableField(value = "setNames") + @ApiModelProperty(value="组套名称") + private String setNames; + + /** + * 机套标志 + */ + @TableField(value = "setFlag") + @ApiModelProperty(value="机套标志") + private Byte setFlag; + + /** + * 限制使用标志 + */ + @TableField(value = "usageRestrictionFlag") + @ApiModelProperty(value="限制使用标志") + private Byte usageRestrictionFlag; + + /** + * 医保限用范围 + */ + @TableField(value = "insuranceUsageScope") + @ApiModelProperty(value="医保限用范围") + private String insuranceUsageScope; + + /** + * 最小销售单位 + */ + @TableField(value = "minSalesUnit") + @ApiModelProperty(value="最小销售单位") + private String minSalesUnit; + + /** + * 高值耗材标志 + */ + @TableField(value = "highValueConsumableFlag") + @ApiModelProperty(value="高值耗材标志") + private Byte highValueConsumableFlag; + + /** + * 医用材料分类代码 + */ + @TableField(value = "medicalMaterialCategoryCode") + @ApiModelProperty(value="医用材料分类代码") + private String medicalMaterialCategoryCode; + + /** + * 植入材料和人体器官标志 + */ + @TableField(value = "implantMaterialFlag") + @ApiModelProperty(value="植入材料和人体器官标志") + private Byte implantMaterialFlag; + + /** + * 灭菌标志 + */ + @TableField(value = "sterilizationFlag") + @ApiModelProperty(value="灭菌标志") + private Byte sterilizationFlag; + + /** + * 灭菌标志名称 + */ + @TableField(value = "sterilizationFlagName") + @ApiModelProperty(value="灭菌标志名称") + private String sterilizationFlagName; + + /** + * 植入或介入类标志 + */ + @TableField(value = "implantOrInterventionalFlag") + @ApiModelProperty(value="植入或介入类标志") + private Byte implantOrInterventionalFlag; + + /** + * 植入或介入类名称 + */ + @TableField(value = "implantOrInterventionalName") + @ApiModelProperty(value="植入或介入类名称") + private String implantOrInterventionalName; + + /** + * 一次性使用标志 + */ + @TableField(value = "singleUseFlag") + @ApiModelProperty(value="一次性使用标志") + private Byte singleUseFlag; + + /** + * 一次性使用标志名称 + */ + @TableField(value = "singleUseFlagName") + @ApiModelProperty(value="一次性使用标志名称") + private String singleUseFlagName; + + /** + * 注册备案人名称 + */ + @TableField(value = "regFilingPersonName") + @ApiModelProperty(value="注册备案人名称") + private String regFilingPersonName; + + /** + * 开始日期 + */ + @TableField(value = "startDate") + @ApiModelProperty(value="开始日期") + private Date startDate; + + /** + * 结束日期 + */ + @TableField(value = "endDate") + @ApiModelProperty(value="结束日期") + private Date endDate; + + /** + * 医疗器械管理类别 + */ + @TableField(value = "deviceManagementCategory") + @ApiModelProperty(value="医疗器械管理类别") + private String deviceManagementCategory; + + /** + * 医疗器械管理类别名称 + */ + @TableField(value = "deviceManagementCategoryName") + @ApiModelProperty(value="医疗器械管理类别名称") + private String deviceManagementCategoryName; + + /** + * 注册备案号 + */ + @TableField(value = "regFilingNum") + @ApiModelProperty(value="注册备案号") + private String regFilingNum; + + /** + * 注册备案产品名称 + */ + @TableField(value = "regFilingProductName") + @ApiModelProperty(value="注册备案产品名称") + private String regFilingProductName; + + /** + * 结构及组成 + */ + @TableField(value = "structureCompositionDetail") + @ApiModelProperty(value="结构及组成") + private String structureCompositionDetail; + + /** + * 其他内容 + */ + @TableField(value = "otherDetails") + @ApiModelProperty(value="其他内容") + private String otherDetails; + + /** + * 批准日期 + */ + @TableField(value = "approvalDate") + @ApiModelProperty(value="批准日期") + private Date approvalDate; + + /** + * 注册备案人住所 + */ + @TableField(value = "regFilingPersonAddress") + @ApiModelProperty(value="注册备案人住所") + private String regFilingPersonAddress; + + /** + * 注册证有效期开始时间 + */ + @TableField(value = "regCertStartDate") + @ApiModelProperty(value="注册证有效期开始时间") + private Date regCertStartDate; + + /** + * 注册证有效期结束时间 + */ + @TableField(value = "regCertEndDate") + @ApiModelProperty(value="注册证有效期结束时间") + private Date regCertEndDate; + + /** + * 生产企业编号 + */ + @TableField(value = "manufacturerNum") + @ApiModelProperty(value="生产企业编号") + private String manufacturerNum; + + /** + * 生产企业名称 + */ + @TableField(value = "manufacturerName") + @ApiModelProperty(value="生产企业名称") + private String manufacturerName; + + /** + * 生产地址 + */ + @TableField(value = "manufacturingAddress") + @ApiModelProperty(value="生产地址") + private String manufacturingAddress; + + /** + * 代理人企业 + */ + @TableField(value = "agentCompany") + @ApiModelProperty(value="代理人企业") + private String agentCompany; + + /** + * 代理人企业地址 + */ + @TableField(value = "agentCompanyAddress") + @ApiModelProperty(value="代理人企业地址") + private String agentCompanyAddress; + + /** + * 生产国或地区 + */ + @TableField(value = "productionCountry") + @ApiModelProperty(value="生产国或地区") + private String productionCountry; + + /** + * 售后服务机构 + */ + @TableField(value = "afterSalesService") + @ApiModelProperty(value="售后服务机构") + private String afterSalesService; + + /** + * 注册或备案证电子档案 + */ + @TableField(value = "regOrFilingCertFile") + @ApiModelProperty(value="注册或备案证电子档案") + private String regOrFilingCertFile; + + /** + * 产品影像 + */ + @TableField(value = "productImage") + @ApiModelProperty(value="产品影像") + private String productImage; + + /** + * 有效标志 + */ + @TableField(value = "activeMark") + @ApiModelProperty(value="有效标志") + private Byte activeMark; + + /** + * 唯一记录号 + */ + @TableField(value = "uniqueRecordNum") + @ApiModelProperty(value="唯一记录号") + private String uniqueRecordNum; + + /** + * 版本号 + */ + @TableField(value = "versionNum") + @ApiModelProperty(value="版本号") + private String versionNum; + + /** + * 版本名称 + */ + @TableField(value = "versionName") + @ApiModelProperty(value="版本名称") + private String versionName; + /** + * 备注 + */ + @TableField(value = "remark") + @ApiModelProperty(value="备注") + private String remark; + + private static final long serialVersionUID = 1L; +} diff --git a/src/main/java/com/glxp/api/entity/thrsys/ThrProductsEntity.java b/src/main/java/com/glxp/api/entity/thrsys/ThrProductsEntity.java index 49eddaf6..824ec5b8 100644 --- a/src/main/java/com/glxp/api/entity/thrsys/ThrProductsEntity.java +++ b/src/main/java/com/glxp/api/entity/thrsys/ThrProductsEntity.java @@ -4,10 +4,12 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.Date; + /** *

* @@ -161,12 +163,6 @@ public class ThrProductsEntity { */ private String price; - - /** - * 包装规格 - */ - private String bzgg; - /** * 创建人 */ @@ -185,5 +181,83 @@ public class ThrProductsEntity { @TableField("updateUser") private String updateUser; + /** + * 生产厂家编码 + */ + @TableField("manufactoryCode") + private String manufactoryCode; + + /** + * 配送企业编码 + */ + @TableField("supCode") + private String supCode; + + @TableField("type") + private Integer type; + + @TableField(exist = false) + private String createByName; + + /** + * 处方项目字典 + */ + @TableField("prcitmcode") + private String prcitmcode; + + /** + * 所属仓库/科室 + */ + @TableField("invCode") + private String invCode; + + /** + * 一级分类名称(学科,品名) + */ + @TableField(value = "catalogname1") + @ApiModelProperty(value="一级分类名称(学科,品名)") + private String catalogname1; + + /** + * 二级分类名称(用途、品目) + */ + @TableField(value = "catalogname2") + @ApiModelProperty(value="二级分类名称(用途、品目)") + private String catalogname2; + + /** + * 三级分类名称(部位、功能、品种) + */ + @TableField(value = "catalogname3") + @ApiModelProperty(value="三级分类名称(部位、功能、品种)") + private String catalogname3; + + /** + * 耗材材质 + */ + @TableField(value = "matrial") + @ApiModelProperty(value="耗材材质") + private String matrial; + + + /** + * 产品类别 1:器械 2:药品 + */ + @TableField(value = "productType") + private Integer productType; + + /** + * 制剂规格 + */ + @TableField(value = "prepnSpec") + @ApiModelProperty(value="制剂规格") + private String prepnSpec; + + /** + * 制剂规格 + */ + @TableField(value = "prepnUnit") + @ApiModelProperty(value="制剂单位") + private String prepnUnit; } diff --git a/src/main/java/com/glxp/api/entity/thrsys/YbDrug.java b/src/main/java/com/glxp/api/entity/thrsys/YbDrug.java new file mode 100644 index 00000000..a41f5cb7 --- /dev/null +++ b/src/main/java/com/glxp/api/entity/thrsys/YbDrug.java @@ -0,0 +1,149 @@ +package com.glxp.api.entity.thrsys; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.io.Serializable; + +/** + * 药品 + */ +@Data +@TableName(value = "yb_drug") +public class YbDrug implements Serializable { + + /** + * 统一社会信用代码 + */ + @TableField(value = "businessLicense") + private String businessLicense; + + /** + * 公司名称 + */ + @TableField(value = "companyNameSc") + private String companyNameSc; + + /** + * 注批准文号 + */ + @TableField(value = "approvalCode") + private String approvalCode; + + /** + * 药品本位码 + */ + @TableField(value = "goodsStandardCode") + private String goodsStandardCode; + + /** + * baseId + */ + @TableField(value = "baseId") + private String baseId; + + /** + * 产品名 + */ + @TableField(value = "productName") + private String productName; + + /** + * 产品分类码 + */ + @TableField(value = "productMedicinemodel") + private String productMedicinemodel; + + /** + * 注册名称 + */ + @TableField(value = "registeredProductName") + private String registeredProductName; + + /** + * 药品企业 + */ + @TableField(value = "listingHolder") + private String listingHolder; + + /** + * 注册剂型 + */ + @TableField(value = "registeredMedicinemodel") + private String registeredMedicinemodel; + + /** + * 最小制剂单位 + */ + @TableField(value = "minUnit") + private String minUnit; + + /** + * 最小包装数量 + */ + @TableField(value = "factor") + private Integer factor; + + @TableField(value = "goodsName") + private String goodsName; + + @TableField(value = "dataSouce") + private String dataSouce; + + /** + * 规格 + */ + @TableField(value = "realityOutlook") + private String realityOutlook; + + @TableField(value = "productRemark") + private String productRemark; + + @TableField(value = "subpackager") + private String subpackager; + + @TableField(value = "version") + private String version; + + @TableField(value = "productInsuranceType") + private String productInsuranceType; + + /** + * 剂型 + */ + @TableField(value = "realityMedicinemodel") + private String realityMedicinemodel; + + @TableField(value = "marketState") + private String marketState; + + /** + * 包装材质 + */ + @TableField(value = "materialName") + private String materialName; + + /** + * 最小包装单位 + */ + @TableField(value = "unit") + private String unit; + + /** + * 注册规格 + */ + @TableField(value = "registeredOutlook") + private String registeredOutlook; + + @TableField(value = "productCode") + private String productCode; + + /** + * 药品代码 + */ + @TableField(value = "goodsCode") + private String goodsCode; + + +} \ No newline at end of file diff --git a/src/main/java/com/glxp/api/http/ErpBasicClient.java b/src/main/java/com/glxp/api/http/ErpBasicClient.java index 7a8b8944..6757962a 100644 --- a/src/main/java/com/glxp/api/http/ErpBasicClient.java +++ b/src/main/java/com/glxp/api/http/ErpBasicClient.java @@ -9,8 +9,10 @@ import com.glxp.api.common.util.ResultVOUtils; import com.glxp.api.entity.thrsys.ThrManufacturerEntity; import com.glxp.api.entity.thrsys.ThrSystemBusApiEntity; import com.glxp.api.entity.thrsys.ThrSystemEntity; +import com.glxp.api.entity.thrsys.YbDrug; import com.glxp.api.http.req.UdiwmsBusTypeRequest; import com.glxp.api.http.req.UdiwmsUnitRequest; +import com.glxp.api.req.basic.YbDrugDetailFilterRequest; import com.glxp.api.req.basic.YbHcflDetailFilterRequest; import com.glxp.api.req.thrsys.*; import com.glxp.api.res.PageSimpleResponse; @@ -216,4 +218,17 @@ public class ErpBasicClient { } } + public BaseResponse> getYbDrugDetail(YbDrugDetailFilterRequest ybHcflDetailFilterRequest) { + String url = "https://www.udims.com/UDI_DL_Server_test" + "/udchs/ybDrug/list"; + try { + String response = httpOkClient.uCloudPost(url, ybHcflDetailFilterRequest); + BaseResponse> listBaseResponse = + JSONObject.parseObject(response, new TypeReference>>() { + }); + return listBaseResponse; + } catch (Exception e) { + log.error("医保药品详情", e); + return ResultVOUtils.error(500, "连接第三方系统接口服务出错"); + } + } } diff --git a/src/main/java/com/glxp/api/req/basic/AddProductRequest.java b/src/main/java/com/glxp/api/req/basic/AddProductRequest.java index 38dd0a09..88e9fa8d 100644 --- a/src/main/java/com/glxp/api/req/basic/AddProductRequest.java +++ b/src/main/java/com/glxp/api/req/basic/AddProductRequest.java @@ -239,6 +239,13 @@ public class AddProductRequest { */ @TableField(value = "medicareType") private Integer medicareType; + + /** + * 拆包后可用时长(小时) + */ + @TableField(value = "unpackUseTime") + private Integer unpackUseTime; + private Integer majorStatus; /** @@ -263,16 +270,31 @@ public class AddProductRequest { private Long id; - private String distributeLevelDi; - private String distributeLevelUnit; - private Integer distributeLevelCount; - private String useLevelDi; - private String useLevelUnit; - private Integer useLeverCount; + // private String distributeLevelDi; +// private String distributeLevelUnit; +// private Integer distributeLevelCount; +// private String useLevelDi; +// private String useLevelUnit; +// private Integer useLeverCount; + private Boolean splitEnable; + private Boolean autoCode; /** * 收费编码 */ private String payFeeCode; - private String packUnit; + private Integer useLevel; + private Integer distributeLevel; + + /** + * 流通允许采集的最大层级 + */ + private Integer distributeMaxLevel; + + + /** + * 使用允许采集的最大层级 + */ + private Integer useMaxLevel; + } diff --git a/src/main/java/com/glxp/api/req/basic/FilterUdiRelRequest.java b/src/main/java/com/glxp/api/req/basic/FilterUdiRelRequest.java index a406948f..eafe3859 100644 --- a/src/main/java/com/glxp/api/req/basic/FilterUdiRelRequest.java +++ b/src/main/java/com/glxp/api/req/basic/FilterUdiRelRequest.java @@ -3,6 +3,7 @@ package com.glxp.api.req.basic; import com.glxp.api.util.page.ListPageRequest; import lombok.Data; +import java.util.Date; import java.util.List; @Data @@ -17,18 +18,19 @@ public class FilterUdiRelRequest extends ListPageRequest { private String ggxh; private String thirdId; private Long id; - private String packLevel; + private String thirdId1; private String thirdId2; private String thirdId3; private String thirdId4; - + private Boolean isDisable; private String thirdCode; private String thirdSys; private String lastUpdateTime; private String zczbhhzbapzbh; + private String packLevel; private Integer diType; @@ -40,12 +42,14 @@ public class FilterUdiRelRequest extends ListPageRequest { private Boolean isCheck; private Integer filterType; //0:全部,1.对照完成,2.未对照DI,3.未对照产品编码,4.未对照其他产品编码 + private String customerId; + + private String pinyinInitial; + private String code; private Integer lockStatus; - private String customerId; private String udplatCode; private String mainId; - private String mainIdLike; private Boolean isAdavence; /** * 采购类型 1:入账产品;2:预验收产品;3:寄售产品 @@ -56,7 +60,7 @@ public class FilterUdiRelRequest extends ListPageRequest { */ private Integer attributeType; /** - * 产品分类高值 :1:高值耗材;2.普通耗材 + * 耗材分类高值 :1:高值耗材;2.普通耗材 */ private Integer hcType; private String corpId; @@ -65,8 +69,8 @@ public class FilterUdiRelRequest extends ListPageRequest { private String ybbm; private String sptm; private String unionFilterStr;//产品名称,规格,批文,生产厂家联合查询 + private String main; - private Boolean isDisable; List relIds; private String uniqueNameCode; private String supName; @@ -82,17 +86,43 @@ public class FilterUdiRelRequest extends ListPageRequest { private String tyshxydm; private Boolean dispatch; private Boolean groupBuy; + private String category; + + private List uuids; + private List ids; + private String flbm; + private String parentCode; + private List existid; + + private String basicPrductRemak1; + private String basicPrductRemak2; + private String basicPrductRemak3; + private String basicPrductRemak4; + private String basicPrductRemak5; + private String basicPrductRemak6; + private String basicPrductRemak7; + private String basicPrductRemak8; + + //定数包参数 + private String destinyId; + private String destinyNo; + private String billNo; + private Date billDate; + private String invCode; + private String remark; + private String key; - private String sfwblztlcp; - private String cgzmraqxgxx; - private String sfbjwycxsy; - private String zdcfsycs; - private String sfwwjbz; - private String syqsfxyjxmj; - private String mjfs; - private String categoryName; private String deviceRecordKey; - private String packMatrial; - private Integer productsType = 1; + //药品参数 + private String cpms; + private Integer productsType = 1;//默认是耗材 + private Integer productType; + + /** + * 收费项目编码 + */ + private String payFeeCode; + + } diff --git a/src/main/java/com/glxp/api/req/basic/UdiRelevanceSaveRequest.java b/src/main/java/com/glxp/api/req/basic/UdiRelevanceSaveRequest.java index 566d52e6..834901f1 100644 --- a/src/main/java/com/glxp/api/req/basic/UdiRelevanceSaveRequest.java +++ b/src/main/java/com/glxp/api/req/basic/UdiRelevanceSaveRequest.java @@ -33,9 +33,10 @@ public class UdiRelevanceSaveRequest { */ private Integer attributeType; /** - * 产品分类高值 :1:高值耗材;2.普通耗材 + * 耗材分类高值 :1:高值耗材;2.普通耗材 */ private Integer hcType; + private Boolean useMuti; private Integer useNum; private String supName; @@ -114,6 +115,16 @@ public class UdiRelevanceSaveRequest { private Boolean groupBuy; //是否集采产品 private Boolean needCert; //是否需要资质材料 private String certIdFk; + private Integer zdcfsycs; + private Boolean splitEnable; + private Boolean autoCode; + + /** + * 包装规格 + */ + private String bzgg; + + /** * 一级分类名称(学科,品名) */ @@ -142,12 +153,32 @@ public class UdiRelevanceSaveRequest { @ApiModelProperty(value="耗材材质") private String matrial; - private String catalogcode; + /** + * 收费项目编码 + */ + + private String payFeeCode; private Integer requireScanCode; + private String distributeLevelDi; + private String distributeLevelUnit; + private Integer distributeLevelCount; + private String useLevelDi; + private String useLevelUnit; + private Integer useLeverCount; + private Integer useLevel; + private Integer distributeLevel; + //工位预警数 + private Integer workPlaceCount; /** - * 包装规则 + * 流通允许采集的最大层级 */ - private String bzgg; + private Integer distributeMaxLevel; + + + /** + * 使用允许采集的最大层级 + */ + private Integer useMaxLevel; } diff --git a/src/main/java/com/glxp/api/req/basic/UpdateLevelDrugRequest.java b/src/main/java/com/glxp/api/req/basic/UpdateLevelDrugRequest.java index 9d6c86a7..854a01ea 100644 --- a/src/main/java/com/glxp/api/req/basic/UpdateLevelDrugRequest.java +++ b/src/main/java/com/glxp/api/req/basic/UpdateLevelDrugRequest.java @@ -31,5 +31,14 @@ public class UpdateLevelDrugRequest { */ private Integer bhxjsl; private Long relId; + private Long productId; private String uuid; + private String xjdw; + private Integer diType; + + public Integer getMyBhxjsl() { + if (bhxjsl == null || bhxjsl == 0) + return 1; + return bhxjsl; + } } diff --git a/src/main/java/com/glxp/api/req/basic/YbDrugDetailFilterRequest.java b/src/main/java/com/glxp/api/req/basic/YbDrugDetailFilterRequest.java new file mode 100644 index 00000000..a7d206e0 --- /dev/null +++ b/src/main/java/com/glxp/api/req/basic/YbDrugDetailFilterRequest.java @@ -0,0 +1,14 @@ +package com.glxp.api.req.basic; + +import lombok.Data; + +@Data +public class YbDrugDetailFilterRequest { + + + private String goodsCode; + + private Integer page; + private Integer limit; + +} diff --git a/src/main/java/com/glxp/api/req/thrsys/ThrInsDrugFeeRequest.java b/src/main/java/com/glxp/api/req/thrsys/ThrInsDrugFeeRequest.java new file mode 100644 index 00000000..de72aa05 --- /dev/null +++ b/src/main/java/com/glxp/api/req/thrsys/ThrInsDrugFeeRequest.java @@ -0,0 +1,31 @@ +package com.glxp.api.req.thrsys; + +import com.glxp.api.util.page.ListPageRequest; +import lombok.Data; + +@Data +public class ThrInsDrugFeeRequest extends ListPageRequest { + + + /** + * 医疗目录编码 + */ + private String medCatalogCode; + + /** + * 药品商品名 + */ + private String tradeName; + + /** + * 通用名编号 + */ + private String genericNum; + + /** + * 药品通用名 + */ + private String genericName; + + +} diff --git a/src/main/java/com/glxp/api/req/thrsys/ThrInsMaterialFeeRequest.java b/src/main/java/com/glxp/api/req/thrsys/ThrInsMaterialFeeRequest.java new file mode 100644 index 00000000..6abd8647 --- /dev/null +++ b/src/main/java/com/glxp/api/req/thrsys/ThrInsMaterialFeeRequest.java @@ -0,0 +1,20 @@ +package com.glxp.api.req.thrsys; + +import com.glxp.api.util.page.ListPageRequest; +import lombok.Data; + +@Data +public class ThrInsMaterialFeeRequest extends ListPageRequest { + + + /** + * 医疗目录编码 + */ + private String medCatalogCode; + + /** + * 耗材名称 + */ + private String consumableName; + +} diff --git a/src/main/java/com/glxp/api/res/DiLevelResponse.java b/src/main/java/com/glxp/api/res/DiLevelResponse.java new file mode 100644 index 00000000..2034f5fe --- /dev/null +++ b/src/main/java/com/glxp/api/res/DiLevelResponse.java @@ -0,0 +1,21 @@ +package com.glxp.api.res; + +import lombok.Data; + +@Data +public class DiLevelResponse { + + private String levelUnit; + private Integer packLevel; + private String packUnit; + private Integer diType; + private String xjdw; + private Integer bhxjsl; + + public Integer getMyBhxjsl() { + if (bhxjsl == null || bhxjsl == 0) + return 1; + + return bhxjsl; + } +} diff --git a/src/main/java/com/glxp/api/res/basic/UdiRelevanceResponse.java b/src/main/java/com/glxp/api/res/basic/UdiRelevanceResponse.java index 21a3313d..dff673ab 100644 --- a/src/main/java/com/glxp/api/res/basic/UdiRelevanceResponse.java +++ b/src/main/java/com/glxp/api/res/basic/UdiRelevanceResponse.java @@ -2,7 +2,6 @@ package com.glxp.api.res.basic; import com.baomidou.mybatisplus.annotation.TableField; import io.swagger.annotations.ApiModelProperty; -import com.baomidou.mybatisplus.annotation.TableField; import lombok.Data; import java.math.BigDecimal; @@ -33,14 +32,10 @@ public class UdiRelevanceResponse { * 产品属性类型 0:未定义;1:设备(用于设备管理);2:耗材;3.伴随服务费 */ private Integer attributeType; - - /** * 耗材分类高值 :1:高值耗材;2.普通耗材 */ private Integer hcType; - - private Boolean useMuti; private Integer useNum; private String supName; @@ -51,6 +46,7 @@ public class UdiRelevanceResponse { private String updateUser; private String remark; + //UdiInfoEntity private String originUuid; private String nameCode; @@ -80,6 +76,7 @@ public class UdiRelevanceResponse { private String sptm; private String manufactory; private String measname; + private Integer productsType; private Integer productType; private String scbssfbhph; private String scbssfbhxlh; @@ -103,6 +100,7 @@ public class UdiRelevanceResponse { private String basicPrductRemak7; private String basicPrductRemak8; private BigDecimal price; + private String PRId; private Boolean isSelect; @@ -115,38 +113,60 @@ public class UdiRelevanceResponse { private Integer recentDateTime; private Integer isDateBy; private String relCode; + private int index; + + private int reCount; //关联查询字典 private String unitFk; //供应商ID private String companyName; //供应商名称 + //手持终端下载需要主键 private Long relId; private boolean dispatch; //是否可配送 - private Boolean groupBuy; //是否集采产品 + private boolean groupBuy; //是否集采产品 private boolean needCert; //是否需要资质材料 - + private Boolean splitEnable; + private Boolean autoCode; private String classifyName; //物资分类名称 + private Integer zdcfsycs; - private String certIdFk; - + private String customerId; private String sfwblztlcp; private String cgzmraqxgxx; private String sfbjwycxsy; - private String zdcfsycs; private String sfwwjbz; private String syqsfxyjxmj; private String mjfs; private String categoryName; - private String cphhhbh; - + private Integer count; + private Long deId; /** * 系统新增需要上传 */ private Boolean newNeedUpload; - private Boolean isStack; + /** + * 上传状态 0:未上传;1:已上传; + */ + private Integer uploadFlag; + + /** + * 上传日志信息 + */ + private String uploadMsg; + + + private Integer bpcrid; + + private String hslbName; + + private String supId; + + private Long relIdFk; + /** * 一级分类名称(学科,品名) @@ -159,25 +179,31 @@ public class UdiRelevanceResponse { * 二级分类名称(用途、品目) */ @TableField(value = "catalogname2") - @ApiModelProperty(value="二级分类名称(用途、品目)") + @ApiModelProperty(value = "二级分类名称(用途、品目)") private String catalogname2; /** * 三级分类名称(部位、功能、品种) */ @TableField(value = "catalogname3") - @ApiModelProperty(value="三级分类名称(部位、功能、品种)") + @ApiModelProperty(value = "三级分类名称(部位、功能、品种)") private String catalogname3; /** * 耗材材质 */ @TableField(value = "matrial") - @ApiModelProperty(value="耗材材质") + @ApiModelProperty(value = "耗材材质") private String matrial; - private Integer requireScanCode; + /** + * 类型:1:定数包,内部使用;2:项目、组套外部关联 + */ + @TableField(value = "destinyType") + @ApiModelProperty(value = "类型:1:定数包,内部使用;2:项目、组套外部关联") + private Integer destinyType; + private Integer requireScanCode; /** * 制剂规格 @@ -217,14 +243,43 @@ public class UdiRelevanceResponse { private String useLevelDi; private String useLevelUnit; private Integer useLeverCount; - private String payFeeCode; + + /** + * 当前层级包含流通层级使用数量 + */ + private Integer bhltcjsl; + + /** + * 当前层级包含使用层级数量 + */ + private Integer bhsycjsl; + + + /** + * 下级单位 + */ + private String xjdw; + + /** + * 流通允许采集的最大层级 + */ + private Integer distributeMaxLevel; + + /** - * 药品新增数据 + * 使用允许采集的最大层级 */ + private Integer useMaxLevel; + private Long productId; + /** + * 工位预警数量 + */ + private Integer workPlaceCount; + private Integer type; public int getBhzxxsbzsl() { if (bhzxxsbzsl == null || bhzxxsbzsl == 0) { @@ -253,8 +308,9 @@ public class UdiRelevanceResponse { } public Boolean getAllowNoSerial() { + if (allowNoSerial == null) - return false; + return true; return allowNoSerial; } @@ -263,4 +319,15 @@ public class UdiRelevanceResponse { return false; return isUseDy; } + + private Integer distributeLevel; + private Integer useLevel; + + + /** + * 拆包后可用时长(小时) + */ + @TableField(value = "unpackUseTime") + private Integer unpackUseTime; + } 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 f6af8c3b..cd4f77e3 100644 --- a/src/main/java/com/glxp/api/service/basic/BasicBackUpdateProductService.java +++ b/src/main/java/com/glxp/api/service/basic/BasicBackUpdateProductService.java @@ -7,6 +7,7 @@ import com.glxp.api.entity.basic.UdiRelevanceEntity; import com.glxp.api.entity.system.SystemParamConfigEntity; import com.glxp.api.entity.thrsys.ThrProductsEntity; import com.glxp.api.entity.thrsys.ThrSystemEntity; +import com.glxp.api.exception.JsonException; import com.glxp.api.http.ErpBasicClient; import com.glxp.api.req.thrsys.FilterThrProductsRequest; import com.glxp.api.res.PageSimpleResponse; @@ -174,6 +175,9 @@ public class BasicBackUpdateProductService { } + @Resource + UdiContrastService udiContrastService; + //定时或一键下载更新本地所有产品信息 @Async public void loadLocal(FilterThrProductsRequest filterThrProductsRequest, String thirdSysId, String onHandUrl, Boolean isEnable) { @@ -187,65 +191,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 7f8c6a10..0e9d01fd 100644 --- a/src/main/java/com/glxp/api/service/basic/UdiContrastService.java +++ b/src/main/java/com/glxp/api/service/basic/UdiContrastService.java @@ -7,17 +7,26 @@ import com.glxp.api.constant.ConstantStatus; 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.BasicInsMaterialEntity; import com.glxp.api.entity.thrsys.ThrProductsAddDiEntity; 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.NmpaUdiClient; import com.glxp.api.req.basic.UdiCombineRequest; import com.glxp.api.req.basic.FilterUdiRelRequest; +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.basic.UdiRelevanceResponse; +import com.glxp.api.service.thrsys.BasicInsMaterialService; import com.glxp.api.service.thrsys.ThrProductsService; +import com.glxp.api.service.thrsys.YbDrugService; import com.glxp.api.util.CustomUtil; import com.glxp.api.util.DateUtil; import com.glxp.api.util.GennerOrderUtils; +import com.glxp.api.util.IntUtil; import com.glxp.api.util.udi.UdiInfoUtil; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; @@ -45,6 +54,11 @@ public class UdiContrastService { @Resource NmpaUdiClient udiDlHttpClient; + @Resource + BasicInsMaterialService basicInsMaterialService; + @Resource + YbDrugService ybDrugService; + public boolean isExit(String originUuid, String mainId, String thirdSys) { @@ -178,14 +192,19 @@ public class UdiContrastService { udiRelevanceEntity.setId(gennerOrderUtils.getRelId()); udiRelevanceEntity.setIsDisable(false); - if (udiInfoEntities.get(0).getDiType() == ConstantStatus.DI_TYPE_SYDY) { - udiRelevanceEntity.setIsUseDy(true); - } - + UdiProductEntity udiProductEntity = getDiProduct(udiInfoEntities); + udiRelevanceEntity = udiRelevanceService.insertDefaultLevel(udiRelevanceEntity, udiProductEntity); udiRelevanceService.insertUdiRelevance(udiRelevanceEntity); insertUdiInfos(udiInfoEntities); } + public UdiProductEntity getDiProduct(List udiInfoEntities) { + return udiInfoEntities.stream() + .filter(udiProductEntity -> IntUtil.value(udiProductEntity.getDiType()) == 1) + .findFirst() + .orElse(null); + } + public void createOnlyMainId(String mainId) { FilterThrProductsRequest filterThrProductsRequest = new FilterThrProductsRequest(); @@ -199,25 +218,152 @@ public class UdiContrastService { udiRelevanceEntity.setUuid(CustomUtil.getUUId()); udiRelevanceEntity.setSupName(thrProductsEntity.getSupName()); udiRelevanceEntity.setId(gennerOrderUtils.getRelId()); + udiRelevanceEntity.setSplitEnable(true); + udiRelevanceEntity.setAutoCode(true); udiRelevanceEntity.setIsDisable(false); - udiRelevanceService.insertUdiRelevance(udiRelevanceEntity); - UdiProductEntity udiProductEntity = new UdiProductEntity(); - BeanUtils.copyProperties(thrProductsEntity, udiProductEntity); - udiProductEntity.setNameCode(thrProductsEntity.getCode()); - udiProductEntity.setCpmctymc(thrProductsEntity.getName()); - udiProductEntity.setManufactory(thrProductsEntity.getManufactory()); - udiProductEntity.setYlqxzcrbarmc(thrProductsEntity.getManufactory()); - udiProductEntity.setGgxh(thrProductsEntity.getSpec()); - udiProductEntity.setZczbhhzbapzbh(thrProductsEntity.getRegisterNo()); - udiProductEntity.setUuid(udiRelevanceEntity.getUuid()); - udiProductEntity.setProductType(ConstantStatus.PRODUCT_TYPE_THIRD); - udiProductEntity.setDiType(1); - udiProductEntity.setScbssfbhph("否"); - udiProductEntity.setScbssfbhscrq("否"); - udiProductEntity.setScbssfbhsxrq("否"); - udiProductEntity.setScbssfbhxlh("否"); - udiProductEntity = UdiInfoUtil.initUdiInfoEntity(udiProductEntity); - udiProductService.insertUdiInfo(udiProductEntity); + + BasicInsMaterialEntity basicInsMaterialEntity = null; + if (thrProductsEntity.getYbbm() != null) { + //判断药品还是器械 + if (thrProductsEntity.getProductType() == 2) { + 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); + udiProductEntity.setId(IdUtil.getSnowflakeNextId()); + if (list.size() > 0) { + YbDrug ybDrug = list.get(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.setPackLevel(1 + ""); + //生产厂家 + udiProductEntity.setManufactory(ybDrug.getCompanyNameSc()); + //商品条码 essentialDrugMarkName sptm +// udiProductEntity.setSptm(ybDrug.getBusinessLicense()); + udiProductEntity.setPrepnUnit(ybDrug.getRealityMedicinemodel()); + } + + 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("0.00"); + } + udiProductEntity = UdiInfoUtil.initUdiInfoEntity(udiProductEntity); + udiProductService.insertUdiInfo(udiProductEntity); +// setLevel(udiRelevanceEntity.getUuid()); + UdiProductEntity byUuid = udiProductService.findByUuid(udiRelevanceEntity.getUuid()); + udiRelevanceEntity = udiRelevanceService.insertDefaultLevel(udiRelevanceEntity, byUuid); + udiRelevanceService.insertUdiRelevance(udiRelevanceEntity); + } else { + //器械 + ThrInsMaterialFeeRequest request = new ThrInsMaterialFeeRequest(); + request.setMedCatalogCode(thrProductsEntity.getYbbm()); + List basicInsMaterialEntities = basicInsMaterialService.filterList(request); + 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, "系统繁忙,"); + } + 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); + } + } @@ -255,30 +401,34 @@ public class UdiContrastService { public Long createOnlyUuid(UdiCombineRequest udiCombineRequest, String key) { List udiInfoEntities = udiDlHttpClient.getOrUpdateByUuid(key); + UdiRelevanceEntity udiRelevanceEntity = new UdiRelevanceEntity(); + udiRelevanceEntity.setUpdateTime(new Date()); + udiRelevanceEntity.setModifyTime(new Date()); + udiRelevanceEntity.setUuid(udiInfoEntities.get(0).getUuid()); + if (StrUtil.isNotBlank(udiCombineRequest.getSupName())) { + udiRelevanceEntity.setSupName(udiCombineRequest.getSupName()); + } + Long relId = gennerOrderUtils.getRelId(); + udiRelevanceEntity.setId(relId); + udiRelevanceEntity.setIsDisable(false); + UdiProductEntity udiProductEntity = udiRelevanceService.getDiProduct(udiInfoEntities); + udiRelevanceEntity = udiRelevanceService.insertDefaultLevel(udiRelevanceEntity, udiProductEntity); + insertUdiInfos(udiInfoEntities); + udiRelevanceService.insertUdiRelevance(udiRelevanceEntity); + return relId; + } - if (udiInfoEntities == null || udiInfoEntities.size() == 0) { - //为了处理审核时的线上问题 - int a = 9999; - return Long.valueOf(a); + + public Integer setMedicareType(String insuranceDrugClass) { + if ("甲".equals(insuranceDrugClass)) { + return 1; + } else if ("乙".equals(insuranceDrugClass)) { + return 2; + } else if ("丙".equals(insuranceDrugClass)) { + return 3; } else { - UdiRelevanceEntity udiRelevanceEntity = new UdiRelevanceEntity(); - udiRelevanceEntity.setUpdateTime(new Date()); - udiRelevanceEntity.setModifyTime(new Date()); - udiRelevanceEntity.setUuid(udiInfoEntities.get(0).getUuid()); - if (StrUtil.isNotBlank(udiCombineRequest.getSupName())) { - udiRelevanceEntity.setSupName(udiCombineRequest.getSupName()); - } - if (udiInfoEntities.get(0).getDiType() == ConstantStatus.DI_TYPE_SYDY) { - udiRelevanceEntity.setIsUseDy(true); - } - Long relId = gennerOrderUtils.getRelId(); - udiRelevanceEntity.setId(relId); - udiRelevanceEntity.setIsDisable(false); - udiRelevanceService.insertUdiRelevance(udiRelevanceEntity); - insertUdiInfos(udiInfoEntities); - return relId; + return null; // 或者 throw new IllegalArgumentException("未知的医保类别"); } - } public void insertUdiInfos(List udiInfoEntities) { @@ -293,4 +443,49 @@ public class UdiContrastService { } } + public Boolean insertProduct(ThrProductsEntity thrProductsEntity, BasicInsMaterialEntity basicInsMaterialEntity, UdiRelevanceEntity udiRelevanceEntity) { + //没有医保编码 + 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.setPackUnit(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); + udiProductEntity.setPhysicType(3); + } 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 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 1a696ee4..bfdd208a 100644 --- a/src/main/java/com/glxp/api/service/basic/UdiProductService.java +++ b/src/main/java/com/glxp/api/service/basic/UdiProductService.java @@ -1,10 +1,12 @@ package com.glxp.api.service.basic; import com.glxp.api.entity.basic.UdiProductEntity; +import com.glxp.api.entity.basic.UdiRelevanceEntity; 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.res.DiLevelResponse; import com.glxp.api.res.basic.UdiRelevanceResponse; import java.util.List; @@ -70,4 +72,14 @@ public interface UdiProductService { AddProductRequest addDrug(AddProductRequest addProductRequest); void saveOrUpadateLevelDrug(UpdateLevelDrugRequest updateLevelDrugRequest); + + List findLevelByRelId(Long id); + + void calculateDistCount(UdiProductEntity udiProductEntity, UdiRelevanceEntity udiRelevanceEntity); + + void calculateUseCount(UdiProductEntity udiProductEntity, UdiRelevanceEntity udiRelevanceEntity); + + void updateLevelCount(UdiRelevanceEntity udiRelevanceEntity); + + boolean deleteByNameCode(String nameCode); } diff --git a/src/main/java/com/glxp/api/service/basic/UdiRelevanceService.java b/src/main/java/com/glxp/api/service/basic/UdiRelevanceService.java index fbe8c76d..1aad4f4d 100644 --- a/src/main/java/com/glxp/api/service/basic/UdiRelevanceService.java +++ b/src/main/java/com/glxp/api/service/basic/UdiRelevanceService.java @@ -2,6 +2,7 @@ package com.glxp.api.service.basic; import com.baomidou.mybatisplus.extension.service.IService; +import com.glxp.api.entity.basic.UdiProductEntity; import com.glxp.api.entity.basic.UdiRelevanceEntity; import com.glxp.api.req.basic.FilterUdiRelRequest; import com.glxp.api.res.basic.UdiRelevanceResponse; @@ -104,4 +105,7 @@ public interface UdiRelevanceService extends IService { Integer findPurType(Long relId); + UdiRelevanceEntity insertDefaultLevel(UdiRelevanceEntity udiRelevanceEntity, UdiProductEntity udiProductEntity); + + UdiProductEntity getDiProduct(List udiInfoEntities); } 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 e047abf0..a7840020 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 @@ -3,6 +3,7 @@ package com.glxp.api.service.basic.impl; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.github.pagehelper.PageHelper; import com.glxp.api.constant.ConstantStatus; import com.glxp.api.dao.basic.UdiProductDao; @@ -14,20 +15,23 @@ 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.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.util.IntUtil; +import com.glxp.api.util.PinyinUtils; import com.glxp.api.util.udi.FilterUdiUtils; +import org.apache.commons.lang3.exception.ExceptionUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; -import java.util.Collections; -import java.util.Date; -import java.util.List; -import java.util.Optional; +import java.util.*; +import java.util.stream.Collectors; @Service @Transactional(rollbackFor = Exception.class) @@ -42,6 +46,8 @@ public class UdiProductServiceImpl implements UdiProductService { @Resource private CustomerService customerService; + + private static final Logger logger = LoggerFactory.getLogger(UdiProductService.class); @Override public List filterUdiInfo(FilterUdiRelRequest filterUdiRelRequest) { if (filterUdiRelRequest == null) { @@ -124,27 +130,42 @@ public class UdiProductServiceImpl implements UdiProductService { return udiProductEntities.get(0); return null; } - - @Override public boolean insertUdiInfo(UdiProductEntity udiProductEntity) { - udiProductEntity.setUpdateTime(new Date()); if (udiProductEntity.getId() == null) { udiProductEntity.setId(IdUtil.getSnowflakeNextId()); } + if (StrUtil.isNotBlank(udiProductEntity.getCpmctymc()) && StrUtil.isBlank(udiProductEntity.getPinyinInitial())) { + try { + String pinyin = PinyinUtils.converterToFirstSpell(udiProductEntity.getCpmctymc()); + udiProductEntity.setPinyinInitial(pinyin); + } catch (Exception e) { + logger.error(ExceptionUtils.getStackTrace(e)); + e.printStackTrace(); + } - //医保编码解析 - String catalogcode = udiProductEntity.getCatalogcode(); - if (StrUtil.isNotEmpty(catalogcode) && catalogcode.length() >= 7) { - Integer catalogcode1 = Integer.valueOf(catalogcode.substring(1, 3)); - Integer catalogcode2 = Integer.valueOf(catalogcode1 + catalogcode.substring(3, 5)); - Integer catalogcode3 = Integer.valueOf(catalogcode2 + catalogcode.substring(5, 7)); - udiProductEntity.setCatalogCode1(catalogcode1); - udiProductEntity.setCatalogCode2(catalogcode2); - udiProductEntity.setCatalogCode3(catalogcode3); } - return udiProductDao.insertUdiInfo(udiProductEntity); } +// @Override +// public boolean insertUdiInfo(UdiProductEntity udiProductEntity) { +// udiProductEntity.setUpdateTime(new Date()); +// if (udiProductEntity.getId() == null) { +// udiProductEntity.setId(IdUtil.getSnowflakeNextId()); +// } +// +// //医保编码解析 +// String catalogcode = udiProductEntity.getCatalogcode(); +// if (StrUtil.isNotEmpty(catalogcode) && catalogcode.length() >= 7) { +// Integer catalogcode1 = Integer.valueOf(catalogcode.substring(1, 3)); +// Integer catalogcode2 = Integer.valueOf(catalogcode1 + catalogcode.substring(3, 5)); +// Integer catalogcode3 = Integer.valueOf(catalogcode2 + catalogcode.substring(5, 7)); +// udiProductEntity.setCatalogCode1(catalogcode1); +// udiProductEntity.setCatalogCode2(catalogcode2); +// udiProductEntity.setCatalogCode3(catalogcode3); +// } +// +// return udiProductDao.insertUdiInfo(udiProductEntity); +// } @Override public boolean insertUdiInfos(List udiInfoEntities) { @@ -159,38 +180,48 @@ public class UdiProductServiceImpl implements UdiProductService { return udiProductDao.updateUdiInfo(udiProductEntity); } - @Override +// @Override +// public boolean updateUdiInfoByUuid(UdiProductEntity udiProductEntity) { +// if (StrUtil.isEmpty(udiProductEntity.getUuid())) +// return false; +// udiProductEntity.setUpdateTime(new Date()); +// //医保编码解析 +// String catalogcode = udiProductEntity.getCatalogcode(); +// if (StrUtil.isNotEmpty(catalogcode) && catalogcode.length() >= 7) { +// Integer catalogcode1 = Integer.valueOf(catalogcode.substring(1, 3)); +// Integer catalogcode2 = Integer.valueOf(catalogcode1 + catalogcode.substring(3, 5)); +// Integer catalogcode3 = Integer.valueOf(catalogcode2 + catalogcode.substring(5, 7)); +// udiProductEntity.setCatalogCode1(catalogcode1); +// udiProductEntity.setCatalogCode2(catalogcode2); +// udiProductEntity.setCatalogCode3(catalogcode3); +// } +// return udiProductDao.updateUdiInfoByUuid(udiProductEntity); +// } + public boolean updateUdiInfoByUuid(UdiProductEntity udiProductEntity) { if (StrUtil.isEmpty(udiProductEntity.getUuid())) return false; - udiProductEntity.setUpdateTime(new Date()); - //医保编码解析 - String catalogcode = udiProductEntity.getCatalogcode(); - if (StrUtil.isNotEmpty(catalogcode) && catalogcode.length() >= 7) { - Integer catalogcode1 = Integer.valueOf(catalogcode.substring(1, 3)); - Integer catalogcode2 = Integer.valueOf(catalogcode1 + catalogcode.substring(3, 5)); - Integer catalogcode3 = Integer.valueOf(catalogcode2 + catalogcode.substring(5, 7)); - udiProductEntity.setCatalogCode1(catalogcode1); - udiProductEntity.setCatalogCode2(catalogcode2); - udiProductEntity.setCatalogCode3(catalogcode3); - } return udiProductDao.updateUdiInfoByUuid(udiProductEntity); } +// @Override +// public boolean updateUdiInfoById(UdiProductEntity udiProductEntity) { +// udiProductEntity.setUpdateTime(new Date()); +// //医保编码解析 +// String catalogcode = udiProductEntity.getCatalogcode(); +// if (StrUtil.isNotEmpty(catalogcode) && catalogcode.length() >= 7) { +// Integer catalogcode1 = Integer.valueOf(catalogcode.substring(1, 3)); +// Integer catalogcode2 = Integer.valueOf(catalogcode1 + catalogcode.substring(3, 5)); +// Integer catalogcode3 = Integer.valueOf(catalogcode2 + catalogcode.substring(5, 7)); +// udiProductEntity.setCatalogCode1(catalogcode1); +// udiProductEntity.setCatalogCode2(catalogcode2); +// udiProductEntity.setCatalogCode3(catalogcode3); +// } +// +// return udiProductDao.updateUdiInfoById(udiProductEntity); +// } @Override public boolean updateUdiInfoById(UdiProductEntity udiProductEntity) { - udiProductEntity.setUpdateTime(new Date()); - //医保编码解析 - String catalogcode = udiProductEntity.getCatalogcode(); - if (StrUtil.isNotEmpty(catalogcode) && catalogcode.length() >= 7) { - Integer catalogcode1 = Integer.valueOf(catalogcode.substring(1, 3)); - Integer catalogcode2 = Integer.valueOf(catalogcode1 + catalogcode.substring(3, 5)); - Integer catalogcode3 = Integer.valueOf(catalogcode2 + catalogcode.substring(5, 7)); - udiProductEntity.setCatalogCode1(catalogcode1); - udiProductEntity.setCatalogCode2(catalogcode2); - udiProductEntity.setCatalogCode3(catalogcode3); - } - return udiProductDao.updateUdiInfoById(udiProductEntity); } @@ -227,6 +258,12 @@ public class UdiProductServiceImpl implements UdiProductService { @Override + /** + * 新增/编辑药品信息 + * + * @param addProductRequest + * @return + */ /** * 新增/编辑药品信息 * @@ -253,20 +290,29 @@ public class UdiProductServiceImpl implements UdiProductService { if (IntUtil.value(udiProductEntity.getPackLevel()) == 1) { udiProductEntity.setDiType(1); } - udiProductDao.updateUdiInfo(udiProductEntity); - - //修改关联表 - udiRelevanceEntity.setUseLeverCount(addProductRequest.getUseLeverCount()); - udiRelevanceEntity.setUseLevelDi(addProductRequest.getUseLevelDi()); - udiRelevanceEntity.setUseLevelUnit(addProductRequest.getUseLevelUnit()); - udiRelevanceEntity.setDistributeLevelDi(addProductRequest.getDistributeLevelDi()); - udiRelevanceEntity.setDistributeLevelUnit(addProductRequest.getDistributeLevelUnit()); - udiRelevanceEntity.setDistributeLevelCount(addProductRequest.getDistributeLevelCount()); - udiRelevanceEntity.setPayFeeCode(addProductRequest.getPayFeeCode()); - udiRelevanceEntity.setUpdateTime(new Date()); - udiRelevanceDao.updateById(udiRelevanceEntity); - + int i = udiProductDao.updateById(udiProductEntity); + if (i == 0) { + throw new JsonException(500, "更新错误"); + } } + + //修改关联表 +// udiRelevanceEntity.setUseLeverCount(addProductRequest.getUseLeverCount()); + udiRelevanceEntity.setSplitEnable(addProductRequest.getSplitEnable()); + udiRelevanceEntity.setAutoCode(addProductRequest.getAutoCode()); +// udiRelevanceEntity.setUseLevelDi(addProductRequest.getUseLevelDi()); +// udiRelevanceEntity.setUseLevelUnit(addProductRequest.getUseLevelUnit()); + udiRelevanceEntity.setUseLevel(addProductRequest.getUseLevel()); +// udiRelevanceEntity.setDistributeLevelDi(addProductRequest.getDistributeLevelDi()); +// udiRelevanceEntity.setDistributeLevelUnit(addProductRequest.getDistributeLevelUnit()); +// udiRelevanceEntity.setDistributeLevelCount(addProductRequest.getDistributeLevelCount()); + udiRelevanceEntity.setDistributeLevel(addProductRequest.getDistributeLevel()); + udiRelevanceEntity.setPayFeeCode(addProductRequest.getPayFeeCode()); + udiRelevanceEntity.setUseMaxLevel(addProductRequest.getUseMaxLevel()); + udiRelevanceEntity.setDistributeMaxLevel(addProductRequest.getDistributeMaxLevel()); + udiRelevanceEntity.setUnpackUseTime(addProductRequest.getUnpackUseTime()); + udiRelevanceDao.updateById(udiRelevanceEntity); + updateLevelCount(udiRelevanceEntity); } else { udiRelevanceEntity = new UdiRelevanceEntity(); udiRelevanceEntity.setId(IdUtil.getSnowflakeNextId()); @@ -274,13 +320,41 @@ public class UdiProductServiceImpl implements UdiProductService { udiRelevanceEntity.setIsUseDy(false); udiRelevanceEntity.setUuid(IdUtil.getSnowflakeNextId() + ""); udiRelevanceEntity.setNeedCert(false); + udiRelevanceEntity.setSplitEnable(true); + udiRelevanceEntity.setAutoCode(true); udiRelevanceEntity.setPurType(1); udiRelevanceEntity.setProductsType(2); udiRelevanceEntity.setAttributeType(addProductRequest.getAttributeType()); udiRelevanceEntity.setHcType(addProductRequest.getHcType()); udiRelevanceEntity.setPayFeeCode(addProductRequest.getPayFeeCode()); - - + udiRelevanceEntity.setUnpackUseTime(addProductRequest.getUnpackUseTime()); +// if (addProductRequest.getDistributeLevelDi() != null) { +// udiRelevanceEntity.setDistributeLevelDi(addProductRequest.getDistributeLevelDi()); +// } +// if (addProductRequest.getDistributeLevelCount() != null) { +// udiRelevanceEntity.setDistributeLevelCount(addProductRequest.getDistributeLevelCount()); +// } +// if (addProductRequest.getDistributeLevelUnit() != null) { +// udiRelevanceEntity.setDistributeLevelUnit(addProductRequest.getDistributeLevelUnit()); +// } +// +// if (addProductRequest.getUseLevelDi() != null) { +// udiRelevanceEntity.setUseLevelDi(addProductRequest.getUseLevelDi()); +// } +// if (addProductRequest.getUseLevelUnit() != null) { +// udiRelevanceEntity.setUseLevelUnit(addProductRequest.getUseLevelUnit()); +// } +// if (addProductRequest.getUseLeverCount() != null) { +// udiRelevanceEntity.setUseLeverCount(addProductRequest.getUseLeverCount()); +// } + if (addProductRequest.getDistributeLevel() != null) { + udiRelevanceEntity.setDistributeLevel(addProductRequest.getDistributeLevel()); + } + if (addProductRequest.getUseLevel() != null) { + udiRelevanceEntity.setUseLevel(addProductRequest.getUseLevel()); + } + udiRelevanceEntity.setUseMaxLevel(addProductRequest.getUseMaxLevel()); + udiRelevanceEntity.setDistributeMaxLevel(addProductRequest.getDistributeMaxLevel()); if (CollUtil.isNotEmpty(addProductRequest.getDrugLevelLists())) { for (UpdateLevelDrugRequest updateLevelDrugRequest : addProductRequest.getDrugLevelLists()) { UdiProductEntity udiProductEntity1 = udiProductDao.findByNameCode(updateLevelDrugRequest.getNameCode()); @@ -291,10 +365,11 @@ public class UdiProductServiceImpl implements UdiProductService { // BeanUtils.copyProperties(updateLevelDrugRequest, udiProductEntity); BeanUtils.copyProperties(addProductRequest, udiProductEntity); udiProductEntity.setNameCode(updateLevelDrugRequest.getNameCode()); - udiProductEntity.setBhxjsl(updateLevelDrugRequest.getBhxjsl()); + udiProductEntity.setBhxjsl(updateLevelDrugRequest.getMyBhxjsl()); udiProductEntity.setPackUnit(updateLevelDrugRequest.getPackUnit()); udiProductEntity.setSjcpbm(updateLevelDrugRequest.getSjcpbm()); udiProductEntity.setCpmctymc(addProductRequest.getCpmctymc()); + udiProductEntity.setPackLevel(String.valueOf(updateLevelDrugRequest.getPackLevel())); udiProductEntity.setUuid(udiRelevanceEntity.getUuid()); udiProductEntity.setProductsType(2); udiProductEntity.setGgxh(addProductRequest.getSpec()); @@ -302,8 +377,7 @@ public class UdiProductServiceImpl implements UdiProductService { udiProductEntity.setZczbhhzbapzbh(addProductRequest.getRegisterNo()); udiProductEntity.setPackLevel(updateLevelDrugRequest.getPackLevel() + ""); udiProductEntity.setUuid(udiProductEntity.getUuid()); - //药品扫码 过滤 三期 - udiProductEntity.setAllowNoSerial(true); + udiProductEntity.setPrice(udiProductEntity.getPrice()); if (IntUtil.value(udiProductEntity.getPackLevel()) == 1 || addProductRequest.getDrugLevelLists().size() == 1) { udiProductEntity.setDiType(1); if (IntUtil.value(udiProductEntity.getPackLevel()) == 1) { @@ -318,6 +392,7 @@ public class UdiProductServiceImpl implements UdiProductService { } udiRelevanceDao.insertUdiRelevance(udiRelevanceEntity); + updateLevelCount(udiRelevanceEntity); } return addProductRequest; } @@ -328,31 +403,31 @@ public class UdiProductServiceImpl implements UdiProductService { if (updateLevelDrugRequest.getRelId() != null) { UdiRelevanceEntity udiRelevanceEntity = udiRelevanceDao.selectById(updateLevelDrugRequest.getRelId()); - UdiProductEntity udiProductEntity1 = udiProductDao.findByNameCode(updateLevelDrugRequest.getNameCode()); + UdiProductEntity byUuids = udiProductDao.findById(updateLevelDrugRequest.getProductId() + ""); + UdiProductEntity udiProductEntity1 = null; + + if (updateLevelDrugRequest.getProductId() != null) { + udiProductEntity1 = byUuids; + } else { + udiProductEntity1 = udiProductDao.findByNameCode(updateLevelDrugRequest.getNameCode()); + } + if (udiProductEntity1 != null) { - //更新 - udiProductEntity1.setNameCode(updateLevelDrugRequest.getNameCode()); - udiProductEntity1.setPackLevel(updateLevelDrugRequest.getPackLevel() + ""); - udiProductEntity1.setPackUnit(updateLevelDrugRequest.getPackUnit()); - udiProductEntity1.setSjcpbm(updateLevelDrugRequest.getSjcpbm()); - udiProductEntity1.setBhxjcpbm(updateLevelDrugRequest.getBhxjcpbm()); - udiProductEntity1.setBhxjsl(updateLevelDrugRequest.getBhxjsl()); + updateUdiProductEntity(udiProductEntity1, updateLevelDrugRequest); udiProductDao.updateById(udiProductEntity1); } else { - //新增 - udiProductEntity1 = udiProductDao.findByUuid(udiRelevanceEntity.getUuid()); - udiProductEntity1.setNameCode(updateLevelDrugRequest.getNameCode()); - udiProductEntity1.setPackLevel(updateLevelDrugRequest.getPackLevel() + ""); - udiProductEntity1.setPackUnit(updateLevelDrugRequest.getPackUnit()); - udiProductEntity1.setSjcpbm(updateLevelDrugRequest.getSjcpbm()); - udiProductEntity1.setBhxjcpbm(updateLevelDrugRequest.getBhxjcpbm()); - udiProductEntity1.setBhxjsl(updateLevelDrugRequest.getBhxjsl()); + udiProductEntity1 = new UdiProductEntity(); udiProductEntity1.setUuid(udiRelevanceEntity.getUuid()); udiProductEntity1.setId(IdUtil.getSnowflakeNextId()); + updateUdiProductEntity(udiProductEntity1, updateLevelDrugRequest); udiProductDao.insert(udiProductEntity1); } + updateLevelCount(udiRelevanceEntity); +// if (IntUtil.value(udiProductEntity1.getPackLevel()) == 1) { +// calculateDistCount(udiProductEntity1, udiRelevanceEntity); +// calculateUseCount(udiProductEntity1, udiRelevanceEntity); +// } } else { - //必须先提交后才能保存 UdiProductEntity udiProductEntity1 = udiProductDao.findByNameCode(updateLevelDrugRequest.getNameCode()); if (udiProductEntity1 != null) { throw new JsonException(500, "层级编码已存在!"); @@ -360,16 +435,63 @@ public class UdiProductServiceImpl implements UdiProductService { } } + private void updateUdiProductEntity(UdiProductEntity entity, UpdateLevelDrugRequest request) { + entity.setNameCode(request.getNameCode()); + entity.setPackLevel(String.valueOf(request.getPackLevel())); + entity.setPackUnit(request.getPackUnit()); + entity.setSjcpbm(request.getSjcpbm()); + entity.setBhxjcpbm(request.getBhxjcpbm()); + entity.setBhxjsl(request.getMyBhxjsl()); + entity.setDiType(request.getDiType()); + entity.setXjdw(request.getXjdw()); + } + + @Override + public List findLevelByRelId(Long relId) { + UdiRelevanceEntity udiRelevanceEntity = udiRelevanceDao.selectById(relId); + List udiInfoEntities = findByUuids(udiRelevanceEntity.getUuid()); + List diLevelResponses = new ArrayList<>(); + if (CollUtil.isNotEmpty(udiInfoEntities)) { + + Map> groupedByLevel = udiInfoEntities.stream() + .collect(Collectors.groupingBy(UdiProductEntity::getPackLevel)); + groupedByLevel.forEach((level, entities) -> { + UdiProductEntity udiProductEntity = entities.get(0); + DiLevelResponse diLevelResponse = new DiLevelResponse(); + diLevelResponse.setLevelUnit(udiProductEntity.getLevelUnit()); + diLevelResponse.setPackLevel(IntUtil.value(udiProductEntity.getPackLevel())); + diLevelResponse.setDiType(udiProductEntity.getDiType()); + diLevelResponse.setXjdw(udiProductEntity.getXjdw()); + diLevelResponse.setPackUnit(udiProductEntity.getPackUnit()); + diLevelResponse.setBhxjsl(udiProductEntity.getBhxjsl()); + diLevelResponses.add(diLevelResponse); + if (udiProductEntity.getProductsType() == 2 && IntUtil.value(udiProductEntity.getPackLevel()) == 1) { + DiLevelResponse diLevelResponse1 = new DiLevelResponse(); + diLevelResponse1.setLevelUnit(udiProductEntity.getXjdw()); + diLevelResponse1.setPackLevel(0); + diLevelResponse1.setDiType(ConstantStatus.DITYPE_SYDY); + diLevelResponse1.setXjdw(udiProductEntity.getXjdw()); + diLevelResponse1.setPackUnit(udiProductEntity.getXjdw()); + diLevelResponse1.setBhxjsl(1); + diLevelResponses.add(diLevelResponse1); + } + }); + } + Collections.sort(diLevelResponses, Comparator.comparing(DiLevelResponse::getPackLevel)); + return diLevelResponses; + } + /** * 根据当前层级标识计算流通拆零数量 */ public void calculateDistCount(UdiProductEntity udiProductEntity, UdiRelevanceEntity udiRelevanceEntity) { - List udiProductEntities = udiProductDao.findByOriginUuid(udiProductEntity.getUuid()); + List udiProductEntities = udiProductDao.findByUuids(udiProductEntity.getUuid()); CountWrapper xjCountWrapper = new CountWrapper(); findUltimateEntity(udiProductEntity, udiProductEntities, xjCountWrapper); - udiRelevanceEntity.setDistributeLevelDi(udiProductEntity.getNameCode()); - udiRelevanceEntity.setDistributeLevelUnit(udiProductEntity.getPackUnit()); +// udiRelevanceEntity.setDistributeLevelDi(udiProductEntity.getNameCode()); +// udiRelevanceEntity.setDistributeLevelUnit(udiProductEntity.getPackUnit()); + udiRelevanceEntity.setDistributeLevel(IntUtil.value(udiProductEntity.getPackLevel())); udiRelevanceEntity.setDistributeLevelCount(xjCountWrapper.getCount()); } @@ -377,12 +499,13 @@ public class UdiProductServiceImpl implements UdiProductService { * 根据当前层级标识计算使用拆零数量 */ public void calculateUseCount(UdiProductEntity udiProductEntity, UdiRelevanceEntity udiRelevanceEntity) { - List udiProductEntities = udiProductDao.findByOriginUuid(udiProductEntity.getUuid()); + List udiProductEntities = udiProductDao.findByUuids(udiProductEntity.getUuid()); CountWrapper xjCountWrapper = new CountWrapper(); findUltimateEntity(udiProductEntity, udiProductEntities, xjCountWrapper); - udiRelevanceEntity.setUseLevelDi(udiProductEntity.getNameCode()); - udiRelevanceEntity.setUseLevelUnit(udiProductEntity.getPackUnit()); - udiRelevanceEntity.setUseLeverCount(xjCountWrapper.getCount()); +// udiRelevanceEntity.setUseLevelDi(udiProductEntity.getNameCode()); +// udiRelevanceEntity.setUseLevelUnit(udiProductEntity.getPackUnit()); + udiRelevanceEntity.setUseLevel(IntUtil.value(udiProductEntity.getPackLevel())); +// udiRelevanceEntity.setUseLeverCount(xjCountWrapper.getCount()); } public static UdiProductEntity findUltimateEntity(UdiProductEntity udiProductEntity, List udiProductEntities, CountWrapper xjCountWrapper) { @@ -403,12 +526,60 @@ public class UdiProductServiceImpl implements UdiProductService { } + /** + * 更新各个层级数量换算 + * + * @param udiRelevanceEntity + */ + public void updateLevelCount(UdiRelevanceEntity udiRelevanceEntity) { + List udiProductEntities = udiProductDao.findByUuids(udiRelevanceEntity.getUuid()); + Integer curLevel = udiRelevanceEntity.getDistributeLevel(); + List diLevelResponses = findLevelByRelId(udiRelevanceEntity.getId()); + + //更新各个层级流通时包含计量单元数量 + if (CollUtil.isNotEmpty(udiProductEntities)) { + for (UdiProductEntity udiProductEntity : udiProductEntities) { + int bhltsl = 1; + if (IntUtil.value(udiProductEntity.getPackLevel()) > curLevel) { + bhltsl = udiProductEntity.getBhxjsl(); + for (DiLevelResponse diLevelResponse : diLevelResponses) { + if (IntUtil.value(udiProductEntity.getPackLevel()) > diLevelResponse.getPackLevel() && IntUtil.value(diLevelResponse.getPackLevel()) > curLevel) { + bhltsl = bhltsl * diLevelResponse.getBhxjsl(); + } + } + } + udiProductEntity.setBhltcjsl(bhltsl); + } + } + curLevel = udiRelevanceEntity.getUseLevel(); + //更新各个层级使用时包含计量单元数量 + if (CollUtil.isNotEmpty(udiProductEntities)) { + for (UdiProductEntity udiProductEntity : udiProductEntities) { + int bhltsl = 1; + if (IntUtil.value(udiProductEntity.getPackLevel()) > curLevel) { + bhltsl = udiProductEntity.getBhxjsl(); + for (DiLevelResponse diLevelResponse : diLevelResponses) { + if (IntUtil.value(udiProductEntity.getPackLevel()) > diLevelResponse.getPackLevel() && IntUtil.value(diLevelResponse.getPackLevel()) > curLevel) { + bhltsl = bhltsl * diLevelResponse.getBhxjsl(); + } + } + } + udiProductEntity.setBhsycjsl(bhltsl); + } + } + + udiProductDao.updateBatchById(udiProductEntities); + } + + @Override + public boolean deleteByNameCode(String nameCode) { + return udiProductDao.delete(new QueryWrapper().eq("nameCode", nameCode)) > 0; + } /** * 根据当前层级标识计算流通拆零数量 */ - private void setUpdateInfo(UdiProductEntity udiProductEntity, UdiRelevanceEntity udiRelevanceEntity) { Date now = new Date(); String userId = String.valueOf(customerService.getUserBean().getId()); diff --git a/src/main/java/com/glxp/api/service/basic/impl/UdiRelevanceServiceImpl.java b/src/main/java/com/glxp/api/service/basic/impl/UdiRelevanceServiceImpl.java index d676cfdf..480ece2e 100644 --- a/src/main/java/com/glxp/api/service/basic/impl/UdiRelevanceServiceImpl.java +++ b/src/main/java/com/glxp/api/service/basic/impl/UdiRelevanceServiceImpl.java @@ -8,6 +8,7 @@ import com.github.pagehelper.PageHelper; import com.glxp.api.constant.ConstantStatus; import com.glxp.api.dao.basic.UdiRelevanceDao; 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.ThrSystemEntity; import com.glxp.api.req.basic.FilterUdiRelRequest; @@ -413,4 +414,29 @@ public class UdiRelevanceServiceImpl extends ServiceImpl().select("purType").eq("id", relId).last("limit 1")); return IntUtil.value(udiRelevanceEntity.getPurType()); } + + @Override + public UdiRelevanceEntity insertDefaultLevel(UdiRelevanceEntity udiRelevanceEntity, UdiProductEntity udiProductEntity) { + if (udiProductEntity != null) { + udiRelevanceEntity.setDistributeLevel(IntUtil.value(udiProductEntity.getPackLevel())); +// udiRelevanceEntity.setDistributeLevelDi(udiProductEntity.getNameCode()); +// udiRelevanceEntity.setDistributeLevelUnit(udiProductEntity.getPackUnit()); +// udiRelevanceEntity.setDistributeLevelCount(IntUtil.value(udiProductEntity.getBhxjsl())); + + udiRelevanceEntity.setUseLevel(IntUtil.value(udiProductEntity.getPackLevel())); +// udiRelevanceEntity.setUseLevelDi(udiProductEntity.getNameCode()); +// udiRelevanceEntity.setUseLevelUnit(udiProductEntity.getPackUnit()); +// udiRelevanceEntity.setUseLeverCount(IntUtil.value(udiProductEntity.getBhxjsl())); + } + + return udiRelevanceEntity; + } + + @Override + public UdiProductEntity getDiProduct(List udiInfoEntities) { + return udiInfoEntities.stream() + .filter(udiProductEntity -> IntUtil.value(udiProductEntity.getDiType()) == 1) + .findFirst() + .orElse(null); + } } diff --git a/src/main/java/com/glxp/api/service/thrsys/BasicInsMaterialService.java b/src/main/java/com/glxp/api/service/thrsys/BasicInsMaterialService.java new file mode 100644 index 00000000..9bd26f81 --- /dev/null +++ b/src/main/java/com/glxp/api/service/thrsys/BasicInsMaterialService.java @@ -0,0 +1,26 @@ +package com.glxp.api.service.thrsys; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.github.pagehelper.PageHelper; +import com.glxp.api.dao.thrsys.BasicInsMaterialMapper; +import com.glxp.api.entity.thrsys.BasicInsMaterialEntity; +import com.glxp.api.req.thrsys.ThrInsMaterialFeeRequest; +import org.springframework.stereotype.Service; + +import java.util.Collections; +import java.util.List; + +@Service +public class BasicInsMaterialService extends ServiceImpl { + public List filterList(ThrInsMaterialFeeRequest thrInsMaterialFeeRequest) { + if (thrInsMaterialFeeRequest == null) { + return Collections.emptyList(); + } + if (thrInsMaterialFeeRequest.getPage() != null) { + int offset = (thrInsMaterialFeeRequest.getPage() - 1) * thrInsMaterialFeeRequest.getLimit(); + PageHelper.offsetPage(offset, thrInsMaterialFeeRequest.getLimit()); + } + return super.baseMapper.filterList(thrInsMaterialFeeRequest); + + } +} diff --git a/src/main/java/com/glxp/api/service/thrsys/YbDrugService.java b/src/main/java/com/glxp/api/service/thrsys/YbDrugService.java new file mode 100644 index 00000000..19544d74 --- /dev/null +++ b/src/main/java/com/glxp/api/service/thrsys/YbDrugService.java @@ -0,0 +1,36 @@ +package com.glxp.api.service.thrsys; + +import cn.hutool.core.collection.CollUtil; +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.dao.thrsys.YbDrugMapper; +import com.glxp.api.entity.thrsys.YbDrug; +import com.glxp.api.http.ErpBasicClient; +import com.glxp.api.req.basic.YbDrugDetailFilterRequest; +import com.glxp.api.res.PageSimpleResponse; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +@Service +public class YbDrugService { + + @Resource + YbDrugMapper ybDrugMapper; + @Resource + ErpBasicClient erpBasicClient; + + public List getList(YbDrugDetailFilterRequest ybHcflDetailFilterRequest) { + ybHcflDetailFilterRequest.setPage(1); + ybHcflDetailFilterRequest.setLimit(1); + List list = ybDrugMapper.list(ybHcflDetailFilterRequest); + if (CollUtil.isEmpty(list)){ + BaseResponse> ybDrugDetail = erpBasicClient.getYbDrugDetail(ybHcflDetailFilterRequest); + PageSimpleResponse data = ybDrugDetail.getData(); + List list1 = data.getList(); + ybDrugMapper.batchSaveOrUpdateByGoodsCode(list1); + return list1; + } + return list; + } +} diff --git a/src/main/java/com/glxp/api/task/AsyncDiDlService.java b/src/main/java/com/glxp/api/task/AsyncDiDlService.java index 1cf176a5..bdd9664b 100644 --- a/src/main/java/com/glxp/api/task/AsyncDiDlService.java +++ b/src/main/java/com/glxp/api/task/AsyncDiDlService.java @@ -129,7 +129,7 @@ public class AsyncDiDlService { if (StrUtil.isNotEmpty(productInfoEntity.getSfbjwycxsy())) udiProductEntity.setSfbjwycxsy(productInfoEntity.getSfbjwycxsy()); if (StrUtil.isNotEmpty(productInfoEntity.getZdcfsycs())) - udiProductEntity.setZdcfsycs(productInfoEntity.getZdcfsycs()); + udiProductEntity.setZdcfsycs(Integer.valueOf(productInfoEntity.getZdcfsycs())); if (StrUtil.isNotEmpty(productInfoEntity.getSfwwjbz())) udiProductEntity.setSfwwjbz(productInfoEntity.getSfwwjbz()); if (StrUtil.isNotEmpty(productInfoEntity.getSyqsfxyjxmj())) diff --git a/src/main/java/com/glxp/api/util/PinyinUtils.java b/src/main/java/com/glxp/api/util/PinyinUtils.java new file mode 100644 index 00000000..e9af6e55 --- /dev/null +++ b/src/main/java/com/glxp/api/util/PinyinUtils.java @@ -0,0 +1,57 @@ +package com.glxp.api.util; + +import net.sourceforge.pinyin4j.PinyinHelper; +import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType; +import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat; +import net.sourceforge.pinyin4j.format.HanyuPinyinToneType; +import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination; + +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +/** + * 中文转拼音 + */ +public class PinyinUtils { + + //汉字转换位汉语拼音首字母,英文字符不变 + public static String converterToFirstSpell(String chines) { + chines = cleanChar(chines); + String pinyinName = ""; + char[] nameChar = chines.toCharArray(); + HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat(); + defaultFormat.setCaseType(HanyuPinyinCaseType.UPPERCASE); + defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE); + for (int i = 0; i < nameChar.length; i++) { + if (nameChar[i] > 128) { + try { + pinyinName += PinyinHelper.toHanyuPinyinStringArray(nameChar[i], defaultFormat)[0].charAt(0); + } catch (BadHanyuPinyinOutputFormatCombination e) { + e.printStackTrace(); + } + } else { + pinyinName += nameChar[i]; + } + } + return pinyinName; + } + + /** + * 清理特殊字符以便得到 + * @param chines + * @return + */ + public static String cleanChar(String chines) { + chines = chines.replaceAll("[\\p{Punct}\\p{Space}]+", ""); // 正则去掉所有字符操作 + // 正则表达式去掉所有中文的特殊符号 + String regEx = "[`~!@#$%^&*()+=|{}':;',\\[\\].<>/?~!@#¥%……&*()——+|{}<>《》【】‘;:”“’。,、?ⅢγⅣβⅡⅠ×π]"; + Pattern pattern = Pattern.compile(regEx); + Matcher matcher = pattern.matcher(chines); + chines = matcher.replaceAll("").trim(); + return chines; + } + + + + +} diff --git a/src/main/resources/mybatis/mapper/basic/UdiProductDao.xml b/src/main/resources/mybatis/mapper/basic/UdiProductDao.xml index 6cca918d..2aa7beec 100644 --- a/src/main/resources/mybatis/mapper/basic/UdiProductDao.xml +++ b/src/main/resources/mybatis/mapper/basic/UdiProductDao.xml @@ -179,6 +179,7 @@ WHERE (basic_products.nameCode = #{nameCode}) limit 1 + replace INTO basic_products @@ -280,74 +281,74 @@ replace INTO basic_products - (id, uuid, originUuid, nameCode, deviceRecordKey, packRatio, packLevel, packUnit, bhxjsl, bhzxxsbzsl, - zxxsbzbhsydysl, bhxjcpbm, bzcj, cpmctymc, cplb, flbm, ggxh, qxlb, tyshxydm, - ylqxzcrbarmc, zczbhhzbapzbh, ylqxzcrbarywmc, sydycpbs, sjcpbm, versionNumber, diType, ybbm, sptm, - manufactory, measname, productType, scbssfbhph, scbssfbhxlh, scbssfbhscrq, scbssfbhsxrq, cpms, - allowNoBatch, allowNoExpire, - allowNoProduct, allowNoSerial, spmc, cplx, hchzsb, cpdls, price, basicPrductRemak1, basicPrductRemak2, - basicPrductRemak3, basicPrductRemak4, basicPrductRemak5, basicPrductRemak6, basicPrductRemak7, - basicPrductRemak8, updateTime, sfwblztlcp, cgzmraqxgxx, sfbjwycxsy, zdcfsycs, sfwwjbz, syqsfxyjxmj, - mjfs, categoryName) - values + (id, uuid, originUuid, nameCode, deviceRecordKey, packRatio, packLevel, packUnit, bhxjsl, bhzxxsbzsl, + zxxsbzbhsydysl, bhxjcpbm, bzcj, cpmctymc, cplb, flbm, ggxh, qxlb, tyshxydm, + ylqxzcrbarmc, zczbhhzbapzbh, ylqxzcrbarywmc, sydycpbs, sjcpbm, versionNumber, diType, ybbm, sptm, + manufactory, measname, productType, scbssfbhph, scbssfbhxlh, scbssfbhscrq, scbssfbhsxrq, cpms, + allowNoBatch, allowNoExpire, + allowNoProduct, allowNoSerial, spmc, cplx, hchzsb, cpdls, price, basicPrductRemak1, basicPrductRemak2, + basicPrductRemak3, basicPrductRemak4, basicPrductRemak5, basicPrductRemak6, basicPrductRemak7, + basicPrductRemak8, updateTime, sfwblztlcp, cgzmraqxgxx, sfbjwycxsy, zdcfsycs, sfwwjbz, syqsfxyjxmj, + mjfs, categoryName, pinyinInitial) + values (#{item.id}, - #{item.uuid}, - #{item.originUuid}, - #{item.nameCode}, - #{item.deviceRecordKey}, - #{item.packRatio}, - #{item.packLevel}, - #{item.packUnit}, - #{item.bhxjsl}, - #{item.bhzxxsbzsl}, - #{item.zxxsbzbhsydysl}, - #{item.bhxjcpbm}, - #{item.bzcj}, - #{item.cpmctymc}, - #{item.cplb}, - #{item.flbm}, - #{item.ggxh}, - #{item.qxlb}, - #{item.tyshxydm}, - #{item.ylqxzcrbarmc}, - #{item.zczbhhzbapzbh}, - #{item.ylqxzcrbarywmc}, - #{item.sydycpbs}, - #{item.sjcpbm}, - #{item.versionNumber}, - #{item.diType}, - #{item.ybbm}, - #{item.sptm}, - #{item.manufactory}, - #{item.measname}, - #{item.productType}, - #{item.scbssfbhph}, - #{item.scbssfbhxlh}, - #{item.scbssfbhscrq}, - #{item.scbssfbhsxrq}, - #{item.cpms}, - #{item.allowNoBatch}, - #{item.allowNoExpire}, - #{item.allowNoProduct}, #{item.allowNoSerial}, - #{item.spmc}, - #{item.cplx}, - #{item.hchzsb}, - #{item.cpdls}, - #{item.price}, - #{item.basicPrductRemak1}, - #{item.basicPrductRemak2}, - #{item.basicPrductRemak3}, - #{item.basicPrductRemak4}, - #{item.basicPrductRemak5}, - #{item.basicPrductRemak6}, - #{item.basicPrductRemak7}, - #{item.basicPrductRemak8}, #{item.updateTime}, #{item.sfwblztlcp}, #{item.cgzmraqxgxx}, #{item.sfbjwycxsy}, - #{item.zdcfsycs}, - #{item.sfwwjbz}, #{item.syqsfxyjxmj}, #{item.mjfs}, - #{item.categoryName}) + #{item.uuid}, + #{item.originUuid}, + #{item.nameCode}, + #{item.deviceRecordKey}, + #{item.packRatio}, + #{item.packLevel}, + #{item.packUnit}, + #{item.bhxjsl}, + #{item.bhzxxsbzsl}, + #{item.zxxsbzbhsydysl}, + #{item.bhxjcpbm}, + #{item.bzcj}, + #{item.cpmctymc}, + #{item.cplb}, + #{item.flbm}, + #{item.ggxh}, + #{item.qxlb}, + #{item.tyshxydm}, + #{item.ylqxzcrbarmc}, + #{item.zczbhhzbapzbh}, + #{item.ylqxzcrbarywmc}, + #{item.sydycpbs}, + #{item.sjcpbm}, + #{item.versionNumber}, + #{item.diType}, + #{item.ybbm}, + #{item.sptm}, + #{item.manufactory}, + #{item.measname}, + #{item.productType}, + #{item.scbssfbhph}, + #{item.scbssfbhxlh}, + #{item.scbssfbhscrq}, + #{item.scbssfbhsxrq}, + #{item.cpms}, + #{item.allowNoBatch}, + #{item.allowNoExpire}, + #{item.allowNoProduct}, #{item.allowNoSerial}, + #{item.spmc}, + #{item.cplx}, + #{item.hchzsb}, + #{item.cpdls}, + #{item.price}, + #{item.basicPrductRemak1}, + #{item.basicPrductRemak2}, + #{item.basicPrductRemak3}, + #{item.basicPrductRemak4}, + #{item.basicPrductRemak5}, + #{item.basicPrductRemak6}, + #{item.basicPrductRemak7}, + #{item.basicPrductRemak8}, #{item.updateTime}, #{item.sfwblztlcp}, #{item.cgzmraqxgxx}, #{item.sfbjwycxsy}, + #{item.zdcfsycs}, + #{item.sfwwjbz}, #{item.syqsfxyjxmj}, #{item.mjfs}, + #{item.categoryName}, #{item.pinyinInitial}) @@ -714,6 +715,9 @@ spmc=#{spmc}, + + bzgg=#{bzgg}, + cplx=#{cplx}, @@ -750,9 +754,6 @@ basicPrductRemak8=#{basicPrductRemak8}, - - groupBuy=#{groupBuy}, - updateTime=#{updateTime}, @@ -781,6 +782,7 @@ categoryName=#{categoryName}, + catalogname1=#{catalogname1}, @@ -790,26 +792,14 @@ catalogname3=#{catalogname3}, - - catalogCode1=#{catalogCode1}, - - - catalogCode2=#{catalogCode2}, - - - catalogCode3=#{catalogCode3}, - matrial=#{matrial}, - - remark=#{remark}, - requireScanCode=#{requireScanCode}, - - bzgg=#{bzgg}, + + workPlaceCount=#{workPlaceCount}, where uuid = #{uuid} @@ -866,6 +856,9 @@ qxlb =#{qxlb}, + + bzgg =#{bzgg}, + tyshxydm=#{tyshxydm}, @@ -974,8 +967,9 @@ updateTime=#{updateTime}, - - + + pinyinInitial=#{pinyinInitial}, + sfwblztlcp=#{sfwblztlcp}, @@ -1012,63 +1006,7 @@ matrial=#{matrial}, - - catalogCode1=#{catalogCode1}, - - - catalogCode2=#{catalogCode2}, - - - catalogCode3=#{catalogCode3}, - - - requireScanCode=#{requireScanCode}, - - - bzgg=#{bzgg}, - - - productsType=#{productsType}, - - - levelUnit=#{levelUnit}, - - - prepnUnit=#{prepnUnit}, - - - prepnSpec=#{prepnSpec}, - - - specialCode=#{specialCode}, - - - storageCondition=#{storageCondition}, - - - transportCondition=#{transportCondition}, - - - useAttribute=#{useAttribute}, - - - majorType=#{majorType}, - - - majorStatus=#{majorStatus}, - - - physicType=#{physicType}, - - - medicareType=#{medicareType}, - - - indate=#{indate}, - - - packMatrial=#{packMatrial}, - + where id = #{id} diff --git a/src/main/resources/mybatis/mapper/basic/UdiRelevanceDao.xml b/src/main/resources/mybatis/mapper/basic/UdiRelevanceDao.xml index 82c4f7c1..b429594e 100644 --- a/src/main/resources/mybatis/mapper/basic/UdiRelevanceDao.xml +++ b/src/main/resources/mybatis/mapper/basic/UdiRelevanceDao.xml @@ -406,137 +406,147 @@ @@ -986,14 +1004,18 @@ replace - INTO basic_udirel - (id, uuid, mainId, thirdId, thirdId1, thirdId2, thirdId3, thirdId4, udplatCode, isUseDy, isDisable, - isLock, - lockStatus, isAdavence, purType, attributeType, hcType, useMuti, useNum, supName, createTime, - updateTime, modifyTime, - createUser, - updateUser, - remark, useExpireTime, dispatch, groupBuy, needCert, newNeedUpload, isStack) + INTO basic_udirel + (id, uuid, mainId, thirdId, thirdId1, thirdId2, thirdId3, thirdId4, udplatCode, isUseDy, isDisable, + isLock, + lockStatus, isAdavence, purType, attributeType, hcType, useMuti, useNum, supName, createTime, + updateTime, modifyTime, + createUser, + updateUser, + remark, useExpireTime, `dispatch`, + groupBuy, needCert, isStack, + distributeLevelCount, useLevel, + distributeLevel, + splitEnable, autoCode, distributeMaxLevel, useMaxLevel) values (#{id}, #{uuid}, #{mainId}, @@ -1007,7 +1029,10 @@ #{isDisable}, #{isLock}, #{lockStatus}, - #{isAdavence}, #{purType}, #{attributeType}, #{hcType}, + #{isAdavence}, + #{purType}, + #{attributeType}, + #{hcType}, #{useMuti}, #{useNum}, #{supName}, @@ -1016,7 +1041,17 @@ #{modifyTime}, #{createUser}, #{updateUser}, - #{remark}, #{useExpireTime}, #{dispatch}, #{groupBuy}, #{needCert}, #{newNeedUpload}, #{isStack}) + #{remark}, + #{useExpireTime}, + #{dispatch}, + #{groupBuy}, + #{needCert}, + #{isStack}, + #{distributeLevelCount}, + #{useLevel}, + #{distributeLevel}, + #{splitEnable}, + #{autoCode}, #{distributeMaxLevel}, #{useMaxLevel}) + + + + diff --git a/src/main/resources/mybatis/mapper/thrsys/YbDrugMapper.xml b/src/main/resources/mybatis/mapper/thrsys/YbDrugMapper.xml new file mode 100644 index 00000000..88eedc23 --- /dev/null +++ b/src/main/resources/mybatis/mapper/thrsys/YbDrugMapper.xml @@ -0,0 +1,135 @@ + + + + + + + INSERT INTO + yb_drug + ( + businessLicense, + companyNameSc, + approvalCode, + goodsStandardCode, + baseId, + productName, + productMedicinemodel, + registeredProductName, + listingHolder, + registeredMedicinemodel, + minUnit, + factor, + goodsName, + dataSouce, + realityOutlook, + productRemark, + subpackager, + version, + productInsuranceType, + realityMedicinemodel, + marketState, + materialName, + unit, + registeredOutlook, + productCode, + goodsCode + ) + VALUES + + ( + #{item.businessLicense}, + #{item.companyNameSc}, + #{item.approvalCode}, + #{item.goodsStandardCode}, + #{item.baseId}, + #{item.productName}, + #{item.productMedicinemodel}, + #{item.registeredProductName}, + #{item.listingHolder}, + #{item.registeredMedicinemodel}, + #{item.minUnit}, + #{item.factor}, + #{item.goodsName}, + #{item.dataSouce}, + #{item.realityOutlook}, + #{item.productRemark}, + #{item.subpackager}, + #{item.version}, + #{item.productInsuranceType}, + #{item.realityMedicinemodel}, + #{item.marketState}, + #{item.materialName}, + #{item.unit}, + #{item.registeredOutlook}, + #{item.productCode}, + #{item.goodsCode} + ) + + ON DUPLICATE KEY UPDATE + businessLicense = VALUES(businessLicense), + companyNameSc = VALUES(companyNameSc), + approvalCode = VALUES(approvalCode), + goodsStandardCode = VALUES(goodsStandardCode), + baseId = VALUES(baseId), + productName = VALUES(productName), + productMedicinemodel = VALUES(productMedicinemodel), + registeredProductName = VALUES(registeredProductName), + listingHolder= VALUES(listingHolder), + registeredMedicinemodel = VALUES(registeredMedicinemodel), + minUnit = VALUES(minUnit), + factor = VALUES(factor), + goodsName = VALUES(goodsName), + dataSouce = VALUES(dataSouce), + realityOutlook = VALUES(realityOutlook), + productRemark = VALUES(productRemark), + subpackager = VALUES(subpackager), + version = VALUES(version), + productInsuranceType = VALUES(productInsuranceType), + realityMedicinemodel = VALUES(realityMedicinemodel), + marketState = VALUES(marketState), + materialName = VALUES(materialName), + unit = VALUES(unit), + registeredOutlook = VALUES(registeredOutlook), + productCode = VALUES(productCode), + goodsCode = VALUES(goodsCode) + + + + + + \ No newline at end of file