版本更新
This commit is contained in:
@@ -0,0 +1,167 @@
|
||||
<?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.reportmanage.mapper.ChargeReportMapper">
|
||||
<!--门诊收入明细-->
|
||||
<select id="selectRevenueReportPage"
|
||||
resultType="com.openhis.web.reportmanage.dto.ChargeReportPageDto">
|
||||
SELECT T8.tenant_id,
|
||||
T8.payment_id,
|
||||
T8.charge_id,
|
||||
T8.name, --姓名
|
||||
T8.gender_enum, --性别
|
||||
T8.birth_date, --出生日期
|
||||
T8.id_card, --证件号
|
||||
T8.yb_code, --医保号
|
||||
T8.encounter_date, --就诊日期
|
||||
T8.bus_no,--患者院内编码/病历号
|
||||
T8.department_id,--科室
|
||||
T8.department_name,--科室
|
||||
T8.clinical_name,--项目名
|
||||
T8.clinical_no, --项目编码
|
||||
T8.ybNo,--医保码
|
||||
T8.type, --类别
|
||||
T8.issuer_id,--开单人
|
||||
T8.issuer_name,--开单人
|
||||
T8.payee_id,--收款人
|
||||
T8.payee_name,--收款人
|
||||
T8.number,--数量
|
||||
T8.quantity_unit,--单位
|
||||
T8.price,--单价
|
||||
T8.total_price,--金额
|
||||
T8.charge_time,-- 收费时间
|
||||
T8.total_volume, --规格
|
||||
T8.chrgitmLv,--医保等级
|
||||
T8.clinical_type, --项目类型
|
||||
T8.encounter_id
|
||||
FROM (SELECT DISTINCT T1.tenant_id,
|
||||
T1.id AS payment_id,
|
||||
T4.id AS charge_id,
|
||||
T15.name, --姓名
|
||||
T15.gender_enum, --性别
|
||||
T15.birth_date, --出生日期
|
||||
T15.id_card, --证件号
|
||||
T16.psn_no AS yb_code, --医保号
|
||||
TO_CHAR(T2.reception_time, 'YYYY-MM-DD') AS encounter_date, --就诊日期
|
||||
T2.bus_no, --患者院内编码/病历号
|
||||
T3.id AS department_id,--科室
|
||||
T3.name AS department_name,--科室
|
||||
CASE
|
||||
WHEN T5.instance_table = 'adm_device_definition' THEN T11.name
|
||||
WHEN T5.instance_table = 'adm_healthcare_service' THEN T12.name
|
||||
WHEN T5.instance_table = 'med_medication_definition' THEN T13.name
|
||||
WHEN T5.instance_table = 'wor_activity_definition' THEN T14.name
|
||||
ELSE NULL
|
||||
END AS clinical_name, --项目名
|
||||
CASE
|
||||
WHEN T5.instance_table = 'adm_device_definition' THEN T11.bus_no
|
||||
WHEN T5.instance_table = 'med_medication_definition' THEN T13.bus_no
|
||||
WHEN T5.instance_table = 'wor_activity_definition' THEN T14.bus_no
|
||||
ELSE NULL
|
||||
END AS clinical_no, --项目编码
|
||||
CASE
|
||||
WHEN T5.instance_table = 'adm_device_definition' THEN T11.yb_no
|
||||
WHEN T5.instance_table = 'adm_healthcare_service' THEN T12.yb_no
|
||||
WHEN T5.instance_table = 'med_medication_definition' THEN T13.yb_no
|
||||
WHEN T5.instance_table = 'wor_activity_definition' THEN T14.yb_no
|
||||
ELSE NULL
|
||||
END AS ybNo, --医保码
|
||||
T5.yb_type AS type, --医保类别
|
||||
T6.id AS issuer_id,--开单人
|
||||
T6.name AS issuer_name,--开单人
|
||||
T7.id AS payee_id,--收款人
|
||||
T7.name AS payee_name,--收款人
|
||||
T4.quantity_value AS number,--数量
|
||||
T4.quantity_unit,--单位
|
||||
T4.unit_price AS price,--单价
|
||||
CASE
|
||||
WHEN T1.status_enum = #{refundAll} THEN -T4.total_price
|
||||
ELSE T4.total_price
|
||||
END AS total_price,--金额
|
||||
T1.bill_date AS charge_time,-- 收费时间
|
||||
CASE
|
||||
WHEN T5.instance_table = 'adm_device_definition' THEN T17.device_specifications
|
||||
WHEN T5.instance_table = 'med_medication_definition' THEN T18.total_volume
|
||||
ELSE NULL
|
||||
END AS total_volume, --规格
|
||||
CASE
|
||||
WHEN T5.instance_table = 'adm_device_definition' THEN T11.chrgitm_lv
|
||||
WHEN T5.instance_table = 'med_medication_definition' THEN T13.chrgitm_lv
|
||||
WHEN T5.instance_table = 'wor_activity_definition' THEN T14.chrgitm_lv
|
||||
ELSE NULL
|
||||
END AS chrgitmLv,--医保等级
|
||||
CASE
|
||||
WHEN T5.instance_table = 'adm_device_definition' THEN #{device}
|
||||
WHEN T5.instance_table = 'adm_healthcare_service' THEN #{register}
|
||||
WHEN T5.instance_table = 'med_medication_definition' THEN #{medication}
|
||||
WHEN T5.instance_table = 'wor_activity_definition' THEN #{activity}
|
||||
ELSE NULL
|
||||
END AS clinical_type, --项目类型
|
||||
T1.encounter_id
|
||||
FROM fin_payment_reconciliation T1
|
||||
LEFT JOIN adm_encounter T2
|
||||
ON T2.id = T1.encounter_id
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN adm_patient AS T15
|
||||
ON T1.patient_id = T15.id
|
||||
AND T15.delete_flag = '0'
|
||||
LEFT JOIN yb_clinc_reg AS T16
|
||||
ON T2.bus_no = T16.ipt_otp_no
|
||||
LEFT JOIN adm_organization AS T3
|
||||
ON T2.organization_id = T3.id
|
||||
AND T3.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item T4
|
||||
ON CONCAT(',', T1.charge_item_ids, ',') LIKE CONCAT('%,', T4.id, ',%')
|
||||
AND T4.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_definition T5
|
||||
ON T4.definition_id = T5.id
|
||||
AND T5.delete_flag = '0'
|
||||
LEFT JOIN adm_device_definition T11
|
||||
ON T5.instance_id = T11.id
|
||||
AND T5.instance_table = 'adm_device_definition'
|
||||
AND T11.delete_flag = '0'
|
||||
LEFT JOIN adm_device T17
|
||||
ON T11.id = T17.device_def_id
|
||||
AND T17.delete_flag = '0'
|
||||
LEFT JOIN adm_healthcare_service T12
|
||||
ON T5.instance_id = T12.id
|
||||
AND T5.instance_table = 'adm_healthcare_service'
|
||||
AND T12.delete_flag = '0'
|
||||
LEFT JOIN med_medication_definition T13
|
||||
ON T5.instance_id = T13.id
|
||||
AND T5.instance_table = 'med_medication_definition'
|
||||
AND T13.delete_flag = '0'
|
||||
LEFT JOIN med_medication T18
|
||||
ON T13.id = T18.medication_def_id
|
||||
AND T18.delete_flag = '0'
|
||||
LEFT JOIN wor_activity_definition T14
|
||||
ON T5.instance_id = T14.id
|
||||
AND T5.instance_table = 'wor_activity_definition'
|
||||
AND T14.delete_flag = '0'
|
||||
LEFT JOIN adm_practitioner T6
|
||||
ON T4.enterer_id = T6.id
|
||||
AND T6.delete_flag = '0'
|
||||
LEFT JOIN adm_practitioner T7
|
||||
ON T1.enterer_id = T7.id
|
||||
AND T7.delete_flag = '0'
|
||||
<if test="statisticsFlg == 0 or statisticsFlg == 1">
|
||||
INNER JOIN adm_account T19
|
||||
ON T4.account_id = T19.id
|
||||
AND T19.delete_flag = '0'
|
||||
INNER JOIN fin_contract T20
|
||||
ON T19.contract_no = T20.bus_no
|
||||
AND T20.yb_flag = #{statisticsFlg}
|
||||
AND T20.delete_flag = '0'
|
||||
</if>
|
||||
<if test="statisticsFlg == 3">
|
||||
WHERE T1.status_enum = #{refundAll}
|
||||
</if>
|
||||
<if test="statisticsFlg != 3">
|
||||
WHERE T1.status_enum IN (#{success}, #{refundAll})
|
||||
</if>
|
||||
AND T1.delete_flag = '0'
|
||||
ORDER BY T2.bus_no,
|
||||
T4.ID,
|
||||
T1.bill_date) AS T8
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -0,0 +1,127 @@
|
||||
<?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.reportmanage.mapper.InboundReportMapper">
|
||||
|
||||
<select id="selectInboundReportPage"
|
||||
resultType="com.openhis.web.reportmanage.dto.InboundReportPageDto">
|
||||
SELECT T10.supply_bus_no, --单据号
|
||||
T10.name, --药品名称
|
||||
T10.bus_no, --药品编码
|
||||
T10.lot_number, --批次号
|
||||
T10.purpose_location_id, --目的仓库ID
|
||||
T10.location_name, --仓库名称
|
||||
T10.location_store_name, --货位名称
|
||||
T10.unit_code, --计量单位
|
||||
T10.quantity, --采购数量
|
||||
T10.price, --采购单价
|
||||
T10.total_price AS total_price, --采购金额(总价)
|
||||
T10.sale_price, --售价
|
||||
T10.sale_price * T10.quantity AS total_sale_price, --售价金额(总价)
|
||||
T10.supplier_id, --供应商id
|
||||
T10.supplier, --供应商
|
||||
T10.approver_id, --审核人
|
||||
T10.create_time, --制单日期
|
||||
T10.approval_time, --审核日期
|
||||
T10.tenant_id -- 租户ID
|
||||
FROM (SELECT T1.bus_no AS supply_bus_no, --单据号
|
||||
T2.name, --药品名称
|
||||
T2.bus_no, --药品编码
|
||||
T1.lot_number, --批次号
|
||||
T1.purpose_location_id, -- 目的仓库ID
|
||||
T7.name AS location_name, --仓库名称
|
||||
T8.name AS location_store_name, --货位名称
|
||||
T1.unit_code, --计量单位
|
||||
T1.item_quantity AS quantity, --采购数量
|
||||
T4.amount AS price, --采购单价
|
||||
T1.total_price, --采购金额(总价)
|
||||
T4.amount AS sale_price, --售价
|
||||
T2.part_percent, --拆零比
|
||||
T1.supplier_id, --供应商id
|
||||
T9.name AS supplier, --供应商
|
||||
T1.approver_id, --审核人
|
||||
T1.create_time, --制单日期
|
||||
T1.approval_time, --审核日期
|
||||
T1.tenant_id -- 租户ID
|
||||
FROM wor_supply_request AS T1
|
||||
INNER JOIN wor_supply_delivery AS T14
|
||||
ON T14.request_id = T1.id
|
||||
AND T14.status_enum = #{deliveryStatus}
|
||||
AND T14.delete_flag = '0'
|
||||
LEFT JOIN med_medication_definition AS T2
|
||||
ON T2.id = T1.item_id
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_definition AS T3
|
||||
ON T3.instance_id = T1.item_id
|
||||
AND T3.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_def_detail AS T4
|
||||
ON T4.definition_id = T3.id
|
||||
AND T4.delete_flag = '0'
|
||||
AND T4.condition_value = T1.lot_number
|
||||
LEFT JOIN med_medication AS T5
|
||||
ON T5.medication_def_id = T2.id
|
||||
AND T5.delete_flag = '0'
|
||||
LEFT JOIN adm_location AS T7
|
||||
ON T7.id = T1.purpose_location_id
|
||||
AND T7.delete_flag = '0'
|
||||
LEFT JOIN adm_location AS T8
|
||||
ON T8.id = T1.purpose_location_store_id
|
||||
AND T8.delete_flag = '0'
|
||||
LEFT JOIN adm_supplier AS T9
|
||||
ON T9.id = T1.supplier_id
|
||||
AND T9.delete_flag = '0'
|
||||
WHERE T1.delete_flag = '0'
|
||||
AND T1.type_enum = #{purchaseInventory}
|
||||
AND T1.status_enum = #{supplyStatus}
|
||||
AND T1.item_table = #{medicationTableName}
|
||||
UNION
|
||||
SELECT T1.bus_no AS supply_bus_no, --单据号
|
||||
T11.name, --器材名称
|
||||
T11.bus_no, --器材编码
|
||||
T1.lot_number, --批次号
|
||||
T1.purpose_location_id, -- 目的仓库ID
|
||||
T7.name AS location_name, --仓库名称
|
||||
T8.name AS location_store_name, --货位名称
|
||||
T1.unit_code, --计量单位
|
||||
T1.item_quantity AS quantity, --采购数量
|
||||
T4.amount AS price, --采购单价
|
||||
T1.total_price, --采购金额(总价)
|
||||
T4.amount AS sale_price, --售价
|
||||
T11.part_percent, --拆零比
|
||||
T1.supplier_id, --供应商id
|
||||
T9.name AS supplier, --供应商
|
||||
T1.approver_id, --审核人
|
||||
T1.create_time, --制单日期
|
||||
T1.approval_time, --审核日期
|
||||
T1.tenant_id -- 租户ID
|
||||
FROM wor_supply_request AS T1
|
||||
INNER JOIN wor_supply_delivery AS T14
|
||||
ON T14.request_id = T1.id
|
||||
AND T14.status_enum = #{deliveryStatus}
|
||||
AND T14.delete_flag = '0'
|
||||
LEFT JOIN adm_device_definition AS T11
|
||||
ON T11.id = T1.item_id
|
||||
AND T11.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_definition AS T3
|
||||
ON T3.instance_id = T1.item_id
|
||||
AND T3.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_def_detail AS T4
|
||||
ON T4.definition_id = T3.id
|
||||
AND T4.delete_flag = '0'
|
||||
AND T4.condition_value = T1.lot_number
|
||||
LEFT JOIN adm_location AS T7
|
||||
ON T7.id = T1.purpose_location_id
|
||||
AND T7.delete_flag = '0'
|
||||
LEFT JOIN adm_location AS T8
|
||||
ON T8.id = T1.purpose_location_store_id
|
||||
AND T8.delete_flag = '0'
|
||||
LEFT JOIN adm_supplier AS T9
|
||||
ON T9.id = T1.supplier_id
|
||||
AND T9.delete_flag = '0'
|
||||
WHERE T1.delete_flag = '0'
|
||||
AND T1.type_enum = #{purchaseInventory}
|
||||
AND T1.status_enum = #{supplyStatus}
|
||||
AND T1.item_table = #{deviceTableName}) AS T10
|
||||
${ew.customSqlSegment}
|
||||
ORDER BY T10.supply_bus_no DESC
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -0,0 +1,146 @@
|
||||
<?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.reportmanage.mapper.InpatientMedicalRecordHomePageCollectionMapper">
|
||||
<select id="getInfo"
|
||||
resultType="com.openhis.web.reportmanage.dto.InpatientMedicalRecordHomePageMakeDto">
|
||||
SELECT --todo sql没写完
|
||||
AS A48, -- 病案号 A48 字符 50 必填
|
||||
AS A49, -- 住院次数 A49 数字 4 必填
|
||||
to_char(T1.start_time::TIMESTAMPTZ,'YYYY-MM-DD HH24:MI:SS') AS B12,--入院时间
|
||||
to_char(T1.end_time::TIMESTAMPTZ,'YYYY-MM-DD HH24:MI:SS') AS B15,--出院时间
|
||||
AS A46C, -- 医疗付费方式 A46C 字符 3 必填
|
||||
T2.name AS A11, --姓名
|
||||
T2.gender_enum AS A12C, --性别
|
||||
T2.birth_date AS A13,-- 出生日期
|
||||
T2.country_code AS A15C,--国籍
|
||||
T2,marital_status_enum AS A21C,--婚姻
|
||||
T2.prfs_enum AS A38C,--职业
|
||||
T2.nationality_code AS A19C,--民族
|
||||
T2.id_card AS A20,-- 证件号码
|
||||
AS A22, -- 出生地址 A22 字符 200 必填
|
||||
T2.native_place AS A23C, --籍贯省(自治区、直辖市)
|
||||
T2.address AS A24,-- 户口地址
|
||||
AS A25C, -- 户口地址邮政编码 A25C 字符 6 必填
|
||||
AS A26, -- 现住址 A26 字符 200 必填
|
||||
T2.phone AS A27, -- 现住址电话 A27 字符 40 必填
|
||||
AS A28C, -- 现住址邮政编码 A28C 字符 6 必填
|
||||
T2.work_company AS A29, -- 工作单位及地址 A29 字符 200 必填
|
||||
AS A30, -- 工作单位电话 A30 字符 20 必填
|
||||
AS A31C, -- 工作单位邮政编码 A31C 字符 6 必填
|
||||
T2.link_name AS A32, -- 联系人姓名 A32 字符 40 必填
|
||||
T2.link_relation_code AS A33C, -- 联系人关系 A33C 字符 1 必填
|
||||
AS A34, -- 联系人地址 A34 字符 200 必填
|
||||
T2.link_telcom AS A35, -- 联系人电话 A35 字符 40 必填
|
||||
AS B38, -- 是否为日间手术 B38 字符 1 必填
|
||||
AS B11C, -- 入院途径 B11C 字符 1 必填
|
||||
AS B13C, -- 入院科别 B13C 字符 6 必填
|
||||
AS B14, -- 入院病房 B14 字符 30 必填
|
||||
AS B21C, -- 转科科别 B21C 集合 可以多选 必填
|
||||
AS B16C, -- 出院科别 B16C 字符 6 必填
|
||||
AS B17, -- 出院病房 B17 字符 30 必填
|
||||
DATE(T1.end_time::TIMESTAMPTZ) - DATE(T1.start_time::TIMESTAMPTZ) AS B20, -- 实际住院(天) B20 数字 6 必填
|
||||
AS C01C, -- 门(急)诊诊断编码 C01C 字符 20 必填
|
||||
AS C02N, -- 门(急)诊诊断名称 C02N 字符 100 必填
|
||||
AS C03C, -- 出院主要诊断编码 C03C 字符 20 必填
|
||||
AS C04N, -- 出院主要诊断名称 C04N 字符 100 必填
|
||||
AS C05C, -- 出院主要诊断入院病情 C05C 字符 1 必填
|
||||
AS C09C, -- 病理诊断编码 C09C 字符 20 条件必填
|
||||
AS C10N, -- 病理诊断名称 C10N 字符 100 条件必填
|
||||
AS C11, -- 病理号 C11 字符 50 条件必填
|
||||
AS C12C, -- 损伤、中毒外部原因编码 C12C 字符 20 条件必填
|
||||
AS C13N, -- 损伤、中毒外部原因名称 C13N 字符 100 条件必填
|
||||
AS C24C, -- 有无药物过敏 C24C 字符 1 必填
|
||||
AS C25, -- 过敏药物名称 C25 字符 200 条件必填
|
||||
AS B22C, -- 科主任编码 B22C 字符 30 必填
|
||||
AS B22, -- 科主任 B22 字符 40 必填
|
||||
AS B23C, -- 主(副主)任医师编码 B23C 字符 30 必填
|
||||
AS B23, -- 主(副主)任医师 B23 字符 40 必填
|
||||
AS B24C, -- 主治医师编码 B24C 字符 30 必填
|
||||
AS B24, -- 主治医师 B24 字符 40 必填
|
||||
AS B25C, -- 住院医师编码 B25C 字符 30 必填
|
||||
AS B25, -- 住院医师 B25 字符 40 必填
|
||||
AS B26C, -- 责任护士编码 B26C 字符 30 必填
|
||||
AS B26, -- 责任护士 B26 字符 40 必填
|
||||
AS B29, -- 编码员 B29 字符 40 必填
|
||||
AS C26C, -- ABO血型 C26C 字符 1 必填
|
||||
AS C27C, -- Rh血型 C27C 字符 1 必填
|
||||
AS C14x01C, -- 主要手术操作编码 C14x01C 字符 20 必填
|
||||
AS C15x01N, -- 主要手术操作名称 C15x01N 字符 100 必填
|
||||
AS C16x01, -- 主要手术操作日期 C16x01 日期时间 必填
|
||||
AS C17x01, -- 主要手术操作级别 C17x01 字符 1 条件必填
|
||||
AS C18x01, -- 主要手术操作术者 C18x01 字符 40 条件必填
|
||||
AS C19x01, -- 主要手术操作Ⅰ助 C19x01 字符 40 条件必填
|
||||
AS C20x01, -- 主要手术操作Ⅱ助 C20x01 字符 40 条件必填
|
||||
AS C21x01C, -- 主要手术操作切口愈合等级 C21x01C 字符 2 条件必填
|
||||
AS C22x01C, -- 主要手术操作麻醉方式 C22x01C 字符 6 条件必填
|
||||
AS C23x01, -- 主要手术操作麻醉医师 C23x01 字符 40 条件必填
|
||||
AS F21, -- 输血反应 F21 数字 1 条件必填
|
||||
AS F22, -- 红细胞 F22 数字 (4,1) 条件必填
|
||||
AS F23, -- 血小板 F23 数字 (4,1) 条件必填
|
||||
AS F24, -- 血浆 F24 数字 (8,2) 条件必填
|
||||
AS F25, -- 全血 F25 数字 (8,2) 条件必填
|
||||
AS F26, -- 自体血回输 F26 数字 (4,1) 条件必填
|
||||
AS A16, -- 年龄不足1周岁的年龄(天) A16 数字 3 条件必填②
|
||||
AS A18x01, -- 新生儿出生体重(克) A18x01 数字 6 条件必填②
|
||||
AS A17, -- 新生儿入院体重(克) A17 数字 6 条件必填②
|
||||
AS C28, -- 颅脑损伤患者入院前昏迷时间(天) C28 数字 5 必填
|
||||
AS C29, -- 颅脑损伤患者入院前昏迷时间(小时) C29 数字 2 必填
|
||||
AS C30, -- 颅脑损伤患者入院前昏迷时间(分钟) C30 数字 2 必填
|
||||
AS C31, -- 颅脑损伤患者入院后昏迷时间(天) C31 数字 5 必填
|
||||
AS C32, -- 颅脑损伤患者入院后昏迷时间(小时) C32 数字 2 必填
|
||||
AS C33, -- 颅脑损伤患者入院后昏迷时间(分钟) C33 数字 2 必填
|
||||
AS B36C, -- 是否有出院31日内再住院计划 B36C 数字 1 必填
|
||||
AS B37, -- 出院31天再住院计划目的 B37 字符 100 条件必填
|
||||
AS B34C, -- 离院方式 B34C 字符 1 必填
|
||||
AS B35, -- 医嘱转院、转社区卫生服务机构/乡镇卫生院名称 B35 字符 100 条件必填
|
||||
AS D01, -- 住院总费用 D01 数字 (11,2) 必填
|
||||
AS D09, -- 住院总费用其中自付金额 D09 数字 (10,2) 必填
|
||||
AS D26 -- 16.血费 D26 数字 (10,2)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
T3.name AS organization_name,
|
||||
STRING_AGG(T5.NAME, '_' ORDER BY T5.bus_no) AS inpatient_bed --床位
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
FROM adm_encounter T1
|
||||
LEFT JOIN adm_patient T2
|
||||
ON T1.patient_id = T2.id
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN adm_organization AS T3
|
||||
ON T1.organization_id = T3.id
|
||||
AND T3.delete_flag = '0'
|
||||
LEFT JOIN adm_encounter_location AS T4
|
||||
ON T4.encounter_id = T1.id
|
||||
AND T4.status_enum = '2'
|
||||
AND T4.delete_flag = '0'
|
||||
LEFT JOIN adm_location AS T5
|
||||
ON T5.id = T4.location_id
|
||||
AND T5.delete_flag = '0'
|
||||
|
||||
|
||||
WHERE T1.id IN
|
||||
<foreach collection="encounterIdList" item="item" separator="," open="(" close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
AND T1.class_enum = 1
|
||||
AND T1.delete_flag = '0'
|
||||
GROUP BY
|
||||
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -0,0 +1,134 @@
|
||||
<?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.reportmanage.mapper.InventoryProductReportMapper">
|
||||
|
||||
<select id="selectProductReportPage"
|
||||
resultType="com.openhis.web.reportmanage.dto.InventoryProductReportPageDto">
|
||||
SELECT T8.id, --ID
|
||||
T8.bus_no, --药品编码
|
||||
T8.name, --药品名称
|
||||
T8.lot_number, --批次号
|
||||
T8.manufacturer_text, --厂家
|
||||
T8.item_table, --药品类型
|
||||
T8.item_quantity, --库存数量
|
||||
T8.unit_code, --计量单位
|
||||
T8.min_package_quantity, --小包装库存数
|
||||
T8.min_package_unit, --小包装单位
|
||||
T8.price, --进价
|
||||
T8.sale_price, --售价
|
||||
T8.price * T8.part_percent AS part_price, --拆零进价
|
||||
T8.sale_price * T8.part_percent AS part_sale_price, --拆零售价
|
||||
T8.price * T8.item_quantity AS total_price, --进价金额(总价)
|
||||
T8.sale_price * T8.item_quantity AS total_sale_price, --售价金额(总价)
|
||||
T8.purpose_type_enum, --仓库类型
|
||||
T8.location_name, --仓库名称
|
||||
T8.location_store_name, --货位名称
|
||||
T8.expiration_date, --有效期
|
||||
T8.yb_no, --医保编码
|
||||
T8.tenant_id -- 租户ID
|
||||
FROM (SELECT T1.id, --ID
|
||||
T2.bus_no, --药品编码
|
||||
T2.name, --药品名称
|
||||
T1.lot_number, --批次号
|
||||
T2.manufacturer_text, --厂家
|
||||
T2.category_code AS item_table, --药品类型
|
||||
T1.quantity AS item_quantity, --库存数量
|
||||
T2.unit_code, --计量单位
|
||||
T1.quantity AS min_package_quantity, --小包装库存数
|
||||
T2.min_unit_code AS min_package_unit, --小包装单位
|
||||
T1.price, --进价
|
||||
CASE
|
||||
WHEN T4.condition_code = #{lotNumber}
|
||||
AND T4.condition_value = T1.lot_number
|
||||
THEN T4.amount
|
||||
ELSE T3.price END AS sale_price, --售价
|
||||
T2.part_percent, --拆零比
|
||||
T6.form_enum AS purpose_type_enum, --仓库类型
|
||||
T6.name AS location_name, --仓库名称
|
||||
T7.name AS location_store_name, --货位名称
|
||||
T1.expiration_date, --有效期
|
||||
T2.yb_no, --医保编码
|
||||
T1.tenant_id -- 租户ID
|
||||
FROM wor_inventory_item AS T1
|
||||
INNER JOIN med_medication_definition AS T2
|
||||
ON T2.id = T1.item_id
|
||||
AND T2.delete_flag = '0'
|
||||
INNER JOIN adm_charge_item_definition AS T3
|
||||
ON T3.instance_id = T2.id
|
||||
AND T3.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_def_detail AS T4
|
||||
ON T4.definition_id = T3.id
|
||||
AND T4.delete_flag = '0'
|
||||
LEFT JOIN adm_location T6
|
||||
ON T1.location_id = T6.id
|
||||
AND T6.delete_flag = '0'
|
||||
LEFT JOIN adm_location T7
|
||||
ON T1.location_store_id = T7.id
|
||||
AND T7.delete_flag = '0'
|
||||
WHERE T1.delete_flag = '0') AS T8
|
||||
UNION
|
||||
SELECT T10.id, --ID
|
||||
T10.bus_no, --器材编码
|
||||
T10.name, --器材名称
|
||||
T10.lot_number, --批次号
|
||||
T10.manufacturer_text, --厂家
|
||||
T10.item_table, --器材类型
|
||||
T10.item_quantity, --库存数量
|
||||
T10.unit_code, --计量单位
|
||||
T10.min_package_quantity, --小包装库存数
|
||||
T10.min_package_unit, --小包装单位
|
||||
T10.price, --进价
|
||||
T10.sale_price, --售价
|
||||
T10.price * T10.part_percent AS part_price, --拆零进价
|
||||
T10.sale_price * T10.part_percent AS part_sale_price, --拆零售价
|
||||
T10.price * T10.item_quantity AS total_price, --进价金额(总价)
|
||||
T10.sale_price * T10.item_quantity AS total_sale_price, --售价金额(总价)
|
||||
T10.purpose_type_enum, --仓库类型
|
||||
T10.location_name, --仓库名称
|
||||
T10.location_store_name, --货位名称
|
||||
T10.expiration_date, --有效期
|
||||
T10.yb_no, --医保编码
|
||||
T10.tenant_id -- 租户ID
|
||||
FROM (SELECT T1.id, --ID
|
||||
T9.bus_no, --药品编码
|
||||
T9.name, --药品名称
|
||||
T1.lot_number, --批次号
|
||||
T9.manufacturer_text, --厂家
|
||||
T9.category_code AS item_table, --药品类型
|
||||
T1.quantity AS item_quantity, --库存数量
|
||||
T9.unit_code, --计量单位
|
||||
T1.quantity AS min_package_quantity, --小包装库存数
|
||||
T9.min_unit_code AS min_package_unit, --小包装单位
|
||||
T1.price, --进价
|
||||
CASE
|
||||
WHEN T4.condition_code = #{lotNumber}
|
||||
AND T4.condition_value = T1.lot_number
|
||||
THEN T4.amount
|
||||
ELSE T3.price END AS sale_price, --售价
|
||||
T9.part_percent, --拆零比
|
||||
T6.form_enum AS purpose_type_enum, --仓库类型
|
||||
T6.name AS location_name, --仓库名称
|
||||
T7.name AS location_store_name, --货位名称
|
||||
T1.expiration_date, --有效期
|
||||
T9.yb_no, --医保编码
|
||||
T1.tenant_id -- 租户ID
|
||||
FROM wor_inventory_item AS T1
|
||||
INNER JOIN adm_device_definition AS T9
|
||||
ON T9.id = T1.item_id
|
||||
AND T9.delete_flag = '0'
|
||||
INNER JOIN adm_charge_item_definition AS T3
|
||||
ON T3.instance_id = T9.id
|
||||
AND T3.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_def_detail AS T4
|
||||
ON T4.definition_id = T3.id
|
||||
AND T4.delete_flag = '0'
|
||||
LEFT JOIN adm_location T6
|
||||
ON T1.location_id = T6.id
|
||||
AND T6.delete_flag = '0'
|
||||
LEFT JOIN adm_location T7
|
||||
ON T1.location_store_id = T7.id
|
||||
AND T7.delete_flag = '0'
|
||||
WHERE T1.delete_flag = '0') AS T10
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -0,0 +1,74 @@
|
||||
<?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.reportmanage.mapper.LossReportMapper">
|
||||
|
||||
<select id="selectLossReportPage"
|
||||
resultType="com.openhis.web.reportmanage.dto.LossReportPageDto">
|
||||
SELECT T9.bus_no, --编码
|
||||
T9.name, --名称
|
||||
T9.total_volume, --规格
|
||||
T9.manufacturer_text, --厂家
|
||||
T9.lot_number, --产品批号
|
||||
T9.location_name, --目的仓库
|
||||
T9.unit_code, --小单位
|
||||
T9.item_quantity, --数量
|
||||
T9.approval_time, --审批时间
|
||||
T9.tenant_id -- 租户ID
|
||||
FROM (SELECT T2.bus_no, --编码
|
||||
T2.name, --名称
|
||||
T3.total_volume, --规格
|
||||
T2.manufacturer_text, --厂家
|
||||
T1.lot_number, --产品批号
|
||||
T5.name AS location_name, --目的仓库
|
||||
T1.unit_code, --单位
|
||||
T1.item_quantity, --数量
|
||||
T1.approval_time, --审批时间
|
||||
T1.tenant_id -- 租户ID
|
||||
FROM wor_supply_request AS T1
|
||||
INNER JOIN wor_supply_delivery AS T8
|
||||
ON T8.request_id = T1.id
|
||||
AND T8.status_enum = #{deliveryStatus}
|
||||
AND T8.delete_flag = '0'
|
||||
LEFT JOIN med_medication_definition AS T2
|
||||
ON T1.item_id = T2.id
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN med_medication AS T3
|
||||
ON T2.id = T3.medication_def_id
|
||||
AND T3.delete_flag = '0'
|
||||
LEFT JOIN adm_location T5
|
||||
ON T1.purpose_location_id = T5.id
|
||||
AND T5.delete_flag = '0'
|
||||
WHERE T1.type_enum = #{lossReport}
|
||||
AND T1.status_enum = #{supplyStatus}
|
||||
AND T1.item_table = #{medicationTableName}
|
||||
AND T1.delete_flag = '0'
|
||||
UNION
|
||||
SELECT T6.bus_no, --编码
|
||||
T6.name, --名称
|
||||
T6.size AS total_volume, --规格(器材规格)
|
||||
T6.manufacturer_text, --厂家
|
||||
T1.lot_number, --产品批号
|
||||
T5.name AS location_name, --目的仓库
|
||||
T1.unit_code, --单位
|
||||
T1.item_quantity, --数量
|
||||
T1.approval_time, --审批时间
|
||||
T1.tenant_id -- 租户ID
|
||||
FROM wor_supply_request AS T1
|
||||
INNER JOIN wor_supply_delivery AS T8
|
||||
ON T8.request_id = T1.id
|
||||
AND T8.status_enum = #{deliveryStatus}
|
||||
AND T8.delete_flag = '0'
|
||||
LEFT JOIN adm_device_definition AS T6
|
||||
ON T1.item_id = T6.id
|
||||
AND T6.delete_flag = '0'
|
||||
LEFT JOIN adm_location T5
|
||||
ON T1.purpose_location_id = T5.id
|
||||
AND T5.delete_flag = '0'
|
||||
WHERE T1.type_enum = #{lossReport}
|
||||
AND T1.status_enum = #{supplyStatus}
|
||||
AND T1.item_table = #{deviceTableName}
|
||||
AND T1.delete_flag = '0') AS T9
|
||||
${ew.customSqlSegment}
|
||||
ORDER BY T9.bus_no DESC
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -0,0 +1,300 @@
|
||||
<?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.reportmanage.mapper.MedicationDeviceReportMapper">
|
||||
|
||||
<select id="selectMedDdevInfo"
|
||||
resultType="com.openhis.web.reportmanage.dto.MedUseReportInfoDto">
|
||||
SELECT
|
||||
name,
|
||||
total_volume,
|
||||
lot_number,
|
||||
manufacturer_text,
|
||||
org_id,
|
||||
SUM(total_quantity) AS total_quantity,
|
||||
MAX(unit_code) AS unit_code,
|
||||
SUM(total_money) AS total_money,
|
||||
MAX(dispense_time) AS dispense_time
|
||||
FROM (
|
||||
/* ---------- 第一段查询 ---------- */
|
||||
SELECT
|
||||
name,
|
||||
total_volume,
|
||||
lot_number,
|
||||
manufacturer_text,
|
||||
total_quantity,
|
||||
unit_code,
|
||||
unit_price,
|
||||
total_money,
|
||||
org_id,
|
||||
dispense_time
|
||||
FROM (
|
||||
SELECT
|
||||
T3.name,
|
||||
T7.total_volume,
|
||||
T1.lot_number,
|
||||
T3.manufacturer_text,
|
||||
SUM(T1.quantity) AS total_quantity,
|
||||
MAX(T1.unit_code) AS unit_code,
|
||||
MAX(T8.unit_price) AS unit_price,
|
||||
SUM(T1.quantity) * MAX(T8.unit_price) AS total_money,
|
||||
T1.org_id,
|
||||
MAX(T2.dispense_time) AS dispense_time
|
||||
FROM med_medication_request T1
|
||||
LEFT JOIN med_medication_dispense T2
|
||||
ON T2.med_req_id = T1.id AND T2.delete_flag = '0'
|
||||
LEFT JOIN med_medication_definition T3
|
||||
ON T3.id = T1.medication_id AND T3.delete_flag = '0'
|
||||
LEFT JOIN med_medication T7
|
||||
ON T3.id = T7.medication_def_id AND T7.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item T8
|
||||
ON T8.service_table = #{medReqTableName} --'med_medication_request'
|
||||
AND T8.service_id = T1.id
|
||||
AND T8.delete_flag = '0'
|
||||
WHERE T1.status_enum = #{completed} --'3'
|
||||
AND T1.delete_flag = '0'
|
||||
AND TO_CHAR(T2.dispense_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{dispenseDateSTime} AND #{dispenseDateETime}
|
||||
GROUP BY
|
||||
T3.name,
|
||||
T7.total_volume,
|
||||
T1.lot_number,
|
||||
T3.manufacturer_text,
|
||||
T1.org_id
|
||||
|
||||
UNION ALL
|
||||
|
||||
SELECT
|
||||
T6.name,
|
||||
T6.size AS total_volume,
|
||||
T4.lot_number,
|
||||
T6.manufacturer_text,
|
||||
SUM(T4.quantity) AS total_quantity,
|
||||
MAX(T4.unit_code) AS unit_code,
|
||||
MAX(T9.unit_price) AS unit_price,
|
||||
SUM(T4.quantity) * MAX(T9.unit_price) AS total_money,
|
||||
T4.org_id,
|
||||
MAX(T5.dispense_time) AS dispense_time
|
||||
FROM wor_device_request T4
|
||||
LEFT JOIN wor_device_dispense T5
|
||||
ON T5.device_req_id = T4.id AND T5.delete_flag = '0'
|
||||
LEFT JOIN adm_device_definition T6
|
||||
ON T6.id = T5.device_def_id AND T6.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item T9
|
||||
ON T9.service_table = #{devReqTableName} --'wor_device_request'
|
||||
AND T9.service_id = T4.id
|
||||
AND T9.delete_flag = '0'
|
||||
WHERE T4.status_enum = #{completed} --'3'
|
||||
AND T4.delete_flag = '0'
|
||||
AND TO_CHAR(T5.dispense_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{dispenseDateSTime} AND #{dispenseDateETime}
|
||||
GROUP BY
|
||||
T6.name,
|
||||
T6.size,
|
||||
T4.lot_number,
|
||||
T6.manufacturer_text,
|
||||
T4.org_id
|
||||
) AS q1
|
||||
WHERE total_quantity > 0
|
||||
|
||||
UNION ALL
|
||||
|
||||
/* ---------- 第二段查询 ---------- */
|
||||
SELECT
|
||||
name,
|
||||
total_volume,
|
||||
lot_number,
|
||||
manufacturer_text,
|
||||
total_quantity,
|
||||
unit_code,
|
||||
NULL AS unit_price, -- 第二段已自带总金额,不需要单价
|
||||
total_money,
|
||||
org_id,
|
||||
dispense_time
|
||||
FROM (
|
||||
SELECT
|
||||
name,
|
||||
total_volume,
|
||||
lot_number,
|
||||
manufacturer_text,
|
||||
org_id,
|
||||
SUM(quantity) AS total_quantity,
|
||||
MAX(unit_code) AS unit_code,
|
||||
SUM(total_price) AS total_money,
|
||||
MAX(dispense_time) AS dispense_time
|
||||
FROM (
|
||||
SELECT
|
||||
T10.name,
|
||||
T11.total_volume,
|
||||
T9.lot_number,
|
||||
T10.manufacturer_text,
|
||||
CASE WHEN T9.type_enum = #{returnIssue} THEN T9.item_quantity * -1
|
||||
ELSE T9.item_quantity END AS quantity,
|
||||
T9.unit_code,
|
||||
CASE WHEN T9.type_enum = #{returnIssue} THEN T9.total_price * -1
|
||||
ELSE T9.total_price END AS total_price,
|
||||
CASE WHEN T9.type_enum = #{returnIssue} THEN T9.source_location_id
|
||||
ELSE T9.purpose_location_id END AS org_id,
|
||||
T12.occurrence_time AS dispense_time
|
||||
FROM wor_supply_request T9
|
||||
LEFT JOIN med_medication_definition T10
|
||||
ON T9.item_id = T10.id AND T10.delete_flag = '0'
|
||||
LEFT JOIN med_medication T11
|
||||
ON T10.id = T11.medication_def_id AND T11.delete_flag = '0'
|
||||
LEFT JOIN wor_supply_delivery T12
|
||||
ON T12.request_id = T9.id AND T12.delete_flag = '0'
|
||||
WHERE (T9.type_enum = #{returnIssue} OR T9.type_enum = #{issueInventory})
|
||||
AND T9.item_table = #{medDefTableName} --'med_medication_definition'
|
||||
AND T12.status_enum = #{eventStatus}--'4'
|
||||
AND T9.delete_flag = '0'
|
||||
AND TO_CHAR(T12.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{dispenseDateSTime} AND #{dispenseDateETime}
|
||||
|
||||
UNION ALL
|
||||
|
||||
SELECT
|
||||
T14.name,
|
||||
T14.size AS total_volume,
|
||||
T13.lot_number,
|
||||
T14.manufacturer_text,
|
||||
CASE WHEN T13.type_enum = #{returnIssue} THEN T13.item_quantity * -1
|
||||
ELSE T13.item_quantity END AS quantity,
|
||||
T13.unit_code,
|
||||
CASE WHEN T13.type_enum = #{returnIssue} THEN T13.total_price * -1
|
||||
ELSE T13.total_price END AS total_price,
|
||||
CASE WHEN T13.type_enum = #{returnIssue} THEN T13.source_location_id
|
||||
ELSE T13.purpose_location_id END AS org_id,
|
||||
T15.occurrence_time AS dispense_time
|
||||
FROM wor_supply_request T13
|
||||
LEFT JOIN adm_device_definition T14
|
||||
ON T13.item_id = T14.id AND T14.delete_flag = '0'
|
||||
LEFT JOIN wor_supply_delivery T15
|
||||
ON T15.request_id = T13.id AND T15.delete_flag = '0'
|
||||
WHERE (T13.type_enum = #{returnIssue} OR T13.type_enum = #{issueInventory})
|
||||
AND T13.item_table = #{devDefTableName} --'adm_device_definition'
|
||||
AND T15.status_enum = #{eventStatus}--'4'
|
||||
AND T13.delete_flag = '0'
|
||||
AND TO_CHAR(T15.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{dispenseDateSTime} AND #{dispenseDateETime}
|
||||
) AS q2
|
||||
GROUP BY
|
||||
name,
|
||||
total_volume,
|
||||
lot_number,
|
||||
manufacturer_text,
|
||||
org_id
|
||||
) AS q3
|
||||
) AS merged
|
||||
WHERE org_id = #{orgId}
|
||||
<if test="name != null and name != ''">and name like concat('%', #{name}, '%')</if>
|
||||
|
||||
GROUP BY
|
||||
name,
|
||||
total_volume,
|
||||
lot_number,
|
||||
manufacturer_text,
|
||||
org_id
|
||||
ORDER BY
|
||||
org_id,
|
||||
MAX(dispense_time) DESC
|
||||
</select>
|
||||
|
||||
|
||||
|
||||
<select id="selectMedDevReport"
|
||||
resultType="com.openhis.web.reportmanage.dto.MedDevUseReportDto">
|
||||
SELECT org_id,
|
||||
org_name,
|
||||
SUM(total_money) AS total_money
|
||||
FROM (
|
||||
/* ---------- 第一段:药品申领 + 耗材申领 ---------- */
|
||||
SELECT T1.org_id,
|
||||
T16.name AS org_name,
|
||||
SUM(T1.quantity * T8_MAX.unit_price_max) AS total_money
|
||||
FROM med_medication_request T1
|
||||
LEFT JOIN med_medication_dispense T2
|
||||
ON T2.med_req_id = T1.id
|
||||
AND T2.delete_flag = '0'
|
||||
/* 时间区间 */
|
||||
AND
|
||||
TO_CHAR(T2.dispense_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{dispenseDateSTime} AND #{dispenseDateETime}
|
||||
LEFT JOIN (SELECT T8.service_id,
|
||||
MAX(T8.unit_price) AS unit_price_max -- 单处方的最高单价
|
||||
FROM adm_charge_item T8
|
||||
WHERE T8.service_table = #{medReqTableName} --'med_medication_request'
|
||||
AND T8.delete_flag = '0'
|
||||
GROUP BY T8.service_id) T8_MAX ON T8_MAX.service_id = T1.ID
|
||||
LEFT JOIN adm_organization T16
|
||||
ON T1.org_id = T16.id
|
||||
AND T16.delete_flag = '0'
|
||||
WHERE T1.status_enum = #{completed} --'3'
|
||||
AND T1.delete_flag = '0'
|
||||
/* 确保有发放记录才纳入汇总 */
|
||||
AND T2.dispense_time IS NOT NULL
|
||||
GROUP BY T1.org_id,
|
||||
T16.name
|
||||
|
||||
UNION ALL
|
||||
|
||||
SELECT T4.org_id,
|
||||
T16.name AS org_name,
|
||||
SUM(T4.quantity * T9_MAX.unit_price_max) AS total_money
|
||||
FROM wor_device_request T4
|
||||
LEFT JOIN wor_device_dispense T5
|
||||
ON T5.device_req_id = T4.id
|
||||
AND T5.delete_flag = '0'
|
||||
/* 时间区间 */
|
||||
AND
|
||||
TO_CHAR(T5.dispense_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{dispenseDateSTime} AND #{dispenseDateETime}
|
||||
LEFT JOIN (SELECT T9.service_id,
|
||||
MAX(T9.unit_price) AS unit_price_max -- 单处方的最高单价
|
||||
FROM adm_charge_item T9
|
||||
WHERE T9.service_table = #{devReqTableName} --'wor_device_request'
|
||||
AND T9.delete_flag = '0'
|
||||
GROUP BY T9.service_id) T9_MAX ON T9_MAX.service_id = T4.ID
|
||||
LEFT JOIN adm_organization T16
|
||||
ON T4.org_id = T16.id
|
||||
AND T16.delete_flag = '0'
|
||||
WHERE T4.status_enum = #{completed} --'3'
|
||||
AND T4.delete_flag = '0'
|
||||
AND T5.dispense_time IS NOT NULL
|
||||
GROUP BY T4.org_id,
|
||||
T16.name
|
||||
|
||||
/* ---------- 第二段:supply_request ---------- */
|
||||
UNION ALL
|
||||
|
||||
SELECT CASE
|
||||
WHEN T9.type_enum = '9' THEN T9.source_location_id
|
||||
ELSE T9.purpose_location_id END AS org_id,
|
||||
CASE
|
||||
WHEN T9.type_enum = '9' THEN T16.name
|
||||
ELSE T17.name END AS org_name,
|
||||
SUM(CASE
|
||||
WHEN T9.type_enum = '9' THEN T9.total_price * -1
|
||||
ELSE T9.total_price END) AS total_money
|
||||
FROM wor_supply_request T9
|
||||
LEFT JOIN wor_supply_delivery T12
|
||||
ON T12.request_id = T9.id
|
||||
AND T12.delete_flag = '0'
|
||||
/* 时间区间 */
|
||||
AND
|
||||
TO_CHAR(T12.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{dispenseDateSTime} AND #{dispenseDateETime}
|
||||
LEFT JOIN adm_organization T16
|
||||
ON T9.source_location_id = T16.id
|
||||
AND T16.delete_flag = '0'
|
||||
LEFT JOIN adm_organization T17
|
||||
ON T9.purpose_location_id = T17.id
|
||||
AND T17.delete_flag = '0'
|
||||
WHERE (T9.type_enum = '9' OR T9.type_enum = '7')
|
||||
AND T9.item_table IN (#{medDefTableName}, #{devDefTableName})--('med_medication_definition','adm_device_definition')
|
||||
AND T12.status_enum = #{eventStatus}--'4'
|
||||
AND T9.delete_flag = '0'
|
||||
AND T12.occurrence_time IS NOT NULL
|
||||
GROUP BY CASE
|
||||
WHEN T9.type_enum = '9' THEN T9.source_location_id
|
||||
ELSE T9.purpose_location_id END,
|
||||
CASE
|
||||
WHEN T9.type_enum = '9' THEN T16.name
|
||||
ELSE T17.name END) AS merged
|
||||
GROUP BY org_id,
|
||||
org_name
|
||||
ORDER BY org_id
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,151 @@
|
||||
<?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.reportmanage.mapper.MonthlySettlementReportMapper">
|
||||
|
||||
<!--期初金额 todo:定时任务每日凌晨批量盘库,做成盘点时间occurrence_time是 yyyy-MM-dd 00:00:00,-->
|
||||
<select id="selectAmount" resultType="java.math.BigDecimal">
|
||||
SELECT COALESCE(SUM(T1.price * COALESCE(T1.total_quantity, 0)), 0) AS total_amount
|
||||
FROM wor_aut_supply_request T1
|
||||
WHERE T1.purpose_location_id = #{locationId}
|
||||
AND T1.type_enum = '44' -- 商品批量盘点
|
||||
AND TO_CHAR(T1.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') = #{time}
|
||||
AND T1.delete_flag = '0'
|
||||
</select>
|
||||
|
||||
<!--采购入库金额 -->
|
||||
<select id="selectAmountNumber"
|
||||
resultType="com.openhis.web.reportmanage.dto.AmountNumberDto">
|
||||
SELECT
|
||||
COALESCE(SUM(total_price), 0) AS total_amount,
|
||||
COUNT(DISTINCT bus_no) AS total_number
|
||||
FROM wor_supply_request T1
|
||||
INNER JOIN wor_supply_delivery T2 ON T1.id = T2.request_id AND T2.delete_flag = '0'
|
||||
WHERE T1.purpose_location_id = #{locationId}
|
||||
AND T1.type_enum = #{typeEnum} -- 1:采购入库
|
||||
AND T1.status_enum = #{agree}--同意
|
||||
AND T2.status_enum = #{completed}--已完成
|
||||
AND TO_CHAR(T2.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime}
|
||||
AND T1.delete_flag = '0'
|
||||
</select>
|
||||
|
||||
<!--调拨入库查询 -->
|
||||
<select id="selectTransferInAmountNumber"
|
||||
resultType="com.openhis.web.reportmanage.dto.AmountNumberDto">
|
||||
SELECT
|
||||
COALESCE(SUM(total_price), 0) AS total_amount,
|
||||
COUNT(DISTINCT bus_no) AS total_number
|
||||
FROM wor_supply_request T1
|
||||
INNER JOIN wor_supply_delivery T2 ON T1.id = T2.request_id AND T2.delete_flag = '0'
|
||||
WHERE T1.purpose_location_id = #{locationId}
|
||||
AND T1.type_enum IN (#{productTransfer} ,#{productBatchTransfer} )
|
||||
AND T1.status_enum = #{agree}--同意
|
||||
AND T2.status_enum = #{completed}--已完成
|
||||
AND TO_CHAR(T2.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime}
|
||||
AND T1.delete_flag = '0'
|
||||
</select>
|
||||
|
||||
<!--调拨出库查询 -->
|
||||
<select id="selectTransferOutAmountNumber"
|
||||
resultType="com.openhis.web.reportmanage.dto.AmountNumberDto">
|
||||
SELECT
|
||||
COALESCE(SUM(total_price), 0) AS total_amount,
|
||||
COUNT(DISTINCT bus_no) AS total_number
|
||||
FROM wor_supply_request T1
|
||||
INNER JOIN wor_supply_delivery T2 ON T1.id = T2.request_id AND T2.delete_flag = '0'
|
||||
WHERE T1.source_location_id = #{locationId}
|
||||
AND T1.type_enum IN (#{productTransfer} ,#{productBatchTransfer} )
|
||||
AND T1.status_enum = #{agree}--同意
|
||||
AND T2.status_enum = #{completed}--已完成
|
||||
AND TO_CHAR(T2.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime}
|
||||
AND T1.delete_flag = '0'
|
||||
</select>
|
||||
|
||||
<!--盘点查询 -->
|
||||
<select id="selectProfitLossAmountNumber"
|
||||
resultType="com.openhis.web.reportmanage.dto.AmountNumberDto">
|
||||
SELECT
|
||||
COALESCE(SUM(total_price), 0) AS total_amount,
|
||||
COUNT(DISTINCT bus_no) AS total_number
|
||||
FROM wor_supply_request T1
|
||||
INNER JOIN wor_supply_delivery T2 ON T1.id = T2.request_id AND T2.delete_flag = '0'
|
||||
WHERE T1.source_location_id = #{locationId}
|
||||
AND T1.type_enum IN (#{productStocktaking} ,#{productBatchStocktaking} )
|
||||
AND T1.status_enum = #{agree}--同意
|
||||
AND T2.status_enum = #{completed}--已完成
|
||||
AND TO_CHAR(T2.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime}
|
||||
AND T1.delete_flag = '0'
|
||||
</select>
|
||||
|
||||
<!--报损单查询 -->
|
||||
<select id="selectLossAmountNumber"
|
||||
resultType="com.openhis.web.reportmanage.dto.AmountNumberDto">
|
||||
SELECT
|
||||
COALESCE(SUM(total_price), 0) AS total_amount,
|
||||
COUNT(DISTINCT bus_no) AS total_number
|
||||
FROM wor_supply_request T1
|
||||
INNER JOIN wor_supply_delivery T2 ON T1.id = T2.request_id AND T2.delete_flag = '0'
|
||||
WHERE T1.purpose_location_id = #{locationId}
|
||||
AND T1.type_enum = #{lossReportForm}
|
||||
AND T1.status_enum = #{agree}--同意
|
||||
AND T2.status_enum = #{completed}--已完成
|
||||
AND TO_CHAR(T2.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime}
|
||||
AND T1.delete_flag = '0'
|
||||
</select>
|
||||
|
||||
<!--药品发放查询 -->
|
||||
<select id="selectDrugIssue" resultType="java.math.BigDecimal">
|
||||
SELECT COALESCE(SUM(total_money), 0) AS total_money_sum
|
||||
FROM (
|
||||
/* ---------- 查询药品 ---------- */
|
||||
SELECT
|
||||
SUM(T1.quantity) * MAX(T8.unit_price) AS total_money
|
||||
FROM med_medication_request T1
|
||||
LEFT JOIN med_medication_dispense T2
|
||||
ON T2.med_req_id = T1.id AND T2.delete_flag = '0'
|
||||
LEFT JOIN med_medication_definition T3
|
||||
ON T3.id = T1.medication_id AND T3.delete_flag = '0'
|
||||
LEFT JOIN med_medication T7
|
||||
ON T3.id = T7.medication_def_id AND T7.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item T8
|
||||
ON T8.service_table = #{medReqTableName} --'med_medication_request'
|
||||
AND T8.service_id = T1.id
|
||||
AND T8.delete_flag = '0'
|
||||
WHERE T2.location_id = #{locationId}
|
||||
AND T1.status_enum = #{completed}--请求状态:已完成
|
||||
AND T1.delete_flag = '0'
|
||||
AND TO_CHAR(T2.dispense_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime}
|
||||
GROUP BY
|
||||
T3.name,
|
||||
T7.total_volume,
|
||||
T1.lot_number,
|
||||
T1.unit_code,
|
||||
T3.manufacturer_text,
|
||||
T2.location_id
|
||||
UNION ALL
|
||||
/* ---------- 查询耗材 ---------- */
|
||||
SELECT
|
||||
SUM(T4.quantity) * MAX(T9.unit_price) AS total_money
|
||||
FROM wor_device_request T4
|
||||
LEFT JOIN wor_device_dispense T5
|
||||
ON T5.device_req_id = T4.id AND T5.delete_flag = '0'
|
||||
LEFT JOIN adm_device_definition T6
|
||||
ON T6.id = T5.device_def_id AND T6.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item T9
|
||||
ON T9.service_table = #{devReqTableName} --'wor_device_request'
|
||||
AND T9.service_id = T4.id
|
||||
AND T9.delete_flag = '0'
|
||||
WHERE T5.location_id = #{locationId}
|
||||
AND T4.status_enum = #{completed}--请求状态:已完成
|
||||
AND T4.delete_flag = '0'
|
||||
AND TO_CHAR(T5.dispense_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime}
|
||||
GROUP BY
|
||||
T6.name,
|
||||
T6.size,
|
||||
T4.lot_number,
|
||||
T4.unit_code,
|
||||
T6.manufacturer_text,
|
||||
T5.location_id
|
||||
)T
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,129 @@
|
||||
<?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.reportmanage.mapper.OutboundReportMapper">
|
||||
|
||||
<select id="selectOutboundReportPage"
|
||||
resultType="com.openhis.web.reportmanage.dto.OutboundReportPageDto">
|
||||
select T10.supply_bus_no, --单据号
|
||||
T10.name, --药品名称
|
||||
T10.bus_no, --编码
|
||||
T10.lot_number, --批号
|
||||
T10.source_location_id, -- 源仓库ID(存放仓库)
|
||||
T10.source_location_name, -- 源仓库(存放仓库)
|
||||
T10.source_location_store_id, -- 源仓位ID
|
||||
T10.source_location_store_name, -- 源仓位
|
||||
T10.purpose_location_id, -- 目的仓库ID(领用科室)
|
||||
T10.purpose_location_name, -- 目的仓库(领用科室)
|
||||
T10.unit_code, --计量单位
|
||||
T10.item_quantity, --数量
|
||||
T10.purchase_price, --采购单价
|
||||
T10.price, --领用单价
|
||||
T10.total_price, --金额
|
||||
T10.supplier_id, --供应商
|
||||
T10.approver_id, --审核人
|
||||
T10.approval_time, --审批时间
|
||||
T10.remake, --出库原因
|
||||
T10.tenant_id -- 租户ID
|
||||
from (
|
||||
select T1.bus_no as supply_bus_no, --单据号
|
||||
T3.name, --药品名称
|
||||
T3.bus_no, --编码
|
||||
T1.lot_number, --批号
|
||||
T1.source_location_id, -- 源仓库ID
|
||||
T4.name AS source_location_name, -- 源仓库
|
||||
T1.source_location_store_id, -- 源仓位ID
|
||||
T5.name AS source_location_store_name, -- 源仓位
|
||||
T1.purpose_location_id, -- 目的仓库ID
|
||||
T8.name AS purpose_location_name, -- 目的仓库(领用科室)
|
||||
T1.unit_code, --计量单位
|
||||
T1.item_quantity, --数量
|
||||
T7.amount as purchase_price, --采购单价
|
||||
T1.price, --领用单价
|
||||
T1.total_price, --金额
|
||||
T1.supplier_id, --供应商
|
||||
T1.approver_id, --审核人
|
||||
T1.approval_time, --审批时间
|
||||
T1.remake, --出库原因(备注)
|
||||
T1.tenant_id -- 租户ID
|
||||
from wor_supply_request as T1
|
||||
inner join wor_supply_delivery as T2
|
||||
on T1.id = T2.request_id
|
||||
and T2.status_enum = #{deliveryStatus}
|
||||
and T2.delete_flag = '0'
|
||||
left join med_medication_definition as T3
|
||||
on T1.item_id = T3.id
|
||||
and T3.delete_flag = '0'
|
||||
left join adm_location T4
|
||||
on T1.source_location_id = T4.id
|
||||
and T4.delete_flag = '0'
|
||||
left join adm_location T5
|
||||
on T1.source_location_store_id = T5.id
|
||||
and T5.delete_flag = '0'
|
||||
left join adm_charge_item_definition as T6
|
||||
on T3.id = T6.instance_id
|
||||
and T6.delete_flag = '0'
|
||||
left join adm_charge_item_def_detail as T7
|
||||
on T6.id = T7.definition_id
|
||||
and T7.delete_flag = '0'
|
||||
AND T7.condition_value = T1.lot_number
|
||||
left join adm_organization T8
|
||||
on T1.purpose_location_id = T8.id
|
||||
and T8.delete_flag = '0'
|
||||
where T1.delete_flag = '0'
|
||||
and T1.type_enum = #{issueInventory}
|
||||
and T1.status_enum = #{supplyStatus}
|
||||
and T1.item_table = #{medicationTableName}
|
||||
union
|
||||
select T1.bus_no as supply_bus_no, --单据号
|
||||
T3.name, --药品名称
|
||||
T3.bus_no, --编码
|
||||
T1.lot_number, --批号
|
||||
T1.source_location_id, -- 源仓库ID
|
||||
T4.name AS source_location_name, -- 源仓库
|
||||
T1.source_location_store_id, -- 源仓位ID
|
||||
T5.name AS source_location_store_name, -- 源仓位
|
||||
T1.purpose_location_id, -- 目的仓库ID
|
||||
T8.name AS purpose_location_name, -- 目的仓库(领用科室)
|
||||
T1.unit_code, --计量单位
|
||||
T1.item_quantity, --数量
|
||||
T7.amount as purchase_price, --采购单价
|
||||
T1.price, --领用单价
|
||||
T1.total_price, --金额
|
||||
T1.supplier_id, --供应商
|
||||
T1.approver_id, --审核人
|
||||
T1.approval_time, --审批时间
|
||||
T1.remake, --出库原因
|
||||
T1.tenant_id -- 租户ID
|
||||
from wor_supply_request as T1
|
||||
inner join wor_supply_delivery as T2
|
||||
on T1.id = T2.request_id
|
||||
and T2.status_enum = #{deliveryStatus}
|
||||
and T2.delete_flag = '0'
|
||||
inner join adm_device_definition as T3
|
||||
on T1.item_id = T3.id
|
||||
and T3.delete_flag = '0'
|
||||
left join adm_location T4
|
||||
on T1.source_location_id = T4.id
|
||||
and T4.delete_flag = '0'
|
||||
left join adm_location T5
|
||||
on T1.source_location_store_id = T5.id
|
||||
and T5.delete_flag = '0'
|
||||
left join adm_charge_item_definition as T6
|
||||
on T3.id = T6.instance_id
|
||||
and T6.delete_flag = '0'
|
||||
left join adm_charge_item_def_detail as T7
|
||||
on T6.id = T7.definition_id
|
||||
and T7.delete_flag = '0'
|
||||
AND T7.condition_value = T1.lot_number
|
||||
left join adm_organization T8
|
||||
on T1.purpose_location_id = T8.id
|
||||
and T8.delete_flag = '0'
|
||||
where T1.delete_flag = '0'
|
||||
and T1.type_enum = #{issueInventory}
|
||||
and T1.status_enum = #{supplyStatus}
|
||||
and T1.item_table = #{deviceTableName}
|
||||
) as T10
|
||||
${ew.customSqlSegment}
|
||||
ORDER BY T10.supply_bus_no DESC
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -0,0 +1,256 @@
|
||||
<?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.reportmanage.mapper.PrintReportMapper">
|
||||
|
||||
<!-- 打印——处置单 -->
|
||||
<select id="getDisposalList" resultType="com.openhis.web.reportmanage.dto.DisposalDto">
|
||||
SELECT wsr.bus_no, -- 服务请求编码
|
||||
ap.name AS patient_name, -- 患者名字
|
||||
ap.birth_date, -- 患者出生日期
|
||||
ap.gender_enum, -- 患者性别
|
||||
ap.phone, -- 患者手机号
|
||||
ae.bus_no AS encounter_bus_no, -- 门诊/住院病历号
|
||||
aa.no AS account_no, -- 医保/就诊卡号
|
||||
aa.type_code AS fee_type, -- 费别
|
||||
wad.name AS activity_name, -- 治疗项目名
|
||||
wsr.quantity, -- 数量
|
||||
wsr.unit_code, -- 单位
|
||||
wsr.requester_id AS dor_id, -- 开方医生id
|
||||
wsr.authored_time, -- 开具时间
|
||||
ae.organization_id AS dept_id, -- 科室
|
||||
COALESCE((SELECT SUM(aci.total_price)
|
||||
FROM adm_charge_item aci
|
||||
INNER JOIN wor_service_request wsr_sub ON wsr_sub.id = aci.service_id
|
||||
LEFT JOIN wor_activity_definition wad_sub ON wsr_sub.activity_id = wad_sub.id
|
||||
WHERE aci.service_table = 'wor_service_request'
|
||||
AND aci.context_enum = 3 -- 项目
|
||||
AND aci.status_enum IN (1, 2, 5) -- 费用状态
|
||||
AND wad_sub.category_code = '21' -- 治疗
|
||||
AND aci.encounter_id = wsr.encounter_id), 0) AS total_price -- 处置总金额
|
||||
FROM wor_service_request wsr
|
||||
LEFT JOIN adm_patient ap ON wsr.patient_id = ap.id -- 患者信息
|
||||
LEFT JOIN adm_account aa ON wsr.encounter_id = aa.encounter_id -- 账户信息
|
||||
LEFT JOIN adm_encounter_diagnosis aed
|
||||
ON wsr.encounter_id = aed.encounter_id AND aed.maindise_flag = 1 -- 主诊断flag
|
||||
LEFT JOIN cli_condition cc ON aed.condition_id = cc.id -- 病情
|
||||
LEFT JOIN cli_condition_definition ccd ON cc.definition_id = ccd.id -- 病情定义
|
||||
LEFT JOIN adm_encounter ae ON wsr.encounter_id = ae.id -- 就诊信息
|
||||
LEFT JOIN wor_activity_definition wad ON wsr.activity_id = wad.id -- 项目定义
|
||||
WHERE wad.category_code = '21' -- 治疗
|
||||
AND wsr.encounter_id = #{encounterId}
|
||||
</select>
|
||||
|
||||
<!-- 打印——检验,检查申请单 -->
|
||||
<select id="getCheckInspectionList" resultType="com.openhis.web.reportmanage.dto.CkInspAppDto">
|
||||
SELECT wsr.bus_no, -- 服务请求编码
|
||||
ap.name AS patient_name, -- 患者名字
|
||||
ap.birth_date, -- 患者出生日期
|
||||
ap.gender_enum, -- 患者性别
|
||||
ap.phone, -- 患者手机号
|
||||
ae.bus_no AS encounter_bus_no, -- 门诊/住院病历号
|
||||
aa.no AS account_no, -- 医保/就诊卡号
|
||||
aa.type_code AS fee_type, -- 费别
|
||||
wad.name AS activity_name, -- 治疗项目名
|
||||
wsr.quantity, -- 数量
|
||||
wsr.unit_code, -- 单位
|
||||
wsr.requester_id AS dor_id, -- 开方医生id
|
||||
wsr.authored_time, -- 开具时间
|
||||
wsr.location_id, -- 执行科室
|
||||
aci.total_price AS item_price, -- 单项目金额
|
||||
COALESCE((SELECT SUM(aci_sub.total_price)
|
||||
FROM adm_charge_item aci_sub
|
||||
LEFT JOIN wor_service_request wsr_sub ON wsr_sub.id = aci_sub.service_id
|
||||
LEFT JOIN wor_activity_definition wad_sub ON wsr_sub.activity_id = wad_sub.id
|
||||
WHERE aci_sub.service_table = 'wor_service_request'
|
||||
AND aci_sub.context_enum = 3 -- 项目
|
||||
AND aci_sub.status_enum IN (1, 2, 5) -- 费用状态
|
||||
AND wad_sub.category_code = wad.category_code -- 关联主查询的category_code
|
||||
AND aci_sub.encounter_id = wsr.encounter_id -- 关联主查询的encounter_id
|
||||
), 0) AS total_price -- 项目总金额
|
||||
FROM wor_service_request wsr
|
||||
LEFT JOIN adm_patient ap ON wsr.patient_id = ap.id -- 患者信息
|
||||
LEFT JOIN adm_account aa ON wsr.encounter_id = aa.encounter_id -- 账户信息
|
||||
LEFT JOIN adm_encounter ae ON wsr.encounter_id = ae.id -- 就诊信息
|
||||
LEFT JOIN adm_charge_item aci ON wsr.id = aci.service_id -- 费用信息
|
||||
AND aci.service_table = 'wor_service_request'
|
||||
AND aci.context_enum = 3 -- 项目
|
||||
AND aci.status_enum IN (1, 2, 5) -- 费用状态
|
||||
LEFT JOIN wor_activity_definition wad ON wsr.activity_id = wad.id -- 项目定义
|
||||
WHERE wad.category_code = #{categoryCode} -- 22:检验,23:检查
|
||||
AND wsr.encounter_id = #{encounterId}
|
||||
</select>
|
||||
|
||||
<!-- 打印——处方单 -->
|
||||
<select id="getPrescriptionList" resultType="com.openhis.web.reportmanage.dto.PrescriptionPrintDto">
|
||||
|
||||
SELECT mmr.prescription_no, -- 处方号
|
||||
mmr.group_id, -- 组号
|
||||
mmr.practitioner_id AS dor_id, -- 开方医生id
|
||||
mmr.performer_id AS phar_id, -- 审核药师id
|
||||
mmdef.name AS med_name, -- 药品名字
|
||||
mm.total_volume, -- 药品规格
|
||||
mmdef.pharmacology_category_code, -- 药品性质
|
||||
mmr.method_code, -- 用法
|
||||
mmr.rate_code, -- 用药频次
|
||||
mmr.dose, -- 单次剂量
|
||||
mmr.dose_unit_code, -- 剂量单位
|
||||
mmr.req_authored_time, -- 开单时间
|
||||
mmr.org_id AS depart_id, -- 所属科室
|
||||
ae.bus_no AS encounter_bus_no, -- 门诊/住院病历号
|
||||
ap.name AS patient_name, -- 患者名字
|
||||
ap.birth_date, -- 患者出生日期
|
||||
ap.gender_enum, -- 患者性别
|
||||
ap.phone, -- 患者手机号
|
||||
aa.type_code, -- 费别
|
||||
aa.no, -- 医保/就诊卡号
|
||||
CASE WHEN mmr.yb_class_enum = '140104' THEN 1 ELSE 0 END AS ncds_flag, -- 慢病(1-慢病 0-非慢病)
|
||||
ccd.name AS diag_name, -- 临床诊断
|
||||
mmd.practitioner_id AS check_phar_id, -- 核对、发药药师
|
||||
mmd.preparer_id AS dis_rev_phar_id, -- 调配药师
|
||||
-- COALESCE((SELECT SUM(aci.total_price)
|
||||
-- FROM adm_charge_item aci
|
||||
-- WHERE aci.prescription_no = mmr.prescription_no
|
||||
-- AND aci.context_enum = 1
|
||||
-- AND aci.status_enum IN (1, 2, 5)
|
||||
-- AND aci.encounter_id = mmr.encounter_id
|
||||
-- AND aci.tenant_id = 1), 0) AS total_price,
|
||||
COALESCE((SELECT aci.total_price
|
||||
FROM adm_charge_item aci
|
||||
WHERE aci.service_table = 'med_medication_request'
|
||||
AND aci.service_id = mmr.id
|
||||
AND aci.context_enum = 1
|
||||
AND aci.status_enum IN (1, 2, 5)
|
||||
AND aci.tenant_id = 1), 0) AS total_price,
|
||||
(SELECT CASE
|
||||
WHEN EXISTS(
|
||||
SELECT 1
|
||||
FROM wor_service_request wsr
|
||||
LEFT JOIN wor_activity_definition wad
|
||||
ON wad.id = wsr.activity_id AND wad.name = '皮试检查'
|
||||
LEFT JOIN cli_allergy_intolerance cai ON cai.request_id = wsr.id
|
||||
WHERE wsr.based_on_id = mmr.id
|
||||
AND wsr.based_on_table = 'med_medication_request'
|
||||
AND wsr.encounter_id = #{encounterId}
|
||||
AND cai.clinical_status_enum = 1
|
||||
) THEN 1
|
||||
WHEN EXISTS(
|
||||
SELECT 1
|
||||
FROM wor_service_request wsr
|
||||
LEFT JOIN wor_activity_definition wad
|
||||
ON wad.id = wsr.activity_id AND wad.name = '皮试检查'
|
||||
LEFT JOIN cli_allergy_intolerance cai ON cai.request_id = wsr.id
|
||||
WHERE wsr.based_on_id = mmr.id
|
||||
AND wsr.based_on_table = 'med_medication_request'
|
||||
AND wsr.encounter_id = #{encounterId}
|
||||
AND cai.clinical_status_enum = 2
|
||||
) THEN 2
|
||||
ELSE 4
|
||||
END) AS clinicalStatusEnum
|
||||
FROM med_medication_request mmr
|
||||
LEFT JOIN adm_patient ap ON mmr.patient_id = ap.id
|
||||
LEFT JOIN adm_account aa ON mmr.encounter_id = aa.encounter_id
|
||||
LEFT JOIN adm_encounter_diagnosis aed ON mmr.encounter_id = aed.encounter_id AND aed.maindise_flag = 1
|
||||
LEFT JOIN cli_condition cc ON aed.condition_id = cc.id
|
||||
LEFT JOIN cli_condition_definition ccd ON cc.definition_id = ccd.id
|
||||
LEFT JOIN med_medication_dispense mmd ON mmr.id = mmd.med_req_id
|
||||
LEFT JOIN med_medication_definition mmdef ON mmr.medication_id = mmdef.id
|
||||
LEFT JOIN med_medication mm ON mm.medication_def_id = mmdef.id
|
||||
LEFT JOIN adm_encounter ae ON mmr.encounter_id = ae.id
|
||||
WHERE mmr.prescription_no = #{prescriptionNo}
|
||||
AND mmr.encounter_id = #{encounterId}
|
||||
</select>
|
||||
|
||||
<!-- 打印——护士输液的瓶签 -->
|
||||
<select id="getBottleLabelList" resultType="com.openhis.web.reportmanage.dto.BottleLabelDto">
|
||||
|
||||
SELECT
|
||||
pt.name AS patient_name, --病人姓名
|
||||
pt.gender_enum, --病人性别
|
||||
pt.birth_date, --病人生日
|
||||
md.name AS med_name, --药品名
|
||||
m.total_volume as space,--药品规格
|
||||
mr.bus_no, -- 药品请求编码
|
||||
mr.rate_code, --用药频次
|
||||
mr.method_code,--用法
|
||||
mr.dose,--单次剂量
|
||||
mr.dose_unit_code,--剂量单位
|
||||
sr.performer_id, --执行护士
|
||||
sr.occurrence_start_time --预计执行时间
|
||||
FROM
|
||||
wor_service_request sr
|
||||
LEFT JOIN adm_encounter e ON e.id = sr.encounter_id
|
||||
AND e.delete_flag = '0'
|
||||
LEFT JOIN adm_patient pt ON pt.id = sr.patient_id
|
||||
AND pt.delete_flag = '0'
|
||||
LEFT JOIN wor_activity_definition ad ON ad.id = sr.activity_id
|
||||
AND ad.delete_flag = '0'
|
||||
LEFT JOIN med_medication_request mr ON mr.encounter_id = sr.encounter_id
|
||||
AND mr.delete_flag = '0'
|
||||
LEFT JOIN med_medication_definition md ON md.id = mr.medication_id
|
||||
AND md.delete_flag = '0'
|
||||
LEFT JOIN med_medication m ON md.id = m.medication_def_id
|
||||
AND m.delete_flag = '0'
|
||||
LEFT JOIN med_medication_dispense mmd ON mr.id = mmd.med_req_id
|
||||
AND mmd.delete_flag = '0'
|
||||
|
||||
<where>
|
||||
ad.name = '输液'
|
||||
AND mr.infusion_flag = 1
|
||||
--AND mmd.status_enum = 4--药品发放状态:状态是已发送的(DispenseStatus枚举类)
|
||||
AND sr.id = #{serviceId}
|
||||
AND sr.encounter_id = #{encounterId}
|
||||
AND mr.group_id = #{groupId}
|
||||
</where>
|
||||
ORDER BY
|
||||
mr.create_time desc
|
||||
|
||||
</select>
|
||||
<select id="getBottleLabelBatchList" resultType="com.openhis.web.reportmanage.dto.BottleLabelDto">
|
||||
SELECT
|
||||
pt.name AS patient_name, -- 病人姓名
|
||||
pt.gender_enum, -- 病人性别
|
||||
pt.birth_date, -- 病人生日
|
||||
md.name AS med_name, -- 药品名
|
||||
m.total_volume as space, -- 药品规格
|
||||
mr.bus_no, -- 药品请求编码
|
||||
mr.rate_code, -- 用药频次
|
||||
mr.method_code, -- 用法
|
||||
mr.dose, -- 单次剂量
|
||||
mr.dose_unit_code, -- 剂量单位
|
||||
sr.performer_id, -- 执行护士
|
||||
sr.occurrence_start_time -- 预计执行时间
|
||||
FROM
|
||||
wor_service_request sr
|
||||
LEFT JOIN adm_encounter e ON e.id = sr.encounter_id
|
||||
AND e.delete_flag = '0'
|
||||
LEFT JOIN adm_patient pt ON pt.id = sr.patient_id
|
||||
AND pt.delete_flag = '0'
|
||||
LEFT JOIN wor_activity_definition ad ON ad.id = sr.activity_id
|
||||
AND ad.delete_flag = '0'
|
||||
LEFT JOIN med_medication_request mr ON mr.encounter_id = sr.encounter_id
|
||||
AND mr.delete_flag = '0'
|
||||
AND mr.id=sr.based_on_id
|
||||
LEFT JOIN med_medication_definition md ON md.id = mr.medication_id
|
||||
AND md.delete_flag = '0'
|
||||
LEFT JOIN med_medication m ON md.id = m.medication_def_id
|
||||
AND m.delete_flag = '0'
|
||||
LEFT JOIN med_medication_dispense mmd ON mr.id = mmd.med_req_id
|
||||
AND mmd.delete_flag = '0'
|
||||
<where>
|
||||
ad.name = '输液'
|
||||
AND mr.infusion_flag = 1
|
||||
-- AND mmd.status_enum = 4 -- 药品发放状态:状态是已发送的(DispenseStatus枚举类)
|
||||
AND sr.id IN
|
||||
<foreach item="serviceId" collection="serviceIds" open="(" separator="," close=")">
|
||||
#{serviceId}
|
||||
</foreach>
|
||||
AND sr.encounter_id IN
|
||||
<foreach item="encounterId" collection="encounterIds" open="(" separator="," close=")">
|
||||
#{encounterId}
|
||||
</foreach>
|
||||
</where>
|
||||
ORDER BY
|
||||
mr.create_time DESC
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,129 @@
|
||||
<?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.reportmanage.mapper.PurchaseReturnReportMapper">
|
||||
|
||||
<select id="selectPurchaseReturnReportPage"
|
||||
resultType="com.openhis.web.reportmanage.dto.PurchaseReturnReportPageDto">
|
||||
SELECT T10.supply_bus_no, --单据号
|
||||
T10.name, --药品名称
|
||||
T10.bus_no, --药品编码
|
||||
T10.original_bus_no, --采购单据号
|
||||
T10.lot_number, --批次号
|
||||
T10.purpose_location_id, --目的仓库ID
|
||||
T10.location_name, --仓库名称
|
||||
T10.location_store_name, --货位名称
|
||||
T10.unit_code, --计量单位
|
||||
T10.quantity, --退货数量
|
||||
T10.price, --采购单价
|
||||
T10.return_price, --退货单价
|
||||
T10.total_price, --退货金额
|
||||
T10.supplier_id, --供应商id
|
||||
T10.supplier, --供应商
|
||||
T10.approver_id, --审核人
|
||||
T10.create_time, --制单日期
|
||||
T10.approval_time, --审核日期
|
||||
T10.tenant_id -- 租户ID
|
||||
FROM (SELECT T1.bus_no AS supply_bus_no, --单据号
|
||||
T2.name, --药品名称
|
||||
T2.bus_no, --药品编码
|
||||
T1.original_bus_no, --采购单据号
|
||||
T1.lot_number, --批次号
|
||||
T1.purpose_location_id, -- 目的仓库ID
|
||||
T7.name AS location_name, --仓库名称
|
||||
T8.name AS location_store_name, --货位名称
|
||||
T1.unit_code, --计量单位
|
||||
T1.item_quantity AS quantity, --退货数量
|
||||
T4.amount AS price, --采购单价
|
||||
T1.price AS return_price, --退货单价
|
||||
T1.total_price, --退货金额
|
||||
T2.part_percent, --拆零比
|
||||
T1.supplier_id, --供应商id
|
||||
T9.name AS supplier, --供应商
|
||||
T1.approver_id, --审核人
|
||||
T1.create_time, --制单日期
|
||||
T1.approval_time, --审核日期
|
||||
T1.tenant_id -- 租户ID
|
||||
FROM wor_supply_request AS T1
|
||||
INNER JOIN wor_supply_delivery AS T14
|
||||
ON T14.request_id = T1.id
|
||||
AND T14.status_enum = #{deliveryStatus}
|
||||
AND T14.delete_flag = '0'
|
||||
LEFT JOIN med_medication_definition AS T2
|
||||
ON T2.id = T1.item_id
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_definition AS T3
|
||||
ON T3.instance_id = T1.item_id
|
||||
AND T3.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_def_detail AS T4
|
||||
ON T4.definition_id = T3.id
|
||||
AND T4.delete_flag = '0'
|
||||
AND T4.condition_value = T1.lot_number
|
||||
LEFT JOIN med_medication AS T5
|
||||
ON T5.medication_def_id = T2.id
|
||||
AND T5.delete_flag = '0'
|
||||
LEFT JOIN adm_location AS T7
|
||||
ON T7.id = T1.purpose_location_id
|
||||
AND T7.delete_flag = '0'
|
||||
LEFT JOIN adm_location AS T8
|
||||
ON T8.id = T1.purpose_location_store_id
|
||||
AND T8.delete_flag = '0'
|
||||
LEFT JOIN adm_supplier AS T9
|
||||
ON T9.id = T1.supplier_id
|
||||
AND T9.delete_flag = '0'
|
||||
WHERE T1.delete_flag = '0'
|
||||
AND T1.type_enum = #{productReturn}
|
||||
AND T1.status_enum = #{supplyStatus}
|
||||
AND T1.item_table = #{medicationTableName}
|
||||
UNION
|
||||
SELECT T1.bus_no AS supply_bus_no, --单据号
|
||||
T11.name, --器材名称
|
||||
T11.bus_no, --器材编码
|
||||
T1.original_bus_no, --采购单据号
|
||||
T1.lot_number, --批次号
|
||||
T1.purpose_location_id, -- 目的仓库ID
|
||||
T7.name AS location_name, --仓库名称
|
||||
T8.name AS location_store_name, --货位名称
|
||||
T1.unit_code, --计量单位
|
||||
T1.item_quantity AS quantity, --退货数量
|
||||
T4.amount AS price, --采购单价
|
||||
T1.price AS return_price, --退货单价
|
||||
T1.total_price, --退货金额
|
||||
T11.part_percent, --拆零比
|
||||
T1.supplier_id, --供应商id
|
||||
T9.name AS supplier, --供应商
|
||||
T1.approver_id, --审核人
|
||||
T1.create_time, --制单日期
|
||||
T1.approval_time, --审核日期
|
||||
T1.tenant_id -- 租户ID
|
||||
FROM wor_supply_request AS T1
|
||||
INNER JOIN wor_supply_delivery AS T14
|
||||
ON T14.request_id = T1.id
|
||||
AND T14.status_enum = #{deliveryStatus}
|
||||
AND T14.delete_flag = '0'
|
||||
LEFT JOIN adm_device_definition AS T11
|
||||
ON T11.id = T1.item_id
|
||||
AND T11.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_definition AS T3
|
||||
ON T3.instance_id = T1.item_id
|
||||
AND T3.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_def_detail AS T4
|
||||
ON T4.definition_id = T3.id
|
||||
AND T4.delete_flag = '0'
|
||||
AND T4.condition_value = T1.lot_number
|
||||
LEFT JOIN adm_location AS T7
|
||||
ON T7.id = T1.purpose_location_id
|
||||
AND T7.delete_flag = '0'
|
||||
LEFT JOIN adm_location AS T8
|
||||
ON T8.id = T1.purpose_location_store_id
|
||||
AND T8.delete_flag = '0'
|
||||
LEFT JOIN adm_supplier AS T9
|
||||
ON T9.id = T1.supplier_id
|
||||
AND T9.delete_flag = '0'
|
||||
WHERE T1.delete_flag = '0'
|
||||
AND T1.type_enum = #{productReturn}
|
||||
AND T1.status_enum = #{supplyStatus}
|
||||
AND T1.item_table = #{deviceTableName}) AS T10
|
||||
${ew.customSqlSegment}
|
||||
ORDER BY T10.supply_bus_no DESC
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -0,0 +1,101 @@
|
||||
<?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.reportmanage.mapper.RegisterReportMapper">
|
||||
|
||||
<select id="selectRegisterReportPage"
|
||||
resultType="com.openhis.web.reportmanage.dto.RegisterReportPageDto">
|
||||
SELECT T10.bus_no, --患者院内编码/病历号
|
||||
T10.name, --患者姓名
|
||||
T10.department_id, --科室
|
||||
T10.department_name, --科室
|
||||
T10.clinical_name, --项目名
|
||||
T10.yb_no, --医保码
|
||||
T10.doctor_id,-- 挂号医生
|
||||
T10.doctor_name,-- 挂号医生
|
||||
T10.payee_name,--收款人
|
||||
T10.number, --数量
|
||||
T10.price, --单价
|
||||
T10.quantity_unit,--单位
|
||||
T10.total_price, --金额
|
||||
T10.charge_time,--收费时间
|
||||
T10.encounter_id,
|
||||
T10.tenant_id
|
||||
FROM (SELECT DISTINCT T2.bus_no, --患者院内编码/病历号
|
||||
T3.name, --患者姓名
|
||||
T6.id AS department_id, --科室
|
||||
T6.name AS department_name, --科室
|
||||
CASE
|
||||
WHEN T5.instance_table = 'adm_device_definition' THEN T11.name
|
||||
WHEN T5.instance_table = 'adm_healthcare_service' THEN T12.name
|
||||
WHEN T5.instance_table = 'med_medication_definition' THEN T13.name
|
||||
WHEN T5.instance_table = 'wor_activity_definition' THEN T14.name
|
||||
ELSE NULL
|
||||
END AS clinical_name, --项目名
|
||||
CASE
|
||||
WHEN T5.instance_table = 'adm_device_definition' THEN T11.yb_no
|
||||
WHEN T5.instance_table = 'adm_healthcare_service' THEN T12.yb_no
|
||||
WHEN T5.instance_table = 'med_medication_definition' THEN T13.yb_no
|
||||
WHEN T5.instance_table = 'wor_activity_definition' THEN T14.yb_no
|
||||
ELSE NULL
|
||||
END AS yb_no, --医保码
|
||||
T8.id AS doctor_id,-- 挂号医生
|
||||
T8.name AS doctor_name,-- 挂号医生
|
||||
T9.name AS payee_name,--收款人
|
||||
T4.quantity_value AS number, --数量
|
||||
T4.unit_price AS price, --单价
|
||||
T4.quantity_unit,--单位
|
||||
CASE
|
||||
WHEN T1.status_enum = #{refundAll} THEN -T4.total_price
|
||||
ELSE T4.total_price
|
||||
END AS total_price,--金额
|
||||
T1.bill_date AS charge_time,--收费时间
|
||||
T1.encounter_id,
|
||||
T1.tenant_id
|
||||
FROM fin_payment_reconciliation T1
|
||||
INNER JOIN adm_encounter T2
|
||||
ON T2.id = T1.encounter_id
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN adm_patient T3
|
||||
ON T1.patient_id = T3.id
|
||||
AND T3.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item T4
|
||||
ON CONCAT(',', T1.charge_item_ids, ',') LIKE CONCAT('%,', T4.id, ',%')
|
||||
AND T4.context_enum = #{contextEnum}
|
||||
AND T4.delete_flag = '0'
|
||||
INNER JOIN adm_charge_item_definition T5
|
||||
ON T4.definition_id = T5.id
|
||||
AND T5.delete_flag = '0'
|
||||
LEFT JOIN adm_device_definition T11
|
||||
ON T5.instance_id = T11.id
|
||||
AND T5.instance_table = 'adm_device_definition'
|
||||
AND T11.delete_flag = '0'
|
||||
LEFT JOIN adm_healthcare_service T12
|
||||
ON T5.instance_id = T12.id
|
||||
AND T5.instance_table = 'adm_healthcare_service'
|
||||
AND T12.delete_flag = '0'
|
||||
LEFT JOIN med_medication_definition T13
|
||||
ON T5.instance_id = T13.id
|
||||
AND T5.instance_table = 'med_medication_definition'
|
||||
AND T13.delete_flag = '0'
|
||||
LEFT JOIN wor_activity_definition T14
|
||||
ON T5.instance_id = T14.id
|
||||
AND T5.instance_table = 'wor_activity_definition'
|
||||
AND T14.delete_flag = '0'
|
||||
LEFT JOIN adm_organization T6
|
||||
ON T2.organization_id = T6.id
|
||||
AND T6.delete_flag = '0'
|
||||
LEFT JOIN adm_encounter_participant T7
|
||||
ON T1.encounter_id = T7.encounter_id
|
||||
AND T7.type_code = #{typeCode}
|
||||
AND T7.delete_flag = '0'
|
||||
LEFT JOIN adm_practitioner T8
|
||||
ON T7.practitioner_id = T8.id
|
||||
AND T8.delete_flag = '0'
|
||||
LEFT JOIN adm_practitioner T9
|
||||
ON T1.enterer_id = T9.id
|
||||
AND T9.delete_flag = '0'
|
||||
WHERE T1.status_enum IN (#{success}, #{refundAll})
|
||||
AND T1.delete_flag = '0') AS T10
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -0,0 +1,129 @@
|
||||
<?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.reportmanage.mapper.ReturnIssueReportMapper">
|
||||
|
||||
<select id="selectReturnIssueReportPage"
|
||||
resultType="com.openhis.web.reportmanage.dto.ReturnIssueReportPageDto">
|
||||
select T10.supply_bus_no, --单据号
|
||||
T10.name, --药品名称
|
||||
T10.bus_no, --编码
|
||||
T10.lot_number, --批号
|
||||
T10.source_location_id, -- 源仓库ID(科室)
|
||||
T10.source_location_name, -- 源仓库(科室)
|
||||
T10.purpose_location_id, -- 目的仓库ID(库房)
|
||||
T10.purpose_location_name, -- 目的仓库(库房)
|
||||
T10.purpose_location_store_id, -- 目的货位ID(库房)
|
||||
T10.purpose_location_store_name, -- 目的货位(库房)
|
||||
T10.unit_code, --计量单位
|
||||
T10.item_quantity, --数量
|
||||
T10.purchase_price, --采购单价
|
||||
T10.price, --领用单价
|
||||
T10.total_price, --金额
|
||||
T10.supplier_id, --供应商
|
||||
T10.approver_id, --审核人
|
||||
T10.approval_time, --审批时间
|
||||
T10.remake, --退库原因
|
||||
T10.tenant_id -- 租户ID
|
||||
from (
|
||||
select T1.bus_no as supply_bus_no, --单据号
|
||||
T3.name, --药品名称
|
||||
T3.bus_no, --编码
|
||||
T1.lot_number, --批号
|
||||
T1.source_location_id, -- 源仓库ID(科室)
|
||||
T8.name AS source_location_name, -- 源仓库(科室)
|
||||
T1.purpose_location_id, -- 目的仓库ID(库房)
|
||||
T4.name AS purpose_location_name, -- 目的仓库(库房)
|
||||
T1.purpose_location_store_id, -- 目的货位ID(库房)
|
||||
T5.name AS purpose_location_store_name, -- 目的货位(库房)
|
||||
T1.unit_code, --计量单位
|
||||
T1.item_quantity, --数量
|
||||
T7.amount as purchase_price, --采购单价
|
||||
T1.price, --领用单价
|
||||
T1.total_price, --金额
|
||||
T1.supplier_id, --供应商
|
||||
T1.approver_id, --审核人
|
||||
T1.approval_time, --审批时间
|
||||
T1.remake, --退库原因(备注)
|
||||
T1.tenant_id -- 租户ID
|
||||
from wor_supply_request as T1
|
||||
inner join wor_supply_delivery as T2
|
||||
on T1.id = T2.request_id
|
||||
and T2.status_enum = #{deliveryStatus}
|
||||
and T2.delete_flag = '0'
|
||||
left join med_medication_definition as T3
|
||||
on T1.item_id = T3.id
|
||||
and T3.delete_flag = '0'
|
||||
left join adm_location T4
|
||||
on T1.purpose_location_id = T4.id
|
||||
and T4.delete_flag = '0'
|
||||
left join adm_location T5
|
||||
on T1.purpose_location_store_id = T5.id
|
||||
and T5.delete_flag = '0'
|
||||
left join adm_charge_item_definition as T6
|
||||
on T3.id = T6.instance_id
|
||||
and T6.delete_flag = '0'
|
||||
left join adm_charge_item_def_detail as T7
|
||||
on T6.id = T7.definition_id
|
||||
and T7.delete_flag = '0'
|
||||
AND T7.condition_value = T1.lot_number
|
||||
left join adm_organization T8
|
||||
on T1.source_location_id = T8.id
|
||||
and T8.delete_flag = '0'
|
||||
where T1.delete_flag = '0'
|
||||
and T1.type_enum = #{returnissue}
|
||||
and T1.status_enum = #{supplyStatus}
|
||||
and T1.item_table = #{medicationTableName}
|
||||
union
|
||||
select T1.bus_no as supply_bus_no, --单据号
|
||||
T3.name, --药品名称
|
||||
T3.bus_no, --编码
|
||||
T1.lot_number, --批号
|
||||
T1.source_location_id, -- 源仓库ID(科室)
|
||||
T8.name AS source_location_name, -- 源仓库(科室)
|
||||
T1.purpose_location_id, -- 目的仓库ID(库房)
|
||||
T4.name AS purpose_location_name, -- 目的仓库(库房)
|
||||
T1.purpose_location_store_id, -- 目的货位ID(库房)
|
||||
T5.name AS purpose_location_store_name, -- 目的货位(库房)
|
||||
T1.unit_code, --计量单位
|
||||
T1.item_quantity, --数量
|
||||
T7.amount as purchase_price, --采购单价
|
||||
T1.price, --领用单价
|
||||
T1.total_price, --金额
|
||||
T1.supplier_id, --供应商
|
||||
T1.approver_id, --审核人
|
||||
T1.approval_time, --审批时间
|
||||
T1.remake, --退库原因
|
||||
T1.tenant_id -- 租户ID
|
||||
from wor_supply_request as T1
|
||||
inner join wor_supply_delivery as T2
|
||||
on T1.id = T2.request_id
|
||||
and T2.status_enum = #{deliveryStatus}
|
||||
and T2.delete_flag = '0'
|
||||
inner join adm_device_definition as T3
|
||||
on T1.item_id = T3.id
|
||||
and T3.delete_flag = '0'
|
||||
left join adm_location T4
|
||||
on T1.purpose_location_id = T4.id
|
||||
and T4.delete_flag = '0'
|
||||
left join adm_location T5
|
||||
on T1.purpose_location_store_id = T5.id
|
||||
and T5.delete_flag = '0'
|
||||
left join adm_charge_item_definition as T6
|
||||
on T3.id = T6.instance_id
|
||||
and T6.delete_flag = '0'
|
||||
left join adm_charge_item_def_detail as T7
|
||||
on T6.id = T7.definition_id
|
||||
and T7.delete_flag = '0'
|
||||
AND T7.condition_value = T1.lot_number
|
||||
left join adm_organization T8
|
||||
on T1.source_location_id = T8.id
|
||||
and T8.delete_flag = '0'
|
||||
where T1.delete_flag = '0'
|
||||
and T1.type_enum = #{returnissue}
|
||||
and T1.status_enum = #{supplyStatus}
|
||||
and T1.item_table = #{deviceTableName}
|
||||
) as T10
|
||||
${ew.customSqlSegment}
|
||||
ORDER BY T10.supply_bus_no DESC
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -0,0 +1,90 @@
|
||||
<?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.reportmanage.mapper.StocktakingReportMapper">
|
||||
|
||||
<select id="selectStocktakingReportPage"
|
||||
resultType="com.openhis.web.reportmanage.dto.StocktakingReportPageDto">
|
||||
SELECT T9.id, --ID
|
||||
T9.bus_no, --编码
|
||||
T9.name, --名称
|
||||
T9.total_volume, --规格
|
||||
T9.manufacturer_text, --厂家
|
||||
-- T9.item_table, --类型
|
||||
T9.lot_number, --产品批号
|
||||
T9.location_name, --目的仓库
|
||||
T9.unit_code, --小单位
|
||||
T9.item_quantity, --数量
|
||||
T9.approval_time, --审批时间
|
||||
T9.tenant_id -- 租户ID
|
||||
FROM (SELECT T1.id, --ID
|
||||
T2.bus_no, --编码
|
||||
T2.name, --名称
|
||||
T3.total_volume, --规格
|
||||
T2.manufacturer_text, --厂家
|
||||
-- T2.category_code AS item_table, --类型
|
||||
T4.lot_number, --产品批号
|
||||
T5.name AS location_name, --目的仓库
|
||||
T1.unit_code, --小单位
|
||||
T1.item_quantity, --盈亏数量
|
||||
T1.approval_time, --审批时间
|
||||
T1.tenant_id -- 租户ID
|
||||
FROM wor_supply_request AS T1
|
||||
INNER JOIN wor_supply_delivery AS T8
|
||||
ON T8.request_id = T1.id
|
||||
AND T8.status_enum = #{deliveryStatus}
|
||||
AND T8.delete_flag = '0'
|
||||
LEFT JOIN med_medication_definition AS T2
|
||||
ON T1.item_id = T2.id
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN med_medication AS T3
|
||||
ON T2.id = T3.medication_def_id
|
||||
AND T3.delete_flag = '0'
|
||||
LEFT JOIN wor_inventory_item AS T4
|
||||
ON T1.item_id = T4.item_id
|
||||
AND T1.purpose_location_id = T4.location_id
|
||||
AND T1.lot_number = T4.lot_number
|
||||
AND T4.delete_flag = '0'
|
||||
LEFT JOIN adm_location T5
|
||||
ON T1.purpose_location_id = T5.id
|
||||
AND T5.delete_flag = '0'
|
||||
WHERE T1.type_enum in (#{stocktakingReport}, #{stocktakingBatchReport})
|
||||
AND T1.status_enum = #{supplyStatus}
|
||||
AND T1.item_table = #{medicationTableName}
|
||||
AND T1.delete_flag = '0'
|
||||
UNION
|
||||
SELECT T1.id, --ID
|
||||
T6.bus_no, --编码
|
||||
T6.name, --名称
|
||||
T6.size AS total_volume, --规格(器材规格)
|
||||
T6.manufacturer_text, --厂家
|
||||
-- T6.category_code AS item_table, --类型
|
||||
T4.lot_number, --产品批号
|
||||
T5.name AS location_name, --目的仓库
|
||||
T1.unit_code, --小单位
|
||||
T1.item_quantity, --盈亏数量
|
||||
T1.approval_time, --审批时间
|
||||
T1.tenant_id -- 租户ID
|
||||
FROM wor_supply_request AS T1
|
||||
INNER JOIN wor_supply_delivery AS T8
|
||||
ON T8.request_id = T1.id
|
||||
AND T8.status_enum = #{deliveryStatus}
|
||||
AND T8.delete_flag = '0'
|
||||
LEFT JOIN adm_device_definition AS T6
|
||||
ON T1.item_id = T6.id
|
||||
AND T6.delete_flag = '0'
|
||||
LEFT JOIN wor_inventory_item AS T4
|
||||
ON T1.item_id = T4.item_id
|
||||
AND T1.purpose_location_id = T4.location_id
|
||||
AND T1.lot_number = T4.lot_number
|
||||
AND T4.delete_flag = '0'
|
||||
LEFT JOIN adm_location T5
|
||||
ON T1.purpose_location_id = T5.id
|
||||
AND T5.delete_flag = '0'
|
||||
WHERE T1.type_enum in (#{stocktakingReport}, #{stocktakingBatchReport})
|
||||
AND T1.status_enum = #{supplyStatus}
|
||||
AND T1.item_table = #{deviceTableName}
|
||||
AND T1.delete_flag = '0') AS T9
|
||||
${ew.customSqlSegment}
|
||||
ORDER BY T9.bus_no DESC
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -0,0 +1,128 @@
|
||||
<?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.reportmanage.mapper.TransferReportMapper">
|
||||
|
||||
<select id="selectTransferReportPage"
|
||||
resultType="com.openhis.web.reportmanage.dto.TransferReportPageDto">
|
||||
SELECT T6.id,
|
||||
T6.supply_bus_no, -- 商品调拨单据号
|
||||
T6.name, -- 药品名称
|
||||
T6.status_enum, -- 状态
|
||||
T6.lot_number, -- 产品批号
|
||||
T6.source_location_id, -- 源仓库ID
|
||||
T6.source_location_name, -- 源仓库
|
||||
T6.source_location_store_id, -- 源仓位ID
|
||||
T6.source_location_store_name, -- 源仓位
|
||||
T6.purpose_location_id, -- 目的仓库ID
|
||||
T6.purpose_location_name, -- 目的仓库
|
||||
T6.purpose_location_store_id, -- 目的货位ID
|
||||
T6.purpose_location_store_name, -- 目的货位
|
||||
T6.item_quantity, -- 调拨数量
|
||||
T6.unit_code, -- 物品计量单位
|
||||
T6.price, -- 采购单价
|
||||
T6.total_price, -- 总价
|
||||
T6.applicant_id, -- 申请人(制单人)
|
||||
T6.approver_id, -- 审核人
|
||||
T6.create_time, -- 制单日期
|
||||
T6.apply_time, -- 申请日期
|
||||
T6.approval_time, -- 审批时间(调拨日期)
|
||||
T6.tenant_id -- 租户ID
|
||||
FROM (SELECT T1.id,
|
||||
T1.bus_no AS supply_bus_no, -- 商品调拨单据号
|
||||
T3.name, -- 药品名称
|
||||
T1.status_enum, -- 状态
|
||||
T1.lot_number, -- 产品批号
|
||||
T1.source_location_id, -- 源仓库ID
|
||||
T4.name AS source_location_name, -- 源仓库
|
||||
T1.source_location_store_id, -- 源仓位ID
|
||||
T5.name AS source_location_store_name, -- 源仓位
|
||||
T1.purpose_location_id, -- 目的仓库ID
|
||||
T9.name AS purpose_location_name, -- 目的仓库
|
||||
T1.purpose_location_store_id, -- 目的货位ID
|
||||
T10.name AS purpose_location_store_name, -- 目的货位
|
||||
T1.item_quantity, -- 调拨数量
|
||||
T1.unit_code, -- 物品计量单位
|
||||
T1.price, -- 采购单价
|
||||
T1.total_price, -- 总价
|
||||
T1.applicant_id, -- 申请人(制单人)
|
||||
T1.approver_id, -- 审核人
|
||||
T1.create_time, -- 制单日期
|
||||
T1.apply_time, -- 申请日期
|
||||
T1.approval_time, -- 审批时间(调拨日期)
|
||||
T1.tenant_id -- 租户ID
|
||||
FROM wor_supply_request T1
|
||||
INNER JOIN wor_supply_delivery AS T2
|
||||
ON T2.request_id = T1.id
|
||||
AND T2.status_enum = #{deliveryStatus}
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN med_medication_definition T3
|
||||
ON T1.item_id = T3.id
|
||||
AND T3.delete_flag = '0'
|
||||
LEFT JOIN adm_location T4
|
||||
ON T1.source_location_id = T4.id
|
||||
AND T4.delete_flag = '0'
|
||||
LEFT JOIN adm_location T5
|
||||
ON T1.source_location_store_id = T5.id
|
||||
AND T5.delete_flag = '0'
|
||||
LEFT JOIN adm_location T9
|
||||
ON T1.purpose_location_id = T9.id
|
||||
AND T9.delete_flag = '0'
|
||||
LEFT JOIN adm_location T10
|
||||
ON T1.purpose_location_store_id = T10.id
|
||||
AND T10.delete_flag = '0'
|
||||
WHERE T1.type_enum in (#{transferReport}, #{transferBatchReport})
|
||||
AND T1.status_enum = #{supplyStatus}
|
||||
AND T1.item_table = #{medicationTableName}
|
||||
AND T1.delete_flag = '0'
|
||||
UNION
|
||||
SELECT T1.id,
|
||||
T1.bus_no AS supply_bus_no, -- 商品调拨单据号
|
||||
T7.name, -- 器材名称
|
||||
T1.status_enum, -- 状态
|
||||
T1.lot_number, -- 产品批号
|
||||
T1.source_location_id, -- 源仓库ID
|
||||
T4.name AS source_location_name, -- 源仓库
|
||||
T1.source_location_store_id, -- 源仓位ID
|
||||
T5.name AS source_location_store_name, -- 源仓位
|
||||
T1.purpose_location_id, -- 目的仓库ID
|
||||
T9.name AS purpose_location_name, -- 目的仓库
|
||||
T1.purpose_location_store_id, -- 目的货位ID
|
||||
T10.name AS purpose_location_store_name, -- 目的货位
|
||||
T1.item_quantity, -- 调拨数量
|
||||
T1.unit_code, -- 物品计量单位
|
||||
T1.price, -- 采购单价
|
||||
T1.total_price, -- 总价
|
||||
T1.applicant_id, -- 申请人(制单人)
|
||||
T1.approver_id, -- 审核人
|
||||
T1.create_time, -- 制单日期
|
||||
T1.apply_time, -- 申请日期
|
||||
T1.approval_time, -- 审批时间(调拨日期)
|
||||
T1.tenant_id -- 租户ID
|
||||
FROM wor_supply_request T1
|
||||
INNER JOIN wor_supply_delivery AS T2
|
||||
ON T2.request_id = T1.id
|
||||
AND T2.status_enum = #{deliveryStatus}
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN adm_device_definition T7
|
||||
ON T1.item_id = T7.id
|
||||
AND T7.delete_flag = '0'
|
||||
LEFT JOIN adm_location T4
|
||||
ON T1.source_location_id = T4.id
|
||||
AND T4.delete_flag = '0'
|
||||
LEFT JOIN adm_location T5
|
||||
ON T1.source_location_store_id = T5.id
|
||||
AND T5.delete_flag = '0'
|
||||
LEFT JOIN adm_location T9
|
||||
ON T1.purpose_location_id = T9.id
|
||||
AND T9.delete_flag = '0'
|
||||
LEFT JOIN adm_location T10
|
||||
ON T1.purpose_location_store_id = T10.id
|
||||
AND T10.delete_flag = '0'
|
||||
WHERE T1.type_enum in (#{transferReport}, #{transferBatchReport})
|
||||
AND T1.status_enum = #{supplyStatus}
|
||||
AND T1.item_table = #{deviceTableName}
|
||||
AND T1.delete_flag = '0') AS T6
|
||||
${ew.customSqlSegment}
|
||||
ORDER BY T6.supply_bus_no DESC
|
||||
</select>
|
||||
</mapper>
|
||||
Reference in New Issue
Block a user