Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/action/TousseInstanceAction.java =================================================================== diff -u -r37755 -r37758 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/action/TousseInstanceAction.java (.../TousseInstanceAction.java) (revision 37755) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/action/TousseInstanceAction.java (.../TousseInstanceAction.java) (revision 37758) @@ -14,6 +14,7 @@ import java.util.Date; import java.util.HashMap; import java.util.HashSet; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Map.Entry; @@ -2072,16 +2073,18 @@ * @return */ private Map loadStorageLocationGoodsAmountMap(Long storageLocationId) { - Map tousseNameAmountMap = new HashMap(); + Map tousseNameAmountMap = new LinkedHashMap(); if(!DatabaseUtil.isPoIdValid(storageLocationId)){ return tousseNameAmountMap; } StringBuffer sqlStringBuffer = new StringBuffer(); + sqlStringBuffer.append("select * from ( "); sqlStringBuffer.append("select ti.tousseName, count(1) amount "); sqlStringBuffer.append("from TousseInstance ti "); sqlStringBuffer.append("join Storage_TousseInstance st on ti.id = st.tousseInstanceId "); sqlStringBuffer.append("where st.storageLocationId = " + storageLocationId + " "); - sqlStringBuffer.append("group by ti.tousseName"); + sqlStringBuffer.append("group by ti.tousseName "); + sqlStringBuffer.append(") rs order by amount desc, tousseName"); ResultSet rs = null; try { rs = objectDao.executeSql(sqlStringBuffer.toString());