feat: There is no way the, TO optimize the query
This commit is contained in:
+200
-39
@@ -544,53 +544,214 @@
|
||||
</trim>
|
||||
</sql>
|
||||
|
||||
<sql id="SarStandardsInfo_in_left">
|
||||
left join SAR_STAND_MENU ON SAR_STANDARDS_INFO.id = SAR_STAND_MENU.stand_id
|
||||
where 1=1 and SAR_STANDARDS_INFO.valid_flag=0
|
||||
<trim suffixOverrides=",">
|
||||
<!-- 标准分类 国内标准,国外标准 必要搜索项 -->
|
||||
<if test='standType != null and standType != "ALL"'>
|
||||
and stand_type = #{standType}
|
||||
</if>
|
||||
<!-- 基本搜索项 -->
|
||||
<!-- 国家、地区 -->
|
||||
<if test="country != null and country != ''">
|
||||
and country = #{country}
|
||||
</if>
|
||||
<!-- 标准编号111 -->
|
||||
<if test="standNumber != null and standNumber != ''">
|
||||
and (
|
||||
(concat(SAR_STANDARDS_INFO.STAND_SORT,' ',SAR_STANDARDS_INFO.STAND_NUMBER,'-',
|
||||
SAR_STANDARDS_INFO.STAND_YEAR) like concat(concat('%',#{standNumber}),'%') and SAR_STANDARDS_INFO.STAND_YEAR != '')
|
||||
or (concat(SAR_STANDARDS_INFO.STAND_SORT,' ',SAR_STANDARDS_INFO.STAND_NUMBER) like concat(concat('%',#{standNumber}),'%')
|
||||
and SAR_STANDARDS_INFO.STAND_YEAR = '')
|
||||
or (stand_name like concat(concat('%',#{standNumber}),'%'))
|
||||
)
|
||||
</if>
|
||||
<!-- 标准名称 -->
|
||||
<if test="standName != null and standName != ''">
|
||||
and stand_name like concat(concat('%',#{standName}),'%')
|
||||
or STAND_NUMBER like concat(concat('%',#{standName}),'%')
|
||||
or STAND_YEAR like concat(concat('%',#{standName}),'%')
|
||||
or STAND_SORT like concat(concat('%',#{standName}),'%')
|
||||
</if>
|
||||
<if test="standEnName != null and standEnName != ''">
|
||||
and stand_en_name like concat(concat('%',#{standEnName}),'%')
|
||||
</if>
|
||||
<!-- 标准状态 -->
|
||||
<if test="standState != null and standState != ''">
|
||||
and stand_state = #{standState}
|
||||
</if>
|
||||
<!-- 高级检索项 -->
|
||||
<!-- 标准性质 -->
|
||||
<if test="standNature != null and standNature != ''">
|
||||
and stand_nature = #{standNature}
|
||||
</if>
|
||||
<!-- 代替标准 允许输入的时候输入多个-->
|
||||
<if test="replaceStandNum != null and replaceStandNum != ''">
|
||||
and replace_stand_num like concat(concat('%',#{replaceStandNum}),'%')
|
||||
</if>
|
||||
<!-- 被代替标准 -->
|
||||
<if test="replacedStandNum != null and replacedStandNum != ''">
|
||||
and replaced_stand_num like concat(concat('%',#{replacedStandNum}),'%')
|
||||
</if>
|
||||
<if test="isRelateAccess != null and isRelateAccess != ''" >
|
||||
and is_relate_access = #{isRelateAccess}
|
||||
</if>
|
||||
<!-- 目录判断 -->
|
||||
<if test="menuId != null and menuId !='nomenu' and menuAllChildrenIdList != null">
|
||||
and SAR_STAND_MENU.MENU_ID in
|
||||
<foreach collection="menuAllChildrenIdList" index="index" item="item" open="(" separator="," close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
|
||||
</if>
|
||||
<!-- 游离态标准查询 -->
|
||||
<!-- <if test="menuId != null and menuId =='nomenu' and standType =='INLAND'">
|
||||
and SAR_STAND_MENU.MENU_ID = (select TS_RESOURCE.id from TS_RESOURCE WHERE parent_id is null and sor_divide
|
||||
='INLAND_STAND')
|
||||
<!–-查询游离态标准,编号和名称是分开的 –>
|
||||
<if test="standNumber != null">
|
||||
and ((concat(SAR_STANDARDS_INFO.STAND_SORT,' ',SAR_STANDARDS_INFO.STAND_NUMBER,'-',
|
||||
SAR_STANDARDS_INFO.STAND_YEAR) like concat(concat('%',#{standNumber}),'%') and SAR_STANDARDS_INFO.STAND_YEAR is not null)
|
||||
or (concat(SAR_STANDARDS_INFO.STAND_SORT,' ',SAR_STANDARDS_INFO.STAND_NUMBER) like concat(concat('%',#{standNumber}),'%')
|
||||
and SAR_STANDARDS_INFO.STAND_YEAR is null))
|
||||
</if>
|
||||
</if>
|
||||
<if test="menuId != null and menuId =='nomenu' and standType =='FOREIGN'">
|
||||
and SAR_STAND_MENU.MENU_ID = (select TS_RESOURCE.id from TS_RESOURCE WHERE parent_id is null and sor_divide
|
||||
='FOREIGN_STAND')
|
||||
<if test="standNumber != null">
|
||||
and ((concat(SAR_STANDARDS_INFO.STAND_SORT,' ',SAR_STANDARDS_INFO.STAND_NUMBER,'-',
|
||||
SAR_STANDARDS_INFO.STAND_YEAR) like concat(concat('%',#{standNumber}),'%') and SAR_STANDARDS_INFO.STAND_YEAR is not null)
|
||||
or (concat(SAR_STANDARDS_INFO.STAND_SORT,' ',SAR_STANDARDS_INFO.STAND_NUMBER) like concat(concat('%',#{standNumber}),'%')
|
||||
and SAR_STANDARDS_INFO.STAND_YEAR is null))
|
||||
</if>
|
||||
</if> -->
|
||||
<!-- 当第一次进入页面未选择记录时-->
|
||||
<!-- <if test="(menuId == null or menuId =='') and standType =='INLAND'">-->
|
||||
<!-- and SAR_STAND_MENU.MENU_ID in (-->
|
||||
<!-- select TS_RESOURCE.id from TS_RESOURCE start with id=(select TS_RESOURCE.id from TS_RESOURCE WHERE parent_id is null-->
|
||||
<!-- and sor_divide-->
|
||||
<!-- ='INLAND_STAND') connect by prior id= parent_id-->
|
||||
<!-- )-->
|
||||
<!-- </if>-->
|
||||
<!-- 新修改需求,根据角色查询有权限的菜单数据-->
|
||||
<if test="menuRoleList != null">
|
||||
and SAR_STAND_MENU.MENU_ID in
|
||||
<foreach collection="menuRoleList" index="index" item="item" open="(" separator="," close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
</if>
|
||||
<!-- <if test="(menuId == null or menuId =='') and standType =='FOREIGN'">-->
|
||||
<!-- and SAR_STAND_MENU.MENU_ID in (-->
|
||||
<!-- select TS_RESOURCE.id from TS_RESOURCE start with id=(select TS_RESOURCE.id from TS_RESOURCE WHERE parent_id is null-->
|
||||
<!-- and sor_divide-->
|
||||
<!-- ='FOREIGN_STAND') connect by prior id= parent_id-->
|
||||
<!-- )-->
|
||||
<!-- </if>-->
|
||||
<!-- 导出数据过程中,选择的id -->
|
||||
<if test="idlist != null">
|
||||
and SAR_STANDARDS_INFO.id in
|
||||
<foreach collection="idlist" index="index" item="item" open="(" separator="," close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="standSort != null and standSort != ''" >
|
||||
and SAR_STANDARDS_INFO.stand_sort = #{standSort}
|
||||
</if>
|
||||
<!--标准年份-->
|
||||
<if test="standYear != null and standYear != ''">
|
||||
and SAR_STANDARDS_INFO.STAND_YEAR = #{standYear}
|
||||
</if>
|
||||
<if test="issueTime != null and issueTime != ''">
|
||||
and SAR_STANDARDS_INFO.ISSUE_TIME = #{issueTime}
|
||||
</if>
|
||||
<!--内容摘要-->
|
||||
<if test="synopsis != null and synopsis != ''" >
|
||||
AND dbms_lob.instr(SYNOPSIS, #{synopsis} ,1,1) > 0
|
||||
</if>
|
||||
|
||||
<!--文本状态-->
|
||||
<if test="textStatus != null and textStatus != ''" >
|
||||
and SAR_STANDARDS_INFO.TEXT_STATUS = #{textStatus}
|
||||
</if>
|
||||
<!--是否纳入法规清单-->
|
||||
<if test="isRelateAccess != null and isRelateAccess != ''" >
|
||||
and SAR_STANDARDS_INFO.IS_RELATE_ACCESS = #{isRelateAccess}
|
||||
</if>
|
||||
|
||||
<if test="collectMenuId != null and collectMenuId != ''">
|
||||
and SAR_STANDARDS_INFO.id in (
|
||||
select COLLECT_RES_ID from TS_PERSON_COLLECT where TS_PERSON_COLLECT.VALID_FLAG=0
|
||||
and (collect_type='INLAND_STAND' or collect_type='FOREIGN_STAND')
|
||||
and TS_PERSON_COLLECT.user_id=#{userId}
|
||||
)
|
||||
</if>
|
||||
|
||||
<if test='labelMenuId != null and labelMenuId == "gxhbq"'>
|
||||
and SAR_STAND_ATTR_INFO.GXHBQ is not null
|
||||
</if>
|
||||
<if test='labelMenuId != null and labelMenuId != "gxhbq"'>
|
||||
and SAR_STAND_ATTR_INFO.GXHBQ like concat(concat('%',#{labelMenuId}),'%')
|
||||
</if>
|
||||
<!--适用车型-->
|
||||
<if test="applyArctic != null and applyArctic != ''">
|
||||
and SAR_STAND_ATTR_INFO.CLLX = #{applyArctic}
|
||||
</if>
|
||||
|
||||
<if test="advanceSearchStr != null and advanceSearchStr != ''">
|
||||
and (${advanceSearchStr})
|
||||
</if>
|
||||
</trim>
|
||||
</sql>
|
||||
<sql id="SarStandardsInfo_out_left">
|
||||
left join TS_DICTYPE dicstandSort on (dicstandSort.dic_type_code = a.stand_sort and
|
||||
dicstandSort.dic_id is not null and dicstandSort.valid_flag = 0 and dicstandSort.PARENT_ID is null)
|
||||
LEFT JOIN TS_DICTYPE dicstandTextStatus ON (
|
||||
dicstandTextStatus.dic_type_code = a.text_status
|
||||
AND dicstandTextStatus.dic_id IS NOT NULL
|
||||
AND dicstandTextStatus.valid_flag = 0
|
||||
)
|
||||
left join SAR_STAND_ATTR_INFO on (SAR_STAND_ATTR_INFO.stand_id = a.id and SAR_STAND_ATTR_INFO.valid_flag=0)
|
||||
</sql>
|
||||
|
||||
|
||||
<!-- 分页查询-->
|
||||
<select id="getSarStandardsInfoPage" resultMap="BaseResultMap"
|
||||
parameterType="com.adc.da.slrs.sarStandardsInfo.entity.SarStandardsInfoEOPage">
|
||||
select * from
|
||||
select
|
||||
a.*,
|
||||
SAR_STAND_ATTR_INFO.CHJL AS CHJL,
|
||||
dicstandSort.DIC_TYPE_NAME AS standSortShow,
|
||||
dicstandTextStatus.DIC_TYPE_NAME AS standTextStatusShow
|
||||
from
|
||||
(select tmp_tb.* from
|
||||
(select
|
||||
<include refid="Base_Column_List_Show"/>,SAR_STAND_ATTR_INFO.CHJL AS CHJL,
|
||||
|
||||
(
|
||||
CASE
|
||||
WHEN ZCCSSRQ = 'TBD' THEN '6999-01-01'
|
||||
WHEN ZCCSSRQ = '已发布' THEN '7000-01-01'
|
||||
WHEN ZCCSSRQ = '已实施' THEN '7999-01-01'
|
||||
WHEN ZCCSSRQ = 'N/A' THEN '8999-01-01'
|
||||
WHEN ZCCSSRQ IS NULL THEN '9999-01-01'
|
||||
WHEN ZCCSSRQ ='' THEN '9999-01-01'
|
||||
ELSE ZCCSSRQ
|
||||
END
|
||||
) AS ZCCSSRQPAIXU,
|
||||
(
|
||||
CASE
|
||||
WHEN XCXSSRQ = 'TBD' THEN '6999-01-01'
|
||||
WHEN XCXSSRQ = '已发布' THEN '7000-01-01'
|
||||
WHEN XCXSSRQ = '已实施' THEN '7999-01-01'
|
||||
WHEN XCXSSRQ = 'N/A' THEN '8999-01-01'
|
||||
WHEN XCXSSRQ IS NULL THEN '9999-01-01'
|
||||
WHEN XCXSSRQ ='' THEN '9999-01-01'
|
||||
ELSE XCXSSRQ
|
||||
END
|
||||
) AS XCXSSRQPAIXU,
|
||||
(
|
||||
CASE
|
||||
WHEN SAR_STANDARDS_INFO.issue_time = 'TBD' THEN '6999-01-01'
|
||||
WHEN SAR_STANDARDS_INFO.issue_time = '已发布' THEN '7000-01-01'
|
||||
WHEN SAR_STANDARDS_INFO.issue_time = '已实施' THEN '7999-01-01'
|
||||
WHEN SAR_STANDARDS_INFO.issue_time = 'N/A' THEN '8999-01-01'
|
||||
WHEN SAR_STANDARDS_INFO.issue_time IS NULL THEN '9999-01-01'
|
||||
WHEN SAR_STANDARDS_INFO.issue_time ='' THEN '9999-01-01'
|
||||
ELSE SAR_STANDARDS_INFO.issue_time
|
||||
END
|
||||
) AS issueTime
|
||||
SELECT
|
||||
DISTINCT SAR_STANDARDS_INFO.id,
|
||||
SAR_STANDARDS_INFO.stand_type,
|
||||
SAR_STANDARDS_INFO.country,
|
||||
SAR_STANDARDS_INFO.stand_sort,
|
||||
SAR_STANDARDS_INFO.stand_number,
|
||||
SAR_STANDARDS_INFO.stand_year,
|
||||
SAR_STANDARDS_INFO.stand_name,
|
||||
SAR_STANDARDS_INFO.stand_en_name,
|
||||
SAR_STANDARDS_INFO.stand_state,
|
||||
SAR_STANDARDS_INFO.stand_nature,
|
||||
SAR_STANDARDS_INFO.issue_time,
|
||||
SAR_STANDARDS_INFO.put_time,
|
||||
SAR_STANDARDS_INFO.text_status,
|
||||
SAR_STANDARDS_INFO.creation_user,
|
||||
SAR_STANDARDS_INFO.valid_flag,
|
||||
SAR_STANDARDS_INFO.creation_time,
|
||||
SAR_STANDARDS_INFO.modify_time,
|
||||
SAR_STANDARDS_INFO.STAND_SYSTEM
|
||||
from SAR_STANDARDS_INFO
|
||||
<include refid="SarStandardsInfo_Where_Clause"/>
|
||||
GROUP BY <include refid="Group_Column_List_Show"/>,CHJL,SAR_STAND_ATTR_INFO.XCXSSRQ,SAR_STAND_ATTR_INFO.ZCCSSRQ,SAR_STAND_ATTR_INFO.SSRQ
|
||||
<include refid="SarStandardsInfo_in_left"/>
|
||||
order by
|
||||
${orderBy1} ${order1},SAR_STANDARDS_INFO.id
|
||||
) tmp_tb limit ${pager.startIndex-1},${pageSize}) a
|
||||
<include refid="SarStandardsInfo_out_left"/>
|
||||
</select>
|
||||
<!--FIELD(SAR_STANDARDS_INFO.issue_time,'已发布'), FIELD(SAR_STANDARDS_INFO.issue_time,'TBD'), FIELD(SAR_STANDARDS_INFO.issue_time,'N/A') ,-->
|
||||
<!--if(isnull(SAR_STANDARDS_INFO.issue_time),0,1) desc ,-->
|
||||
@@ -598,7 +759,7 @@
|
||||
<select id="getSarStandardsInfoCount" resultType="java.lang.Integer"
|
||||
parameterType="com.adc.da.slrs.sarStandardsInfo.entity.SarStandardsInfoEOPage">
|
||||
select count(1) from (select count(*) from SAR_STANDARDS_INFO
|
||||
<include refid="SarStandardsInfo_Where_Clause"/>
|
||||
<include refid="SarStandardsInfo_in_left"/>
|
||||
GROUP BY SAR_STANDARDS_INFO.id) a
|
||||
</select>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user