解决合并冲突

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

@@ -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}