From e2ba897fc381273bcf639f453d99b359aebde298 Mon Sep 17 00:00:00 2001 From: chenhc <2369838784@qq.com> Date: Thu, 17 Oct 2024 18:00:55 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E8=8D=AF=E5=93=81=E5=85=B3=E8=81=94?= =?UTF-8?q?=E5=85=B3=E7=B3=BB=E6=98=AF=E5=90=A6=E5=AD=98=E5=9C=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../inout/IoCodeTempController.java | 9 ++++ .../api/entity/inout/IoCodeTempEntity.java | 7 +++ .../service/collect/RelCodeBatchService.java | 44 ++++++++++++++++--- src/main/resources/schemas/schema_v2.4.sql | 5 +++ 4 files changed, 58 insertions(+), 7 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 66af806c..984a9100 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java @@ -2,6 +2,7 @@ package com.glxp.api.controller.inout; import cn.hutool.Hutool; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.thread.ThreadUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; import com.github.pagehelper.PageInfo; @@ -39,6 +40,7 @@ import com.glxp.api.res.inout.AddCodeResult; import com.glxp.api.res.inout.IoCodeTempResponse; import com.glxp.api.service.auth.InvWarehouseService; import com.glxp.api.service.basic.*; +import com.glxp.api.service.collect.RelCodeBatchService; import com.glxp.api.service.inout.*; import com.glxp.api.service.inout.impl.IoCodeService; import com.glxp.api.service.inv.*; @@ -896,6 +898,9 @@ public class IoCodeTempController extends BaseController { } + @Resource + RelCodeBatchService relCodeBatchService; + //前端扫码提交(药品) @AuthRuleAnnotation("") @PostMapping("warehouse/inout/drug/addOrderWeb") @@ -1077,6 +1082,10 @@ public class IoCodeTempController extends BaseController { codeEnttity.setCount(1); codeEnttity.setProductType(2); String unitFk = null; + // TODO: 2024/10/17 异步调用 查询是否存在药品关联信息 后将结果更新至 temp表 + ThreadUtil.execAsync(() -> { + relCodeBatchService.threadUpdateIoCodeTempEntity(codeEnttity); + }); if (bussinessTypeEntity.getCorpType() == ConstantStatus.CORP_TYPE_OUT) { unitFk = addOrderRequest.getFromCorp(); } diff --git a/src/main/java/com/glxp/api/entity/inout/IoCodeTempEntity.java b/src/main/java/com/glxp/api/entity/inout/IoCodeTempEntity.java index f5d51916..5f956b9a 100644 --- a/src/main/java/com/glxp/api/entity/inout/IoCodeTempEntity.java +++ b/src/main/java/com/glxp/api/entity/inout/IoCodeTempEntity.java @@ -153,6 +153,13 @@ public class IoCodeTempEntity { private String mySupId; //更新供应商 + /** + * 药品关联关系是否存在 0不存在 1存在 + */ + @TableField(value = "drugLink") + private Integer drugLink; + + /** * 单据产品类型 1:器械;2:药品 */ diff --git a/src/main/java/com/glxp/api/service/collect/RelCodeBatchService.java b/src/main/java/com/glxp/api/service/collect/RelCodeBatchService.java index 644c0a59..5c2e9e1f 100644 --- a/src/main/java/com/glxp/api/service/collect/RelCodeBatchService.java +++ b/src/main/java/com/glxp/api/service/collect/RelCodeBatchService.java @@ -15,12 +15,14 @@ import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.util.ResultVOUtils; import com.glxp.api.dao.basic.BasicProductsDao; import com.glxp.api.dao.collect.RelCodeBatchMapper; +import com.glxp.api.dao.inout.IoCodeTempDao; import com.glxp.api.entity.auth.AuthAdmin; import com.glxp.api.entity.basic.BasicProductsEntity; import com.glxp.api.entity.basic.ProductInfoEntity; import com.glxp.api.entity.basic.UdiEntity; import com.glxp.api.entity.collect.RelCodeBatch; import com.glxp.api.entity.collect.RelCodeDetail; +import com.glxp.api.entity.inout.IoCodeTempEntity; import com.glxp.api.exception.JsonException; import com.glxp.api.req.collect.RelCodeBatchRequest; import com.glxp.api.req.collect.RelCodeDetailRequest; @@ -28,6 +30,7 @@ import com.glxp.api.res.collect.RelCodeBatchResponse; import com.glxp.api.res.collect.RelCodeDetailByParentCodeResponse; import com.glxp.api.service.auth.CustomerService; import com.glxp.api.service.basic.ProductInfoService; +import com.glxp.api.service.inout.IoCodeTempService; import com.glxp.api.util.HttpClient; import com.glxp.api.util.udi.FilterUdiUtils; import lombok.extern.slf4j.Slf4j; @@ -384,22 +387,22 @@ public class RelCodeBatchService extends ServiceImpl relCodeDetails = relCodeDetailService.list(new LambdaQueryWrapper().eq(RelCodeDetail::getParentCode, parentCode)); - BeanUtils.copyProperties(relCodeBatch,relCodeDetailByParentCodeResponse); + BeanUtils.copyProperties(relCodeBatch, relCodeDetailByParentCodeResponse); relCodeDetailByParentCodeResponse.setRelCodeDetail(relCodeDetails); - if (CollUtil.isNotEmpty(relCodeDetails)){ + if (CollUtil.isNotEmpty(relCodeDetails)) { RelCodeDetail relCodeDetail = relCodeDetails.get(0); - if (relCodeDetail.getPackLayer() > 1){//说明有下级 - List sons = new ArrayList<>(); + if (relCodeDetail.getPackLayer() > 1) {//说明有下级 + List sons = new ArrayList<>(); for (int i1 = 0; i1 < relCodeDetails.size(); i1++) { RelCodeDetail relCodeDetail1 = relCodeDetails.get(i1); - List relCodeDetailByParentCodeResponses = this.detailByParentCodeSpms(relCodeDetail1.getCurCode(),uploadFlagDown); - if (CollUtil.isNotEmpty(relCodeDetailByParentCodeResponses)){ + List relCodeDetailByParentCodeResponses = this.detailByParentCodeSpms(relCodeDetail1.getCurCode(), uploadFlagDown); + if (CollUtil.isNotEmpty(relCodeDetailByParentCodeResponses)) { sons.addAll(relCodeDetailByParentCodeResponses); } } @@ -410,6 +413,33 @@ public class RelCodeBatchService extends ServiceImpl ioCodeTempEntities = ioCodeTempDao.selectList(new LambdaQueryWrapper().eq(IoCodeTempEntity::getCode, parentCode)); + if (CollUtil.isNotEmpty(ioCodeTempEntities)){ + if (this.batchExist(parentCode)){ + //打上匹配到了药品关联关系的标记 + for (int i = 0; i < ioCodeTempEntities.size(); i++) { + IoCodeTempEntity ioCodeTempEntity = ioCodeTempEntities.get(i); + ioCodeTempEntity.setDrugLink(1); + ioCodeTempDao.updateById(ioCodeTempEntity); + } + + }else { + //打上匹配不到了药品关联关系的标记 + for (int i = 0; i < ioCodeTempEntities.size(); i++) { + IoCodeTempEntity ioCodeTempEntity = ioCodeTempEntities.get(i); + ioCodeTempEntity.setDrugLink(0); + ioCodeTempDao.updateById(ioCodeTempEntity); + } + } } + } + } diff --git a/src/main/resources/schemas/schema_v2.4.sql b/src/main/resources/schemas/schema_v2.4.sql index 9927e303..8c44bf0e 100644 --- a/src/main/resources/schemas/schema_v2.4.sql +++ b/src/main/resources/schemas/schema_v2.4.sql @@ -1015,3 +1015,8 @@ CALL Pro_Temp_ColumnWork('basic_products', 'xjdw', ' varchar(60) CHARACTER SET u CALL Pro_Temp_ColumnWork('basic_bussiness_type', 'productType', ' tinyint NULL DEFAULT NULL COMMENT ''单据类型; 1:器械单据 2:药品单据''', 1); + + +CALL Pro_Temp_ColumnWork('io_code_temp', 'drugLink', + ' tinyint NULL DEFAULT b''0''COMMENT ''药品关联关系是否存在 0不存在 1存在''', + 1); \ No newline at end of file