Files
his/openhis-server-new/openhis-application/src/main/resources/mapper/paymentmanage/PaymentMapper.xml
2025-12-10 14:20:24 +08:00

251 lines
8.4 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.openhis.web.paymentmanage.mapper.PaymentMapper">
<select id="getPage" resultType="com.openhis.web.paymentmanage.dto.PaymentVO">
SELECT T1.id,
T1.relation_id,
T1.status_enum,
T1.payment_no,
T1.payment_enum,
T1.enterer_id,
T1.kind_enum,
T1.patient_id,
T1.outcome_enum,
T1.tendered_amount,
T1.returned_amount,
T1.display_amount,
T1.print_count,
T1.bill_date,
T1.encounter_id,
T1.yb_clear_flag,
T1.yb_settle_ids,
T1.enterer_name,
T1.patient_name,
T1.invoice_id,
T1.bill_no as invoice_no,
T1.invoice_status,
T1.encounter_bus_no
FROM (SELECT t.id,
t.relation_id,
t.status_enum,
t.payment_no,
t.payment_enum,
t.enterer_id,
t.kind_enum,
pra.name AS enterer_name,
t.patient_id,
patient.name AS patient_name,
t.outcome_enum,
t.tendered_amount,
t.returned_amount,
t.display_amount,
t.bill_date,
t.print_count,
t.encounter_id,
invoice.id AS invoice_id,
invoice.bill_no,
case when invoice.bill_no is not null then 1 else 0 end as invoice_status,
t.yb_clear_flag,
t.yb_settle_ids,
enc.bus_no AS encounter_bus_no,
t.tenant_id
FROM fin_payment_reconciliation t
LEFT JOIN adm_patient patient ON patient.id = t.patient_id
LEFT JOIN adm_practitioner pra ON pra.id = t.enterer_id
LEFT JOIN adm_invoice invoice ON invoice.reconciliation_id = t.id
LEFT JOIN adm_encounter enc ON enc.id = t.enterer_id
WHERE 1 = 1
AND t.delete_flag = '0'
AND t.kind_enum = #{kindEnum}
<if test="invoiceNo != null and !invoiceNo.empty">
AND invoice.bill_no = #{invoiceNo}
</if>
ORDER BY t.create_time DESC) as T1
${ew.customSqlSegment}
</select>
<select id="getPaymentDetailList" resultType="com.openhis.yb.dto.PaymentDetailDto">
SELECT id,
predecessor_id,
target_enum,
account_id,
account_code,
pay_enum,
pay_level_enum,
amount,
return_amount,
charge_amount,
pay_trans_no,
pay_trans_text,
pay_trans_date,
before_balance,
after_balance,
result_enum,
tenant_id,
delete_flag,
create_by,
create_time,
update_by,
update_time
FROM fin_payment_rec_detail
WHERE reconciliation_id = #{id}
</select>
<select id="getChargeItemList" resultType="com.openhis.web.paymentmanage.dto.ChargeItemDto">
select T.id,
T.status_enum,
T.bus_no,
T.prescription_no,
T.patient_id,
T.context_enum,
T.encounter_id,
T.occurrence_time,
T.performer_id,
T.performing_org_id,
T.requesting_org_id,
T.cost_org_id,
T.quantity_value,
T.quantity_unit,
T.unit_price,
T.total_price,
T.definition_id,
T.def_detail_id,
T.base_amount,
T.discount_amount,
T.surcharge_amount,
T.override_reason_code,
T.override_reason_text,
T.enterer_id,
T.entered_date,
T.service_table,
T.service_id,
T.product_table,
T.product_id,
T.claim_state_enum,
T.print_count,
T.account_id,
T.org_id,
T.refund_id,
T.tenant_id,
T.delete_flag,
T.create_by,
T.create_time,
T.update_by,
T.update_time,
T1.type_code
FROM adm_charge_item AS T
LEFT JOIN adm_charge_item_definition AS T1 ON T.definition_id = T1.id
LEFT JOIN sys_dict_type AS T2 ON T1.type_code = T2.dict_type
WHERE T2.dict_type = #{s}
AND T.id IN (#{collect})
</select>
<select id="getChargeItems" resultType="com.openhis.web.paymentmanage.dto.ChargeItemDto">
select T.id,
T.status_enum,
T.bus_no,
T.prescription_no,
T.patient_id,
T.context_enum,
T.encounter_id,
T.occurrence_time,
T.performer_id,
T.performing_org_id,
T.requesting_org_id,
T.cost_org_id,
T.quantity_value,
T.quantity_unit,
T.unit_price,
T.total_price,
T.definition_id,
T.def_detail_id,
T.base_amount,
T.discount_amount,
T.surcharge_amount,
T.override_reason_code,
T.override_reason_text,
T.enterer_id,
T.entered_date,
T.service_table,
T.service_id,
T.product_table,
T.product_id,
T.claim_state_enum,
T.print_count,
T.account_id,
T.org_id,
T.refund_id,
T.tenant_id,
T.delete_flag,
T.create_by,
T.create_time,
T.update_by,
T.update_time,
T1.type_code
FROM adm_charge_item AS T
LEFT JOIN adm_charge_item_definition AS T1 ON T.definition_id = T1.id
LEFT JOIN sys_dict_type AS T2 ON T1.type_code = T2.dict_type
WHERE T.id IN (#{collect})
</select>
<select id="getChargeItemListByEncounterId" resultType="com.openhis.web.paymentmanage.dto.ChargeItemDto">
select T.id,
T.status_enum,
T.bus_no,
T.prescription_no,
T.patient_id,
T.context_enum,
T.encounter_id,
T.occurrence_time,
T.performer_id,
T.performing_org_id,
T.requesting_org_id,
T.cost_org_id,
T.quantity_value,
T.quantity_unit,
T.unit_price,
T.total_price,
T.definition_id,
T.def_detail_id,
T.base_amount,
T.discount_amount,
T.surcharge_amount,
T.override_reason_code,
T.override_reason_text,
T.enterer_id,
T.entered_date,
T.service_table,
T.service_id,
T.product_table,
T.product_id,
T.claim_state_enum,
T.print_count,
T.account_id,
T.org_id,
T.refund_id,
T.tenant_id,
T.delete_flag,
T.create_by,
T.create_time,
T.update_by,
T.update_time,
T1.type_code
FROM adm_charge_item AS T
LEFT JOIN adm_charge_item_definition AS T1 ON T.definition_id = T1.id
LEFT JOIN sys_dict_type AS T2 ON T1.type_code = T2.dict_type
WHERE T.encounter_id = #{encounterId}
</select>
<select id="selectDispenseQuantity" resultType="com.openhis.web.paymentmanage.dto.DispenseQuantityDto">
SELECT COALESCE(SUM(mmr.quantity), 0) AS minpacunt_drug_trac_cnt,
COALESCE(SUM(wdr.quantity), 0) AS mcs_trac_cnt
FROM adm_charge_item aci
LEFT JOIN med_medication_request mmr
ON aci.service_id = mmr.id
AND mmr.delete_flag = '0'
LEFT JOIN wor_device_request wdr
ON aci.service_id = wdr.id
AND wdr.delete_flag = '0'
WHERE aci.delete_flag = '0'
AND aci.id IN
<foreach collection="chargeItemIds" item="chargeItemId" open="(" separator="," close=")">
#{chargeItemId}
</foreach>
</select>
</mapper>