From b27d8a6703366aab1da20e219dcc0da3ddfc892d Mon Sep 17 00:00:00 2001 From: chenqi Date: Wed, 1 Apr 2026 09:17:41 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E9=97=A8=E8=AF=8A?= =?UTF-8?q?=E6=89=8B=E6=9C=AF=E7=94=B3=E8=AF=B7=E5=90=8E=E6=9C=AA=E7=94=9F?= =?UTF-8?q?=E6=88=90=E9=A2=84=E6=94=B6=E8=B4=B9=E6=98=8E=E7=BB=86=E8=AE=B0?= =?UTF-8?q?=E5=BD=95=E7=9A=84=E9=97=AE=E9=A2=98=20(Bug=20#307)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修改 OutpatientChargeAppMapper.xml - 在门诊收费查询SQL中增加对 cli_surgery 表的关联 - 支持手术申请生成的收费项目正确显示在门诊收费系统中 --- .../OutpatientChargeAppMapper.xml | 74 +++++++++++-------- 1 file changed, 44 insertions(+), 30 deletions(-) diff --git a/openhis-server-new/openhis-application/src/main/resources/mapper/chargemanage/OutpatientChargeAppMapper.xml b/openhis-server-new/openhis-application/src/main/resources/mapper/chargemanage/OutpatientChargeAppMapper.xml index 36ca8667..7f7d993c 100644 --- a/openhis-server-new/openhis-application/src/main/resources/mapper/chargemanage/OutpatientChargeAppMapper.xml +++ b/openhis-server-new/openhis-application/src/main/resources/mapper/chargemanage/OutpatientChargeAppMapper.xml @@ -93,16 +93,19 @@ T7.med_type_code, T8.contract_name, CASE + WHEN T1.context_enum = #{activity} AND T1.product_table = 'cli_surgery' THEN T9.surgery_name WHEN T1.context_enum = #{activity} THEN T2."name" WHEN T1.context_enum = #{medication} THEN T3."name" WHEN T1.context_enum = #{device} THEN T4."name" END AS item_name, CASE + WHEN T1.context_enum = #{activity} AND T1.product_table = 'cli_surgery' THEN NULL WHEN T1.context_enum = #{activity} THEN T2.yb_no WHEN T1.context_enum = #{medication} THEN T3.yb_no WHEN T1.context_enum = #{device} THEN T4.yb_no END AS yb_no, CASE + WHEN T1.context_enum = #{activity} AND T1.product_table = 'cli_surgery' THEN T9.id WHEN T1.context_enum = #{activity} THEN T2.id WHEN T1.context_enum = #{medication} THEN T3.id WHEN T1.context_enum = #{device} THEN T4.id @@ -120,6 +123,10 @@ ON T1.context_enum = #{device} AND T1.product_id = T4.id AND T4.delete_flag = '0' + LEFT JOIN cli_surgery AS T9 + ON T1.product_table = 'cli_surgery' + AND T1.product_id = T9.id + AND T9.delete_flag = '0' LEFT JOIN fin_payment_reconciliation AS T5 ON T1.id::TEXT = ANY(string_to_array(T5.charge_item_ids, ',')) AND T5.delete_flag = '0' @@ -185,36 +192,43 @@ T6.contract_no, T7.med_type_code, T8.contract_name, - CASE - WHEN T1.context_enum = #{activity} THEN T2."name" - WHEN T1.context_enum = #{medication} THEN T3."name" - WHEN T1.context_enum = #{device} THEN T4."name" - END AS item_name, - CASE - WHEN T1.context_enum = #{activity} THEN T2.yb_no - WHEN T1.context_enum = #{medication} THEN T3.yb_no - WHEN T1.context_enum = #{device} THEN T4.yb_no - END AS yb_no, - CASE - WHEN T1.context_enum = #{activity} THEN T2.id - WHEN T1.context_enum = #{medication} THEN T3.id - WHEN T1.context_enum = #{device} THEN T4.id - END AS item_id, - T5.tendered_amount AS receivable_amount - FROM adm_charge_item AS T1 - LEFT JOIN wor_activity_definition AS T2 - ON T1.context_enum = #{activity} - AND T1.product_id = T2.id - AND T2.delete_flag = '0' - LEFT JOIN med_medication_definition AS T3 - ON T1.context_enum = #{medication} - AND T1.product_id = T3.id - AND T3.delete_flag = '0' - LEFT JOIN adm_device_definition AS T4 - ON T1.context_enum = #{device} - AND T1.product_id = T4.id - AND T4.delete_flag = '0' - LEFT JOIN fin_payment_reconciliation AS T5 + CASE + WHEN T1.context_enum = #{activity} AND T1.product_table = 'cli_surgery' THEN T9.surgery_name + WHEN T1.context_enum = #{activity} THEN T2."name" + WHEN T1.context_enum = #{medication} THEN T3."name" + WHEN T1.context_enum = #{device} THEN T4."name" + END AS item_name, + CASE + WHEN T1.context_enum = #{activity} AND T1.product_table = 'cli_surgery' THEN NULL + WHEN T1.context_enum = #{activity} THEN T2.yb_no + WHEN T1.context_enum = #{medication} THEN T3.yb_no + WHEN T1.context_enum = #{device} THEN T4.yb_no + END AS yb_no, + CASE + WHEN T1.context_enum = #{activity} AND T1.product_table = 'cli_surgery' THEN T9.id + WHEN T1.context_enum = #{activity} THEN T2.id + WHEN T1.context_enum = #{medication} THEN T3.id + WHEN T1.context_enum = #{device} THEN T4.id + END AS item_id, + T5.tendered_amount AS receivable_amount + FROM adm_charge_item AS T1 + LEFT JOIN wor_activity_definition AS T2 + ON T1.context_enum = #{activity} + AND T1.product_id = T2.id + AND T2.delete_flag = '0' + LEFT JOIN med_medication_definition AS T3 + ON T1.context_enum = #{medication} + AND T1.product_id = T3.id + AND T3.delete_flag = '0' + LEFT JOIN adm_device_definition AS T4 + ON T1.context_enum = #{device} + AND T1.product_id = T4.id + AND T4.delete_flag = '0' + LEFT JOIN cli_surgery AS T9 + ON T1.product_table = 'cli_surgery' + AND T1.product_id = T9.id + AND T9.delete_flag = '0' + LEFT JOIN fin_payment_reconciliation AS T5 ON T1.id::TEXT = ANY(string_to_array(T5.charge_item_ids, ',')) AND T5.delete_flag = '0' AND T5.status_enum = 1