fix: Bug #177 门诊医生站耗材医嘱保存提示未匹配库存信息
问题原因: 1. 前端查询耗材列表时未设置 adviceTableName 字段 2. 后端库存校验时严格要求 adviceTableName 匹配,导致耗材无法匹配库存 修复方案: 1. 前端(adviceBaseList.vue): 添加 adviceTableName = 'adm_device_definition' 字段 2. 后端(AdviceUtils.java): 添加容错处理,当 adviceTableName 为空时跳过该项匹配 双保险策略确保问题彻底解决。
This commit is contained in:
@@ -98,11 +98,14 @@ public class AdviceUtils {
|
||||
for (AdviceInventoryDto inventoryDto : adviceInventory) {
|
||||
// 匹配条件:adviceDefinitionId, adviceTableName, locationId, lotNumber 同时相等
|
||||
// 如果选择了具体的批次号,校验库存时需要加上批次号的匹配条件
|
||||
// 🔧 Bug #177 修复:添加容错处理,如果 adviceTableName 为空则跳过该项匹配
|
||||
boolean lotNumberMatch = StringUtils.isEmpty(saveDto.getLotNumber())
|
||||
|| saveDto.getLotNumber().equals(inventoryDto.getLotNumber());
|
||||
boolean tableNameMatch = StringUtils.isEmpty(saveDto.getAdviceTableName())
|
||||
|| inventoryDto.getItemTable().equals(saveDto.getAdviceTableName());
|
||||
// if (saveDto.)
|
||||
if (inventoryDto.getItemId().equals(saveDto.getAdviceDefinitionId())
|
||||
&& inventoryDto.getItemTable().equals(saveDto.getAdviceTableName())
|
||||
&& tableNameMatch
|
||||
&& inventoryDto.getLocationId().equals(saveDto.getLocationId()) && lotNumberMatch) {
|
||||
matched = true;
|
||||
// 检查库存是否充足
|
||||
|
||||
Reference in New Issue
Block a user