解决合并冲突

This commit is contained in:
2025-12-10 14:20:24 +08:00
parent e1385cb3e6
commit 18f6a845e6
804 changed files with 61881 additions and 13577 deletions

View File

@@ -0,0 +1,77 @@
<?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.inventorymanage.mapper.InventoryAdjustPriceMapper">
<select id="selectReceiptPageByAdjustPrice"
resultType="com.openhis.web.inventorymanage.dto.InventoryAdjustPriceDto">
SELECT T2.supply_bus_no,
T2.status_enum,
T2.type_enum,
T2.approver_id,
T2.approval_time,
T2.applicant_id,
T2.apply_time,
T2.practitioner_id,
T2.tenant_id,
T2.category_enum
FROM (SELECT T1.bus_no AS supply_bus_no,
T1.status_enum,
T1.type_enum,
T1.approver_id,
T1.approval_time,
T1.applicant_id,
T1.apply_time,
T1.practitioner_id,
T1.tenant_id,
T1.category_enum
FROM wor_supply_request AS T1
WHERE T1.status_enum IN (#{approval}, #{agree}, #{reject})
AND T1.delete_flag != '1'
AND T1.type_enum IN (#{medTypeEnum}
, #{deviceTypeEnum}
, #{activityTypeEnum}
, #{healthTypeEnum})
GROUP BY T1.bus_no,
T1.status_enum,
T1.type_enum,
T1.approver_id,
T1.approval_time,
T1.applicant_id,
T1.apply_time,
T1.practitioner_id,
T1.tenant_id,
T1.category_enum
ORDER BY T1.apply_time desc) AS T2
${ew.customSqlSegment}
</select>
<select id="searchPageByExamine" resultType="com.openhis.web.adjustprice.dto.ChangePricePageDto">
select t2.bus_no,
t2.status_enum,
t2.approver_id,
t2.approval_time,
t2.applicant_id,
t2.applicant_time,
t2.create_time,
t2.item_category_enum,
t2.tenant_id
from (select t1.bus_no,
t1.status_enum,
t1.approver_id,
t1.approval_time,
t1.applicant_id,
min(t1.applicant_time) as applicant_time,
min(t1.create_time) as create_time,
t1.item_category_enum,
t1.tenant_id
FROM adm_change_price_record t1
where t1.delete_flag = '0'
AND t1.status_enum IN (#{approval}, #{agree}, #{reject})
AND t1.item_category_enum IN (#{medCategory}, #{deviceCategory}, #{activityCategory}, #{healthCategory})
GROUP BY t1.bus_no, t1.status_enum, t1.approver_id, t1.approval_time, t1.applicant_id,
t1.item_category_enum, t1.tenant_id
ORDER BY t1.bus_no desc) as t2
${ew.customSqlSegment}
</select>
</mapper>

View File

@@ -0,0 +1,324 @@
<?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.inventorymanage.mapper.ProductDetailAppMapper">
<select id="selectProductDetailsPage"
resultType="com.openhis.web.inventorymanage.dto.ProductDetailPageDto">
SELECT ii.inventory_id,
ii.production_date,
ii.expiration_date,
ii.remaining_days,
ii.inventory_status_enum,
ii.location_id,
ii.location_store_id,
ii.lot_number,
ii.quantity,
ii.supplier_id,
ii.item_table,
ii.item_name,
ii.bus_no,
ii.dev_category_code,
ii.med_category_code,
ii.chrgitm_lv,
ii.manufacturer_text,
ii.yb_no,
ii.wb_str,
ii.py_str,
ii.unit_code,
ii.min_unit_code,
ii.part_percent,
ii.approval_number,
ii.dose_form_code,
ii.total_volume,
ii.sale_price,
ii.charge_item_def_id,
ii.purchase_price,
ii.location_name,
ii.location_store_name,
ii.supplier_name
FROM (SELECT wii.id AS inventory_id,
wii.production_date,
wii.expiration_date,
(wii.expiration_date::date - CURRENT_DATE) AS remaining_days,
wii.inventory_status_enum,
wii.location_id,
wii.location_store_id,
wii.lot_number,
wii.quantity,
wii.supplier_id,
wii.tenant_id,
#{medMedicationDefinition} AS item_table,
mmd."name" AS item_name,
mmd.bus_no,
NULL AS dev_category_code,
mmd.category_code AS med_category_code,
mmd.chrgitm_lv,
mmd.manufacturer_text,
mmd.yb_no,
mmd.wb_str,
mmd.py_str,
mmd.unit_code,
mmd.min_unit_code,
mmd.part_percent,
mmd.approval_number,
mm.dose_form_code,
mm.total_volume,
acid.price AS sale_price,
acid.id AS charge_item_def_id,
acidd.amount AS purchase_price,
al."name" AS location_name,
al2."name" AS location_store_name,
as2."name" AS supplier_name
FROM wor_inventory_item wii
LEFT JOIN med_medication_definition mmd
ON wii.item_id = mmd.id
AND mmd.delete_flag = '0'
LEFT JOIN med_medication mm
ON mmd.id = mm.medication_def_id
AND mm.delete_flag = '0'
LEFT JOIN adm_charge_item_definition acid
ON wii.item_id = acid.instance_id
AND acid.delete_flag = '0'
LEFT JOIN adm_charge_item_def_detail acidd
ON acid.id = acidd.definition_id
AND acidd.condition_value = wii.lot_number
AND acidd.delete_flag = '0'
LEFT JOIN adm_location al
ON wii.location_id = al.id
AND al.delete_flag = '0'
LEFT JOIN adm_location al2
ON wii.location_store_id = al2.id
AND al2.delete_flag = '0'
LEFT JOIN adm_supplier as2
ON wii.supplier_id = as2.id
AND as2.delete_flag = '0'
WHERE wii.item_table = #{medMedicationDefinition}
AND acidd.condition_code = #{lotNumberCost}
AND wii.delete_flag = '0'
UNION
SELECT wii.id AS inventory_id,
wii.production_date,
wii.expiration_date,
(wii.expiration_date::date - CURRENT_DATE) AS remaining_days,
wii.inventory_status_enum,
wii.location_id,
wii.location_store_id,
wii.lot_number,
wii.quantity,
wii.supplier_id,
wii.tenant_id,
#{admDeviceDefinition} AS item_table,
add2."name" AS item_name,
add2.bus_no,
add2.category_code AS dev_category_code,
NULL AS med_category_code,
add2.chrgitm_lv,
add2.manufacturer_text,
add2.yb_no,
add2.wb_str,
add2.py_str,
add2.unit_code,
add2.min_unit_code,
add2.part_percent,
add2.approval_number,
NULL AS dose_form_code,
add2.size AS total_volume,
acid.price AS sale_price,
acid.id AS charge_item_def_id,
acidd.amount AS purchase_price,
al."name" AS location_name,
al2."name" AS location_store_name,
as2."name" AS supplier_name
FROM wor_inventory_item wii
LEFT JOIN adm_device_definition add2
ON wii.item_id = add2.id
AND add2.delete_flag = '0'
LEFT JOIN adm_charge_item_definition acid
ON wii.item_id = acid.instance_id
AND acid.delete_flag = '0'
LEFT JOIN adm_charge_item_def_detail acidd
ON acid.id = acidd.definition_id
AND acidd.condition_code = #{lotNumberCost}
AND acidd.condition_value = wii.lot_number
AND acidd.delete_flag = '0'
LEFT JOIN adm_location al
ON wii.location_id = al.id
AND al.delete_flag = '0'
LEFT JOIN adm_location al2
ON wii.location_store_id = al2.id
AND al2.delete_flag = '0'
LEFT JOIN adm_supplier as2
ON wii.supplier_id = as2.id
AND as2.delete_flag = '0'
WHERE wii.item_table = #{admDeviceDefinition}
AND acidd.condition_code = #{lotNumberCost}
AND wii.delete_flag = '0') AS ii
${ew.customSqlSegment}
ORDER BY ii.py_str
</select>
<select id="selectProductDetailsPageX"
resultType="com.openhis.web.inventorymanage.dto.ProductDetailPageDto">
SELECT DISTINCT ii.inventory_id,
ii.production_date,
ii.expiration_date,
ii.remaining_days,
ii.inventory_status_enum,
ii.location_id,
ii.location_store_id,
ii.lot_number,
ii.quantity,
ii.supplier_id,
ii.item_table,
ii.item_name,
ii.bus_no,
ii.dev_category_code,
ii.med_category_code,
ii.chrgitm_lv,
ii.manufacturer_text,
ii.yb_no,
ii.wb_str,
ii.py_str,
ii.unit_code,
ii.min_unit_code,
ii.part_percent,
ii.approval_number,
ii.dose_form_code,
ii.total_volume,
ii.sale_price,
ii.charge_item_def_id,
ii.purchase_price,
ii.location_name,
ii.location_store_name,
ii.supplier_name,
sdd.dict_label AS unitCode_dictText,
sdd2.dict_label AS minUnitCode_dictText,
sdd3.dict_label AS devCategoryCode_dictText,
sdd4.dict_label AS doseFormCode_dictText,
sdd5.dict_label AS medCategoryCode_dictText
FROM (SELECT wii.id AS inventory_id,
wii.production_date,
wii.expiration_date,
(wii.expiration_date::date - CURRENT_DATE) AS remaining_days,
wii.inventory_status_enum,
wii.location_id,
wii.location_store_id,
wii.lot_number,
wii.quantity,
wii.supplier_id,
wii.tenant_id,
#{medMedicationDefinition} AS item_table,
mmd."name" AS item_name,
mmd.bus_no,
NULL AS dev_category_code,
mmd.category_code AS med_category_code,
mmd.chrgitm_lv,
mmd.manufacturer_text,
mmd.yb_no,
mmd.wb_str,
mmd.py_str,
mmd.unit_code,
mmd.min_unit_code,
mmd.part_percent,
mmd.approval_number,
mm.dose_form_code,
mm.total_volume,
acid.price AS sale_price,
acid.id AS charge_item_def_id,
acidd.amount AS purchase_price,
al."name" AS location_name,
al2."name" AS location_store_name,
as2."name" AS supplier_name
FROM wor_inventory_item wii
LEFT JOIN med_medication_definition mmd
ON wii.item_id = mmd.id
AND mmd.delete_flag = '0'
LEFT JOIN med_medication mm
ON mmd.id = mm.medication_def_id
AND mm.delete_flag = '0'
LEFT JOIN adm_charge_item_definition acid
ON wii.item_id = acid.instance_id
AND acid.delete_flag = '0'
LEFT JOIN adm_charge_item_def_detail acidd
ON acid.id = acidd.definition_id
AND acidd.condition_value = wii.lot_number
AND acidd.delete_flag = '0'
LEFT JOIN adm_location al
ON wii.location_id = al.id
AND al.delete_flag = '0'
LEFT JOIN adm_location al2
ON wii.location_store_id = al2.id
AND al2.delete_flag = '0'
LEFT JOIN adm_supplier as2
ON wii.supplier_id = as2.id
AND as2.delete_flag = '0'
WHERE wii.item_table = #{medMedicationDefinition}
AND acidd.condition_code = #{lotNumberCost}
AND wii.delete_flag = '0'
UNION
SELECT wii.id AS inventory_id,
wii.production_date,
wii.expiration_date,
(wii.expiration_date::date - CURRENT_DATE) AS remaining_days,
wii.inventory_status_enum,
wii.location_id,
wii.location_store_id,
wii.lot_number,
wii.quantity,
wii.supplier_id,
wii.tenant_id,
#{admDeviceDefinition} AS item_table,
add2."name" AS item_name,
add2.bus_no,
add2.category_code AS dev_category_code,
NULL AS med_category_code,
add2.chrgitm_lv,
add2.manufacturer_text,
add2.yb_no,
add2.wb_str,
add2.py_str,
add2.unit_code,
add2.min_unit_code,
add2.part_percent,
add2.approval_number,
NULL AS dose_form_code,
add2.size AS total_volume,
acid.price AS sale_price,
acid.id AS charge_item_def_id,
acidd.amount AS purchase_price,
al."name" AS location_name,
al2."name" AS location_store_name,
as2."name" AS supplier_name
FROM wor_inventory_item wii
LEFT JOIN adm_device_definition add2
ON wii.item_id = add2.id
AND add2.delete_flag = '0'
LEFT JOIN adm_charge_item_definition acid
ON wii.item_id = acid.instance_id
AND acid.delete_flag = '0'
LEFT JOIN adm_charge_item_def_detail acidd
ON acid.id = acidd.definition_id
AND acidd.condition_code = #{lotNumberCost}
AND acidd.condition_value = wii.lot_number
AND acidd.delete_flag = '0'
LEFT JOIN adm_location al
ON wii.location_id = al.id
AND al.delete_flag = '0'
LEFT JOIN adm_location al2
ON wii.location_store_id = al2.id
AND al2.delete_flag = '0'
LEFT JOIN adm_supplier as2
ON wii.supplier_id = as2.id
AND as2.delete_flag = '0'
WHERE wii.item_table = #{admDeviceDefinition}
AND acidd.condition_code = #{lotNumberCost}
AND wii.delete_flag = '0') AS ii
LEFT JOIN sys_dict_data sdd ON ii.unit_code = sdd.dict_value AND sdd.dict_type = 'unit_code'
LEFT JOIN sys_dict_data sdd2 ON ii.min_unit_code = sdd2.dict_value AND sdd2.dict_type = 'unit_code'
LEFT JOIN sys_dict_data sdd3 ON ii.dev_category_code = sdd3.dict_value AND sdd3.dict_type = 'device_category_code'
LEFT JOIN sys_dict_data sdd4 ON ii.dose_form_code = sdd4.dict_value AND sdd4.dict_type = 'dose_form_code'
LEFT JOIN sys_dict_data sdd5 ON ii.med_category_code = sdd5.dict_value AND sdd5.dict_type = 'med_category_code'
${ew.customSqlSegment}
ORDER BY ii.py_str
</select>
</mapper>

View File

@@ -1,523 +0,0 @@
<?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.inventorymanage.mapper.ProductDetailsMapper">
<select id="selectProductDetailsPage"
resultType="com.openhis.web.inventorymanage.dto.ProductDetailsPageDto">
WITH latest_records AS (
SELECT
item_table,
item_id,
location_id,
lot_number,
trace_no,
MAX(create_time) AS latest_time
FROM
adm_trace_no_manage
WHERE delete_flag = '0'
GROUP BY
item_table,
item_id,
location_id,
lot_number,
trace_no
)
SELECT T6.id, --库存项目管理ID停供用
T6.bus_no, --药品编码
T6.medicine_name, --药品名称
T6.py_str, --药品拼音
T6.total_volume, --规格
T6.chrgitm_lv, --医保等级
T6.manufacturer_text, --厂家
T6.lot_number, --批次号
T6.category_code, --药品类型
T6.item_type, --药品类型区分
T6.part_percent, --拆零比
T6.unit_code, --采购单位
T6.quantity, --库存(小单位)
T6.min_unit_code, --库存单位
T6.price, --采购单价
T6.production_date, --生产日期
T6.expiration_date, --失效日期
T6.remaining_days, --剩余天数
T6.trace_no, --追溯码
T6.status_enum, --药品状态(药品停用)
T6.location_id,
T6.location_name, --仓库
T6.location_store_id,
T6.location_store_name, --货位
T6.form_enum, --仓库类型
T6.supplier_id, --供应商
T6.supply_name, --供应商名称
T6.inventory_status_enum, --停供状态
T6.dose_form_code, --剂型
T6.approval_number, --批准文号/国药准字
T6.retail_price, --零售价
T6.tenant_id,
T6.in_count,
T6.out_count,
T6.item_table,
T6.item_id
FROM (
SELECT T1.id, --库存项目管理ID停供用
T2.bus_no, --药品编码
T2."name" AS medicine_name, --药品名称
T2.py_str, --药品拼音
T3.total_volume, --规格
T2.chrgitm_lv, --医保等级
T2.manufacturer_text, --厂家
T1.lot_number, --批次号
T2.category_code, --药品类型
'0' AS item_type, --药品类型区分
T2.part_percent, --拆零比
T2.unit_code, --采购单位
T1.quantity, --库存(小单位)
T2.min_unit_code, --库存单位
T1.price, --采购单价
T1.production_date, --生产日期
T1.expiration_date, --失效日期
(T1.expiration_date::date - CURRENT_DATE) AS remaining_days, --剩余天数
T1.trace_no, --追溯码
T3.status_enum, --药品状态(药品停用)
T1.location_id,
T5."name" AS location_name, --仓库
T1.location_store_id,
T4."name" AS location_store_name, --货位
T5.form_enum, --仓库类型
T1.supplier_id, --供应商
T8.name AS supply_name, --供应商名称
T1.inventory_status_enum, --停供状态
T3.dose_form_code, --剂型
T2.approval_number, --批准文号/国药准字
T10.amount AS retail_price, --零售价
T1.tenant_id, --修复:添加逗号
COALESCE(in_counts.in_count, 0) AS in_count,
COALESCE(out_counts.out_count, 0) AS out_count,
T1.item_table,
T1.item_id
FROM wor_inventory_item T1
INNER JOIN med_medication_definition T2
ON T1.item_id = T2.id
AND T2.delete_flag = '0'
LEFT JOIN med_medication T3
ON T2.id = T3.medication_def_id
AND T3.delete_flag = '0'
LEFT JOIN adm_location T4
ON T1.location_store_id = T4.id
AND T4.delete_flag = '0'
LEFT JOIN adm_location T5
ON T1.location_id = T5.id
AND T5.delete_flag = '0'
LEFT JOIN adm_supplier T8
ON T1.supplier_id = T8.id
AND T8.delete_flag = '0'
LEFT JOIN adm_charge_item_definition T9
ON T9.instance_table = 'med_medication_definition'
AND T9.instance_id = T2.id
AND T9.delete_flag = '0'
LEFT JOIN LATERAL (
SELECT amount
FROM adm_charge_item_def_detail
WHERE definition_id = T9.id
AND condition_value = T1.lot_number
AND condition_code = '1'--1:批号进价
AND delete_flag = '0'
ORDER BY create_time DESC
LIMIT 1
) T10 ON TRUE
LEFT JOIN (
SELECT ls.item_table,
ls.item_id,
ls.location_id,
ls.lot_number,
SUM(CASE WHEN T10.status_enum = '1' THEN 1 ELSE 0 END) AS in_count
FROM latest_records ls
LEFT JOIN adm_trace_no_manage T10
ON T10.item_table = ls.item_table
AND T10.item_id = ls.item_id
AND T10.location_id = ls.location_id
AND T10.lot_number = ls.lot_number
AND T10.trace_no = ls.trace_no
AND T10.create_time = ls.latest_time
GROUP BY ls.item_table, ls.item_id, ls.location_id, ls.lot_number
) in_counts
ON T1.item_table = in_counts.item_table
AND T1.item_id = in_counts.item_id
AND T1.location_id = in_counts.location_id
AND T1.lot_number = in_counts.lot_number
LEFT JOIN (
SELECT ls.item_table,
ls.item_id,
ls.location_id,
ls.lot_number,
SUM(CASE WHEN T10.status_enum = '2' THEN 1 ELSE 0 END) AS out_count
FROM latest_records ls
LEFT JOIN adm_trace_no_manage T10
ON T10.item_table = ls.item_table
AND T10.item_id = ls.item_id
AND T10.location_id = ls.location_id
AND T10.lot_number = ls.lot_number
AND T10.trace_no = ls.trace_no
AND T10.create_time = ls.latest_time
GROUP BY ls.item_table, ls.item_id, ls.location_id, ls.lot_number
) out_counts
ON T1.item_table = out_counts.item_table
AND T1.item_id = out_counts.item_id
AND T1.location_id = out_counts.location_id
AND T1.lot_number = out_counts.lot_number
WHERE T1.delete_flag = '0'
) AS T6
${ew.customSqlSegment}
UNION ALL
SELECT T7.id, --库存项目管理ID停供用
T7.bus_no, --药品编码
T7.medicine_name, --药品名称
T7.py_str, --药品拼音
T7.total_volume, --规格
T7.chrgitm_lv, --医保等级
T7.manufacturer_text, --厂家
T7.lot_number, --批次号
T7.category_code, --药品类型
T7.item_type, --药品类型区分
T7.part_percent, --拆零比
T7.unit_code, --采购单位
T7.quantity, --库存(小单位)
T7.min_unit_code, --库存单位
T7.price, --采购单价
T7.production_date, --生产日期
T7.expiration_date, --失效日期
T7.remaining_days, --剩余天数
T7.trace_no, --追溯码
T7.status_enum, --药品状态(药品停用)
T7.location_id,
T7.location_name, --仓库
T7.location_store_id,
T7.location_store_name, --货位
T7.form_enum, --仓库类型
T7.supplier_id, --供应商
T7.supply_name, --供应商名称
T7.inventory_status_enum, --停供状态
T7.dose_form_code, --剂型
T7.approval_number, --批准文号/国药准字
T7.retail_price, --零售价
T7.tenant_id,
T7.in_count,
T7.out_count,
T7.item_table,
T7.item_id
FROM (
SELECT T1.id, --库存项目管理ID停供用
T2.bus_no, --药品编码
T2."name" AS medicine_name, --药品名称
T2.py_str, --药品拼音
T2.size AS total_volume, --规格
T2.chrgitm_lv, --医保等级
T2.manufacturer_text, --厂家
T1.lot_number, --批次号
T2.category_code, --药品类型
'9' AS item_type, --药品类型区分
T2.part_percent, --拆零比
T2.unit_code, --采购单位
T1.quantity, --库存(小单位)
T2.min_unit_code, --库存单位
T1.price, --采购单价
T1.production_date, --生产日期
T1.expiration_date, --失效日期
(T1.expiration_date::date - CURRENT_DATE) AS remaining_days, --剩余天数
T1.trace_no, --追溯码
T2.status_enum, --药品状态(药品停用)
T1.location_id,
T5."name" AS location_name, --仓库
T1.location_store_id,
T4."name" AS location_store_name, --货位
T5.form_enum, --仓库类型
T1.supplier_id, --供应商
T8.name AS supply_name, --供应商名称
T1.inventory_status_enum, --停供状态
'0' AS dose_form_code, --剂型
T2.approval_number, --批准文号/国药准字
T10.amount AS retail_price, --零售价
T1.tenant_id, --修复:添加逗号
COALESCE(in_counts.in_count, 0) AS in_count,
COALESCE(out_counts.out_count, 0) AS out_count,
T1.item_table,
T1.item_id
FROM wor_inventory_item T1
INNER JOIN adm_device_definition T2
ON T1.item_id = T2.id
AND T2.delete_flag = '0'
LEFT JOIN adm_location T4
ON T1.location_store_id = T4.id
AND T4.delete_flag = '0'
LEFT JOIN adm_location T5
ON T1.location_id = T5.id
AND T5.delete_flag = '0'
LEFT JOIN adm_supplier T8
ON T1.supplier_id = T8.id
AND T8.delete_flag = '0'
LEFT JOIN adm_charge_item_definition T9
ON T9.instance_table = 'adm_device_definition'
AND T9.instance_id = T2.id
AND T9.delete_flag = '0'
LEFT JOIN LATERAL (
SELECT amount
FROM adm_charge_item_def_detail
WHERE definition_id = T9.id
AND condition_value = T1.lot_number
AND condition_code = '1'--1:批号进价
AND delete_flag = '0'
ORDER BY create_time DESC
LIMIT 1
) T10 ON TRUE
LEFT JOIN (
SELECT ls.item_table,
ls.item_id,
ls.location_id,
ls.lot_number,
SUM(CASE WHEN T10.status_enum = '1' THEN 1 ELSE 0 END) AS in_count
FROM latest_records ls
LEFT JOIN adm_trace_no_manage T10
ON T10.item_table = ls.item_table
AND T10.item_id = ls.item_id
AND T10.location_id = ls.location_id
AND T10.lot_number = ls.lot_number
AND T10.trace_no = ls.trace_no
AND T10.create_time = ls.latest_time
GROUP BY ls.item_table, ls.item_id, ls.location_id, ls.lot_number
) in_counts
ON T1.item_table = in_counts.item_table
AND T1.item_id = in_counts.item_id
AND T1.location_id = in_counts.location_id
AND T1.lot_number = in_counts.lot_number
LEFT JOIN (
SELECT ls.item_table,
ls.item_id,
ls.location_id,
ls.lot_number,
SUM(CASE WHEN T10.status_enum = '2' THEN 1 ELSE 0 END) AS out_count
FROM latest_records ls
LEFT JOIN adm_trace_no_manage T10
ON T10.item_table = ls.item_table
AND T10.item_id = ls.item_id
AND T10.location_id = ls.location_id
AND T10.lot_number = ls.lot_number
AND T10.trace_no = ls.trace_no
AND T10.create_time = ls.latest_time
GROUP BY ls.item_table, ls.item_id, ls.location_id, ls.lot_number
) out_counts
ON T1.item_table = out_counts.item_table
AND T1.item_id = out_counts.item_id
AND T1.location_id = out_counts.location_id
AND T1.lot_number = out_counts.lot_number
WHERE T1.delete_flag = '0'
) AS T7
${ew.customSqlSegment}
</select>
<select id="selectProductDetailsPageTotal"
resultType="com.openhis.web.inventorymanage.dto.ProductDetailsTotalDto">
SELECT
ROUND( SUM ( sale_price ), 2 ) AS total_sale_price,--总零售价
ROUND( SUM ( purchase_price ), 2 ) AS total_purchase_price --总进价
FROM
(
<if test="itemType == 99 or itemType == 9">
SELECT
ROUND(SUM (ROUND( T4.amount, 2 ) * ( ROUND( T1.quantity, 2 ) / ROUND( T2.part_percent, 2 ) ) ),2 ) AS sale_price,
ROUND(SUM (ROUND( T1.price, 2 ) * ( ROUND( T1.quantity, 2 ) / ROUND( T2.part_percent, 2 ) ) ),2 ) AS purchase_price
FROM
wor_inventory_item T1
INNER JOIN adm_device_definition T2 ON T1.item_id = T2.ID
AND T2.delete_flag = '0'
LEFT JOIN adm_charge_item_definition T3 ON T3.instance_table = 'adm_device_definition'
AND T3.instance_id = T1.item_id
AND T3.delete_flag = '0'
LEFT JOIN LATERAL ( SELECT amount FROM adm_charge_item_def_detail WHERE definition_id = T3.ID AND condition_value = T1.lot_number AND condition_code = '1' AND delete_flag = '0' ORDER BY create_time DESC LIMIT 1 ) T4 ON TRUE
LEFT JOIN adm_supplier T5 ON T1.supplier_id = T5.ID
AND T5.delete_flag = '0'
<if test="sqlWhere != '' and sqlWhere != null">
<where>
${sqlWhere}
</where>
</if>
</if>
<if test="itemType == 99 ">
UNION ALL
</if>
<if test="itemType == 99 or itemType == 0">
SELECT
ROUND(SUM (ROUND( T4.amount, 2 ) * ( ROUND( T1.quantity, 2 ) / ROUND( T2.part_percent, 2 ) ) ),2 ) AS sale_price,
ROUND(SUM (ROUND( T1.price, 2 ) * ( ROUND( T1.quantity, 2 ) / ROUND( T2.part_percent, 2 ) ) ),2 ) AS purchase_price
FROM
wor_inventory_item T1
INNER JOIN med_medication_definition T2 ON T1.item_id = T2.ID
AND T2.delete_flag = '0'
LEFT JOIN adm_charge_item_definition T3 ON T3.instance_table = 'med_medication_definition'
AND T3.instance_id = T1.item_id
AND T3.delete_flag = '0'
LEFT JOIN LATERAL ( SELECT amount FROM adm_charge_item_def_detail WHERE definition_id = T3.ID AND condition_value = T1.lot_number AND condition_code = '1' AND delete_flag = '0' ORDER BY create_time DESC LIMIT 1 ) T4 ON TRUE
LEFT JOIN adm_supplier T5 ON T1.supplier_id = T5.ID
AND T5.delete_flag = '0'
<if test="sqlWhere != '' and sqlWhere != null">
<where>
${sqlWhere}
</where>
</if>
</if>
)
</select>
<select id="selectExpirationWarning"
resultType="com.openhis.web.inventorymanage.dto.ProductDetailsPageDto">
select T6.category_code, --药品类型
T6.item_type, --药品类型区分
T6.bus_no, --药品编码
T6.medicine_name, --药品名称
T6.py_str, --药品拼音
T6.total_volume, --规格
T6.manufacturer_text, --厂家
T6.lot_number, --批次号
T6.production_date, --生产日期
T6.expiration_date, --失效日期
T6.remaining_days, --剩余天数
T6.remaining_month, --剩余月数
T6.quantity, --库存(小单位)
T6.specification_quantity,--规格库存(小单位)
T6.item_min_quantity, --最小库存警戒数量
T6.item_max_quantity, --最大库存警戒数量
T6.min_unit_code, --库存单位
T6.status_enum, --药品状态(药品停用)
T6.inventory_status_enum, --停供状态
T6.tenant_id
from (select T2.category_code, --药品类型
'0' as item_type, --药品类型区分
T2.bus_no, --药品编码
T2."name" as medicine_name, --药品名称
T2.py_str, --药品拼音
T3.total_volume, --规格
T2.manufacturer_text, --厂家
T1.lot_number, --批次号
T1.production_date, --生产日期
T1.expiration_date, --失效日期
(T1.expiration_date::date - CURRENT_DATE) as remaining_days, --剩余天数
((EXTRACT(YEAR FROM T1.expiration_date) - EXTRACT(YEAR FROM CURRENT_DATE)) * 12
+ (EXTRACT(MONTH FROM T1.expiration_date) -
EXTRACT(MONTH FROM CURRENT_DATE))) as remaining_month, --剩余月数
T1.quantity, --库存(小单位)
COALESCE(CAST(T8.specification_quantity AS DECIMAL(18, 6)), 0.00) AS specification_quantity,--规格库存(小单位)
T2.item_min_quantity * T2.part_percent AS item_min_quantity, --最小库存警戒数量
T2.item_max_quantity * T2.part_percent AS item_max_quantity, --最大库存警戒数量
T2.min_unit_code, --库存单位
T3.status_enum, --药品状态(药品停用)
T1.inventory_status_enum, --停供状态
T1.tenant_id
from wor_inventory_item T1
inner join med_medication_definition T2
on T1.item_id = T2.id
and T2.delete_flag = '0'
left join med_medication T3
on T2.id = T3.medication_def_id
and T3.delete_flag = '0'
left join adm_location T4
on T1.location_store_id = T4.id
and T4.delete_flag = '0'
left join adm_location T5
on T1.location_id = T5.id
and T5.delete_flag = '0'
LEFT JOIN (SELECT i1.item_table,
i1.item_id,
COALESCE(CAST(SUM(i1.quantity) AS DECIMAL(18, 6)), 0.00) AS specification_quantity
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) T8
ON T8.item_table = 'med_medication_definition'
AND T8.item_id = T2.ID
where T1.delete_flag = '0'
<if test="flg != null">
and (T8.specification_quantity <![CDATA[ <= ]]> T2.item_min_quantity * T2.part_percent
or T8.specification_quantity <![CDATA[ >= ]]> T2.item_max_quantity * T2.part_percent)
</if>
order by T2.bus_no ASC, --药品编码
T2."name" ASC --药品名称
) as T6
${ew.customSqlSegment}
union all
select T7.category_code, --药品类型
T7.item_type, --药品类型区分
T7.bus_no, --药品编码
T7.medicine_name, --药品名称
T7.py_str, --药品拼音
T7.total_volume, --规格
T7.manufacturer_text, --厂家
T7.lot_number, --批次号
T7.production_date, --生产日期
T7.expiration_date, --失效日期
T7.remaining_days, --剩余天数
T7.remaining_month, --剩余月数
T7.quantity, --库存(小单位)
T7.specification_quantity,--规格库存(小单位)
T7.item_min_quantity, --最小库存警戒数量
T7.item_max_quantity, --最大库存警戒数量
T7.min_unit_code, --库存单位
T7.status_enum, --药品状态(药品停用)
T7.inventory_status_enum, --停供状态
T7.tenant_id
from (select T2.category_code, --药品类型
'9' as item_type, --药品类型区分
T2.bus_no, --药品编码
T2."name" as medicine_name, --药品名称
T2.py_str, --药品拼音
T2.size as total_volume, --规格
T2.manufacturer_text, --厂家
T1.lot_number, --批次号
T1.production_date, --生产日期
T1.expiration_date, --失效日期
(T1.expiration_date::date - CURRENT_DATE) as remaining_days, --剩余天数
((EXTRACT(YEAR FROM T1.expiration_date) - EXTRACT(YEAR FROM CURRENT_DATE)) * 12
+ (EXTRACT(MONTH FROM T1.expiration_date) -
EXTRACT(MONTH FROM CURRENT_DATE))) as remaining_month, --剩余月数
T1.quantity, --库存(小单位)
COALESCE(CAST(T8.specification_quantity AS DECIMAL(18, 6)), 0.00) AS specification_quantity,--规格库存(小单位)
T2.item_min_quantity * T2.part_percent AS item_min_quantity, --最小库存警戒数量
T2.item_max_quantity * T2.part_percent AS item_max_quantity, --最大库存警戒数量
T2.min_unit_code, --库存单位
T2.status_enum, --药品状态(药品停用)
T1.inventory_status_enum, --停供状态
T1.tenant_id
from wor_inventory_item T1
inner join adm_device_definition T2
on T1.item_id = T2.id
and T2.delete_flag = '0'
left join adm_location T4
on T1.location_store_id = T4.id
and T4.delete_flag = '0'
left join adm_location T5
on T1.location_id = T5.id
and T5.delete_flag = '0'
LEFT JOIN (SELECT i1.item_table,
i1.item_id,
COALESCE(CAST(SUM(i1.quantity) AS DECIMAL(18, 6)), 0.00) AS specification_quantity
FROM wor_inventory_item i1
LEFT JOIN adm_device_definition i2 ON i1.item_id = i2.ID
AND i2.delete_flag = '0'
WHERE i1.item_table = 'adm_device_definition'
AND i1.delete_flag = '0'
GROUP BY i1.item_table,
i1.item_id) T8
ON T8.item_table = 'adm_device_definition'
AND T8.item_id = T2.ID
where T1.delete_flag = '0'
<if test="flg != null">
and (T8.specification_quantity <![CDATA[ <= ]]> T2.item_min_quantity * T2.part_percent
or T8.specification_quantity <![CDATA[ >= ]]> T2.item_max_quantity * T2.part_percent)
</if>
order by T2.bus_no ASC, --药品编码
T2."name" ASC --药品名称
) as T7
${ew.customSqlSegment}
</select>
</mapper>

View File

@@ -15,6 +15,7 @@
T2.practitioner_id,
T2.item_table,
T2.purpose_type_enum,
T2.category_enum,
CASE
WHEN EXISTS (
SELECT 1
@@ -36,7 +37,8 @@
T1.practitioner_id,
T1.item_table,
T1.purpose_type_enum,
T1.tenant_id
T1.tenant_id,
T1.category_enum
FROM wor_supply_request AS T1
WHERE type_enum = #{purchaseInventory}
AND T1.delete_flag = '0'
@@ -50,10 +52,11 @@
T1.practitioner_id,
T1.item_table,
T1.purpose_type_enum,
T1.tenant_id
T1.tenant_id,
T1.category_enum
ORDER BY T1.bus_no desc
) AS T2
${ew.customSqlSegment}
) AS T2
${ew.customSqlSegment}
</select>
<select id="selectDetail" resultType="com.openhis.web.inventorymanage.dto.ReceiptDetailDto">
SELECT T1.id,
@@ -74,7 +77,11 @@
T2."name" AS item_name,
T2.id AS item_id,
T2.part_percent,
<<<<<<< HEAD
T2.manufacturer_text AS manufacturer_text,
=======
T2.manufacturer_text,
>>>>>>> upstream/develop
T3.total_volume,
T5."name" AS practitioner_name,
T6."name" AS purpose_location_name,
@@ -84,11 +91,13 @@
T10."name" AS supplier_name,
T1.occurrence_time,
(SELECT SUM(T9.quantity)
FROM wor_inventory_item T9
WHERE T9.item_id = T1.item_id
AND T9.location_id = T1.purpose_location_id
) AS total_quantity
FROM wor_inventory_item T9
WHERE T9.item_id = T1.item_id
AND T9.location_id = T1.purpose_location_id
) AS total_quantity,
T10."name" AS supplier_name
FROM wor_supply_request T1
<<<<<<< HEAD
INNER JOIN med_medication_definition T2
ON T1.item_id = T2.id
LEFT JOIN med_medication T3
@@ -104,8 +113,32 @@
AND T1.purpose_location_id = T9.location_id
LEFT JOIN adm_supplier T10
ON T1.supplier_id = T10.id
=======
INNER JOIN med_medication_definition T2
ON T1.item_id = T2.id
AND T2.delete_flag = '0'
LEFT JOIN med_medication T3
ON T3.medication_def_id = T2.id
AND T3.delete_flag = '0'
LEFT JOIN adm_practitioner T5
ON T1.practitioner_id = T5.id
AND T5.delete_flag = '0'
LEFT JOIN adm_location T6
ON T1.purpose_location_id = T6.id
AND T6.delete_flag = '0'
LEFT JOIN adm_location T7
ON T1.purpose_location_store_id = T7.id
AND T7.delete_flag = '0'
LEFT JOIN wor_inventory_item T9
ON T1.item_id = T9.item_id
AND T1.purpose_location_id = T9.location_id
AND T9.delete_flag = '0'
LEFT JOIN adm_supplier T10
ON T1.supplier_id = T10.id
AND T10.delete_flag = '0'
>>>>>>> upstream/develop
WHERE T1.bus_no = #{busNo}
AND T1.delete_flag = '0'
AND T1.delete_flag = '0'
UNION
SELECT T1.id,
T1.bus_no,
@@ -125,7 +158,11 @@
T8."name" AS item_name,
T8.id AS item_id,
T8.part_percent,
<<<<<<< HEAD
T8.manufacturer_text AS manufacturer_text,
=======
T8.manufacturer_text,
>>>>>>> upstream/develop
T8."size" AS total_volume,
T5."name" AS practitioner_name,
T6."name" AS purpose_location_name,
@@ -138,6 +175,7 @@
FROM wor_inventory_item T9
WHERE T9.item_id = T1.item_id
AND T9.location_id = T1.purpose_location_id
<<<<<<< HEAD
) AS total_quantity
FROM wor_supply_request T1
INNER JOIN adm_device_definition T8
@@ -245,28 +283,141 @@
WHERE T9.item_id = T1.item_id
AND T9.location_id = T1.purpose_location_id
) AS total_quantity
=======
) AS total_quantity,
T10."name" AS supplier_name
>>>>>>> upstream/develop
FROM wor_supply_request T1
INNER JOIN adm_device_definition T8
ON T1.item_id = T8.id
AND T8.delete_flag = '0'
LEFT JOIN adm_practitioner T5
ON T1.practitioner_id = T5.id
AND T5.delete_flag = '0'
LEFT JOIN adm_location T6
ON T1.purpose_location_id = T6.id
AND T6.delete_flag = '0'
LEFT JOIN adm_location T7
ON T1.purpose_location_store_id = T7.id
AND T7.delete_flag = '0'
LEFT JOIN wor_inventory_item T9
ON T1.item_id = T9.item_id
AND T1.purpose_location_id = T9.location_id
<<<<<<< HEAD
LEFT JOIN adm_supplier T10
ON T1.supplier_id = T10.id
=======
AND T9.delete_flag = '0'
LEFT JOIN adm_supplier T10
ON T1.supplier_id = T10.id
AND T10.delete_flag = '0'
WHERE T1.bus_no = #{busNo}
AND T1.delete_flag = '0'
</select>
<select id="getMonthlySettlementDetail" resultType="com.openhis.web.inventorymanage.dto.ReceiptDetailDto">
SELECT T1.id,
T1.bus_no,
T1.item_quantity,
T1.item_table,
T1.unit_code,
T1.remake,
T1.purpose_type_enum,
T1.occurrence_time,
T1.lot_number,
T1.trace_no,
T1.invoice_no,
T1.start_time,
T1.end_time,
T1.price,
T1.total_price,
T2."name" AS item_name,
T2.id AS item_id,
T2.part_percent,
T2.manufacturer_text AS supplier_name,
T3.total_volume,
T5."name" AS practitioner_name,
T6."name" AS purpose_location_name,
T6."id" AS purpose_location_id,
T7."name" AS purpose_location_store_name,
(SELECT SUM(T9.quantity)
FROM wor_inventory_item T9
WHERE T9.item_id = T1.item_id
AND T9.location_id = T1.purpose_location_id
) AS total_quantity
FROM wor_supply_request T1
INNER JOIN med_medication_definition T2
ON T1.item_id = T2.id
LEFT JOIN med_medication T3
ON T3.medication_def_id = T2.id
LEFT JOIN adm_practitioner T5
ON T1.practitioner_id = T5.id
LEFT JOIN adm_location T6
ON T1.purpose_location_id = T6.id
LEFT JOIN adm_location T7
ON T1.purpose_location_store_id = T7.id
LEFT JOIN wor_inventory_item T9
ON T1.item_id = T9.item_id
AND T1.purpose_location_id = T9.location_id
>>>>>>> upstream/develop
WHERE T1.purpose_location_id = #{locationId}
AND T1.status_enum = #{statusEnum}
AND T1.type_enum IN
<foreach collection="typeEnum" item="item" separator="," open="(" close=")">
#{item}
</foreach>
AND TO_CHAR(T1.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime}
AND T1.item_table = #{deviceTableName}
AND T1.delete_flag = '0'
AND T1.status_enum = #{statusEnum}
AND T1.type_enum IN
<foreach collection="typeEnum" item="item" separator="," open="(" close=")">
#{item}
</foreach>
AND TO_CHAR(T1.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime}
AND T1.item_table = #{medicationTableName}
AND T1.delete_flag = '0'
UNION
SELECT T1.id,
T1.bus_no,
T1.item_quantity,
T1.item_table,
T1.unit_code,
T1.remake,
T1.purpose_type_enum,
T1.occurrence_time,
T1.lot_number,
T1.trace_no,
T1.invoice_no,
T1.start_time,
T1.end_time,
T1.price,
T1.total_price,
T8."name" AS item_name,
T8.id AS item_id,
T8.part_percent,
T8.manufacturer_text AS supplier_name,
T8."size" AS total_volume,
T5."name" AS practitioner_name,
T6."name" AS purpose_location_name,
T6."id" AS purpose_location_id,
T7."name" AS purpose_location_store_name,
(SELECT SUM(T9.quantity)
FROM wor_inventory_item T9
WHERE T9.item_id = T1.item_id
AND T9.location_id = T1.purpose_location_id
) AS total_quantity
FROM wor_supply_request T1
INNER JOIN adm_device_definition T8
ON T1.item_id = T8.id
LEFT JOIN adm_practitioner T5
ON T1.practitioner_id = T5.id
LEFT JOIN adm_location T6
ON T1.purpose_location_id = T6.id
LEFT JOIN adm_location T7
ON T1.purpose_location_store_id = T7.id
LEFT JOIN wor_inventory_item T9
ON T1.item_id = T9.item_id
AND T1.purpose_location_id = T9.location_id
WHERE T1.purpose_location_id = #{locationId}
AND T1.status_enum = #{statusEnum}
AND T1.type_enum IN
<foreach collection="typeEnum" item="item" separator="," open="(" close=")">
#{item}
</foreach>
AND TO_CHAR(T1.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime}
AND T1.item_table = #{deviceTableName}
AND T1.delete_flag = '0'
</select>
</mapper>

