From e294952a609401a23ffd1554df815aa4a43c4f48 Mon Sep 17 00:00:00 2001 From: yangkexiang <1677036288@qq.com> Date: Wed, 15 Apr 2026 10:35:56 +0800 Subject: [PATCH] =?UTF-8?q?fixbug366=EF=BC=9A=E9=97=A8=E8=AF=8A=E5=8C=BB?= =?UTF-8?q?=E7=94=9F=E7=AB=99=EF=BC=9A=E6=89=8B=E6=9C=AF=E5=8C=BB=E5=98=B1?= =?UTF-8?q?=E9=80=BB=E8=BE=91=E9=94=99=E8=AF=AF=EF=BC=8C=E2=80=9C=E5=BE=85?= =?UTF-8?q?=E7=AD=BE=E5=8F=91=E2=80=9D=E7=8A=B6=E6=80=81=E7=9A=84=E6=89=8B?= =?UTF-8?q?=E6=9C=AF=E5=8C=BB=E5=98=B1=E6=8F=90=E5=89=8D=E6=B5=81=E8=BD=AC?= =?UTF-8?q?=E8=87=B3=E6=94=B6=E8=B4=B9=E7=AB=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../OutpatientChargeAppMapper.xml | 29 ++++++++++++++++--- 1 file changed, 25 insertions(+), 4 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 7f7d993c..b2ac4cbc 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 @@ -142,15 +142,26 @@ ON T6.contract_no = T8.bus_no AND T8.delete_flag = '0' LEFT JOIN med_medication_request AS mmr ON mmr.id = T1.service_id AND mmr.delete_flag = '0' - LEFT JOIN wor_device_request AS wdr ON wdr.id = T1.service_id AND T1.service_table = #{worDeviceRequest} AND wdr.delete_flag = '0' + LEFT JOIN wor_device_request AS wdr ON wdr.id = T1.service_id AND wdr.delete_flag = '0' + LEFT JOIN wor_service_request AS wsr ON wsr.id = T1.service_id AND wsr.delete_flag = '0' + LEFT JOIN wor_service_request AS wsrp ON wsrp.id = wsr.parent_id AND wsrp.delete_flag = '0' WHERE T1.encounter_id = #{encounterId} - AND T1.status_enum IN (#{planned} + AND T1.status_enum IN (0 + , #{planned} , #{billable} , #{billed} , #{refunding} , #{refunded} , #{partRefund}) AND T1.context_enum != #{register} + AND ( + -- 若能关联到请求表,则必须是“已签发”后才允许收费端展示 + (mmr.id IS NOT NULL AND COALESCE(mmr.status_enum, 1) != 1) + OR (wsr.id IS NOT NULL AND (COALESCE(wsr.status_enum, 1) != 1 OR COALESCE(wsrp.status_enum, 1) != 1)) + OR (wdr.id IS NOT NULL AND COALESCE(wdr.status_enum, 1) != 1) + -- 无法关联到任一请求表的收费项,不受签发过滤影响(如挂号费等) + OR (mmr.id IS NULL AND wsr.id IS NULL AND wdr.id IS NULL) + ) AND T1.delete_flag = '0' @@ -243,15 +254,25 @@ ON T6.contract_no = T8.bus_no AND T8.delete_flag = '0' LEFT JOIN med_medication_request AS mmr ON mmr.id = T1.service_id AND mmr.delete_flag = '0' - LEFT JOIN wor_device_request AS wdr ON wdr.id = T1.service_id AND T1.service_table = #{worDeviceRequest} AND wdr.delete_flag = '0' + LEFT JOIN wor_device_request AS wdr ON wdr.id = T1.service_id AND wdr.delete_flag = '0' + LEFT JOIN wor_service_request AS wsr ON wsr.id = T1.service_id AND wsr.delete_flag = '0' WHERE T1.encounter_id = #{encounterId} - AND T1.status_enum IN (#{planned} + AND T1.status_enum IN (0 + , #{planned} , #{billable} , #{billed} , #{refunding} , #{refunded} , #{partRefund}) AND T1.context_enum != #{register} + AND ( + -- 若能关联到请求表,则必须是“已签发/已发送”后才允许收费端展示 + (mmr.id IS NOT NULL AND COALESCE(mmr.status_enum, 1) != 1) + OR (wsr.id IS NOT NULL AND COALESCE(wsr.status_enum, 1) != 1) + OR (wdr.id IS NOT NULL AND COALESCE(wdr.status_enum, 1) != 1) + -- 无法关联到任一请求表的收费项,不受签发过滤影响(如挂号费等) + OR (mmr.id IS NULL AND wsr.id IS NULL AND wdr.id IS NULL) + ) AND T1.delete_flag = '0') final_res