feat: 药品关联关系是否存在

dev_unify
chenhc 9 months ago
parent e2ba897fc3
commit 998879daff

@ -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);

@ -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<RelCodeBatchMapper, RelCode
@Resource
IoCodeTempDao ioCodeTempDao;
public void threadUpdateIoCodeTempEntity(IoCodeTempEntity codeTempEntity){
String parentCode = codeTempEntity.getCode();
public void threadUpdateIoCodeTempEntity(String parentCode){
List<IoCodeTempEntity> ioCodeTempEntities = ioCodeTempDao.selectList(new LambdaQueryWrapper<IoCodeTempEntity>().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<RelCodeBatch> navList = this.list(new LambdaQueryWrapper<RelCodeBatch>()
.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<RelCodeBatchMapper, RelCode
}
}else {
//打上匹配不到了药品关联关系的标记
for (int i = 0; i < ioCodeTempEntities.size(); i++) {
IoCodeTempEntity ioCodeTempEntity = ioCodeTempEntities.get(i);
ioCodeTempEntity.setDrugLink(0);
ioCodeTempDao.updateById(ioCodeTempEntity);
}
ThreadUtil.execAsync(() -> {
asynThreadUpdateIoCodeTempEntity(parentCode,ioCodeTempEntities);
});
}
}
}
public void asynThreadUpdateIoCodeTempEntity(String parentCode,List<IoCodeTempEntity> 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);
}
}
}
}

Loading…
Cancel
Save