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) {
|
for (AdviceInventoryDto inventoryDto : adviceInventory) {
|
||||||
// 匹配条件:adviceDefinitionId, adviceTableName, locationId, lotNumber 同时相等
|
// 匹配条件:adviceDefinitionId, adviceTableName, locationId, lotNumber 同时相等
|
||||||
// 如果选择了具体的批次号,校验库存时需要加上批次号的匹配条件
|
// 如果选择了具体的批次号,校验库存时需要加上批次号的匹配条件
|
||||||
|
// 🔧 Bug #177 修复:添加容错处理,如果 adviceTableName 为空则跳过该项匹配
|
||||||
boolean lotNumberMatch = StringUtils.isEmpty(saveDto.getLotNumber())
|
boolean lotNumberMatch = StringUtils.isEmpty(saveDto.getLotNumber())
|
||||||
|| saveDto.getLotNumber().equals(inventoryDto.getLotNumber());
|
|| saveDto.getLotNumber().equals(inventoryDto.getLotNumber());
|
||||||
|
boolean tableNameMatch = StringUtils.isEmpty(saveDto.getAdviceTableName())
|
||||||
|
|| inventoryDto.getItemTable().equals(saveDto.getAdviceTableName());
|
||||||
// if (saveDto.)
|
// if (saveDto.)
|
||||||
if (inventoryDto.getItemId().equals(saveDto.getAdviceDefinitionId())
|
if (inventoryDto.getItemId().equals(saveDto.getAdviceDefinitionId())
|
||||||
&& inventoryDto.getItemTable().equals(saveDto.getAdviceTableName())
|
&& tableNameMatch
|
||||||
&& inventoryDto.getLocationId().equals(saveDto.getLocationId()) && lotNumberMatch) {
|
&& inventoryDto.getLocationId().equals(saveDto.getLocationId()) && lotNumberMatch) {
|
||||||
matched = true;
|
matched = true;
|
||||||
// 检查库存是否充足
|
// 检查库存是否充足
|
||||||
|
|||||||
@@ -359,6 +359,7 @@ async function getList() {
|
|||||||
priceList: item.price ? [{ price: item.price }] : (item.retailPrice ? [{ price: item.retailPrice }] : []),
|
priceList: item.price ? [{ price: item.price }] : (item.retailPrice ? [{ price: item.retailPrice }] : []),
|
||||||
inventoryList: [],
|
inventoryList: [],
|
||||||
adviceDefinitionId: item.id,
|
adviceDefinitionId: item.id,
|
||||||
|
adviceTableName: 'adm_device_definition', // 🔧 Bug #177 修复:添加耗材表名,用于后端库存匹配
|
||||||
chargeItemDefinitionId: item.id,
|
chargeItemDefinitionId: item.id,
|
||||||
positionId: item.locationId,
|
positionId: item.locationId,
|
||||||
positionName: item.locationId_dictText || '',
|
positionName: item.locationId_dictText || '',
|
||||||
|
|||||||
Reference in New Issue
Block a user