diff --git a/op-modules/op-device/src/main/resources/mapper/device/SparePartsLedgerMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/SparePartsLedgerMapper.xml
index 6b986a897..a13870f6b 100644
--- a/op-modules/op-device/src/main/resources/mapper/device/SparePartsLedgerMapper.xml
+++ b/op-modules/op-device/src/main/resources/mapper/device/SparePartsLedgerMapper.xml
@@ -144,6 +144,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
and TRY_CAST(safe_stock AS DECIMAL(18,2)) <= amount
and del_flag = '0'
+ ORDER BY
+ CASE WHEN TRY_CONVERT(numeric(18,2), safe_stock) > amount THEN 0 ELSE 1 END,
+ gmt_modified DESC,
+ gmt_create DESC