View File

@@ -146,7 +146,10 @@
T2.applicant_id,
T2.apply_time,
T2.practitioner_id,
T2.tenant_id
T2.tenant_id,
T2.supplier_id,
T2.purpose_location_id,
T2.total_amount
FROM (SELECT T1.bus_no AS supply_bus_no,
T1.status_enum,
T1.type_enum,
@@ -155,19 +158,34 @@
T1.applicant_id,
T1.apply_time,
T1.practitioner_id,
T1.tenant_id
T1.tenant_id,
T1.supplier_id,
T1.purpose_location_id,
SUM ( T1.total_price ) as total_amount
FROM wor_supply_request AS T1
LEFT JOIN adm_supplier T3
ON T3.id = T1.supplier_id
AND T3.delete_flag = '0'
LEFT JOIN adm_location T4
ON T4.id = T1.purpose_location_id
AND T4.delete_flag = '0'
WHERE T1.status_enum IN (#{approval},#{agree},#{reject})
AND T1.delete_flag != '1'
GROUP BY T1.bus_no,
T1.status_enum,
T1.type_enum,
T1.approver_id,
T1.approval_time,
T1.applicant_id,
T1.apply_time,
T1.practitioner_id,
T1.tenant_id
AND T1.type_enum IN (#{productBatchTransfer},#{productTransfer},#{productReturn},#{productStocktaking},
#{productBatchStocktaking},#{purchaseInventory},#{lossReportForm},#{issueInventory},#{returnIssue})
AND T1.delete_flag = '0'
GROUP BY
T1.bus_no,
T1.status_enum,
T1.type_enum,
T1.approver_id,
T1.approval_time,
T1.applicant_id,
T1.apply_time,
T1.practitioner_id,
T1.tenant_id,
T1.summary_id,
T1.supplier_id,
T1.purpose_location_id
ORDER BY T1.apply_time desc
) AS T2
${ew.customSqlSegment}

View File

@@ -0,0 +1,95 @@
<?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.adjustprice.mapper.AdjustPriceMapper">
<select id="selectInventoryReceiptPage"
resultType="com.openhis.web.inventorymanage.dto.ReceiptPageDto">
SELECT T2.supply_bus_no,
T2.status_enum,
T2.type_enum,
T2.supplier_id,
T2.approver_id,
T2.approval_time,
T2.applicant_id,
T2.create_time,
T2.practitioner_id,
T2.item_table,
T2.purpose_type_enum,
T2.category_enum,
CASE
WHEN EXISTS(
SELECT 1
FROM wor_supply_request AS T3
WHERE T3.original_bus_no = T2.supply_bus_no
AND T3.delete_flag = '0'
) THEN 1
ELSE 0
END AS return_status, --退库状态
T2.tenant_id
FROM (SELECT T1.bus_no AS supply_bus_no,
T1.status_enum,
T1.type_enum,
T1.supplier_id,
T1.approver_id,
T1.approval_time,
T1.applicant_id,
MIN(T1.create_time) AS create_time,
T1.practitioner_id,
T1.item_table,
T1.purpose_type_enum,
T1.tenant_id,
T1.category_enum
FROM wor_supply_request AS T1
WHERE type_enum = #{medTypeEnum}
OR type_enum = #{deviceTypeEnum}
OR type_enum = #{activityTypeEnum}
OR type_enum = #{healthTypeEnum}
AND T1.delete_flag = '0'
GROUP BY T1.bus_no,
T1.status_enum,
T1.type_enum,
T1.supplier_id,
T1.approver_id,
T1.approval_time,
T1.applicant_id,
T1.practitioner_id,
T1.item_table,
T1.purpose_type_enum,
T1.tenant_id,
T1.category_enum
ORDER BY T1.bus_no desc) AS T2
${ew.customSqlSegment}
</select>
<select id="searchChangePriceDataToPage" resultType="com.openhis.web.adjustprice.dto.ChangePricePageDto">
select t2.bus_no,
t2.status_enum,
t2.approver_id,
t2.approval_time,
t2.applicant_id,
t2.applicant_time,
t2.create_time,
t2.item_category_enum,
t2.tenant_id
from (select t1.bus_no,
t1.status_enum,
t1.approver_id,
min(t1.approval_time) as approval_time,
t1.applicant_id,
min(t1.applicant_time) as applicant_time,
min(t1.create_time) as create_time,
t1.item_category_enum,
t1.tenant_id
FROM adm_change_price_record t1
where t1.delete_flag = '0'
and t1.applicant_id = #{applicantId}
and (item_category_enum = #{medCategory}
OR item_category_enum = #{deviceCategory}
OR item_category_enum = #{activityCategory}
OR item_category_enum = #{healthCategory})
GROUP BY t1.bus_no, t1.status_enum, t1.approver_id, t1.applicant_id, t1.item_category_enum, t1.tenant_id
ORDER BY t1.bus_no desc) as t2
${ew.customSqlSegment}
</select>
</mapper>

View File

@@ -1,9 +0,0 @@
<?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.adjustprice.mapper.SupplyMapper">
<select id="searchAllSupplyList" resultType="com.openhis.web.adjustprice.dto.SupplyListDto">
SELECT id as supplyId,name as supplyName
FROM adm_supplier
</select>
</mapper>

View File

@@ -77,6 +77,11 @@
T1.unit_price,
T1.total_price,
mmr.prescription_no,
mmr.prescription_no,
mmr.method_code,
mmr.rate_code,
mmr.dose,
mmr.dose_unit_code,
T1.bus_no,
T1.entered_date,
T1.account_id,
@@ -84,6 +89,7 @@
T1.service_id,
T5.enterer_id,
T5.bill_date,
T5.id AS payment_id,
T6.contract_no,
T7.med_type_code,
T8.contract_name,

View File

@@ -43,7 +43,7 @@
</resultMap>
<select id="selectEncounterPatientPayment"
resultType="com.openhis.web.chargemanage.dto.EncounterPatientPaymentDto">
SELECT T1.id,
SELECT T1.id AS payment_id,
T1.status_enum,
T1.relation_id,
T1.payment_no,

View File

@@ -52,6 +52,7 @@
T9.contract_name,
T9.patient_id,
T9.patient_name,
T9.phone,
T9.gender_enum,
T9.id_card,
T9.status_enum,
@@ -81,6 +82,7 @@
T7.contract_name AS contract_name,
T8.id AS patient_id,
T8.NAME AS patient_name,
T8.phone AS phone,
T8.gender_enum AS gender_enum,
T8.id_card AS id_card,
T1.status_enum AS status_enum,
@@ -91,6 +93,7 @@
T13.charge_item_ids,
T13.id AS payment_id,
ai.picture_url AS picture_url,
<<<<<<< HEAD
T8.birth_date AS birth_date,
-- 退
T14.bill_date AS return_date,
@@ -100,21 +103,33 @@
ABS(T14.display_amount) AS refund_amount,
T6.contract_no AS contract_no,
T16.refund_method AS refund_method
=======
T8.birth_date AS birth_date
>>>>>>> upstream/develop
FROM adm_encounter AS T1
LEFT JOIN adm_organization AS T2 ON T1.organization_id = T2.ID AND T2.delete_flag = '0'
LEFT JOIN adm_healthcare_service AS T3 ON T1.service_type_id = T3.ID AND T3.delete_flag = '0'
LEFT JOIN (
SELECT *
FROM (
SELECT *,
ROW_NUMBER() OVER (PARTITION BY encounter_id ORDER BY create_time ASC) AS rn
FROM adm_encounter_participant
WHERE delete_flag = '0'
AND tenant_id = 1
AND type_code = #{participantType}
) t
WHERE rn = 1
) AS T4 ON T1.ID = T4.encounter_id
SELECT *
FROM (
SELECT *,
ROW_NUMBER() OVER (PARTITION BY encounter_id ORDER BY create_time ASC) AS rn
FROM adm_encounter_participant
WHERE delete_flag = '0'
AND (
(type_code = #{participantType1} AND EXISTS(SELECT 1
FROM adm_encounter AS T1
WHERE T1.status_enum = #{statusEnum}
AND T1.ID = encounter_id))
OR
(type_code = #{participantType2} AND NOT EXISTS(SELECT 1
FROM adm_encounter AS T1
WHERE T1.status_enum = #{statusEnum}
AND T1.ID = encounter_id))
)
) t
WHERE rn = 1
) AS T4 ON T1.ID = T4.encounter_id
LEFT JOIN adm_practitioner AS T5 ON T5.ID = T4.practitioner_id AND T5.delete_flag = '0'
LEFT JOIN adm_account AS T6
ON T1.ID = T6.encounter_id AND T6.delete_flag = '0' AND T6.encounter_flag = '1'
@@ -158,8 +173,6 @@
ON ai.reconciliation_id = T13.id AND ai.delete_flag = '0'
WHERE T1.delete_flag = '0'
AND T1.class_enum = #{classEnum}
-- AND T1.create_time
-- > CURRENT_DATE
AND T10.context_enum = #{register}
) AS T9
${ew.customSqlSegment}

View File

@@ -67,7 +67,7 @@
ii.product_name,
ii.unit_code,
ii.min_unit_code,
ii.manufacturer,
ii.manufacturer_text,
ii.volume,
ii.supplier,
ii.item_table_name,
@@ -87,7 +87,7 @@
T1.merchandise_name AS product_name,
T1.unit_code AS unit_code,
T1.min_unit_code AS min_unit_code,
T1.manufacturer_text AS manufacturer,
T1.manufacturer_text ,
T2.total_volume AS volume,
T3."name" AS supplier,
<choose>
@@ -147,7 +147,7 @@
'' AS product_name,
T1.unit_code AS unit_code,
T1.min_unit_code AS min_unit_code,
T1.manufacturer_text AS manufacturer,
T1.manufacturer_text ,
T1."size" AS volume,
T2."name" AS supplier,
<choose>
@@ -228,7 +228,7 @@
FROM adm_device_definition AS T8
WHERE T1.item_id = T8.id
AND T8.delete_flag = '0')
ELSE null END AS manufacturer,--生产厂家
ELSE null END AS manufacturer_text,--生产厂家
T6.name AS supplier_name
FROM wor_inventory_item AS T1
LEFT JOIN adm_location AS T2
@@ -332,179 +332,194 @@
<select id="selectPrescriptionPrintInfo" resultMap="PrescriptionPrintInfoMap">
SELECT ae.yb_class_enum AS encounter_yb_class,
mmr.prescription_no ,
fc.contract_name ,
ap."name" AS patient_name,
ap.gender_enum ,
ap.birth_date ,
ae.bus_no AS encounter_no,
ao."name" AS department_name,
ccd."name" AS condition_name,
ap.phone ,
mmr.req_authored_time AS req_time,
ap2."name" AS doctor_name,
ap3."name" AS dispense_doctor_name,
ap4."name" AS charge_doctor_name,
ap5."name" AS preparer_doctor_name,
mmd2."name" AS item_name,
mm.total_volume ,
mmr.dose ,
mmr.method_code ,
aci.unit_price ,
aci.total_price ,
mmr.quantity,
mmr.rate_code ,
mmr.unit_code ,
mmr.dose_unit_code,
mmr.sort_number,
mmr.group_id
mmr.prescription_no ,
fc.contract_name ,
ap."name" AS patient_name,
ap.gender_enum ,
ap.birth_date ,
ae.bus_no AS encounter_no,
ao."name" AS department_name,
ccd."name" AS condition_name,
ap.phone ,
mmr.req_authored_time AS req_time,
ap2."name" AS doctor_name,
ap3."name" AS dispense_doctor_name,
ap4."name" AS charge_doctor_name,
ap5."name" AS preparer_doctor_name,
mmd2."name" AS item_name,
mm.total_volume ,
mmr.dose ,
mmr.method_code ,
aci.unit_price ,
aci.total_price ,
mmr.quantity,
mmr.rate_code ,
mmr.unit_code ,
mmr.dose_unit_code,
mmr.sort_number,
mmr.group_id
FROM med_medication_request mmr
LEFT JOIN med_medication_dispense mmd
ON mmd.med_req_id = mmr.id
AND mmd.delete_flag = '0'
LEFT JOIN med_medication_definition mmd2
ON mmr.medication_id = mmd2.id
AND mmd2.delete_flag = '0'
LEFT JOIN med_medication mm
ON mmd2.id = mm.medication_def_id
AND mm.delete_flag = '0'
LEFT JOIN adm_charge_item aci
ON aci.service_id = mmr.id
AND aci.delete_flag = '0'
LEFT JOIN cli_condition AS cc
ON mmr.condition_id = cc.id
AND cc.delete_flag = '0'
LEFT JOIN cli_condition_definition AS ccd
ON cc.definition_id = ccd.id
AND ccd.delete_flag = '0'
LEFT JOIN adm_encounter ae
ON mmr.encounter_id = ae.id
AND ae.delete_flag = '0'
LEFT JOIN adm_patient ap
ON ae.patient_id = ap.id
AND ap.delete_flag = '0'
LEFT JOIN adm_organization ao
ON ao.id = ae.organization_id
AND ao.delete_flag = '0'
LEFT JOIN adm_account aa
ON ae.id = aa.encounter_id
AND aa.encounter_flag = 1
AND aa.delete_flag = '0'
LEFT JOIN fin_contract fc
ON aa.contract_no = fc.bus_no
AND fc.delete_flag = '0'
LEFT JOIN adm_practitioner ap2
ON ap2.id = mmr.practitioner_id
AND ap2.delete_flag = '0'
LEFT JOIN adm_practitioner ap3
ON ap3.id = mmd.practitioner_id
AND ap3.delete_flag = '0'
LEFT JOIN adm_practitioner ap4
ON ap4.id = aci.performer_id
AND ap4.delete_flag = '0'
LEFT JOIN adm_practitioner ap5
ON ap5.id = mmd.preparer_id
AND ap5.delete_flag = '0'
LEFT JOIN med_medication_dispense mmd
ON mmd.med_req_id = mmr.id
AND mmd.delete_flag = '0'
LEFT JOIN med_medication_definition mmd2
ON mmr.medication_id = mmd2.id
AND mmd2.delete_flag = '0'
LEFT JOIN med_medication mm
ON mmd2.id = mm.medication_def_id
AND mm.delete_flag = '0'
LEFT JOIN adm_charge_item aci
ON aci.service_id = mmr.id
AND aci.delete_flag = '0'
LEFT JOIN cli_condition AS cc
ON mmr.condition_id = cc.id
AND cc.delete_flag = '0'
LEFT JOIN cli_condition_definition AS ccd
ON cc.definition_id = ccd.id
AND ccd.delete_flag = '0'
LEFT JOIN adm_encounter ae
ON mmr.encounter_id = ae.id
AND ae.delete_flag = '0'
LEFT JOIN adm_patient ap
ON ae.patient_id = ap.id
AND ap.delete_flag = '0'
LEFT JOIN adm_organization ao
ON ao.id = ae.organization_id
AND ao.delete_flag = '0'
LEFT JOIN adm_account aa
ON ae.id = aa.encounter_id
AND aa.encounter_flag = 1
AND aa.delete_flag = '0'
LEFT JOIN fin_contract fc
ON aa.contract_no = fc.bus_no
AND fc.delete_flag = '0'
LEFT JOIN adm_practitioner ap2
ON ap2.id = mmr.practitioner_id
AND ap2.delete_flag = '0'
LEFT JOIN adm_practitioner ap3
ON ap3.id = mmd.practitioner_id
AND ap3.delete_flag = '0'
LEFT JOIN adm_practitioner ap4
ON ap4.id = aci.performer_id
AND ap4.delete_flag = '0'
LEFT JOIN adm_practitioner ap5
ON ap5.id = mmd.preparer_id
AND ap5.delete_flag = '0'
WHERE mmr.delete_flag = '0'
AND mmr.id IN
<foreach collection="requestIds" item="requestId" separator="," open="(" close=")">
#{requestId}
</foreach>
AND mmr.id IN
<foreach collection="requestIds" item="requestId" separator="," open="(" close=")">
#{requestId}
</foreach>
</select>
<select id="selectTreatmentPrintInfo" resultMap="TreatmentPrintInfoMap">
SELECT ae.yb_class_enum AS encounter_yb_class,
fc.contract_name ,
ap."name" AS patient_name,
ap.gender_enum ,
ap.birth_date ,
ae.bus_no AS encounter_no,
ao."name" AS department_name,
ap.phone ,
ae.reception_time AS req_time,
ap2."name" AS doctor_name,
aci.unit_price ,
aci.total_price,
wdr.quantity ,
wdr.unit_code ,
add2."name" AS item_name
fc.contract_name ,
ap."name" AS patient_name,
ap.gender_enum ,
ap.birth_date ,
ae.bus_no AS encounter_no,
ao."name" AS department_name,
ap.phone ,
ae.reception_time AS req_time,
ap2."name" AS doctor_name,
aci.unit_price ,
aci.total_price,
wdr.quantity ,
wdr.unit_code ,
add2."name" AS item_name
FROM wor_device_request wdr
LEFT JOIN adm_device_definition add2
ON wdr.device_def_id = add2.id
AND add2.delete_flag = '0'
LEFT JOIN adm_charge_item aci
ON aci.service_id = wdr.id
AND aci.delete_flag = '0'
LEFT JOIN adm_encounter ae
ON wdr.encounter_id = ae.id
AND ae.delete_flag = '0'
LEFT JOIN adm_patient ap
ON ae.patient_id = ap.id
AND ap.delete_flag = '0'
LEFT JOIN adm_organization ao
ON ao.id = ae.organization_id
AND ao.delete_flag = '0'
LEFT JOIN adm_account aa
ON ae.id = aa.encounter_id
AND aa.encounter_flag = 1
AND aa.delete_flag = '0'
LEFT JOIN fin_contract fc
ON aa.contract_no = fc.bus_no
AND fc.delete_flag = '0'
LEFT JOIN adm_practitioner ap2
ON ap2.id = wdr.requester_id
AND ap2.delete_flag = '0'
LEFT JOIN adm_device_definition add2
ON wdr.device_def_id = add2.id
AND add2.delete_flag = '0'
LEFT JOIN adm_charge_item aci
ON aci.service_id = wdr.id
AND aci.delete_flag = '0'
LEFT JOIN adm_encounter ae
ON wdr.encounter_id = ae.id
AND ae.delete_flag = '0'
LEFT JOIN adm_patient ap
ON ae.patient_id = ap.id
AND ap.delete_flag = '0'
LEFT JOIN adm_organization ao
ON ao.id = ae.organization_id
AND ao.delete_flag = '0'
LEFT JOIN adm_account aa
ON ae.id = aa.encounter_id
AND aa.encounter_flag = 1
AND aa.delete_flag = '0'
LEFT JOIN fin_contract fc
ON aa.contract_no = fc.bus_no
AND fc.delete_flag = '0'
LEFT JOIN adm_practitioner ap2
ON ap2.id = wdr.requester_id
AND ap2.delete_flag = '0'
WHERE wdr.delete_flag = '0'
AND wdr.id IN
<foreach collection="requestIds" item="requestId" separator="," open="(" close=")">
#{requestId}
</foreach>
AND wdr.id IN
<foreach collection="requestIds" item="requestId" separator="," open="(" close=")">
#{requestId}
</foreach>
UNION
SELECT ae.yb_class_enum AS encounter_yb_class,
fc.contract_name ,
ap."name" AS patient_name,
ap.gender_enum ,
ap.birth_date ,
ae.bus_no AS encounter_no,
ao."name" AS department_name,
ap.phone ,
ae.reception_time AS req_time,
ap2."name" AS doctor_name,
aci.unit_price ,
aci.total_price,
wsr.quantity ,
wsr.unit_code ,
wad."name" AS item_name
fc.contract_name ,
ap."name" AS patient_name,
ap.gender_enum ,
ap.birth_date ,
ae.bus_no AS encounter_no,
ao."name" AS department_name,
ap.phone ,
ae.reception_time AS req_time,
ap2."name" AS doctor_name,
aci.unit_price ,
aci.total_price,
wsr.quantity ,
wsr.unit_code ,
wad."name" AS item_name
FROM wor_service_request wsr
LEFT JOIN wor_activity_definition wad
ON wsr.activity_id = wad.id
AND wad.delete_flag = '0'
LEFT JOIN adm_charge_item aci
ON aci.service_id = wsr.id
AND aci.delete_flag = '0'
LEFT JOIN adm_encounter ae
ON wsr.encounter_id = ae.id
AND ae.delete_flag = '0'
LEFT JOIN adm_patient ap
ON ae.patient_id = ap.id
AND ap.delete_flag = '0'
LEFT JOIN adm_organization ao
ON ao.id = ae.organization_id
AND ao.delete_flag = '0'
LEFT JOIN adm_account aa
ON ae.id = aa.encounter_id
AND aa.encounter_flag = 1
AND aa.delete_flag = '0'
LEFT JOIN fin_contract fc
ON aa.contract_no = fc.bus_no
AND fc.delete_flag = '0'
LEFT JOIN adm_practitioner ap2
ON ap2.id = wsr.requester_id
AND ap2.delete_flag = '0'
LEFT JOIN wor_activity_definition wad
ON wsr.activity_id = wad.id
AND wad.delete_flag = '0'
LEFT JOIN adm_charge_item aci
ON aci.service_id = wsr.id
AND aci.delete_flag = '0'
LEFT JOIN adm_encounter ae
ON wsr.encounter_id = ae.id
AND ae.delete_flag = '0'
LEFT JOIN adm_patient ap
ON ae.patient_id = ap.id
AND ap.delete_flag = '0'
LEFT JOIN adm_organization ao
ON ao.id = ae.organization_id
AND ao.delete_flag = '0'
LEFT JOIN adm_account aa
ON ae.id = aa.encounter_id
AND aa.encounter_flag = 1
AND aa.delete_flag = '0'
LEFT JOIN fin_contract fc
ON aa.contract_no = fc.bus_no
AND fc.delete_flag = '0'
LEFT JOIN adm_practitioner ap2
ON ap2.id = wsr.requester_id
AND ap2.delete_flag = '0'
WHERE wsr.delete_flag = '0'
AND wsr.id IN
<foreach collection="requestIds" item="requestId" separator="," open="(" close=")">
#{requestId}
</foreach>
AND wsr.id IN
<foreach collection="requestIds" item="requestId" separator="," open="(" close=")">
#{requestId}
</foreach>
</select>
<select id="getPractitionerSignature" resultType="string">
SELECT signature
FROM adm_practitioner
WHERE id = #{practitionerId}
</select>
<select id="getActivityDefinition" resultType="com.openhis.web.common.dto.ActivityDefinitionDto">
SELECT ID AS
activity_definition_id,
NAME AS activity_definition_name
FROM wor_activity_definition
WHERE delete_flag = '0'
AND status_enum = #{statusEnum}
</select>
</mapper>

