Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/dwr/table/TousseInstanceTableManager.java =================================================================== diff -u -r37736 -r37738 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/dwr/table/TousseInstanceTableManager.java (.../TousseInstanceTableManager.java) (revision 37736) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/dwr/table/TousseInstanceTableManager.java (.../TousseInstanceTableManager.java) (revision 37738) @@ -422,8 +422,14 @@ sqlBuilder.append(" AND po.tousseName = '" + tousseName + "'"); }else if (StringUtils.isNotBlank(tousseNameFuzzy)) { String tousseNameFuzzySql = "select distinct po.name from " + TousseDefinition.class.getSimpleName() + " po where po.name like '%" + tousseNameFuzzy + "%'"; - List idList = objectDao.findByHql(tousseNameFuzzySql); - sqlBuilder.append(" and " + SqlUtils.getStringFieldInLargeCollectionsPredicate("po.tousseName", idList)); + List tousseNameList = objectDao.findByHql(tousseNameFuzzySql); + if(CollectionUtils.isNotEmpty(tousseNameList)){ + if(tousseNameList.size() > SqlUtils.IN_LIST_TOTAL_AMOUNT){ + sqlBuilder.append(" AND po.tousseName = '%" + tousseName + "%'"); + }else{ + sqlBuilder.append(" and " + SqlUtils.getStringFieldInLargeCollectionsPredicate("po.tousseName", tousseNameList)); + } + } } //器械包状态 String tousseStatus = sqlWhereParamMap.get("tousseStatus"); @@ -669,19 +675,19 @@ String orderby = buildOrderby(orderStr); //先查ID String idHql = String.format("select po.id from %s po %s %s ", TousseInstance.class.getSimpleName(), sql, orderby); - List idList = objectDao.findByHql(idHql, start,pageSize); + List idList = objectDao.findByHql(idHql, start,pageSize); //根据ID查询 String hql = String.format("select po from %s po where %s ", BarcodeDevice.class.getSimpleName(), SqlUtils.getNonStringFieldInLargeCollectionsPredicate("po.id", idList)); List dbList = objectDao.findByHql(hql); //再根据id顺序排序 if(CollectionUtils.isNotEmpty(idList)){ - for (Object idObj : idList) { - Long id = (Long)idObj; + for (Long id : idList) { for (TousseInstance ti : dbList) { if(ti.getId().longValue() == id.longValue()){ list.add(ti); + break; } } }