From 87d3b9486f64e8e5dfadba5d0cdce1d02bf08d4a Mon Sep 17 00:00:00 2001 From: anthonywj Date: Tue, 28 May 2024 10:01:01 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=80=97=E6=9D=90=E7=B1=BB?= =?UTF-8?q?=E5=88=AB=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../inout/IoCodeTempController.java | 12 +++++ .../inout/IoOrderDetailBizController.java | 11 +++++ .../purchase/PurApplyController.java | 2 - .../thrsys/ForThirdSysApiController.java | 7 ++- .../basic/BasicBussinessTypeEntity.java | 6 +++ .../api/entity/basic/UdiProductEntity.java | 10 ++-- .../req/basic/BussinessTypeSaveRequest.java | 6 ++- .../api/req/inv/FilterInvProductRequest.java | 2 + .../res/basic/BasicBussinessTypeResponse.java | 9 +++- .../impl/ForThirdSysApiServiceImpl.java | 19 ++++--- .../impl/IoOrderDetailBizServiceImpl.java | 28 ++++++++--- .../mybatis/mapper/basic/UdiProductDao.xml | 2 +- src/main/resources/schemas/init.sql | 49 +++++++++++++++++++ src/main/resources/schemas/schema_v2.4.sql | 24 +++++++-- 14 files changed, 160 insertions(+), 27 deletions(-) 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 f92729647..3566da28a 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java @@ -398,6 +398,18 @@ public class IoCodeTempController extends BaseController { } } + //是否校验耗材材质 1:高值耗材;2.普通耗材 + if (IntUtil.value(bussinessTypeEntity.getVailHcType() == 1)) { + if (IntUtil.value(udiInfoEntity.getHcType()) != 1) { + return ResultVOUtils.error(500, "单据只允许录入高值耗材" + ",请检查后重试!"); + } + } else if (IntUtil.value(bussinessTypeEntity.getVailHcType() == 2)) { + if (IntUtil.value(udiInfoEntity.getHcType()) != 2) { + return ResultVOUtils.error(500, "单据只允许录入普通耗材" + ",请检查后重试!"); + } + } + + String orderId = addOrderRequest.getBillNo(); //三期校验 diff --git a/src/main/java/com/glxp/api/controller/inout/IoOrderDetailBizController.java b/src/main/java/com/glxp/api/controller/inout/IoOrderDetailBizController.java index 2a696605a..996c36249 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoOrderDetailBizController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoOrderDetailBizController.java @@ -219,6 +219,17 @@ public class IoOrderDetailBizController extends BaseController { } } + + //是否校验耗材材质 1:高值耗材;2.普通耗材 + if (IntUtil.value(bussinessTypeEntity.getVailHcType() == 1)) { + if (IntUtil.value(udiRelevanceResponse.getHcType()) != 1) { + return ResultVOUtils.error(500, "单据只允许录入高值耗材" + ",请检查后重试!"); + } + } else if (IntUtil.value(bussinessTypeEntity.getVailHcType() == 2)) { + if (IntUtil.value(udiRelevanceResponse.getHcType()) != 2) { + return ResultVOUtils.error(500, "单据只允许录入普通耗材" + ",请检查后重试!"); + } + } // todo 查询产品是否已经通过认证 // BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(orderEntity.getAction()); // if (bussinessTypeEntity.getCheckCertExpire() == 2 && udiRelevanceResponse.isNeedCert()) { diff --git a/src/main/java/com/glxp/api/controller/purchase/PurApplyController.java b/src/main/java/com/glxp/api/controller/purchase/PurApplyController.java index ec6be92c2..50785525f 100644 --- a/src/main/java/com/glxp/api/controller/purchase/PurApplyController.java +++ b/src/main/java/com/glxp/api/controller/purchase/PurApplyController.java @@ -211,8 +211,6 @@ public class PurApplyController { if (purApplyRequest.getStatus() == 3) { purChangeService.purApplyChange(purApplyEntity); } - - // //审核通过后转换成采购计划单 // if (purApplyEntity.getStatus() == ConstantStatus.APPLY_AUDIT_ED && purApplyRequest.isAudtoPlan()) { // PurPlanEntity purPlanEntity = new PurPlanEntity(); diff --git a/src/main/java/com/glxp/api/controller/thrsys/ForThirdSysApiController.java b/src/main/java/com/glxp/api/controller/thrsys/ForThirdSysApiController.java index f2f6cf8ee..a880ecc4e 100644 --- a/src/main/java/com/glxp/api/controller/thrsys/ForThirdSysApiController.java +++ b/src/main/java/com/glxp/api/controller/thrsys/ForThirdSysApiController.java @@ -28,12 +28,13 @@ public class ForThirdSysApiController { /** * B001 查询指定科室高值/普耗库存 + * * @param filterInvProductRequest * @return */ @PostMapping("/forThirdSysApi/inv/products/filter") public BaseResponse invProductsFilter(@RequestBody FilterInvProductRequest filterInvProductRequest) { - if (ObjectUtil.isNull(filterInvProductRequest)){ + if (ObjectUtil.isNull(filterInvProductRequest)) { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL); } PageSimpleResponse pageSimpleResponse = @@ -43,12 +44,13 @@ public class ForThirdSysApiController { /** * B002 查询耗材字典 + * * @param filterUdiRelRequest * @return */ @PostMapping("/forThirdSysApi/basic/products/search") public BaseResponse basicProductsSearch(@RequestBody FilterUdiRelRequest filterUdiRelRequest) { - if (ObjectUtil.isNull(filterUdiRelRequest)){ + if (ObjectUtil.isNull(filterUdiRelRequest)) { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL); } PageSimpleResponse pageSimpleResponse = @@ -58,6 +60,7 @@ public class ForThirdSysApiController { /** * B003 高值耗材实时出库/退库 + * * @param forInvOutScanCodeRequest * @return */ diff --git a/src/main/java/com/glxp/api/entity/basic/BasicBussinessTypeEntity.java b/src/main/java/com/glxp/api/entity/basic/BasicBussinessTypeEntity.java index e9b934b43..9523657f0 100644 --- a/src/main/java/com/glxp/api/entity/basic/BasicBussinessTypeEntity.java +++ b/src/main/java/com/glxp/api/entity/basic/BasicBussinessTypeEntity.java @@ -493,6 +493,12 @@ public class BasicBussinessTypeEntity { @TableField(value = "vailProductAttributes") private Integer vailProductAttributes; + /** + * 校验耗材类型 :0:不校验;1:高值耗材;2:无普通耗材 + */ + @TableField(value = "vailHcType") + private Integer vailHcType; + /** * 是否设备入库 :0:未启用;2.启用 */ 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 84033ea06..e0fd97be2 100644 --- a/src/main/java/com/glxp/api/entity/basic/UdiProductEntity.java +++ b/src/main/java/com/glxp/api/entity/basic/UdiProductEntity.java @@ -106,30 +106,32 @@ public class UdiProductEntity { * 一级分类名称(学科,品名) */ @TableField(value = "catalogname1") - @ApiModelProperty(value="一级分类名称(学科,品名)") + @ApiModelProperty(value = "一级分类名称(学科,品名)") private String catalogname1; /** * 二级分类名称(用途、品目) */ @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 purType; + private Integer hcType; + } diff --git a/src/main/java/com/glxp/api/req/basic/BussinessTypeSaveRequest.java b/src/main/java/com/glxp/api/req/basic/BussinessTypeSaveRequest.java index 4e8dd3265..5f9f0bf43 100644 --- a/src/main/java/com/glxp/api/req/basic/BussinessTypeSaveRequest.java +++ b/src/main/java/com/glxp/api/req/basic/BussinessTypeSaveRequest.java @@ -323,8 +323,12 @@ public class BussinessTypeSaveRequest { /** * 校验产品属性 :1:校验;2.无需校验 */ - @TableField(value = "vailProductAttributes") private Integer vailProductAttributes; + + /** + * 校验耗材类型 :0:不耗材;1:高值耗材;2:无普通耗材 + */ + private Integer vailHcType; /** * 是否设备入库 :0:未启用;2.启用 */ diff --git a/src/main/java/com/glxp/api/req/inv/FilterInvProductRequest.java b/src/main/java/com/glxp/api/req/inv/FilterInvProductRequest.java index 56a201857..899613b5e 100644 --- a/src/main/java/com/glxp/api/req/inv/FilterInvProductRequest.java +++ b/src/main/java/com/glxp/api/req/inv/FilterInvProductRequest.java @@ -133,5 +133,7 @@ public class FilterInvProductRequest extends ListPageRequest { */ private Integer attributeType; + private Integer highValue; + } diff --git a/src/main/java/com/glxp/api/res/basic/BasicBussinessTypeResponse.java b/src/main/java/com/glxp/api/res/basic/BasicBussinessTypeResponse.java index 0c9914361..50d286677 100644 --- a/src/main/java/com/glxp/api/res/basic/BasicBussinessTypeResponse.java +++ b/src/main/java/com/glxp/api/res/basic/BasicBussinessTypeResponse.java @@ -202,8 +202,15 @@ public class BasicBussinessTypeResponse { /** * 校验产品属性 :1:校验;2.无需校验 */ - @TableField(value = "vailProductAttributes") private Integer vailProductAttributes; + + + + /** + * 校验耗材类型 :0:不耗材;1:高值耗材;2:无普通耗材 + */ + private Integer vailHcType; + /** * 是否设备入库 :0:未启用;2.启用 */ diff --git a/src/main/java/com/glxp/api/service/forthird/impl/ForThirdSysApiServiceImpl.java b/src/main/java/com/glxp/api/service/forthird/impl/ForThirdSysApiServiceImpl.java index 4bddf8229..ecfc59567 100644 --- a/src/main/java/com/glxp/api/service/forthird/impl/ForThirdSysApiServiceImpl.java +++ b/src/main/java/com/glxp/api/service/forthird/impl/ForThirdSysApiServiceImpl.java @@ -2,9 +2,12 @@ package com.glxp.api.service.forthird.impl; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; +import com.glxp.api.dao.inout.IoCodeDao; import com.glxp.api.entity.basic.UdiEntity; +import com.glxp.api.entity.inout.IoCodeEntity; import com.glxp.api.exception.JsonException; import com.glxp.api.req.basic.FilterUdiRelRequest; import com.glxp.api.req.forthird.ForInvOutScanCodeRequest; @@ -16,6 +19,7 @@ import com.glxp.api.res.inv.InvProductPageResponse; import com.glxp.api.res.inv.InvProductResponse; import com.glxp.api.service.basic.UdiRelevanceService; import com.glxp.api.service.forthird.ForThirdSysApiService; +import com.glxp.api.service.inout.impl.IoCodeService; import com.glxp.api.service.inv.impl.InvProductService; import com.glxp.api.util.StringUtils; import com.glxp.api.util.udi.FilterUdiUtils; @@ -59,13 +63,16 @@ public class ForThirdSysApiServiceImpl implements ForThirdSysApiService { return pageResponse; } + @Resource + IoCodeDao codeDao; + @Override public ForInvOutScanCodeResponse invOutScanCode(ForInvOutScanCodeRequest forInvOutScanCodeRequest) { ForInvOutScanCodeResponse forInvOutScanCodeResponse = new ForInvOutScanCodeResponse(); System.out.println(JSON.toJSONString(forInvOutScanCodeRequest)); // TODO: 2024/3/15 以获取到业务单据实体 需要对单据进行操作 成功返回 单据号 - - + //校验UDI码是否正确,获取最新的UDI码 +// codeDao.selectOne(new LambdaQueryWrapper().eq(IoCodeEntity::getCode, forInvOutScanCodeRequest.getIoOrderRequest().getCode())); String billNo = "1212121"; forInvOutScanCodeResponse.setBillNo(billNo); return forInvOutScanCodeResponse; @@ -73,9 +80,9 @@ public class ForThirdSysApiServiceImpl implements ForThirdSysApiService { private void buildForBasicProductsSearchFilter(FilterUdiRelRequest filterUdiRelRequest) { String udiCode = filterUdiRelRequest.getUdiCode().trim(); - if (StringUtils.isNotEmpty(udiCode)){ + if (StringUtils.isNotEmpty(udiCode)) { UdiEntity udiEntity = FilterUdiUtils.getUdi(udiCode); - if (ObjectUtil.isNull(udiEntity)) throw new JsonException("udiCode:["+udiCode+"],解析错误!"); + if (ObjectUtil.isNull(udiEntity)) throw new JsonException("udiCode:[" + udiCode + "],解析错误!"); String udi = udiEntity.getUdi().trim(); if (StringUtils.isNotEmpty(udi)) filterUdiRelRequest.setNameCode(udi); } @@ -93,9 +100,9 @@ public class ForThirdSysApiServiceImpl implements ForThirdSysApiService { private void buildForInvProductsFilter(FilterInvProductRequest filterInvProductRequest) { String udiCode = filterInvProductRequest.getUdiCode().trim(); - if (StringUtils.isNotEmpty(udiCode)){ + if (StringUtils.isNotEmpty(udiCode)) { UdiEntity udiEntity = FilterUdiUtils.getUdi(udiCode); - if (ObjectUtil.isNull(udiEntity)) throw new JsonException("udiCode:["+udiCode+"],解析错误!"); + if (ObjectUtil.isNull(udiEntity)) throw new JsonException("udiCode:[" + udiCode + "],解析错误!"); String udi = udiEntity.getUdi().trim(); String batchNo = udiEntity.getBatchNo().trim(); if (StringUtils.isNotEmpty(udi)) filterInvProductRequest.setNameCode(udi); diff --git a/src/main/java/com/glxp/api/service/inout/impl/IoOrderDetailBizServiceImpl.java b/src/main/java/com/glxp/api/service/inout/impl/IoOrderDetailBizServiceImpl.java index dc25783f8..43cc04ab9 100644 --- a/src/main/java/com/glxp/api/service/inout/impl/IoOrderDetailBizServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inout/impl/IoOrderDetailBizServiceImpl.java @@ -204,7 +204,7 @@ public class IoOrderDetailBizServiceImpl implements IoOrderDetailBizService { SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("vail_product_cert"); // boolean isVailCert = systemParamConfigEntity.getParamValue().equals("1") ? true : false; AuthAdmin authAdmin = customerService.getUserBean(); - if (addWarlockBagProductReqeust.getId() == null ) + if (addWarlockBagProductReqeust.getId() == null) throw new JsonException("未选择术式组套信息"); if (addWarlockBagProductReqeust.getOrderEntity() == null) throw new JsonException(500, "未指定订单"); @@ -240,9 +240,9 @@ public class IoOrderDetailBizServiceImpl implements IoOrderDetailBizService { filterUdiRelRequest.setDestinyId(pId + ""); filterUdiRelRequest.setDiType(1); List list = basicDestinyRelMapper.filterDestinyProducts(filterUdiRelRequest); - if (CollUtil.isEmpty(list)) throw new JsonException("术式套包数据为空!"); + if (CollUtil.isEmpty(list)) throw new JsonException("术式套包数据为空!"); List datas = new ArrayList<>(); - list.forEach( x -> { + list.forEach(x -> { AddBizProductReqeust addBizProductReqeust = new AddBizProductReqeust(); addBizProductReqeust.setOrderEntity(orderEntity); addBizProductReqeust.setSupId(x.getSupId()); @@ -257,10 +257,10 @@ public class IoOrderDetailBizServiceImpl implements IoOrderDetailBizService { BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(orderEntity.getAction()); //是否校验产品采购类型 :1:校验;2.无需校验 - if(IntUtil.value(bussinessTypeEntity.getVailProductAttributes()) == 1){ + if (IntUtil.value(bussinessTypeEntity.getVailProductAttributes()) == 1) { Integer purType = IntUtil.value(udiRelevanceResponse.getPurType()); //1:普通入账产品;2.预验收产品。3:寄售产品 int actionType = IntUtil.value(bussinessTypeEntity.getActionType()); //1:带票(正常);2.预验收。3:寄售 - if (purType != actionType){ + if (purType != actionType) { //包装友好提示 String msg = ""; switch (actionType) { @@ -286,7 +286,23 @@ public class IoOrderDetailBizServiceImpl implements IoOrderDetailBizService { msg2 = "寄售产品"; break; } - throw new JsonException( "单据只允许录入" + msg +",当前录入产品为"+msg2+",请检查后重试!"); + throw new JsonException("单据只允许录入" + msg + ",当前录入产品为" + msg2 + ",请检查后重试!"); + } + } + //是否校验耗材材质 1:高值耗材;2.普通耗材 + if (IntUtil.value(bussinessTypeEntity.getVailHcType() == 1)) { + if (IntUtil.value(udiRelevanceResponse.getHcType()) != 1) { + throw new JsonException("单据只允许录入高值耗材" + ",请检查后重试!"); + } + } else if (IntUtil.value(bussinessTypeEntity.getVailHcType() == 2)) { + if (IntUtil.value(udiRelevanceResponse.getHcType()) != 2) { + throw new JsonException("单据只允许录入普通耗材\" + \",请检查后重试!"); + } + } + + if (udiRelevanceResponse.getPurType() == 2) { + if (StrUtil.isEmpty(item.getZczbhhzbapzbh())) { + throw new JsonException("预验收产品必须填写预验收批次号"); } } diff --git a/src/main/resources/mybatis/mapper/basic/UdiProductDao.xml b/src/main/resources/mybatis/mapper/basic/UdiProductDao.xml index 581a2c475..5148a56c5 100644 --- a/src/main/resources/mybatis/mapper/basic/UdiProductDao.xml +++ b/src/main/resources/mybatis/mapper/basic/UdiProductDao.xml @@ -167,7 +167,7 @@