From 52cc5e3aae116b456b9b2a1315c7fc979b6702b2 Mon Sep 17 00:00:00 2001 From: suizihe <2958847195@qq.com> Date: Fri, 31 Oct 2025 13:52:33 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E9=87=87=E8=B4=AD=E5=85=A5?= =?UTF-8?q?=E5=BA=93=E7=9A=84=E4=BE=9B=E8=B4=A7=E5=95=86=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=AD=98=E6=94=BE=E5=88=B0=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=BA=93=EF=BC=8C=E5=B9=B6=E4=B8=94=E7=B3=BB=E7=BB=9F=E5=9C=A8?= =?UTF-8?q?=E9=87=87=E8=B4=AD=E5=85=A5=E5=BA=93=E7=95=8C=E9=9D=A2=E8=83=BD?= =?UTF-8?q?=E8=AF=BB=E5=8F=96=E5=AF=B9=E5=BA=94=E7=9A=84=E9=87=87=E8=B4=AD?= =?UTF-8?q?=E5=85=A5=E5=BA=93=E5=8D=95=E7=9A=84=E5=AF=B9=E5=BA=94=E4=BE=9B?= =?UTF-8?q?=E8=B4=A7=E5=95=86=E5=90=8D=E7=A7=B0=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/PurchaseInventoryAppServiceImpl.java | 21 ++++++++++++++++ .../PurchaseInventoryMapper.xml | 24 +++++++++++++++---- .../purchaseDocument/index.vue | 3 ++- 3 files changed, 43 insertions(+), 5 deletions(-) diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/inventorymanage/appservice/impl/PurchaseInventoryAppServiceImpl.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/inventorymanage/appservice/impl/PurchaseInventoryAppServiceImpl.java index 6bfb27e1..b45e26bb 100644 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/inventorymanage/appservice/impl/PurchaseInventoryAppServiceImpl.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/inventorymanage/appservice/impl/PurchaseInventoryAppServiceImpl.java @@ -161,6 +161,27 @@ public class PurchaseInventoryAppServiceImpl implements IPurchaseInventoryAppSer if (receiptDetailList.isEmpty()) { return R.fail(MessageUtils.createMessage(PromptMsgConstant.Common.M00006, null)); } + + // 获取所有供应商ID + Set supplierIds = receiptDetailList.stream() + .filter(dto -> dto.getSupplierId() != null) + .map(ReceiptDetailDto::getSupplierId) + .collect(Collectors.toSet()); + + // 查询供应商信息并设置供应商名称 + if (!supplierIds.isEmpty()) { + List suppliers = supplierService.listByIds(supplierIds); + Map supplierNameMap = suppliers.stream() + .collect(Collectors.toMap(Supplier::getId, Supplier::getName)); + + // 设置供应商名称 + receiptDetailList.forEach(dto -> { + if (dto.getSupplierId() != null) { + dto.setSupplierName(supplierNameMap.getOrDefault(dto.getSupplierId(), "")); + } + }); + } + return R.ok(receiptDetailList); } diff --git a/openhis-server-new/openhis-application/src/main/resources/mapper/Inventorymanage/PurchaseInventoryMapper.xml b/openhis-server-new/openhis-application/src/main/resources/mapper/Inventorymanage/PurchaseInventoryMapper.xml index c00c9982..819b9364 100644 --- a/openhis-server-new/openhis-application/src/main/resources/mapper/Inventorymanage/PurchaseInventoryMapper.xml +++ b/openhis-server-new/openhis-application/src/main/resources/mapper/Inventorymanage/PurchaseInventoryMapper.xml @@ -74,12 +74,14 @@ T2."name" AS item_name, T2.id AS item_id, T2.part_percent, - T2.manufacturer_text AS supplier_name, + T2.manufacturer_text AS manufacturer_text, T3.total_volume, T5."name" AS practitioner_name, T6."name" AS purpose_location_name, T6."id" AS purpose_location_id, T7."name" AS purpose_location_store_name, + T1.supplier_id AS supplierId, + T10."name" AS supplier_name, T1.occurrence_time, (SELECT SUM(T9.quantity) FROM wor_inventory_item T9 @@ -100,6 +102,8 @@ LEFT JOIN wor_inventory_item T9 ON T1.item_id = T9.item_id AND T1.purpose_location_id = T9.location_id + LEFT JOIN adm_supplier T10 + ON T1.supplier_id = T10.id WHERE T1.bus_no = #{busNo} AND T1.delete_flag = '0' UNION @@ -121,12 +125,14 @@ T8."name" AS item_name, T8.id AS item_id, T8.part_percent, - T8.manufacturer_text AS supplier_name, + T8.manufacturer_text AS manufacturer_text, T8."size" AS total_volume, T5."name" AS practitioner_name, T6."name" AS purpose_location_name, T6."id" AS purpose_location_id, T7."name" AS purpose_location_store_name, + T1.supplier_id AS supplierId, + T10."name" AS supplier_name, T1.occurrence_time, (SELECT SUM(T9.quantity) FROM wor_inventory_item T9 @@ -145,6 +151,8 @@ LEFT JOIN wor_inventory_item T9 ON T1.item_id = T9.item_id AND T1.purpose_location_id = T9.location_id + LEFT JOIN adm_supplier T10 + ON T1.supplier_id = T10.id WHERE T1.bus_no = #{busNo} AND T1.delete_flag = '0' @@ -167,12 +175,14 @@ T2."name" AS item_name, T2.id AS item_id, T2.part_percent, - T2.manufacturer_text AS supplier_name, + T2.manufacturer_text AS manufacturer_text, T3.total_volume, T5."name" AS practitioner_name, T6."name" AS purpose_location_name, T6."id" AS purpose_location_id, T7."name" AS purpose_location_store_name, + T1.supplier_id AS supplierId, + T10."name" AS supplier_name, (SELECT SUM(T9.quantity) FROM wor_inventory_item T9 WHERE T9.item_id = T1.item_id @@ -192,6 +202,8 @@ LEFT JOIN wor_inventory_item T9 ON T1.item_id = T9.item_id AND T1.purpose_location_id = T9.location_id + LEFT JOIN adm_supplier T10 + ON T1.supplier_id = T10.id WHERE T1.purpose_location_id = #{locationId} AND T1.status_enum = #{statusEnum} AND T1.type_enum IN @@ -220,12 +232,14 @@ T8."name" AS item_name, T8.id AS item_id, T8.part_percent, - T8.manufacturer_text AS supplier_name, + T8.manufacturer_text AS manufacturer_text, T8."size" AS total_volume, T5."name" AS practitioner_name, T6."name" AS purpose_location_name, T6."id" AS purpose_location_id, T7."name" AS purpose_location_store_name, + T1.supplier_id AS supplierId, + T10."name" AS supplier_name, (SELECT SUM(T9.quantity) FROM wor_inventory_item T9 WHERE T9.item_id = T1.item_id @@ -243,6 +257,8 @@ LEFT JOIN wor_inventory_item T9 ON T1.item_id = T9.item_id AND T1.purpose_location_id = T9.location_id + LEFT JOIN adm_supplier T10 + ON T1.supplier_id = T10.id WHERE T1.purpose_location_id = #{locationId} AND T1.status_enum = #{statusEnum} AND T1.type_enum IN diff --git a/openhis-ui-vue3/src/views/medicationmanagement/purchaseDocument/index.vue b/openhis-ui-vue3/src/views/medicationmanagement/purchaseDocument/index.vue index dccb678d..76911480 100644 --- a/openhis-ui-vue3/src/views/medicationmanagement/purchaseDocument/index.vue +++ b/openhis-ui-vue3/src/views/medicationmanagement/purchaseDocument/index.vue @@ -1454,7 +1454,8 @@ function edit() { } receiptHeaderForm.value = editData.value.item.length > 0 ? editData.value.item[0] : {}; receiptHeaderForm.busNo = editData.value.editRow.supplyBusNo; - receiptHeaderForm.supplierId = editData.value.editRow.supplierId; + // 修改这里:优先从详情数据中获取供应商ID,如果不存在则从列表数据中获取 + receiptHeaderForm.supplierId = (editData.value.item[0] && editData.value.item[0].supplierId) || editData.value.editRow.supplierId; receiptHeaderForm.practitionerId = editData.value.editRow.practitionerId; console.log(editData.value.editRow, editData.value, 'editData.value.editRow'); receiptHeaderForm.occurrenceTime = editData.value.item[0].occurrenceTime