View File

@@ -85,9 +85,12 @@
( SELECT T4.amount
FROM adm_charge_item_definition T5
LEFT JOIN adm_charge_item_def_detail T4 ON T4.definition_id = T5.id
WHERE T4.condition_code = '2'--2:采购价
WHERE T4.condition_code in ('1','2')--2:采购价
AND T5.instance_id = T1.id
AND T5.instance_table = 'adm_device_definition'
AND T4.delete_flag='0'
ORDER BY T4.create_time desc
LIMIT 1
) as purchase_price,--购入价
( SELECT T4.amount
FROM adm_charge_item_definition T5
@@ -101,6 +104,7 @@
<where>
T1.delete_flag = '0'
AND T2.instance_table = 'adm_device_definition'
</where>
ORDER BY T1.bus_no
) AS T3
@@ -151,9 +155,12 @@
( SELECT T4.amount
FROM adm_charge_item_definition T5
LEFT JOIN adm_charge_item_def_detail T4 ON T4.definition_id = T5.id
WHERE T4.condition_code = '2'--2:采购价
WHERE T4.condition_code in ('1','2')--2:采购价
AND T5.instance_id = T1.id
AND T5.instance_table = 'adm_device_definition'
AND T4.delete_flag='0'
ORDER BY T4.create_time desc
LIMIT 1
) as purchase_price,--购入价
( SELECT T4.amount
FROM adm_charge_item_definition T5

View File

@@ -0,0 +1,28 @@
<?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.datadictionary.mapper.ICDCodeMapper">
<select id="getCode" parameterType="java.util.Map"
resultType="com.openhis.web.datadictionary.dto.ICDCodeDto">
SELECT
id,
gl_no,
tenant_id,
delete_flag,
create_by,
create_time,
update_by,
update_time,
gl_name,
icd10_no,
icd10_name,
FROM cli_condition_no_definition
<where>
gl_no = #{glNo}
</where>
</select>
</mapper>

View File

@@ -150,9 +150,12 @@
(SELECT T7.amount
FROM adm_charge_item_definition T5
LEFT JOIN adm_charge_item_def_detail T7 ON T7.definition_id = T5.id
WHERE T7.condition_code = '2'--2:采购价
WHERE T7.condition_code in('1','2')
AND T5.instance_id = T2.medication_def_id
AND T5.instance_table = 'med_medication_definition'
AND T7.delete_flag='0'
ORDER BY T7.create_time desc
LIMIT 1
) as purchase_price,--购入价
(
SELECT T7.amount
@@ -164,7 +167,7 @@
) as maximum_retail_price--最高零售价
FROM med_medication_definition T1
LEFT JOIN med_medication T2 ON T1.id = T2.medication_def_id AND T2.delete_flag = '0'
LEFT JOIN adm_charge_item_definition T5 ON T2.medication_def_id = T5.instance_id
LEFT JOIN adm_charge_item_definition T5 ON T2.medication_def_id = T5.instance_id AND T5.delete_flag = '0'
<where>
T1.delete_flag = '0'
AND T5.instance_table = 'med_medication_definition'
@@ -241,15 +244,19 @@
T1.rx_flag,--处方标志
T1.item_min_quantity,--最小库存警戒数量(常规单位)
T1.item_max_quantity,--最大库存警戒数量(常规单位)
T1.dosage_instruction,
T3.type_code,
T3.yb_type,
T3.price as retail_price,--零售价
(SELECT T4.amount
FROM adm_charge_item_definition T3
LEFT JOIN adm_charge_item_def_detail T4 ON T4.definition_id = T3.id
WHERE T4.condition_code = '2'--2:采购价
WHERE T4.condition_code in ('1','2')--2:采购价
AND T3.instance_id = T2.medication_def_id
AND T3.instance_table = 'med_medication_definition'
AND T4.delete_flag='0'
ORDER BY T4.create_time desc
LIMIT 1
) as purchase_price,--购入价
(
SELECT T4.amount

View File

@@ -7,6 +7,7 @@
<select id="getAdviceBaseInfo" resultType="com.openhis.web.doctorstation.dto.AdviceBaseDto">
SELECT abi.tenant_id,
abi.advice_type,
abi.bus_no,
abi.category_code,
abi.pharmacology_category_code,
abi.part_percent,
@@ -39,8 +40,10 @@
abi.advice_table_name,
abi.position_id,
abi.restricted_flag,
abi.restricted_scope
abi.restricted_scope,
abi.dosage_instruction
from (
<<<<<<< HEAD
<!-- SQLFROM -->
<!-- 当adviceTypes包含4或不在1-3范围内时或者adviceTypes为空/null时查询所有类型 -->
<choose>
@@ -401,6 +404,206 @@
</if>
</otherwise>
</choose>
=======
<if test="adviceTypes == null or adviceTypes.contains(1)">
(SELECT
DISTINCT ON (T1.ID)
T1.tenant_id,
1 AS advice_type,
T1.bus_no AS bus_no,
T1.category_code AS category_code,
T1.pharmacology_category_code AS pharmacology_category_code,
T1.part_percent AS part_percent,
T1.unit_conversion_ratio AS unit_conversion_ratio,
T1.part_attribute_enum AS part_attribute_enum,
T1.tho_part_attribute_enum AS tho_part_attribute_enum,
T1.skin_test_flag AS skin_test_flag,
T1.inject_flag AS inject_flag,
T1.ID AS advice_definition_id,
T1.NAME AS advice_name,
T1.bus_no AS advice_bus_no,
T1.py_str AS py_str,
T1.wb_str AS wb_str,
T1.yb_no AS yb_no,
T1.merchandise_name AS product_name,
0 AS activity_type,
T1.unit_code AS unit_code,
T1.min_unit_code AS min_unit_code,
T2.total_volume AS volume,
T2.method_code AS method_code,
T2.rate_code AS rate_code,
T2.org_id AS org_id,
T2.location_id AS location_id,
CAST(T2.dose AS TEXT) AS dose,
T2.dose_unit_code AS dose_unit_code,
T3.NAME AS supplier,
T3.id AS supplier_id,
T1.manufacturer_text AS manufacturer,
T5.id AS charge_item_definition_id,
T5.instance_table AS advice_table_name,
T6.def_location_id AS position_id,
t1.restricted_flag AS restricted_flag,
t1.restricted_scope AS restricted_scope,
T1.dosage_instruction AS dosage_instruction
FROM med_medication_definition AS t1
INNER JOIN med_medication AS T2 ON T2.medication_def_id = T1.ID
AND T2.delete_flag = '0' AND T2.status_enum = #{statusEnum}
LEFT JOIN adm_supplier AS T3
ON T3.ID = T1.supply_id
AND T3.delete_flag = '0'
LEFT JOIN adm_charge_item_definition AS T5 ON T5.instance_id = T1.ID
AND T5.delete_flag = '0' AND T5.status_enum = #{statusEnum}
LEFT JOIN adm_organization_location AS T6
ON T6.distribution_category_code = T1.category_code
AND T6.delete_flag = '0' AND T6.organization_id = #{organizationId} AND
(CURRENT_TIME :: time (6) BETWEEN T6.start_time AND T6.end_time)
WHERE T1.delete_flag = '0'
AND T2.status_enum = #{statusEnum}
<if test="pricingFlag ==1">
AND 1 = 2
</if>
<if test="adviceDefinitionIdParamList != null and !adviceDefinitionIdParamList.isEmpty()">
AND T1.id IN
<foreach collection="adviceDefinitionIdParamList" item="itemId" open="(" separator="," close=")">
#{itemId}
</foreach>
</if>
AND T5.instance_table = #{medicationTableName}
)
</if>
<if test="adviceTypes == null or adviceTypes.contains(1)">
<if test="adviceTypes == null or adviceTypes.contains(2) or adviceTypes.contains(3)">UNION ALL</if>
</if>
<if test="adviceTypes == null or adviceTypes.contains(2)">
(SELECT
DISTINCT ON (T1.ID)
T1.tenant_id,
2 AS advice_type,
T1.bus_no AS bus_no,
T1.category_code AS category_code,
'' AS pharmacology_category_code,
T1.part_percent AS part_percent,
0 AS unit_conversion_ratio,
null AS part_attribute_enum,
null AS tho_part_attribute_enum,
null AS skin_test_flag,
null AS inject_flag,
T1.ID AS advice_definition_id,
T1.NAME AS advice_name,
T1.bus_no AS advice_bus_no,
T1.py_str AS py_str,
T1.wb_str AS wb_str,
T1.yb_no AS yb_no,
'' AS product_name,
0 AS activity_type,
T1.unit_code AS unit_code,
T1.min_unit_code AS min_unit_code,
T1.SIZE AS volume,
'' AS method_code,
'' AS rate_code,
T1.org_id AS org_id,
T1.location_id AS location_id,
'' AS dose,
'' AS dose_unit_code,
T2.NAME AS supplier,
T2.id AS supplier_id,
T1.manufacturer_text AS manufacturer,
T4.id AS charge_item_definition_id,
T4.instance_table AS advice_table_name,
T5.def_location_id AS position_id,
0 AS restricted_flag,
'' AS restricted_scope,
'' AS dosage_instruction
FROM adm_device_definition AS T1
LEFT JOIN adm_supplier AS T2
ON T2.ID = T1.supply_id
AND T2.delete_flag = '0'
LEFT JOIN adm_charge_item_definition AS T4 ON T4.instance_id = T1.ID
AND T4.delete_flag = '0' AND T4.status_enum = #{statusEnum}
LEFT JOIN adm_organization_location AS T5 ON T5.distribution_category_code = T1.category_code
AND T5.delete_flag = '0' AND T5.organization_id = #{organizationId} AND
(CURRENT_TIME :: time (6) BETWEEN T5.start_time AND T5.end_time)
WHERE T1.delete_flag = '0'
<if test="adviceDefinitionIdParamList != null and !adviceDefinitionIdParamList.isEmpty()">
AND T1.id IN
<foreach collection="adviceDefinitionIdParamList" item="itemId" open="(" separator="," close=")">
#{itemId}
</foreach>
</if>
AND T4.instance_table = #{deviceTableName}
AND T1.status_enum = #{statusEnum}
)
</if>
<if test="adviceTypes == null or adviceTypes.contains(2)">
<if test="adviceTypes == null or adviceTypes.contains(3)">UNION ALL</if>
</if>
<if test="adviceTypes == null or adviceTypes.contains(3)">
(SELECT
DISTINCT ON (T1.ID)
T1.tenant_id,
3 AS advice_type,
T1.bus_no AS bus_no,
T1.category_code AS category_code,
'' AS pharmacology_category_code,
1 AS part_percent,
0 AS unit_conversion_ratio,
null AS part_attribute_enum,
null AS tho_part_attribute_enum,
null AS skin_test_flag,
null AS inject_flag,
T1.ID AS advice_definition_id,
T1.NAME AS advice_name,
T1.bus_no AS advice_bus_no,
T1.py_str AS py_str,
T1.wb_str AS wb_str,
T1.yb_no AS yb_no,
'' AS product_name,
T1.type_enum AS activity_type,
'' AS unit_code,
'' AS min_unit_code,
'' AS volume,
'' AS method_code,
'' AS rate_code,
T1.org_id AS org_id,
T1.location_id AS location_id,
'' AS dose,
'' AS dose_unit_code,
'' AS supplier,
null AS supplier_id,
'' AS manufacturer,
T2.ID AS charge_item_definition_id,
T2.instance_table AS advice_table_name,
T3.organization_id AS position_id,
0 AS restricted_flag,
'' AS restricted_scope,
'' AS dosage_instruction
FROM wor_activity_definition AS T1
LEFT JOIN adm_charge_item_definition AS T2
ON T2.instance_id = T1.ID
AND T2.delete_flag = '0' AND T2.status_enum = #{statusEnum}
LEFT JOIN adm_organization_location AS T3 ON T3.activity_definition_id = T1.ID
AND T3.delete_flag = '0' AND (CURRENT_TIME :: time (6) BETWEEN T3.start_time AND T3.end_time)
WHERE T1.delete_flag = '0'
<if test="pricingFlag ==1">
AND T1.pricing_flag = #{pricingFlag}
</if>
<if test="adviceDefinitionIdParamList != null and !adviceDefinitionIdParamList.isEmpty()">
AND T1.id IN
<foreach collection="adviceDefinitionIdParamList" item="itemId" open="(" separator="," close=")">
#{itemId}
</foreach>
</if>
AND T1.status_enum = #{statusEnum}
AND T2.instance_table = #{activityTableName}
)
</if>
>>>>>>> upstream/develop
) AS abi
${ew.customSqlSegment}
</select>
@@ -492,6 +695,17 @@
AND (CURRENT_TIME :: TIME ( 6 ) BETWEEN aol.start_time AND aol.end_time)
</select>
<select id="getTakeDeviceLocationId" resultType="long">
SELECT aol.def_location_id AS location_id
FROM adm_organization_location AS aol
INNER JOIN adm_encounter AS ae ON ae.organization_id = aol.organization_id
WHERE aol.delete_flag = '0'
AND aol.distribution_category_code = #{distributionCategoryCode}
AND ae.ID = #{encounterId}
AND aol.start_time &lt;= CURRENT_TIME
AND aol.end_time >= CURRENT_TIME
</select>
<select id="getChildCharge" resultType="com.openhis.web.doctorstation.dto.AdvicePriceDto">
SELECT
T1.definition_id,
@@ -524,7 +738,7 @@
FROM
adm_charge_item_definition
WHERE
delete_flag = '0'
delete_flag = '0' AND status_enum = #{statusEnum}
<if test="chargeItemDefinitionIdList != null and !chargeItemDefinitionIdList.isEmpty()">
AND id IN
<foreach collection="chargeItemDefinitionIdList" item="itemId" open="(" separator="," close=")">
@@ -537,6 +751,7 @@
(SELECT 1 AS advice_type,
T1.id AS request_id,
T1.id || '-1' AS unique_key,
T1.prescription_no AS prescription_no,
T1.practitioner_id AS requester_id,
T1.create_time AS request_time,
CASE WHEN T1.practitioner_id = #{practitionerId} THEN '1' ELSE '0' END AS biz_request_flag,
@@ -573,7 +788,7 @@
LEFT JOIN adm_location AS al ON al.ID = T1.perform_location AND al.delete_flag = '0'
LEFT JOIN cli_condition AS cc ON cc.id = T1.condition_id AND cc.delete_flag = '0'
LEFT JOIN cli_condition_definition AS ccd ON ccd.id = cc.definition_id
WHERE T1.delete_flag = '0' AND T1.tcm_flag = 0
WHERE T1.delete_flag = '0' AND T1.tcm_flag = 0 AND T1.generate_source_enum = #{generateSourceEnum}
<if test="historyFlag == '0'.toString()">
AND T1.encounter_id = #{encounterId}
</if>
@@ -586,6 +801,7 @@
(SELECT 2 AS advice_type,
T1.id AS request_id,
T1.id || '-2' AS unique_key,
'' AS prescription_no,
T1.requester_id AS requester_id,
T1.create_time AS request_time,
CASE WHEN T1.requester_id = #{practitionerId} THEN '1' ELSE '0' END AS biz_request_flag,
@@ -619,7 +835,7 @@
ON T3.service_id = T1.ID AND T3.delete_flag = '0' AND
T3.service_table = #{WOR_DEVICE_REQUEST}
LEFT JOIN adm_location AS al ON al.ID = T1.perform_location AND al.delete_flag = '0'
WHERE T1.delete_flag = '0'
WHERE T1.delete_flag = '0' AND T1.generate_source_enum = #{generateSourceEnum}
<if test="historyFlag == '0'.toString()">
AND T1.encounter_id = #{encounterId}
</if>
@@ -632,6 +848,7 @@
(SELECT 3 AS advice_type,
T1.id AS request_id,
T1.id || '-3' AS unique_key,
'' AS prescription_no,
T1.requester_id AS requester_id,
T1.create_time AS request_time,
CASE WHEN T1.requester_id = #{practitionerId} THEN '1' ELSE '0' END AS biz_request_flag,
@@ -665,7 +882,7 @@
LEFT JOIN adm_charge_item AS T3 ON T3.service_id = T1.ID AND T3.delete_flag = '0' AND
T3.service_table = #{WOR_SERVICE_REQUEST}
LEFT JOIN adm_organization AS ao ON ao.ID = T1.org_id AND ao.delete_flag = '0'
WHERE T1.delete_flag = '0'
WHERE T1.delete_flag = '0' AND T1.generate_source_enum = #{generateSourceEnum}
AND T1.based_on_table is null
AND T1.parent_id IS NULL
AND T1.refund_service_id IS NULL
@@ -690,16 +907,56 @@
</select>
<select id="getActivityBindDevice" resultType="com.openhis.web.doctorstation.dto.ActivityBindDeviceDetailDto">
SELECT item_no AS activity_id,
dev_act_id AS device_id,
quantity,
unit_code
FROM tmp_activity_device
WHERE delete_flag = '0'
AND status_enum = #{status}
AND type_code = '2'
AND dev_act_table = #{tableName}
AND item_no = #{activityId}
SELECT tcd.item_no AS activity_id,
tcd.dev_act_id AS device_id,
tcd.quantity,
tcd.unit_code,
CASE
WHEN tcd.unit_code = adde.min_unit_code THEN
tcd.quantity
ELSE tcd.quantity * adde.part_percent
END AS min_unit_code_quantity,
CASE
WHEN tcd.unit_code = adde.min_unit_code THEN
tcd.unit_code
ELSE adde.min_unit_code
END AS min_unit_code
FROM tmp_activity_device AS tcd
LEFT JOIN adm_device_definition AS adde ON adde.ID = CAST(tcd.dev_act_id AS BIGINT)
AND adde.delete_flag = '0'
WHERE tcd.delete_flag = '0'
AND tcd.status_enum = #{status}
AND tcd.type_code = '2'
AND tcd.dev_act_table = #{tableName}
AND tcd.item_no = #{activityId}
</select>
<select id="getOrderBindInfo" resultType="com.openhis.web.doctorstation.dto.OrderBindInfoDto">
SELECT tad.dev_act_id AS order_definition_id,
tad.quantity AS quantity,
tad.unit_code AS unit_code,
sdd.dict_label AS unit_code_name,
CASE
WHEN tad.dev_act_table = 'adm_device_definition' THEN
adm.NAME
WHEN tad.dev_act_table = 'wor_activity_definition' THEN
wor.NAME
ELSE NULL
END AS order_definition_name
FROM tmp_activity_device AS tad
LEFT JOIN adm_device_definition AS adm ON tad.dev_act_table = 'adm_device_definition'
AND tad.dev_act_id = adm.
ID
LEFT JOIN wor_activity_definition AS wor ON tad.dev_act_table = 'wor_activity_definition'
AND tad.dev_act_id = wor.
ID
LEFT JOIN sys_dict_data AS sdd ON sdd.dict_value = tad.unit_code
AND sdd.dict_type = 'unit_code'
AND sdd.status = '0'
WHERE tad.delete_flag = '0'
AND tad.status_enum = #{status}
AND tad.type_code = #{typeCode}
AND tad.item_no = #{itemNo}
</select>
</mapper>

View File

@@ -57,6 +57,7 @@
T1.dispense_per_duration AS dispense_per_duration,
T1.chinese_herbs_dose_quantity AS chinese_herbs_dose_quantity,
T1.suffering_flag AS suffering_flag,
T1.dosage_instruction AS dosage_instruction,
T2.part_percent AS part_percent,
ccd.name AS condition_definition_name
FROM med_medication_request AS T1
@@ -69,7 +70,7 @@
LEFT JOIN adm_location AS al ON al.ID = T1.perform_location AND al.delete_flag = '0'
LEFT JOIN cli_condition AS cc ON cc.id = T1.condition_id AND cc.delete_flag = '0'
LEFT JOIN cli_condition_definition AS ccd ON ccd.id = cc.definition_id
WHERE T1.delete_flag = '0' AND T1.tcm_flag = 1
WHERE T1.delete_flag = '0' AND T1.tcm_flag = 1 AND T1.generate_source_enum = #{generateSourceEnum}
<if test="historyFlag == '0'.toString()">
AND T1.encounter_id = #{encounterId}
</if>
@@ -122,7 +123,7 @@
LEFT JOIN adm_location AS al ON al.ID = T1.perform_location AND al.delete_flag = '0'
LEFT JOIN cli_condition AS cc ON cc.id = T1.condition_id AND cc.delete_flag = '0'
LEFT JOIN cli_condition_definition AS ccd ON ccd.id = cc.definition_id
WHERE T1.delete_flag = '0' AND T1.tcm_flag = 1
WHERE T1.delete_flag = '0' AND T1.tcm_flag = 1 AND T1.generate_source_enum = #{generateSourceEnum}
<if test="historyFlag == '0'.toString()">
AND T1.encounter_id = #{encounterId}
</if>

View File

@@ -23,7 +23,8 @@
T10.register_time,
T10.reception_time,
T10.practitioner_user_id,
T10.jz_practitioner_user_id
T10.jz_practitioner_user_id,
T10.bus_no
from
(
SELECT T1.tenant_id AS tenant_id,
@@ -48,6 +49,7 @@
T1.create_time AS register_time,
T1.reception_time AS reception_time,
T1.organization_id AS org_id,
T8.bus_no AS bus_no,
CASE
WHEN T9.patient_id IS NOT NULL THEN 1
ELSE 0
@@ -59,6 +61,7 @@
ON T1.ID = T4.encounter_id AND T4.type_code = #{participantType}
AND T4.status_enum = #{activityStatus}
AND T4.delete_flag = '0'
AND T1.status_enum = #{encounterStatus}
LEFT JOIN adm_practitioner AS T5 ON T5.ID = T4.practitioner_id AND T5.delete_flag = '0'
LEFT JOIN adm_encounter_participant AS aep ON T1.ID = aep.encounter_id
AND aep.type_code = #{participantType2}
@@ -75,8 +78,11 @@
T1.delete_flag = '0'
<!-- 当前登录账号ID 和 当前登录账号所属的科室ID 用于控制数据权限 -->
<if test="userId != null and currentUserOrganizationId != null">
AND ( T5.user_id = #{userId}
OR (T1.organization_id = #{currentUserOrganizationId}) )
AND (
(T4.encounter_id IS NOT NULL AND T5.user_id = #{userId})
OR
(T4.encounter_id IS NULL AND T1.organization_id = #{currentUserOrganizationId})
)
</if>
<if test="pricingFlag ==1">
AND T1.status_enum != #{encounterStatus}

View File

@@ -33,7 +33,7 @@
</foreach>
</if>
<if test="organizationId != null and organizationId != 0">
AND ddo.organization_id = #{organizationId} OR dd.use_range_enum = 1
AND (ddo.organization_id = #{organizationId} OR dd.use_range_enum = 1)
</if>
<if test="name != null and !name.isEmpty()">
AND dd.name LIKE CONCAT('%',#{name},'%')

View File

@@ -1,258 +0,0 @@
<?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.inhospitalnursestation.mapper.InpatientMedicineCollectionMapper">
<select id="selectEncounterInfoListPage" resultType="com.openhis.web.inhospitalnursestation.dto.InpatientMedicineEncounterInfoDto">
SELECT ii.tenant_id,
ii.organization_id,
ii.organization_name,
ii.encounter_id,
ii.bus_no,
ii.patient_name,
ii.patient_py_str,
ii.patient_wb_str,
ii.gender_enum,
ii.birth_date,
ii.inpatient_bed
FROM (SELECT T1.tenant_id,
T1.organization_id, --科室 
T3.name AS organization_name,
T1.id AS encounter_id, --就诊id
T1.bus_no, --住院号
T2.name AS patient_name, --患者姓名
T2.py_str AS patient_py_str,--拼音码
T2.wb_str AS patient_wb_str,--五笔码
T2.gender_enum, --性别
T2.birth_date, --生日
STRING_AGG(T5.NAME, '_' ORDER BY T5.bus_no) AS inpatient_bed --床位
FROM adm_encounter AS T1
LEFT JOIN adm_patient AS 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.class_enum = #{amb}
--todo status_enum 的值
AND T1.status_enum = 5
AND T1.delete_flag = '0'
GROUP BY T1.tenant_id,
T1.organization_id,
T3.name,
T1.id,
T1.bus_no,
T2.name,
T2.py_str,
T2.wb_str,
T2.gender_enum,
T2.birth_date) AS ii
${ew.customSqlSegment}
</select>
<select id="selectPrescriptionInfoListPage" resultType="com.openhis.web.inhospitalnursestation.dto.InpatientMedicinePrescriptionInfoDto">
SELECT ii.tenant_id,
ii.dispense_id,--药品发放id
ii.therapy_enum,--治疗类型
ii.planned_dispense_time,--预定发放时间
ii.encounter_id,--就诊id
ii.patient_name,--患者姓名
ii.status_enum,--发放状态
ii.item_table,--项目表
ii.item_id,--项目id
ii.item_name,--项目名
ii.quantity,--请求数量
ii.unit_code,--请求单位编码
ii.location_id,--发放地点
ii.location_name,
ii.lot_number,--批号
ii.total_volume--规格
FROM (SELECT T1.tenant_id,
T1.id AS dispense_id,--发放id
T2.therapy_enum,--治疗类型
T1.planned_dispense_time,--预定发放时间
T1.encounter_id,--就诊id
T3.name AS patient_name,--患者姓名
T1.status_enum,--发放状态
#{medMedicationDefinition} AS item_table,--项目表
T1.medication_id AS item_id,--项目id
T4.name AS item_name,--项目名
T1.quantity,--请求数量
T1.unit_code,--请求单位编码
T1.location_id,--发放地点
T6.name AS location_name,
T1.lot_number,--批号
T5.total_volume--规格
FROM med_medication_dispense AS T1
LEFT JOIN med_medication_request AS T2
ON T1.med_req_id = T2.id
AND T2.delete_flag = '0'
LEFT JOIN adm_patient AS T3
ON T1.patient_id = T3.id
AND T3.delete_flag = '0'
LEFT JOIN med_medication_definition AS T4
ON T1.medication_id = T4.id
AND T4.delete_flag = '0'
LEFT JOIN med_medication AS T5
ON T4.id = T5.medication_def_id
AND T5.delete_flag = '0'
LEFT JOIN adm_location AS T6
ON T1.location_id = T6.id
AND T6.delete_flag = '0'
WHERE T1.encounter_id IN
<foreach collection="encounterIdList" item="item" separator="," open="(" close=")">
#{item}
</foreach>
AND T1.status_enum = #{statusEnum}
AND T1.delete_flag = '0'
GROUP BY T1.id,
T2.therapy_enum,
T3.name,
T4.name,
T6.name,
T5.total_volume
UNION
SELECT T1.tenant_id,
T1.id AS dispense_id,--发放id
null AS therapy_enum,--治疗类型
T1.planned_dispense_time,--预定发放时间
T1.encounter_id,--就诊id
T3.name AS patient_name,--患者姓名
T1.status_enum,--发放状态
#{admDeviceDefinition} AS item_table,--项目表
T1.device_def_id AS item_id,--项目id
T4.name AS item_name,--项目名
T1.quantity,--请求数量
T1.unit_code,--请求单位编码
T1.location_id,--发放地点
T6.name AS location_name,
T1.lot_number,--批号
T4.size AS total_volume--规格
FROM wor_device_dispense AS T1
LEFT JOIN wor_device_request AS T2
ON T1.device_req_id = T2.id
AND T2.delete_flag = '0'
LEFT JOIN adm_patient AS T3
ON T1.patient_id = T3.id
AND T3.delete_flag = '0'
LEFT JOIN adm_device_definition AS T4
ON T1.device_def_id = T4.id
AND T4.delete_flag = '0'
LEFT JOIN adm_device AS T5
ON T4.id = T5.device_def_id
AND T5.delete_flag = '0'
LEFT JOIN adm_location AS T6
ON T1.location_id = T6.id
AND T6.delete_flag = '0'
WHERE T1.encounter_id IN
<foreach collection="encounterIdList" item="item" separator="," open="(" close=")">
#{item}
</foreach>
AND T1.status_enum = #{statusEnum}
AND T1.delete_flag = '0'
GROUP BY T1.id,
T3.name,
T4.name,
T6.name,
T4.size
) AS ii
${ew.customSqlSegment}
</select>
<select id="selectPrescriptionSummaryInfoListPage" resultType="com.openhis.web.inhospitalnursestation.dto.InpatientMedicinePrescriptionInfoDto">
SELECT ii.tenant_id,
ii.dispense_ids,
ii.item_table,
ii.item_id,
ii.item_name,
ii.quantity,
ii.unit_code,
ii.lot_number,
ii.status_enum,
ii.location_id,
ii.location_enum
FROM (SELECT T1.tenant_id,
string_agg(T1.id::text, ',' ORDER BY T1.id) AS dispense_ids,
#{medMedicationDefinition} AS item_table,--项目表
T1.medication_id AS item_id,--项目id
T4.name AS item_name,--项目名
SUM(T1.quantity) AS quantity,--请求数量
T1.unit_code,--请求单位编码
T1.lot_number,--批号
T1.status_enum,--发放状态
T1.location_id,--发放地点
T6.form_enum AS location_enum--地点类型
FROM med_medication_dispense AS T1
LEFT JOIN med_medication_request AS T2
ON T1.med_req_id = T2.id
AND T2.delete_flag = '0'
-- LEFT JOIN adm_patient AS T3
-- ON T1.patient_id = T3.id
-- AND T3.delete_flag = '0'
LEFT JOIN med_medication_definition AS T4
ON T1.medication_id = T4.id
AND T4.delete_flag = '0'
LEFT JOIN med_medication AS T5
ON T4.id = T5.medication_def_id
AND T5.delete_flag = '0'
LEFT JOIN adm_location AS T6
ON T1.location_id = T6.id
AND T6.delete_flag = '0'
WHERE T1.id IN
<foreach collection="medDispenseId" item="item" separator="," open="(" close=")">
#{item}
</foreach>
AND T1.delete_flag = '0'
GROUP BY T1.tenant_id,
T1.medication_id,
T1.unit_code,
T1.lot_number,
T1.location_id,
T4.name,
T6.form_enum
UNION
SELECT T1.tenant_id,
string_agg(T1.id::text, ',' ORDER BY T1.id) AS dispense_ids,
#{admDeviceDefinition} AS item_table,--项目表
T1.device_def_id AS item_id,--项目id
T4.name AS item_name,--项目名
SUM(T1.quantity) AS quantity,--请求数量
T1.unit_code,--请求单位编码
T1.lot_number,--批号
T1.status_enum,--发放状态
T1.location_id,--发放地点
T6.form_enum AS location_enum--地点类型
FROM wor_device_dispense AS T1
LEFT JOIN wor_device_request AS T2
ON T1.device_req_id = T2.id
AND T2.delete_flag = '0'
-- LEFT JOIN adm_patient AS T3
-- ON T1.patient_id = T3.id
-- AND T3.delete_flag = '0'
LEFT JOIN adm_device_definition AS T4
ON T1.device_def_id = T4.id
AND T4.delete_flag = '0'
LEFT JOIN adm_device AS T5
ON T4.id = T5.device_def_id
AND T5.delete_flag = '0'
LEFT JOIN adm_location AS T6
ON T1.location_id = T6.id
AND T6.delete_flag = '0'
WHERE T1.id IN
<foreach collection="devDispenseId" item="item" separator="," open="(" close=")">
#{item}
</foreach>
AND T1.delete_flag = '0'
GROUP BY T1.tenant_id,
T1.device_def_id,
T1.unit_code,
T1.lot_number,
T1.location_id,
T4.name,
T6.form_enum) AS ii
${ew.customSqlSegment}
</select>
</mapper>

View File

@@ -0,0 +1,279 @@
<?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.inhospitalnursestation.mapper.MedicineSummaryAppMapper">
<resultMap id="MedicineDispenseFormMap" type="com.openhis.web.inhospitalnursestation.dto.MedicineDispenseFormDto">
<result property="encounterId" column="encounter_id"/>
<result property="skinTestFlag" column="skin_test_flag"/>
<result property="injectFlag" column="inject_flag"/>
<result property="tcmFlag" column="tcm_flag"/>
<result property="chineseHerbsDoseQuantity" column="chinese_herbs_dose_quantity"/>
<result property="sufferingFlag" column="suffering_flag"/>
<result property="adviceId" column="advice_id"/>
<result property="adviceName" column="advice_name"/>
<result property="itemId" column="item_id"/>
<result property="volume" column="volume"/>
<result property="lotNumber" column="lot_number"/>
<result property="quantity" column="quantity"/>
<result property="unitCode" column="unit_code"/>
<result property="methodCode" column="method_code"/>
<result property="rateCode" column="rate_code"/>
<result property="dose" column="dose"/>
<result property="doseUnitCode" column="dose_unit_code"/>
<result property="positionId" column="position_id"/>
<result property="positionName" column="position_name"/>
<result property="conditionDefinitionName" column="condition_definition_name"/>
<result property="therapyEnum" column="therapy_enum"/>
<result property="sortNumber" column="sort_number"/>
<result property="busNo" column="bus_no"/>
<result property="patientName" column="patient_name"/>
<result property="bedName" column="bed_name"/>
<result property="genderEnum" column="gender_enum"/>
<result property="birthDate" column="birth_date"/>
<result property="contractName" column="contract_name"/>
<result property="conditionNames" column="condition_names"/>
<result property="admittingDoctorName" column="admitting_doctor_name"/>
<result property="balanceAmount" column="balance_amount"/>
<collection property="medicineSummaryParamList" ofType="com.openhis.web.inhospitalnursestation.dto.MedicineSummaryParam">
<result property="procedureId" column="procedure_id"/>
<result property="dispenseId" column="dispense_id"/>
<result property="dispenseTime" column="planned_dispense_time"/>
<result property="dispenseStatus" column="dispense_status"/>
</collection>
</resultMap>
<select id="selectMedicineDispenseFormPage" resultMap="MedicineDispenseFormMap">
SELECT ii.encounter_id,
ii.skin_test_flag,
ii.inject_flag,
ii.group_id,
ii.tcm_flag,
ii.chinese_herbs_dose_quantity,
ii.suffering_flag,
ii.advice_id,
ii.advice_name,
ii.item_id,
ii.volume,
ii.lot_number,
ii.quantity,
ii.unit_code,
ii.method_code,
ii.rate_code,
ii.dose,
ii.dose_unit_code,
ii.position_id,
ii.position_name,
ii.condition_definition_name,
ii.therapy_enum,
ii.sort_number,
ii.bus_no,
ii.patient_name,
ii.bed_name,
ii.gender_enum ,
ii.birth_date ,
ii.patient_id,
ii.contract_name ,
ii.condition_names,
ii.admitting_doctor_name,
ii.balance_amount,
ii.dispense_id,
ii.planned_dispense_time,
ii.procedure_id,
ii.dispense_status
FROM (( SELECT T1.encounter_id,
T1.tenant_id,
T1.skin_test_flag AS skin_test_flag,
T1.infusion_flag AS inject_flag,
T1.group_id AS group_id,
T1.tcm_flag,
T1.chinese_herbs_dose_quantity,
T1.suffering_flag,
T1.id AS advice_id,
T2."name" AS advice_name,
T2.id AS item_id,
T3.total_volume AS volume,
T1.lot_number AS lot_number,
T1.quantity AS quantity,
T1.unit_code AS unit_code,
T1.method_code AS method_code,
T1.rate_code AS rate_code,
T1.dose AS dose,
T1.dose_unit_code AS dose_unit_code,
al1.id AS position_id,
al1."name" AS position_name,
ccd."name" AS condition_definition_name,
T1.therapy_enum AS therapy_enum,
T1.sort_number AS sort_number,
ae.bus_no,
ap."name" AS patient_name,
al2."name" AS bed_name,
ap.gender_enum ,
ap.birth_date ,
ap.id AS patient_id,
fc.contract_name ,
diagnosis.condition_names,
pra."name" AS admitting_doctor_name,
personal_account.balance_amount,
mmd.id AS dispense_id,
mmd.planned_dispense_time,
mmd.procedure_id,
mmd.status_enum AS dispense_status
FROM med_medication_request AS T1
LEFT JOIN med_medication_dispense AS mmd
ON T1.id = mmd.med_req_id
AND mmd.delete_flag = '0'
AND mmd.status_enum != #{summarized}
LEFT JOIN med_medication_definition AS T2
ON T2.id = T1.medication_id
AND T2.delete_flag = '0'
LEFT JOIN med_medication AS T3
ON T3.medication_def_id = T2.ID
AND T3.delete_flag = '0'
LEFT JOIN adm_location AS al1
ON al1.id = T1.perform_location
AND al1.delete_flag = '0'
LEFT JOIN cli_condition AS cc
ON cc.id = T1.condition_id
AND cc.delete_flag = '0'
LEFT JOIN cli_condition_definition AS ccd
ON ccd.id = cc.definition_id
AND ccd.delete_flag = '0'
LEFT JOIN adm_encounter ae
ON ae.id = T1.encounter_id
AND ae.delete_flag = '0'
LEFT JOIN adm_patient ap
ON ae.patient_id = ap.id
AND ap.delete_flag = '0'
LEFT JOIN adm_encounter_location ael
ON ae.id = ael.encounter_id
AND ael.delete_flag = '0'
AND ael.status_enum = #{active}
AND ael.form_enum = #{bed}
LEFT JOIN adm_location al2
ON ael.location_id = al2.id
AND al2.delete_flag = '0'
LEFT JOIN adm_account aa
ON ae.id = aa.encounter_id
AND aa.encounter_flag = 1
AND aa.delete_flag = '0'
LEFT JOIN fin_contract fc
ON aa.contract_no = fc.bus_no
AND fc.delete_flag = '0'
LEFT JOIN ( SELECT aed.encounter_id,
STRING_AGG(ccd.name, ', ') AS condition_names
FROM adm_encounter_diagnosis aed
INNER JOIN cli_condition cc
ON cc.id = aed.condition_id
AND cc.delete_flag = '0'
INNER JOIN cli_condition_definition ccd
ON ccd.id = cc.definition_id
AND ccd.delete_flag = '0'
WHERE aed.delete_flag = '0'
GROUP BY aed.encounter_id
) AS diagnosis
ON ae.id = diagnosis.encounter_id
LEFT JOIN adm_encounter_participant aep
ON ae.id = aep.encounter_id
AND aep.delete_flag = '0'
AND aep.status_enum = #{active}
AND aep.type_code = #{admittingDoctor}
LEFT JOIN adm_practitioner pra
ON aep.practitioner_id = pra.id
AND pra.delete_flag = '0'
LEFT JOIN ( SELECT aa.id,
aa.encounter_id,
(aa.balance_amount -
COALESCE(SUM(CASE WHEN aci.status_enum IN (#{billed}, #{billable})
THEN aci.total_price ELSE 0 END), 0) +
COALESCE(SUM(CASE WHEN aci.status_enum = #{refunded}
THEN aci.total_price ELSE 0 END), 0)) AS balance_amount
FROM adm_account aa
LEFT JOIN adm_charge_item aci
ON aa.encounter_id = aci.encounter_id
AND aa.delete_flag = '0'
WHERE aa.type_code = #{personalCashAccount}
AND aa.delete_flag = '0'
GROUP BY aa.id,
aa.encounter_id,
aa.balance_amount
) AS personal_account
ON personal_account.encounter_id = ae.id
WHERE T1.delete_flag = '0'
AND T1.status_enum = #{completed}
AND T1.refund_medicine_id IS NULL
AND mmd.procedure_id IS NOT NULL
ORDER BY mmd.planned_dispense_time )) AS ii
${ew.customSqlSegment}
</select>
<select id="selectMedicineSummaryFormPage"
resultType="com.openhis.web.inhospitalnursestation.dto.MedicineSummaryFormDto">
SELECT T1.bus_no ,
T1.apply_time ,
T1.applicant_id,
T1.status_enum ,
T1.dispense_time,
T1.receiver_id,
T1.applicant_name,
T1.receiver_name,
T1.location_name
FROM (
SELECT wsr.tenant_id,
wsr.bus_no ,
wsr.apply_time ,
wsr.applicant_id,
wsd.status_enum ,
wsd.receive_time AS dispense_time,
wsd.receiver_id,
ap."name" AS applicant_name,
ap2."name" AS receiver_name,
al."name" AS location_name
FROM wor_supply_request wsr
LEFT JOIN wor_supply_delivery wsd
ON wsr.id = wsd.request_id
AND wsd.delete_flag = '0'
LEFT JOIN adm_practitioner ap
ON wsr.applicant_id = ap.id
AND ap.delete_flag = '0'
LEFT JOIN adm_practitioner ap2
ON wsd.receiver_id = ap.id
AND ap.delete_flag = '0'
LEFT JOIN adm_location al
ON wsr.source_location_id = al.id
AND al.delete_flag = '0'
WHERE wsr.delete_flag = '0'
AND wsd.status_enum IN (#{inProgress}, #{completed})
AND wsr.type_enum = #{summaryDispense}
GROUP BY wsr.tenant_id,
wsr.bus_no ,
wsr.apply_time ,
wsr.applicant_id,
wsd.status_enum ,
wsd.receive_time,
wsd.receiver_id,
ap."name",
ap2."name",
al."name"
ORDER BY wsr.bus_no DESC ) AS T1
${ew.customSqlSegment}
</select>
<select id="selectMedicineSummaryFormDetail"
resultType="com.openhis.web.inhospitalnursestation.dto.MedicineSummaryInfoDto">
SELECT mmd."name" AS item_name,
mmd.unit_code ,
mmd.min_unit_code ,
mmd.part_percent ,
mm.total_volume ,
wsr.lot_number,
wsr.item_quantity
FROM wor_supply_request wsr
LEFT JOIN wor_supply_delivery wsd
ON wsr.id = wsd.request_id
AND wsd.delete_flag = '0'
LEFT JOIN med_medication_definition mmd
ON wsr.item_id = mmd.id
AND mmd.delete_flag = '0'
LEFT JOIN med_medication mm
ON mmd.id = mm.medication_def_id
AND mm.delete_flag = '0'
WHERE wsr.delete_flag = '0'
AND wsr.bus_no = #{summaryNo}
</select>
</mapper>

View File

@@ -0,0 +1,6 @@
<?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.inhospitalnursestation.mapper.NurseBillingAppMapper">
</mapper>

View File

@@ -0,0 +1,69 @@
<?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.inhospitalnursestation.mapper.OrgDeviceStockTakeAppMapper">
<select id="selectOrgDeviceInfo" resultType="com.openhis.web.inhospitalnursestation.dto.OrgDeviceDto">
SELECT ii.bus_no, --单据号
ii.request_id, --供应请求id
ii.dispense_id, --供应发放id
ii.item_name, --项目名
ii.item_id, --项目id
ii.total_volume, --规格
ii.lot_number, --批号
ii.quantity, --请求数
ii.part_percent, --拆零比
ii.unit_code, --单位
ii.unit_price, --单价
ii.max_unit_code, --常规单位
ii.min_unit_code, --最小单位
ii.source_location_id, --发放地点
ii.source_location_name,--发放地点名称
ii.org_id, --申请科室
ii.org_name, --申请科室名称
ii.requester_id, --申请人
ii.requester_name, --申请人名字
ii.manufacturer, --生产厂商
ii.apply_time, --请求开始时间
ii.status_enum --状态
FROM (SELECT T1.tenant_id,
T1.bus_no,--单据号
T1.ID AS request_id,--供应请求id
T2.ID AS dispense_id,--供应发放id
T3.NAME AS item_name,--项目名
T3.ID AS item_id,--项目id
T3.SIZE AS total_volume,--规格
T1.lot_number,--批号
T1.quantity,--请求数
T3.part_percent,--拆零比
T1.unit_code,--单位
T8.unit_price,--单价
T3.unit_code AS max_unit_code,--常规单位
T3.min_unit_code,--最小单位
T1.perform_location AS source_location_id,--发放地点
T5.NAME AS source_location_name,--发放地点名称
T1.org_id,--申请科室
T6.NAME AS org_name,--申请科室名称
T1.requester_id,--申请人
T7.NAME AS requester_name,--申请人名字
T3.manufacturer_text AS manufacturer,--生产厂商
T1.req_authored_time AS apply_time,--请求开始时间
T1.status_enum--状态
FROM wor_device_request T1
LEFT JOIN wor_device_dispense AS T2 ON T2.device_req_id = T1.ID
AND T2.delete_flag = '0'
LEFT JOIN adm_device_definition AS T3 ON T1.device_def_id = T3.ID
AND T3.delete_flag = '0'
LEFT JOIN adm_device AS T4 ON T3.ID = T4.device_def_id
AND T4.delete_flag = '0'
LEFT JOIN adm_location AS T5 ON T1.perform_location = T5.ID
AND T5.delete_flag = '0'
LEFT JOIN adm_organization AS T6 ON T1.org_id = T6.ID
AND T6.delete_flag = '0'
LEFT JOIN adm_practitioner AS T7 ON T1.requester_id = T7.ID
AND T7.delete_flag = '0'
LEFT JOIN adm_charge_item AS T8 ON T1.id = T8.service_id
AND T8.delete_flag = '0'
WHERE T1.delete_flag = '0') AS ii
${ew.customSqlSegment}
</select>
</mapper>

View File

@@ -0,0 +1,155 @@
<?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.nenu.mapper.GfRatioApplicationRecordAppMapper">
<select id="selectGfRatioApplicationRecordPage" resultType="com.openhis.web.nenu.dto.GfRatioApplicationRecordDto">
SELECT T.id
, T.application_no
, T.item_type
, T.application_ratio
, T.twice_ratio
, T.start_date
, T.end_date
, T.application_status
, T.applicant
, T.application_time
, T.application_reason
, T.initial_approver
, T.initial_approval_result
, T.initial_approval_time
, T.initial_approval_opinion
, T.finance_approver
, T.finance_approval_result
, T.finance_approval_time
, T.finance_approval_opinion
, T.final_recorder
, T.final_approval_result
, T.final_record_time
, T.final_approval_opinion
, T.definition_id
, T.bus_no
, T.name
, T.py_str
, T.wb_str
, T.yb_no
from (SELECT T1.id
, T1.bus_no AS application_no
, T1.item_type
, T1.application_ratio
, T1.twice_ratio
, T1.start_date
, T1.end_date
, T1.application_status
, T1.applicant
, T1.application_time
, T1.application_reason
, T1.initial_approver
, T1.initial_approval_result
, T1.initial_approval_time
, T1.initial_approval_opinion
, T1.finance_approver
, T1.finance_approval_result
, T1.finance_approval_time
, T1.finance_approval_opinion
, T1.final_recorder
, T1.final_approval_result
, T1.final_record_time
, T1.final_approval_opinion
, T1.definition_id
, CASE
WHEN T1.item_type = 1 THEN T2.bus_no
WHEN T1.item_type = 2 THEN T3.bus_no
ELSE '' END AS bus_no
, CASE
WHEN T1.item_type = 1 THEN T2."name"
WHEN T1.item_type = 2 THEN T3."name"
ELSE '' END AS "name"
, CASE
WHEN T1.item_type = 1 THEN T2.py_str
WHEN T1.item_type = 2 THEN T3.py_str
ELSE '' END AS py_str
, CASE
WHEN T1.item_type = 1 THEN T2.wb_str
WHEN T1.item_type = 2 THEN T3.wb_str
ELSE '' END AS wb_str
, CASE
WHEN T1.item_type = 1 THEN T2.yb_no
WHEN T1.item_type = 2 THEN T3.yb_no
ELSE '' END AS yb_no
, T1.tenant_id
, T1.delete_flag
, T1.create_by
, T1.create_time
, T1.update_by
, T1.update_time
FROM nenu_gf_ratio_application T1
LEFT JOIN med_medication_definition T2
ON T2.id = T1.definition_id
LEFT JOIN wor_activity_definition T3
ON T3.id = T1.definition_id
WHERE T1.delete_flag = '0'
ORDER BY T1.id DESC) AS T
${ew.customSqlSegment}
</select>
<select id="selectGfRatioApplicationDefinitionSelectPage"
resultType="com.openhis.web.nenu.dto.GfRatioApplicationDefinitionSelectDto">
SELECT T.id
, T.bus_no
, T."name"
, T.yb_no
, T.chrgitm_lv
, T.py_str
, T.wb_str
, T.manufacturer_text
, T.total_volume
, T.tenant_id
, T.delete_flag
, T.create_by
, T.create_time
, T.update_by
, T.update_time
from (SELECT T1.id
, T1.bus_no
, T1."name"
, T1.yb_no
, T1.chrgitm_lv
, T1.py_str
, T1.wb_str
<choose>
<when test="itemType == 1">
, T1.manufacturer_text
, T2.total_volume
</when>
<otherwise>
, '' AS manufacturer_text
, '' AS total_volume
</otherwise>
</choose>
, T1.tenant_id
, T1.delete_flag
, T1.create_by
, T1.create_time
, T1.update_by
, T1.update_time
FROM
<choose>
<when test="itemType == 1">
med_medication_definition T1
LEFT JOIN med_medication T2
ON T2.medication_def_id = T1.id
</when>
<when test="itemType == 2">
wor_activity_definition T1
</when>
<otherwise>
wor_activity_definition T1
</otherwise>
</choose>
WHERE T1.delete_flag = '0'
ORDER BY T1.bus_no) AS T
${ew.customSqlSegment}
</select>
</mapper>

View File

@@ -0,0 +1,73 @@
<?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.nenu.mapper.GfRatioManageAppMapper">
<select id="selectGfIndividualRatioPage" resultType="com.openhis.web.nenu.dto.GfIndividualRatioDto">
SELECT T.id
, T.item_type
, T.self_ratio
, T.twice_ratio
, T.start_date
, T.end_date
, T.bus_no
, T.name
, T.py_str
, T.wb_str
, T.yb_no
, T.chrgitm_lv
, T.tenant_id
, T.delete_flag
, T.create_by
, T.create_time
, T.update_by
, T.update_time
from (SELECT T1.id
, T1.item_type
, T1.self_ratio
, T1.twice_ratio
, T1.start_date
, T1.end_date
, CASE
WHEN T1.item_type = 1 THEN T2.bus_no
WHEN T1.item_type = 2 THEN T3.bus_no
ELSE '' END AS bus_no
, CASE
WHEN T1.item_type = 1 THEN T2."name"
WHEN T1.item_type = 2 THEN T3."name"
ELSE '' END AS "name"
, CASE
WHEN T1.item_type = 1 THEN T2.py_str
WHEN T1.item_type = 2 THEN T3.py_str
ELSE '' END AS py_str
, CASE
WHEN T1.item_type = 1 THEN T2.wb_str
WHEN T1.item_type = 2 THEN T3.wb_str
ELSE '' END AS wb_str
, CASE
WHEN T1.item_type = 1 THEN T2.yb_no
WHEN T1.item_type = 2 THEN T3.yb_no
ELSE '' END AS yb_no
, CASE
WHEN T1.item_type = 1 THEN T2.chrgitm_lv
WHEN T1.item_type = 2 THEN T3.chrgitm_lv
ELSE 0 END AS chrgitm_lv
, T1.tenant_id
, T1.delete_flag
, T1.create_by
, T1.create_time
, T1.update_by
, T1.update_time
FROM nenu_gf_ratio T1
LEFT JOIN med_medication_definition T2
ON T2.id = T1.definition_id
LEFT JOIN wor_activity_definition T3
ON T3.id = T1.definition_id
WHERE T1.delete_flag = '0'
AND T1.ratio_type = 2
ORDER BY T1.id DESC) AS T
${ew.customSqlSegment}
</select>
</mapper>

View File

@@ -0,0 +1,68 @@
<?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.nenu.mapper.GfStudentListAppMapper">
<select id="selectGfStudentListPage" resultType="com.openhis.web.nenu.dto.GfStudentListDto">
SELECT T.id
, T.name
, T.py_str
, T.wb_str
, T.gender
, T.age
, T.student_id
, T.id_number
, T.phone
, T.college
, T.major
, T.education_level
, T.enrollment_date
, T.graduation_date
, T.grade
, T.study_mode
, T.student_status
, T.physical_exam_result
, T.counselor
, T.counselor_phone
, T.patient_id
, T.tenant_id
, T.delete_flag
, T.create_by
, T.create_time
, T.update_by
, T.update_time
from (SELECT T1.id
, T1.name
, T1.py_str
, T1.wb_str
, T1.gender
, T1.age
, T1.student_id
, T1.id_number
, T1.phone
, T1.college
, T1.major
, T1.education_level
, T1.enrollment_date
, T1.graduation_date
, T1.grade
, T1.study_mode
, T1.student_status
, T1.physical_exam_result
, T1.counselor
, T1.counselor_phone
, T1.patient_id
, T1.tenant_id
, T1.delete_flag
, T1.create_by
, T1.create_time
, T1.update_by
, T1.update_time
FROM adm_patient_student AS T1
WHERE T1.delete_flag = '0'
ORDER BY T1.id DESC) AS T
${ew.customSqlSegment}
</select>
</mapper>

View File

@@ -10,8 +10,7 @@
ii.patient_name,
ii.patient_py_str,
ii.patient_wb_str,
ii.birth_date,
ii.status_enum
ii.birth_date
FROM (
SELECT T1.tenant_id,
T1.id AS encounter_id,
@@ -21,8 +20,7 @@
T2."name" AS patient_name,
T2.py_str AS patient_py_str,
T2.wb_str AS patient_wb_str,
T2.birth_date,
T3.status_enum
T2.birth_date
FROM adm_encounter AS T1
INNER JOIN adm_patient AS T2
ON T1.patient_id = T2.id
@@ -32,6 +30,7 @@
AND T3.refund_service_id IS NULL
AND T3.delete_flag = '0'
WHERE T1.class_enum = #{amb}
AND T3.status_enum IN (#{completed},#{cancelled})
AND T1.delete_flag = '0'
GROUP BY T1.tenant_id,
T1.id,
@@ -41,8 +40,7 @@
T2.name,
T2.py_str,
T2.wb_str,
T2.birth_date,
T3.status_enum
T2.birth_date
ORDER BY T1.bus_no DESC
) AS ii
${ew.customSqlSegment}
@@ -245,7 +243,7 @@
ap.gender_enum,
ap.birth_date,
wad.NAME AS activity_name,
SUBSTRING(wad.bus_no FROM 3) AS bus_no,
SUBSTRING(wsr.bus_no FROM 3) AS bus_no,
aper.name AS practitioner_name,
ao.name AS org_name
FROM wor_service_request AS wsr

View File

@@ -0,0 +1,11 @@
<?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.ChangePriceMapper">
<!-- 查询药品信息集合 -->
<select id="searchMedicationList" resultType="com.openhis.medication.domain.MedicationDefinition">
SELECT *
FROM med_medication_definition medication_def
-- INNER JOIN med_medication medication ON medication_def.id = medication.medication_def_id
-- where medication.id = #{medicationId} and (name_en like '%ac%' or py_str like '%ac%');
</select>
</mapper>

View File

@@ -4,63 +4,65 @@
<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.encounter_bus_no
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,
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}
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,

View File

@@ -38,6 +38,12 @@
togpd.quantity,
togpd.unit_code,
sdd.dict_label AS unit_code_name,
togpd.dose,
togpd.rate_code,
togpd.method_code,
togpd.dose_quantity,
togpd.group_id,
togpd.dispense_per_duration,
CASE
WHEN togpd.order_definition_table = 'med_medication_definition' THEN
med.NAME

View File

@@ -19,43 +19,7 @@
T1.bus_no AS encounter_no,
T1.reception_time,
T1.organization_id AS department_id,
T2.gender_enum,
T2.name AS patient_name,
T2.wb_str AS patient_wb_str,
T2.py_str AS patient_py_str,
T2.id_card,
T2.birth_date,
T3.name AS department_name,
T4.status_enum
FROM adm_encounter AS T1
INNER JOIN adm_patient AS 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'
INNER JOIN med_medication_dispense AS T4
ON T4.encounter_id = T1.id
AND T4.delete_flag = '0'
INNER JOIN med_medication_request AS T5
ON T4.med_req_id = T5.id
AND T5.delete_flag = '0'
WHERE
<if test="statusEnum == null">
T4.status_enum IN (#{inProgress},#{completed},#{preparation},#{prepared})
</if>
<if test="statusEnum == 3">
T4.status_enum IN (#{inProgress},#{preparation},#{prepared})
</if>
<if test="statusEnum == 4">
T4.status_enum = #{completed}
</if>
UNION
SELECT T1.tenant_id,
T1.id AS encounter_id,
T1.bus_no AS encounter_no,
T1.reception_time,
T1.organization_id AS department_id,
T1.class_enum,
T2.gender_enum,
T2.name AS patient_name,
T2.wb_str AS patient_wb_str,

View File

@@ -25,7 +25,7 @@
A.refund_unit_code,
A.dispense_time,
A.location_id,
A.tenant_id
A.item_table
from (
WITH refund_info AS (
SELECT mmr.refund_medicine_id,
@@ -83,7 +83,8 @@
ri.total_price AS refund_price,
wii.supplier_id,
sup.name AS supplier_name,
mmd.tenant_id
mmd.tenant_id,
#{medMedicationDefinition} AS item_table
FROM med_medication_dispense mmd
LEFT JOIN med_medication_request mmr
ON mmd.med_req_id = mmr.id
@@ -117,7 +118,7 @@
WHERE mmd.status_enum = #{completed}
AND mmr.status_enum = #{agree}
<if test="flg != 1">
AND mmd.dispense_enum = #{amb}
AND ae.class_enum = #{amb}
</if>
AND mmd.delete_flag = '0'
UNION
@@ -145,7 +146,8 @@
ri.total_price AS refund_price,
wii.supplier_id,
sup.name AS supplier_name,
mmd.tenant_id
mmd.tenant_id,
#{admDeviceDefinition} AS item_table
FROM wor_device_dispense mmd
LEFT JOIN wor_device_request mmr
ON mmd.device_req_id = mmr.id
@@ -179,17 +181,17 @@
WHERE mmd.status_enum = #{completed}
AND mmr.status_enum = #{agree}
<if test="flg != 1">
AND mmd.dispense_category_enum = #{amb}
AND ae.class_enum = #{amb}
</if>
AND mmd.delete_flag = '0'
) AS A
${ew.customSqlSegment}
<choose>
<when test="dispenseEnum == 1">
ORDER BY A.practitioner_name, A.dispense_time DESC
ORDER BY A.dispense_time DESC
</when>
<when test="dispenseEnum == 2">
ORDER BY A.outpatient_no, A.prescription_no
ORDER BY A.outpatient_no DESC, A.prescription_no DESC
</when>
</choose>
</select>

View File

@@ -63,7 +63,7 @@
ORDER BY ii.reception_time DESC
</select>
<select id="selectInventoryInfoList"
resultType="com.openhis.web.pharmacymanage.dto.InventoryDto">
resultType="com.openhis.web.pharmacymanage.dto.UnDispenseInventoryDto">
<choose>
<when test="(medDispenseIdList != null and !medDispenseIdList.isEmpty())
or (devDispenseIdList != null and !devDispenseIdList.isEmpty())">
@@ -72,6 +72,8 @@
T1.id AS dispense_id,
T1.unit_code AS dispense_unit,
T1.quantity,
T1.location_id,
T1.lot_number,
T1.dispense_quantity,
T2.id AS inventory_id,
T2.unit_code AS inventory_unit_code,
@@ -106,6 +108,8 @@
T4.id AS dispense_id,
T4.unit_code AS dispense_unit,
T4.quantity,
T4.location_id,
T4.lot_number,
T4.dispense_quantity,
T2.id AS inventory_id,
T2.unit_code AS inventory_unit_code,

View File

@@ -88,9 +88,9 @@
LEFT JOIN adm_patient AS T11
ON T11.id = T8.patient_id
AND T11.delete_flag = '0'
WHERE T1.item_table = #{medicationDefinition}
AND T1.type_enum = #{typeEnum}
AND T1.category_enum = #{categoryEnum}
WHERE T1.item_table = 'med_medication_definition'
AND T1.type_enum = 23
AND T1.category_enum = 21
AND T1.delete_flag = '0'
GROUP BY T1.tenant_id,
T1.bus_no,
@@ -113,325 +113,72 @@
T7.name,
T1.apply_time,
T1.status_enum
UNION
SELECT T1.tenant_id,
T1.bus_no,--单据号
T1.id AS request_id,--供应请求id
T2.id AS delivery_id,--供应发放id
T1.item_table,--项目表
T3.name AS item_name,--项目名
T1.item_id,--项目id
T3.size AS total_volume,--规格
T1.lot_number,--批号
T1.item_quantity AS quantity,--请求数
T1.unit_code,--单位
T3.unit_code AS max_unit_code,--常规单位
T3.min_unit_code,--最小单位
T1.source_location_id,--发放地点
T5.name AS source_location_name,
T1.purpose_location_id AS org_id,--申请科室
T6.name AS org_name,
T1.applicant_id,--领药人
T7.name AS applicant_name,
T1.apply_time,--申请时间
T1.status_enum,--状态
STRING_AGG(CONCAT(T11.name, ' : ', T12.inpatient_bed), ',' ORDER BY T11.name,
T12.inpatient_bed) AS patient_info -- 患者信息
FROM wor_supply_request T1
LEFT JOIN wor_supply_delivery AS T2
ON T2.request_id = T1.id
AND T2.delete_flag = '0'
LEFT JOIN adm_device_definition AS T3
ON T1.item_id = T3.id
AND T3.delete_flag = '0'
LEFT JOIN adm_device AS T4
ON T3.id = T4.device_def_id
AND T4.delete_flag = '0'
LEFT JOIN adm_location AS T5
ON T1.source_location_id = T5.id
AND T5.delete_flag = '0'
LEFT JOIN adm_organization AS T6
ON T1.purpose_location_id = T6.id
AND T6.delete_flag = '0'
LEFT JOIN adm_practitioner AS T7
ON T1.applicant_id = T7.id
AND T7.delete_flag = '0'
LEFT JOIN (SELECT id,
encounter_id,
patient_id
FROM (SELECT id,
encounter_id,
patient_id,
ROW_NUMBER() OVER (PARTITION BY encounter_id ORDER BY id) AS rn
FROM wor_device_dispense
WHERE delete_flag = '0') t
WHERE rn = 1) AS T8
ON CONCAT(',', T2.based_on_ids, ',') LIKE CONCAT('%,', T8.id, ',%')
LEFT JOIN (SELECT STRING_AGG(T10.NAME, '_' ORDER BY T10.bus_no) AS inpatient_bed, T9.encounter_id
FROM adm_encounter_location T9
LEFT JOIN adm_location AS T10
ON T10.id = T9.location_id
AND T10.delete_flag = '0'
WHERE T9.status_enum = '2'
AND T9.delete_flag = '0'
GROUP BY T9.encounter_id) AS T12 ON T8.encounter_id = T12.encounter_id
LEFT JOIN adm_patient AS T11
ON T11.id = T8.patient_id
AND T11.delete_flag = '0'
WHERE T1.item_table = #{deviceDefinition}
AND T1.type_enum = #{typeEnum}
AND T1.category_enum = #{categoryEnum}
AND T1.delete_flag = '0'
GROUP BY T1.tenant_id,
T1.bus_no,
T1.id,
T2.id,
T1.item_table,
T3.name,
T1.item_id,
T3.size,
T1.lot_number,
T1.item_quantity,
T1.unit_code,
T3.unit_code,
T3.min_unit_code,
T1.source_location_id,
T5.name,
T1.purpose_location_id,
T6.name,
T1.applicant_id,
T7.name,
T1.apply_time,
T1.status_enum) AS ii
) AS ii
${ew.customSqlSegment}
</select>
<!-- <select id="selectEncounterInfoListPage" resultType="com.openhis.web.pharmacymanage.dto.InpatientMedicineEncounterInfoDto">-->
<!-- SELECT ii.tenant_id,-->
<!-- ii.org_id,-->
<!-- ii.therapy_enum,-->
<!-- ii.encounter_id,-->
<!-- ii.bus_no,-->
<!-- ii.patient_name,-->
<!-- ii.gender_enum,-->
<!-- ii.birth_date,-->
<!-- ii.inpatient_bed,-->
<!-- ii.effective_dose_start-->
<!-- FROM (SELECT T1.tenant_id,-->
<!-- T1.org_id, &#45;&#45;科室-->
<!-- T1.therapy_enum, &#45;&#45;治疗类型 1:临时医嘱,2:长期医嘱,3:备用医嘱   -->
<!-- T3.id AS encounter_id, &#45;&#45;就诊id-->
<!-- T3.bus_no, &#45;&#45;住院号-->
<!-- T2.name AS patient_name, &#45;&#45;患者姓名-->
<!-- T2.gender_enum, &#45;&#45;性别-->
<!-- T2.birth_date, &#45;&#45;生日-->
<!-- STRING_AGG(T5.NAME, '_' ORDER BY T5.bus_no) AS inpatient_bed, &#45;&#45;床位-->
<!-- MIN(T1.effective_dose_start) AS effective_dose_start &#45;&#45;请求开始时间-->
<!-- FROM med_medication_request AS T1-->
<!-- LEFT JOIN adm_patient AS T2-->
<!-- ON T1.patient_id = T2.id-->
<!-- AND T2.delete_flag = '0'-->
<!-- INNER JOIN adm_encounter AS T3-->
<!-- ON T1.encounter_id = T3.id-->
<!-- AND T3.class_enum = #{amb}-->
<!-- AND T3.status_enum = 5-->
<!-- AND T3.delete_flag = '0'-->
<!-- LEFT JOIN adm_encounter_location AS T4-->
<!-- ON T4.encounter_id = T3.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.delete_flag = '0'-->
<!-- GROUP BY T1.tenant_id,-->
<!-- T1.org_id,-->
<!-- T1.therapy_enum,-->
<!-- T3.id,-->
<!-- T3.bus_no,-->
<!-- T2.name,-->
<!-- T2.gender_enum,-->
<!-- T2.birth_date) AS ii-->
<!-- ${ew.customSqlSegment}-->
<!-- </select>-->
<!-- <select id="selectPrescriptionInfoListPage" resultType="com.openhis.web.pharmacymanage.dto.InpatientMedicinePrescriptionInfoDto">-->
<!-- SELECT ii.tenant_id,-->
<!-- ii.request_id,&#45;&#45;药品请求id-->
<!-- ii.encounter_id,&#45;&#45;就诊id-->
<!-- ii.bus_no, &#45;&#45;单据号-->
<!-- ii.status_enum, &#45;&#45;状态-->
<!-- ii.patient_name,&#45;&#45;患者姓名-->
<!-- ii.medication_name,&#45;&#45;药品名-->
<!-- ii.effective_dose_start,&#45;&#45;医嘱开始时间-->
<!-- ii.effective_dose_end,&#45;&#45;医嘱结束时间-->
<!-- ii.req_authored_time &#45;&#45;生成日期-->
<!-- FROM (SELECT T1.tenant_id,-->
<!-- T1.id AS request_id,&#45;&#45;药品请求id-->
<!-- T1.encounter_id,&#45;&#45;就诊id-->
<!-- T1.bus_no, &#45;&#45;单据号-->
<!-- T1.status_enum, &#45;&#45;状态-->
<!-- T2.name AS patient_name,&#45;&#45;患者姓名-->
<!-- T3.name AS medication_name,&#45;&#45;药品名-->
<!-- T1.effective_dose_start,&#45;&#45;医嘱开始时间-->
<!-- T1.effective_dose_end,&#45;&#45;医嘱结束时间-->
<!-- T1.req_authored_time &#45;&#45;生成日期-->
<!-- FROM med_medication_request AS T1-->
<!-- LEFT JOIN adm_patient AS T2-->
<!-- ON T1.patient_id = T2.id-->
<!-- AND T2.delete_flag = '0'-->
<!-- LEFT JOIN med_medication_definition AS T3-->
<!-- ON T1.medication_id = T3.id-->
<!-- AND T3.delete_flag = '0'-->
<!-- WHERE T1.encounter_id IN-->
<!-- <foreach collection="encounterIdList" item="item" separator="," open="(" close=")">-->
<!-- #{item}-->
<!-- </foreach>-->
<!-- AND T1.delete_flag = '0'-->
<!-- GROUP BY T1.id,-->
<!-- T2.name,-->
<!-- T3.name) AS ii-->
<!-- ${ew.customSqlSegment}-->
<!-- </select>-->
<!-- <select id="selectMedicationSummaryHeadInfo" resultType="com.openhis.web.pharmacymanage.dto.InpatientMedicineSummaryInfoDtoryInfoDto SELECT T2.dispense_time,&#45;&#45;发药日期-->
<!-- T2.rec_practitioner_id,&#45;&#45;领药人-->
<!-- T3.name AS rec_practitioner_name,-->
<!-- SUM(T5.total_price) AS totalPrice,&#45;&#45;金额合计-->
<!-- COUNT(DISTINCT T1.medication_id) AS medVarietyCount,&#45;&#45;药品种数-->
<!-- COUNT(T1.id) AS aggregated_order_count,&#45;&#45;汇总医嘱数-->
<!-- T4.name AS department&#45;&#45;科室病区-->
<!-- FROM med_medication_request AS T1-->
<!-- LEFT JOIN med_medication_dispense AS T2-->
<!-- ON T2.med_req_id = T1.id-->
<!-- AND T2.delete_flag = '0'-->
<!-- LEFT JOIN adm_practitioner AS T3-->
<!-- ON T2.rec_practitioner_id = T3.id-->
<!-- AND T3.delete_flag = '0'-->
<!-- LEFT JOIN adm_organization AS T4-->
<!-- ON T3.org_id = T4.id-->
<!-- AND T4.delete_flag = '0'-->
<!-- LEFT JOIN adm_charge_item AS T5-->
<!-- ON T1.id = T5.service_id-->
<!-- AND T5.service_table = #{medicationRequest}-->
<!-- AND T5.delete_flag = '0'-->
<!-- WHERE T1.id IN-->
<!-- <foreach collection="requestIdList" item="item" separator="," open="(" close=")">-->
<!-- #{item}-->
<!-- </foreach>-->
<!-- AND T1.delete_flag = '0'-->
<!-- GROUP BY T2.dispense_time,-->
<!-- T2.rec_practitioner_id,-->
<!-- T3.name,-->
<!-- T4.name-->
<!-- </select>-->
<!-- <select id="selectMedicationSummaryInfo" resultType="com.openhis.web.pharmacymanage.dto.MedicineSummaryInfoDtoECT T2.name AS med_name,&#45;&#45;药品名-->
<!-- T3.total_volume,&#45;&#45;规格-->
<!-- T5.name AS supplier_name,&#45;&#45;供应商-->
<!-- CASE T1.unit_code-->
<!-- WHEN T2.min_unit_code THEN T8.amount * T2.part_percent-->
<!-- ELSE T8.amount END AS purchase_price,&#45;&#45;采购价-->
<!-- CASE T1.unit_code-->
<!-- WHEN T2.min_unit_code THEN T9.amount * T2.part_percent-->
<!-- ELSE T9.amount END AS unit_price,&#45;&#45;单价-->
<!-- T1.lot_number,&#45;&#45;批号-->
<!-- CASE T1.unit_code-->
<!-- WHEN T2.min_unit_code THEN T4.quantity-->
<!-- ELSE T4.quantity/T2.part_percent END AS stock_quantity,&#45;&#45;库存数-->
<!-- SUM(CASE WHEN T1.status_enum = #{active} THEN T1.quantity ELSE 0 END) AS pending_quantity,&#45;&#45;待发药数-->
<!-- SUM(CASE WHEN T1.status_enum = #{completed} THEN T1.quantity ELSE 0 END) AS dispensed_quantity,&#45;&#45;已发药数-->
<!-- SUM(CASE WHEN T1.status_enum = #{cancelled} THEN T1.quantity ELSE 0 END) AS returned_quantity,&#45;&#45;已退药数-->
<!-- T1.unit_code, &#45;&#45;单位-->
<!-- T1.status_enum,&#45;&#45;状态-->
<!-- T1.trace_no&#45;&#45;追溯码-->
<!-- FROM med_medication_request AS T1-->
<!-- LEFT JOIN med_medication_definition AS T2-->
<!-- ON T1.medication_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 T4.item_id = T2.id-->
<!-- AND T4.item_table = #{medicationDefinition}-->
<!-- AND T1.lot_number = T4.lot_number-->
<!-- AND T4.delete_flag = '0'-->
<!-- LEFT JOIN adm_supplier AS T5-->
<!-- ON T4.supplier_id = T5.id-->
<!-- AND T5.delete_flag = '0'-->
<!-- LEFT JOIN adm_charge_item AS T6-->
<!-- ON T6.service_id = T1.id-->
<!-- AND T6.service_table = #{medicationRequest}-->
<!-- AND T6.delete_flag = '0'-->
<!-- LEFT JOIN adm_charge_item_definition T7-->
<!-- ON T7.instance_id = T2.id-->
<!-- AND T7.instance_table = #{medicationDefinition}-->
<!-- AND T7.delete_flag = '0'-->
<!-- LEFT JOIN adm_charge_item_def_detail T8-->
<!-- ON T8.definition_id = T7.id-->
<!-- AND T8.condition_code = '1'&#45;&#45;1:批号进价-->
<!-- AND T8.condition_value = T1.lot_number-->
<!-- AND T8.delete_flag = '0'-->
<!-- LEFT JOIN adm_charge_item_def_detail T9-->
<!-- ON T9.definition_id = T7.id-->
<!-- AND T9.condition_code = '5'&#45;&#45;1:批号售价-->
<!-- AND T9.condition_value = T1.lot_number-->
<!-- AND T9.delete_flag = '0'-->
<!-- WHERE T1.id IN-->
<!-- <foreach collection="requestIdList" item="item" separator="," open="(" close=")">-->
<!-- #{item}-->
<!-- </foreach>-->
<!-- AND T1.delete_flag = '0'-->
<!-- GROUP BY T2.name,-->
<!-- T3.total_volume,-->
<!-- T5.name,-->
<!-- T1.unit_code,-->
<!-- T2.min_unit_code,-->
<!-- T8.amount,-->
<!-- T2.part_percent,-->
<!-- T9.amount,-->
<!-- T1.lot_number,-->
<!-- T4.quantity,-->
<!-- T1.status_enum,-->
<!-- T1.trace_no-->
<!-- </select>-->
<!-- <select id="selectMedicationPatientInfoList" resultType="com.openhis.web.pharmacymanage.dto.InpatientMedicineEncounterInfoDto">-->
<!-- SELECT T3.bus_no,&#45;&#45;住院号-->
<!-- T4.name AS patient_name,&#45;&#45;患者姓名-->
<!-- T2.bus_no AS med_request_bus_no,&#45;&#45;发药单号-->
<!-- T6.name AS occurrence_name,&#45;&#45;发药人-->
<!-- T5.occurrence_time,&#45;&#45;发药时间-->
<!-- T2.status_enum&#45;&#45;状态-->
<!-- FROM wor_supply_request AS T1-->
<!-- INNER JOIN med_medication_request AS T2-->
<!-- ON T1.item_id = T2.id-->
<!-- AND T2.delete_flag = '0'-->
<!-- INNER JOIN adm_encounter AS T3-->
<!-- ON T2.encounter_id = T3.id-->
<!-- AND T3.delete_flag = '0'-->
<!-- LEFT JOIN adm_patient AS T4-->
<!-- ON T1.patient_id = T4.id-->
<!-- AND T4.delete_flag = '0'-->
<!-- LEFT JOIN wor_supply_delivery AS T5-->
<!-- ON T5.request_id = T1.id-->
<!-- AND T5.delete_flag = '0'-->
<!-- LEFT JOIN adm_practitioner AS T6-->
<!-- ON T5.practitioner_id = T6.id-->
<!-- AND T6.delete_flag = '0'-->
<!-- WHERE T1.bus_no = #{busNo}-->
<!-- AND T1.item_table = #{medicationRequest}-->
<!-- AND T1.delete_flag = '0'-->
<!-- GROUP BY T3.bus_no,-->
<!-- T4.name,-->
<!-- T2.bus_no,-->
<!-- T6.name,-->
<!-- T5.occurrence_time,-->
<!-- T2.status_enum-->
<!-- </select>-->
<select id="selectOrderInfo" resultType="com.openhis.web.pharmacymanage.dto.MedicineSummaryDto">
SELECT
li.bus_no,--单据号
li.request_id,--供应请求id
li.delivery_id,--供应发放id
li.item_table,--项目表
li.item_name,--项目名
li.item_id,--项目id
li.total_volume,--规格
li.lot_number,--批号
li.quantity,--请求数
li.unit_code,--单位
li.max_unit_code,--常规单位
li.min_unit_code,--最小单位
li.source_location_id,--发放地点
li.source_location_name,
li.org_id,--申请科室
li.org_name,
li.applicant_id,--领药人
li.applicant_name,
li.apply_time,--申请时间
li.status_enum--状态
FROM
(
SELECT
wsr.tenant_id,
wsr.bus_no,--单据号
wsd.request_id,--供应请求id
wsd.id AS delivery_id,--供应发放id
wsr.item_table,--项目表
mmd.name AS item_name,--项目名
wsr.item_id,--项目id
mm.total_volume,--规格
wsr.lot_number,--批号
wsr.item_quantity AS quantity,--请求数
wsr.unit_code,--单位
mmd.unit_code AS max_unit_code,--常规单位
mmd.min_unit_code,--最小单位
wsr.source_location_id,--发放地点
al.name AS source_location_name,
ao.id AS org_id,--申请科室
ao.name AS org_name,
wsr.applicant_id,--领药人
ap.name AS applicant_name,
wsr.apply_time,--申请时间
wsr.status_enum --状态
FROM
wor_supply_request AS wsr
LEFT JOIN adm_practitioner AS ap ON wsr.applicant_id = ap.ID
AND ap.delete_flag = '0'
LEFT JOIN wor_supply_delivery AS wsd ON wsd.request_id = wsr.ID
AND wsd.delete_flag = '0'
LEFT JOIN med_medication_definition AS mmd ON wsd.item_id = mmd.ID
AND mmd.delete_flag = '0'
LEFT JOIN med_medication AS mm ON mmd.ID = mm.medication_def_id
AND mm.delete_flag = '0'
LEFT JOIN adm_location AS al ON wsr.source_location_id = al.ID
AND al.delete_flag = '0'
LEFT JOIN adm_organization AS ao ON wsr.purpose_location_id = ao.ID
AND ao.delete_flag = '0'
WHERE wsr.delete_flag = '0'
) AS li
${ew.customSqlSegment}
</select>
</mapper>

View File

@@ -50,43 +50,6 @@
<if test="statusEnum == 4">
T4.status_enum = #{completed}
</if>
UNION
SELECT T1.tenant_id,
T1.id AS encounter_id,
T1.bus_no AS encounter_no,
T1.reception_time,
T1.organization_id AS department_id,
T1.class_enum,
T2.gender_enum,
T2.name AS patient_name,
T2.wb_str AS patient_wb_str,
T2.py_str AS patient_py_str,
T2.id_card,
T2.birth_date,
T3.name AS department_name,
T4.status_enum
FROM adm_encounter AS T1
INNER JOIN adm_patient AS 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'
INNER JOIN wor_device_dispense AS T4
ON T4.encounter_id = T1.id
AND T4.delete_flag = '0'
INNER JOIN wor_device_request AS T5
ON T4.device_req_id = T5.id
AND T5.delete_flag = '0'
WHERE <if test="statusEnum == null">
T4.status_enum IN (#{inProgress},#{completed},#{preparation},#{prepared})
</if>
<if test="statusEnum == 3">
T4.status_enum IN (#{inProgress},#{preparation},#{prepared})
</if>
<if test="statusEnum == 4">
T4.status_enum = #{completed}
</if>
) AS ii
${ew.customSqlSegment}
GROUP BY ii.encounter_id,
@@ -105,6 +68,7 @@
</select>
<select id="selectMedicineDispenseOrderPage" resultType="com.openhis.web.pharmacymanage.dto.ItemDispenseOrderDto">
SELECT ii.department_name,
ii.doctor_id,
ii.doctor_name,
ii.item_type,
ii.condition_name,
@@ -138,6 +102,7 @@
ii.manufacturer_text,
ii.trace_no
FROM ( SELECT T8."name" AS department_name,
T9.id AS doctor_id,
T9."name" AS doctor_name,
T3.category_code AS item_type,
T7."name" AS condition_name,

View File

@@ -136,7 +136,7 @@
LEFT JOIN adm_location AS al ON al.ID = T1.perform_location AND al.delete_flag = '0'
LEFT JOIN cli_condition AS cc ON cc.id = T1.condition_id AND cc.delete_flag = '0'
LEFT JOIN cli_condition_definition AS ccd ON ccd.id = cc.definition_id
WHERE T1.delete_flag = '0' AND T1.tcm_flag = 0
WHERE T1.delete_flag = '0' AND T1.tcm_flag = 0 AND T1.generate_source_enum = #{generateSourceEnum}
<if test="historyFlag == '0'.toString()">
AND T1.encounter_id = #{encounterId}
</if>
@@ -183,7 +183,7 @@
ON T3.service_id = T1.ID AND T3.delete_flag = '0' AND
T3.service_table = #{WOR_DEVICE_REQUEST}
LEFT JOIN adm_location AS al ON al.ID = T1.perform_location AND al.delete_flag = '0'
WHERE T1.delete_flag = '0'
WHERE T1.delete_flag = '0' AND T1.generate_source_enum = #{generateSourceEnum}
<if test="historyFlag == '0'.toString()">
AND T1.encounter_id = #{encounterId}
</if>
@@ -230,7 +230,7 @@
LEFT JOIN adm_charge_item AS T3 ON T3.service_id = T1.ID AND T3.delete_flag = '0' AND
T3.service_table = #{WOR_SERVICE_REQUEST}
LEFT JOIN adm_organization AS ao ON ao.ID = T1.org_id AND ao.delete_flag = '0'
WHERE T1.delete_flag = '0'
WHERE T1.delete_flag = '0' AND T1.generate_source_enum = #{generateSourceEnum}
AND T1.based_on_table is null
AND T1.parent_id IS NULL
<if test="historyFlag == '0'.toString()">

View File

@@ -37,4 +37,14 @@
AND wsr.prescription_no = #{prescriptionNo}
</select>
<select id="getActivityOrganizationConfig"
resultType="com.openhis.web.regdoctorstation.dto.ActivityOrganizationConfigDto">
SELECT organization_id,
activity_definition_id
FROM adm_organization_location
WHERE delete_flag = '0'
AND (CURRENT_TIME :: TIME ( 6 ) BETWEEN start_time AND end_time)
AND activity_category_code = #{activityCategoryCode}
</select>
</mapper>

View File

@@ -101,6 +101,7 @@
LEFT JOIN adm_encounter T2
ON T2.id = T1.encounter_id
AND T2.delete_flag = '0'
AND T2.class_enum = 2
LEFT JOIN adm_patient AS T15
ON T1.patient_id = T15.id
AND T15.delete_flag = '0'

View File

@@ -4,6 +4,7 @@
<select id="selectProductReportPage"
resultType="com.openhis.web.reportmanage.dto.InventoryProductReportPageDto">
<<<<<<< HEAD
SELECT *
FROM (
SELECT T8.id, --ID
@@ -155,5 +156,132 @@
</when>
</choose>
</if>
=======
-- 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, --小包装单位
-- 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}
>>>>>>> upstream/develop
</select>
</mapper>