Commit 190a9f00 authored by tianbo's avatar tianbo

refactor(amos-boot-module-jg-api): 优化维保合同查询效率

- 使用 COALESCE 替代 IFNULL- 用 to_char 替代 date_format - 优化了监管单位查询条件,使用 HAVING子句
parent 39010ac1
...@@ -16,16 +16,6 @@ ...@@ -16,16 +16,6 @@
</delete> </delete>
<sql id="page_list"> <sql id="page_list">
<![CDATA[/*+ set(query_dop 16)*/ ]]>
WITH equip_data as (
SELECT
equip_transfer_id as applyId,
group_concat(distinct si."ORG_BRANCH_CODE") as orgBranchCodes
FROM
tzs_jg_maintenance_contract_eq ede
LEFT JOIN idx_biz_jg_supervision_info si ON si."RECORD" = ede.equ_id
GROUP BY equip_transfer_id
)
SELECT SELECT
tjmc.sequence_nbr, tjmc.sequence_nbr,
tjmc.apply_no, tjmc.apply_no,
...@@ -49,11 +39,20 @@ ...@@ -49,11 +39,20 @@
tjmc.next_execute_user_ids, tjmc.next_execute_user_ids,
tjmc.next_task_id, tjmc.next_task_id,
tjmc.cancel_reason, tjmc.cancel_reason,
date_format(tjmc.create_date,'%Y-%m-%d') AS createDate, to_char(tjmc.create_date, 'YYYY-MM-DD') AS createDate,
concat(date_format(IFNULL(inform_start, null),'%Y-%m-%d'),' ~ ',date_format(IFNULL(inform_end, null),'%Y-%m-%d')) as informStartAndEnd concat(
to_char(COALESCE(tjmc.inform_start, null), 'YYYY-MM-DD'),
' ~ ',
to_char(COALESCE(tjmc.inform_end, null), 'YYYY-MM-DD')
) as informStartAndEnd,
(
SELECT STRING_AGG(DISTINCT si."ORG_BRANCH_CODE", ',')
FROM tzs_jg_maintenance_contract_eq ede
LEFT JOIN idx_biz_jg_supervision_info si ON si."RECORD" = ede.equ_id
WHERE ede.equip_transfer_id = tjmc.sequence_nbr
) AS orgBranchCodes
FROM FROM
tzs_jg_maintenance_contract tjmc tzs_jg_maintenance_contract tjmc
left join equip_data ed on ed.applyId = tjmc.sequence_nbr
</sql> </sql>
<select id="getContractList" resultType="com.yeejoin.amos.boot.module.jg.api.dto.JgMaintenanceContractDto"> <select id="getContractList" resultType="com.yeejoin.amos.boot.module.jg.api.dto.JgMaintenanceContractDto">
...@@ -112,11 +111,12 @@ ...@@ -112,11 +111,12 @@
-- 监管单位用 -- 监管单位用
<if test="contractDto.orgBranchCode != '' and contractDto.orgBranchCode != null"> <if test="contractDto.orgBranchCode != '' and contractDto.orgBranchCode != null">
and tjmc.instance_id <![CDATA[<>]]> '' and tjmc.instance_id <![CDATA[<>]]> ''
AND EXISTS ( HAVING (
SELECT 1 SELECT STRING_AGG(DISTINCT si."ORG_BRANCH_CODE", ',')
FROM unnest(string_to_array(ed.orgBranchCodes, ',')) AS elem FROM tzs_jg_maintenance_contract_eq ede
WHERE elem LIKE concat(#{contractDto.orgBranchCode}, '%') LEFT JOIN idx_biz_jg_supervision_info si ON si."RECORD" = ede.equ_id
) WHERE ede.equip_transfer_id = tjmc.sequence_nbr
) LIKE concat('%', #{contractDto.orgBranchCode}, '%')
</if> </if>
-- 数据过滤结束 ---------------------------------------------------- -- 数据过滤结束 ----------------------------------------------------
</where> </where>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment