|
@@ -305,7 +305,29 @@
|
|
|
</select>
|
|
|
|
|
|
<select id="selectArchivesAutoFilePage" resultMap="archivesAutoResultMap">
|
|
|
- select * from u_archives_auto u LEFT JOIN m_archive_tree_contract m ON u.node_id = m.id where u.is_deleted = 0
|
|
|
+ select
|
|
|
+ * ,
|
|
|
+ CAST(
|
|
|
+ CASE
|
|
|
+ WHEN SUBSTRING_INDEX(file_number, '-', -1) REGEXP '^[0-9]+$'
|
|
|
+ THEN SUBSTRING_INDEX(file_number, '-', -1)
|
|
|
+ WHEN SUBSTRING_INDEX(file_number, '•', -1) REGEXP '^[0-9]+$'
|
|
|
+ THEN SUBSTRING_INDEX(file_number, '•', -1)
|
|
|
+ WHEN SUBSTRING_INDEX(file_number, '·', -1) REGEXP '^[0-9]+$'
|
|
|
+ THEN SUBSTRING_INDEX(file_number, '·', -1)
|
|
|
+ WHEN SUBSTRING_INDEX(file_number, '_', -1) REGEXP '^[0-9]+$'
|
|
|
+ THEN SUBSTRING_INDEX(file_number, '_', -1)
|
|
|
+ ELSE
|
|
|
+ REVERSE(
|
|
|
+ SUBSTRING(
|
|
|
+ REVERSE(file_number),
|
|
|
+ 1,
|
|
|
+ LENGTH(REVERSE(file_number)) - LENGTH(TRIM(LEADING '0123456789' FROM REVERSE(file_number)))
|
|
|
+ )
|
|
|
+ )
|
|
|
+ END AS UNSIGNED
|
|
|
+ ) AS trailing_number
|
|
|
+ from u_archives_auto u LEFT JOIN m_archive_tree_contract m ON u.node_id = m.id where u.is_deleted = 0
|
|
|
<if test="vo.projectId != null and vo.projectId != ''">
|
|
|
and u.project_id = #{vo.projectId}
|
|
|
</if>
|
|
@@ -350,12 +372,12 @@
|
|
|
ORDER BY
|
|
|
m.tree_sort,
|
|
|
CASE WHEN u.file_number IS NULL THEN 1 ELSE 0 END,
|
|
|
- CAST(SUBSTRING_INDEX(file_number, '_', -1) AS SIGNED)
|
|
|
+ trailing_number
|
|
|
</when>
|
|
|
<when test="vo.sortRuleType != null and vo.sortRuleType == 2 and vo.isArchive != null and vo.isArchive != ''">
|
|
|
order by
|
|
|
CASE WHEN u.file_number IS NULL THEN 1 ELSE 0 END,
|
|
|
- CAST(SUBSTRING_INDEX(file_number, '_', -1) AS SIGNED)
|
|
|
+ trailing_number
|
|
|
</when>
|
|
|
<otherwise>
|
|
|
order by m.tree_sort,u.auto_file_sort is null ,u.auto_file_sort,u.file_number is null,
|
|
@@ -631,7 +653,27 @@
|
|
|
where project_id = #{projectId} and is_deleted = 0;
|
|
|
</select>
|
|
|
<select id="pageByArchivesAuto" resultMap="archivesAutoResultMap">
|
|
|
- select uaa.*
|
|
|
+ select uaa.*,
|
|
|
+ CAST(
|
|
|
+ CASE
|
|
|
+ WHEN SUBSTRING_INDEX(file_number, '-', -1) REGEXP '^[0-9]+$'
|
|
|
+ THEN SUBSTRING_INDEX(file_number, '-', -1)
|
|
|
+ WHEN SUBSTRING_INDEX(file_number, '•', -1) REGEXP '^[0-9]+$'
|
|
|
+ THEN SUBSTRING_INDEX(file_number, '•', -1)
|
|
|
+ WHEN SUBSTRING_INDEX(file_number, '·', -1) REGEXP '^[0-9]+$'
|
|
|
+ THEN SUBSTRING_INDEX(file_number, '·', -1)
|
|
|
+ WHEN SUBSTRING_INDEX(file_number, '_', -1) REGEXP '^[0-9]+$'
|
|
|
+ THEN SUBSTRING_INDEX(file_number, '_', -1)
|
|
|
+ ELSE
|
|
|
+ REVERSE(
|
|
|
+ SUBSTRING(
|
|
|
+ REVERSE(file_number),
|
|
|
+ 1,
|
|
|
+ LENGTH(REVERSE(file_number)) - LENGTH(TRIM(LEADING '0123456789' FROM REVERSE(file_number)))
|
|
|
+ )
|
|
|
+ )
|
|
|
+ END AS UNSIGNED
|
|
|
+ ) AS trailing_number
|
|
|
from m_archive_tree_contract matc left join u_archives_auto uaa on matc.id = uaa.node_id left join
|
|
|
u_archive_file uaf on uaa.id = uaf.archive_id
|
|
|
where uaa.is_deleted = 0 and matc.is_deleted = 0 and uaa.is_archive = 1
|
|
@@ -697,12 +739,12 @@
|
|
|
ORDER BY
|
|
|
matc.tree_sort,
|
|
|
CASE WHEN uaa.file_number IS NULL THEN 1 ELSE 0 END,
|
|
|
- CAST(SUBSTRING_INDEX(uaa.file_number, '_', -1) AS SIGNED)
|
|
|
+ trailing_number
|
|
|
</when>
|
|
|
<when test="vo.sortRuleType != null and vo.sortRuleType == 2">
|
|
|
ORDER BY
|
|
|
CASE WHEN uaa.file_number IS NULL THEN 1 ELSE 0 END,
|
|
|
- CAST(SUBSTRING_INDEX(uaa.file_number, '_', -1) AS SIGNED)
|
|
|
+ trailing_number
|
|
|
</when>
|
|
|
<otherwise>
|
|
|
order by uaa.tree_sort,uaa.auto_file_sort,uaa.file_number asc
|
|
@@ -711,7 +753,27 @@
|
|
|
</select>
|
|
|
|
|
|
<select id="pageByArchivesAuto11" resultMap="archivesAutoResultMap">
|
|
|
- select uaa.*
|
|
|
+ select uaa.*,
|
|
|
+ CAST(
|
|
|
+ CASE
|
|
|
+ WHEN SUBSTRING_INDEX(file_number, '-', -1) REGEXP '^[0-9]+$'
|
|
|
+ THEN SUBSTRING_INDEX(file_number, '-', -1)
|
|
|
+ WHEN SUBSTRING_INDEX(file_number, '•', -1) REGEXP '^[0-9]+$'
|
|
|
+ THEN SUBSTRING_INDEX(file_number, '•', -1)
|
|
|
+ WHEN SUBSTRING_INDEX(file_number, '·', -1) REGEXP '^[0-9]+$'
|
|
|
+ THEN SUBSTRING_INDEX(file_number, '·', -1)
|
|
|
+ WHEN SUBSTRING_INDEX(file_number, '_', -1) REGEXP '^[0-9]+$'
|
|
|
+ THEN SUBSTRING_INDEX(file_number, '_', -1)
|
|
|
+ ELSE
|
|
|
+ REVERSE(
|
|
|
+ SUBSTRING(
|
|
|
+ REVERSE(file_number),
|
|
|
+ 1,
|
|
|
+ LENGTH(REVERSE(file_number)) - LENGTH(TRIM(LEADING '0123456789' FROM REVERSE(file_number)))
|
|
|
+ )
|
|
|
+ )
|
|
|
+ END AS UNSIGNED
|
|
|
+ ) AS trailing_number
|
|
|
from m_archive_tree_contract matc left join u_archives_auto uaa on matc.id = uaa.node_id
|
|
|
where uaa.is_deleted = 0 and matc.is_deleted = 0 and uaa.is_archive = 1
|
|
|
<if test="vo.queryValue != null and vo.queryValue != ''">
|
|
@@ -771,12 +833,12 @@
|
|
|
ORDER BY
|
|
|
matc.tree_sort,
|
|
|
CASE WHEN uaa.file_number IS NULL THEN 1 ELSE 0 END,
|
|
|
- CAST(SUBSTRING_INDEX(uaa.file_number, '_', -1) AS SIGNED)
|
|
|
+ trailing_number
|
|
|
</when>
|
|
|
<when test="vo.sortRuleType != null and vo.sortRuleType == 2">
|
|
|
ORDER BY
|
|
|
CASE WHEN uaa.file_number IS NULL THEN 1 ELSE 0 END,
|
|
|
- CAST(SUBSTRING_INDEX(uaa.file_number, '_', -1) AS SIGNED)
|
|
|
+ trailing_number
|
|
|
</when>
|
|
|
<otherwise>
|
|
|
order by uaa.tree_sort,uaa.auto_file_sort,uaa.file_number asc
|