From 998879daff1c5cb92eb46e48e404191954ff12f8 Mon Sep 17 00:00:00 2001 From: chenhc <2369838784@qq.com> Date: Fri, 18 Oct 2024 09:32:54 +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 | 10 ++-- .../service/collect/RelCodeBatchService.java | 46 +++++++++++++++---- 2 files changed, 43 insertions(+), 13 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 984a9100..e657f50a 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java @@ -1082,10 +1082,6 @@ 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(); } @@ -1212,14 +1208,20 @@ public class IoCodeTempController extends BaseController { return ResultVOUtils.error(500, errMsg); } else codeTempService.insert(codeEnttity); + // 异步调用 查询是否存在药品关联信息 后将结果更新至 temp表 + relCodeBatchService.threadUpdateIoCodeTempEntity(code); } else if (addOrderRequest.getOrderType() == ConstantStatus.ORDER_TYPE_WAIT && bussinessTypeEntity.isCheckEnable()) { String errMsg = ioCheckInoutService.checkDrugNoPiCode(codeEnttity); if (errMsg != null) { return ResultVOUtils.error(500, errMsg); } else codeTempService.insert(codeEnttity); + // 异步调用 查询是否存在药品关联信息 后将结果更新至 temp表 + relCodeBatchService.threadUpdateIoCodeTempEntity(code); } else { codeTempService.insert(codeEnttity); + // 异步调用 查询是否存在药品关联信息 后将结果更新至 temp表 + relCodeBatchService.threadUpdateIoCodeTempEntity(code); } } addCodeResult.setOrderId(orderId); 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 5c2e9e1f..28f1d425 100644 --- a/src/main/java/com/glxp/api/service/collect/RelCodeBatchService.java +++ b/src/main/java/com/glxp/api/service/collect/RelCodeBatchService.java @@ -3,6 +3,7 @@ package com.glxp.api.service.collect; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateUtil; import cn.hutool.core.io.FileUtil; +import cn.hutool.core.thread.ThreadUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.XmlUtil; import com.alibaba.fastjson.JSONObject; @@ -418,11 +419,20 @@ public class RelCodeBatchService extends ServiceImpl ioCodeTempEntities = ioCodeTempDao.selectList(new LambdaQueryWrapper().eq(IoCodeTempEntity::getCode, parentCode)); if (CollUtil.isNotEmpty(ioCodeTempEntities)){ - if (this.batchExist(parentCode)){ + + //1、排除掉层级是1的 + UdiEntity udi = FilterUdiUtils.getUdi(parentCode); + String udi1 = udi.getUdi(); + ProductInfoEntity byNameCode = productInfoService.findByNameCode(udi1); + List navList = this.list(new LambdaQueryWrapper() + .eq(RelCodeBatch::getParentCode, parentCode)); + + if ( (byNameCode != null && "1".equals(byNameCode.getPackLevel())) + || (CollUtil.isNotEmpty(navList)) + ){ //打上匹配到了药品关联关系的标记 for (int i = 0; i < ioCodeTempEntities.size(); i++) { IoCodeTempEntity ioCodeTempEntity = ioCodeTempEntities.get(i); @@ -431,15 +441,33 @@ public class RelCodeBatchService extends ServiceImpl { + asynThreadUpdateIoCodeTempEntity(parentCode,ioCodeTempEntities); + }); + } + } + + } + + + public void asynThreadUpdateIoCodeTempEntity(String parentCode,List 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); } } + } }