Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManagerImpl.java =================================================================== diff -u -r25682 -r26170 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManagerImpl.java (.../RecyclingApplicationManagerImpl.java) (revision 25682) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManagerImpl.java (.../RecyclingApplicationManagerImpl.java) (revision 26170) @@ -2013,25 +2013,20 @@ if (applicationIds.length() > 0) { String[] ids = applicationIds.split(";"); - + //先打印器械包申请单,再打印一次性物品申请单,其他单类型排序第三。 + Query query = objectDao.getHibernateSession().createQuery( + "SELECT po.id, po.departCoding FROM InvoicePlan po" + + " WHERE po.id in (:ids) order by po.departCoding,case when po.type='器械包申请单' then 'a器械包申请单' when po.type='一次性物品申请单' then 'a一次性物品申请单' else po.type end"); + // 对id集合按部门进行分组 + List idsArray = new ArrayList(); + for (String id : ids){ + idsArray.add(new Long(id)); + } + query.setParameterList("ids", idsArray); + @SuppressWarnings("unchecked") + List list = query.list(); // 合并打印 if (isMergePrintMultipleSelectedApplications){ - // 对id集合按部门进行分组 - - Query query = objectDao.getHibernateSession().createQuery( - "SELECT po.id, po.departCoding FROM InvoicePlan po" - + " WHERE po.id in (:ids)"); - - List idsArray = new ArrayList(); - for (String id : ids){ - idsArray.add(new Long(id)); - } - - query.setParameterList("ids", idsArray); - - @SuppressWarnings("unchecked") - List list = query.list(); - MultiValueMap mvMap = new MultiValueMap(); if (list != null && list.size() > 0){ @@ -2054,13 +2049,15 @@ } else{ - for (String id : ids) { - List singleArray = new ArrayList(); - singleArray.add(new Long(id)); - getPrintObjectByApplicationId( - printScope, singleArray, printUser, summaryList); + if (list != null && list.size() > 0){ + for(Object[] arr : list){ + Long id = (Long)arr[0]; + List singleArray = new ArrayList(); + singleArray.add(new Long(id)); + getPrintObjectByApplicationId( + printScope, singleArray, printUser, summaryList); + } } - } } }