307 lines
16 KiB
XML
307 lines
16 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.pharmacyDispensarymanage.mapper.PharmacyDispensaryCommonMapper">
|
|
<select id="getMedicationInfo"
|
|
resultType="com.openhis.web.pharmacyDispensarymanage.dto.PharmacyDispensaryMedicationInfoDto">
|
|
SELECT T6.id,--物品id
|
|
T6.bus_no,-- 药品编号
|
|
T6.name,-- 物品名称
|
|
T6.py_str,-- 拼音码
|
|
T6.total_volume,--规格
|
|
T6.unit_code,-- 包装单位
|
|
T6.min_unit_code,--最小单位
|
|
T6.part_percent,--拆零比
|
|
T6.price,--进货单价
|
|
T6.retailPrice,--零售价
|
|
T6.manufacturer_text,-- 厂家/产地
|
|
T6.approval_number,--批准文号
|
|
T6.item_min_quantity, --库存最小警戒线
|
|
T6.specification_inventory,--规格库存
|
|
T6.batch_inventory,--批次库存
|
|
T6.lot_number,
|
|
T6.production_date,--生产日期
|
|
T6.expiration_date,--失效日期
|
|
<if test="locationId != null">
|
|
T6.location_id,
|
|
</if>
|
|
T6.supplier_id,
|
|
T6.tenant_id
|
|
FROM (SELECT T1.id,--物品id
|
|
T1.bus_no,-- 药品编号
|
|
T1.name,-- 物品名称
|
|
T1.py_str,-- 拼音码
|
|
T2.total_volume,--规格
|
|
T1.unit_code,-- 包装单位
|
|
T1.min_unit_code,--最小单位
|
|
T1.part_percent,--拆零比
|
|
CASE
|
|
WHEN T9.lot_number IS NULL THEN
|
|
CASE T4.condition_value
|
|
WHEN T1.min_unit_code THEN T4.amount * T1.part_percent
|
|
ELSE T4.amount END
|
|
ELSE CASE T4.condition_value
|
|
WHEN T1.min_unit_code THEN T10.amount * T1.part_percent
|
|
ELSE T10.amount END
|
|
END AS price,--进货单价(大单位)
|
|
CASE
|
|
WHEN T9.lot_number IS NULL THEN
|
|
CASE T5.condition_value
|
|
WHEN T1.min_unit_code THEN T5.amount * T1.part_percent
|
|
ELSE T5.amount END
|
|
ELSE CASE T5.condition_value
|
|
WHEN T1.min_unit_code THEN T11.amount * T1.part_percent
|
|
ELSE T11.amount END
|
|
END AS retailPrice,--零售价(大单位)
|
|
T1.manufacturer_text,-- 厂家/产地
|
|
T1.approval_number,--批准文号
|
|
T1.item_min_quantity * T1.part_percent AS item_min_quantity, --库存最小警戒线(小单位)
|
|
COALESCE(CAST(T8.specification_inventory AS DECIMAL(18, 6)), 0.00) AS specification_inventory,--规格库存(小单位)
|
|
COALESCE(CAST(T9.batch_inventory AS DECIMAL(18, 6)), 0.00) AS batch_inventory,--批次库存(小单位)
|
|
T9.lot_number,
|
|
T7.production_date,--生产日期
|
|
T7.expiration_date,--失效日期
|
|
<if test="locationId != null">
|
|
T7.location_id,
|
|
</if>
|
|
T7.supplier_id,
|
|
T1.tenant_id
|
|
FROM med_medication_definition AS T1
|
|
LEFT JOIN med_medication AS T2
|
|
ON T1.id = T2.medication_def_id
|
|
AND T2.delete_flag = '0'
|
|
LEFT JOIN adm_charge_item_definition T3
|
|
ON T3.instance_id = T1.id
|
|
AND T3.instance_table = 'med_medication_definition'
|
|
AND T3.delete_flag = '0'
|
|
LEFT JOIN adm_charge_item_def_detail T4
|
|
ON T4.definition_id = T3.id
|
|
AND T4.condition_code = '2'--2:采购价
|
|
AND T4.delete_flag = '0'
|
|
LEFT JOIN adm_charge_item_def_detail T5
|
|
ON T5.definition_id = T3.id
|
|
AND T5.condition_code = '3'--2:单位
|
|
AND T5.delete_flag = '0'
|
|
LEFT JOIN wor_inventory_item T7
|
|
ON T7.item_table = 'med_medication_definition'
|
|
AND T7.item_id = T1.id
|
|
AND T7.delete_flag = '0'
|
|
LEFT JOIN (SELECT i1.item_table,
|
|
i1.item_id,
|
|
<if test="locationId != null">
|
|
i1.location_id,
|
|
</if>
|
|
COALESCE(CAST(SUM(i1.quantity) AS DECIMAL(18, 6)), 0.00) AS specification_inventory
|
|
FROM wor_inventory_item i1
|
|
LEFT JOIN med_medication_definition i2 ON i1.item_id = i2.ID
|
|
AND i2.delete_flag = '0'
|
|
WHERE i1.item_table = 'med_medication_definition'
|
|
AND i1.delete_flag = '0'
|
|
GROUP BY i1.item_table,
|
|
i1.item_id
|
|
<if test="locationId != null">
|
|
,i1.location_id
|
|
</if>) T8
|
|
ON T8.item_table = 'med_medication_definition'
|
|
AND T8.item_id = T1.ID
|
|
<if test="locationId != null">
|
|
AND T8.location_id = T7.location_id
|
|
</if>
|
|
LEFT JOIN (SELECT i3.item_table,
|
|
i3.item_id,
|
|
i3.lot_number,
|
|
<if test="locationId != null">
|
|
i3.location_id,
|
|
</if>
|
|
COALESCE(CAST(SUM(i3.quantity) AS DECIMAL(18, 6)), 0.00) AS batch_inventory
|
|
FROM wor_inventory_item i3
|
|
LEFT JOIN med_medication_definition i4 ON i3.item_id = i4.ID
|
|
AND i4.delete_flag = '0'
|
|
WHERE i3.item_table = 'med_medication_definition'
|
|
AND i3.delete_flag = '0'
|
|
GROUP BY i3.item_table,
|
|
i3.item_id,
|
|
i3.lot_number
|
|
<if test="locationId != null">
|
|
,i3.location_id
|
|
</if>) T9
|
|
ON T9.item_table = 'med_medication_definition'
|
|
AND T9.item_id = T1.ID
|
|
AND T9.lot_number = T7.lot_number
|
|
<if test="locationId != null">
|
|
AND T9.location_id = T7.location_id
|
|
</if>
|
|
LEFT JOIN adm_charge_item_def_detail T10
|
|
ON T10.definition_id = T3.id
|
|
AND T10.condition_code = '1'--1:批号进价
|
|
AND T10.condition_value = T9.lot_number
|
|
AND T10.delete_flag = '0'
|
|
LEFT JOIN adm_charge_item_def_detail T11
|
|
ON T11.definition_id = T3.id
|
|
AND T11.condition_code = '5'--1:批号售价
|
|
AND T11.condition_value = T9.lot_number
|
|
AND T11.delete_flag = '0'
|
|
WHERE T1.delete_flag = '0'
|
|
<if test="locationId != null">
|
|
AND T7.location_id = #{locationId}
|
|
</if>
|
|
<!-- <if test="supplierId != null">-->
|
|
<!-- AND T7.supplier_id = #{supplierId}-->
|
|
<!-- </if>-->
|
|
GROUP BY T1.id,
|
|
T2.total_volume,
|
|
T4.condition_value,
|
|
T5.condition_value,
|
|
T4.amount,
|
|
T5.amount,
|
|
T10.amount,
|
|
T11.amount,
|
|
T8.specification_inventory,
|
|
T9.batch_inventory,
|
|
T9.lot_number,
|
|
<if test="locationId != null">
|
|
T7.location_id,
|
|
</if>
|
|
T7.supplier_id,
|
|
T7.production_date,
|
|
T7.expiration_date
|
|
<if test="supplierId != null">
|
|
HAVING
|
|
T8.specification_inventory <![CDATA[ <= ]]> (T1.item_min_quantity * T1.part_percent)
|
|
</if>
|
|
ORDER BY T1.bus_no) AS T6
|
|
${ew.customSqlSegment}
|
|
</select>
|
|
<select id="getPage"
|
|
resultType="com.openhis.web.pharmacyDispensarymanage.dto.PharmacyDispensaryDto">
|
|
SELECT T4.tenant_id,
|
|
T4.supply_bus_no, --单据号
|
|
T4.type_enum, --类型
|
|
T4.status_enum, --状态
|
|
T4.supplier_id, --供应商
|
|
T4.location_type_enum, --仓库类型
|
|
T4.location_id, --仓库
|
|
T4.applicant_id, --开单人
|
|
T4.applicant_name, --开单人
|
|
T4.approver_id, --审批人
|
|
T4.apply_time, -- 制单时间
|
|
T4.approval_time --审批时间
|
|
FROM (SELECT T1.tenant_id,
|
|
T1.bus_no AS supply_bus_no,
|
|
T1.type_enum,
|
|
T1.status_enum,
|
|
T1.supplier_id,
|
|
<if test="locationFlg != null">
|
|
T1.source_type_enum AS location_type_enum,
|
|
T1.source_location_id AS location_id,
|
|
</if>
|
|
<if test="locationFlg == null">
|
|
T1.purpose_type_enum AS location_type_enum,
|
|
T1.purpose_location_id AS location_id,
|
|
</if>
|
|
T1.applicant_id,
|
|
T2.name AS applicant_name,
|
|
T1.approver_id,
|
|
T1.apply_time,
|
|
T1.approval_time
|
|
FROM wor_supply_request AS T1
|
|
LEFT JOIN adm_practitioner AS T2
|
|
ON T2.id = T1.applicant_id
|
|
AND T2.delete_flag = '0'
|
|
WHERE T1.delete_flag = '0'
|
|
<if test="originalBusNoFlg != null">
|
|
and original_bus_no = ''
|
|
</if>
|
|
GROUP BY T1.tenant_id,
|
|
T1.bus_no,
|
|
T1.type_enum,
|
|
T1.status_enum,
|
|
T1.supplier_id,
|
|
<if test="locationFlg != null">
|
|
T1.source_type_enum,
|
|
T1.source_location_id,
|
|
</if>
|
|
<if test="locationFlg == null">
|
|
T1.purpose_type_enum,
|
|
T1.purpose_location_id,
|
|
</if>
|
|
T1.applicant_id,
|
|
T2.name,
|
|
T1.approver_id,
|
|
T1.apply_time,
|
|
T1.approval_time
|
|
) AS T4
|
|
${ew.customSqlSegment}
|
|
</select>
|
|
<select id="getDetailPage"
|
|
resultType="com.openhis.web.pharmacyDispensarymanage.dto.PharmacyDispensaryDetailDto">
|
|
SELECT T1.id, --ID
|
|
T1.bus_no, --单据号
|
|
T2.bus_no AS item_bus_no, --药品编码
|
|
T1.item_id, --药品id
|
|
T2.name AS item_name, --名称
|
|
T3.total_volume, --规格
|
|
T1.unit_code, --选择单位
|
|
T2.unit_code AS max_unit_code, --常规单位
|
|
T2.min_unit_code AS min_unit_code, --最小单位
|
|
T2.part_percent, --拆零比
|
|
T1.item_quantity, --数量
|
|
T1.total_quantity, --合计数量
|
|
T1.price, --采购单价
|
|
T1.total_price, --采购总价
|
|
T1.retail_price, --零售价
|
|
T1.total_retail_price, --零价金额
|
|
T2.manufacturer_text, --生产厂商文本
|
|
T2.approval_number, --批准文号
|
|
T1.remake, --备注
|
|
T1.reason, --摘要(理由)
|
|
T1.reason_code, --理由类型
|
|
T1.batch_inventory, --批次库存
|
|
T1.specification_inventory, --规格库存
|
|
T1.applicant_id,--申请人
|
|
T1.apply_time,--申请时间
|
|
T1.approver_id,--审批人
|
|
T1.approval_time,--审批时间
|
|
T1.supplier_id,--供应商
|
|
T4.phone,--供应商联系人
|
|
T1.status_enum,
|
|
T1.type_enum,
|
|
T1.category_enum,--单据类型
|
|
T1.source_type_enum, --源仓库类型
|
|
T1.source_location_id, --源仓库
|
|
T1.purpose_type_enum, --目的仓库类型
|
|
T1.purpose_location_id, --目的仓库
|
|
T1.practitioner_id,--仓库员
|
|
T1.invoice_no,--发票号
|
|
T1.lot_number,--产品批号
|
|
T1.start_time,--开始时间
|
|
T1.end_time,--结束时间
|
|
T1.packaging_condition_enum,--包装情况
|
|
T1.acceptance_result_enum,--验收结果
|
|
T1.trace_no,--追溯码
|
|
T1.trace_no_unit_code,--追溯码包装
|
|
T1.occurrence_time,--禁用日期
|
|
T1.tenant_id
|
|
FROM wor_supply_request AS T1
|
|
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_supplier AS T4
|
|
ON T4.id = T1.supplier_id
|
|
AND T4.delete_flag = '0'
|
|
WHERE T1.bus_no = #{busNo}
|
|
AND T1.delete_flag = '0'
|
|
GROUP BY T1.id,
|
|
T2.bus_no,
|
|
T2.name,
|
|
T2.unit_code,
|
|
T2.min_unit_code,
|
|
T3.total_volume,
|
|
T2.part_percent,
|
|
T2.manufacturer_text,
|
|
T2.approval_number,
|
|
T4.phone
|
|
</select>
|
|
</mapper> |