diff --git a/backend/roomroot-jwgl/src/main/java/com/roomroot/jwgl/mapper/BuildMapper.xml b/backend/roomroot-jwgl/src/main/java/com/roomroot/jwgl/mapper/BuildMapper.xml index 9c383ec3..0e96cd61 100644 --- a/backend/roomroot-jwgl/src/main/java/com/roomroot/jwgl/mapper/BuildMapper.xml +++ b/backend/roomroot-jwgl/src/main/java/com/roomroot/jwgl/mapper/BuildMapper.xml @@ -36,11 +36,11 @@ AND DEL_FLAG = #{jxlb.delFlag} - ORDER BY 序号 + ORDER BY CASE WHEN REGEXP_LIKE(序号, '^[0-9]+$') THEN CAST(序号 AS INT) END NULLS LAST, 序号 diff --git a/backend/roomroot-jwgl/src/main/java/com/roomroot/jwgl/service/impl/BuildServiceImpl.java b/backend/roomroot-jwgl/src/main/java/com/roomroot/jwgl/service/impl/BuildServiceImpl.java index 0abd2a34..8b799db6 100644 --- a/backend/roomroot-jwgl/src/main/java/com/roomroot/jwgl/service/impl/BuildServiceImpl.java +++ b/backend/roomroot-jwgl/src/main/java/com/roomroot/jwgl/service/impl/BuildServiceImpl.java @@ -173,7 +173,8 @@ public class BuildServiceImpl implements BuildService { } // 只返回未删除的教学楼(与 pageList 口径一致,避免已删除数据出现在下拉/全量列表里) wrapper.eq(JXLB::getDelFlag, 0); - wrapper.orderByAsc(JXLB::getXh); + // 序号为字符串列,按自然数排序(非数字排在最后按字典序),与 pageList 口径一致 + wrapper.last("ORDER BY CASE WHEN REGEXP_LIKE(序号, '^[0-9]+$') THEN CAST(序号 AS INT) END NULLS LAST, 序号"); return buildMapper.selectList(wrapper); }