Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/dwr/table/TousseGoodsStockTableManager.java =================================================================== diff -u -r33842 -r33844 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/dwr/table/TousseGoodsStockTableManager.java (.../TousseGoodsStockTableManager.java) (revision 33842) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/dwr/table/TousseGoodsStockTableManager.java (.../TousseGoodsStockTableManager.java) (revision 33844) @@ -24,6 +24,7 @@ import com.forgon.tools.db.DatabaseUtil; import com.forgon.tools.hibernate.ObjectDao; import com.forgon.tools.json.JSONUtil; +import com.forgon.tools.util.SqlUtils; /** * 器械包库存dwr类 @@ -87,25 +88,8 @@ GoodsOption goodsOption = goodsOptionManager.getGoodsOption(GoodsOption.MODEL_TOUSSEGOODSSTOCK, orgUnitCode); if (goodsOption != null && StringUtils.isNotBlank(goodsOption.getValue())){ String[] goods = goodsOption.getValue().split(";"); - String names = ""; List nameList = Arrays.asList(goods); - if(CollectionUtils.isNotEmpty(nameList)){ - //解决报错:ORA-01795: 列表中的最大表达式数为 1000 - int size = nameList.size(); - int batchNum = size / 1000 + (size % 1000 > 0 ? 1 : 0); - for(int i=0;i nameList.size()){ - endIndex = nameList.size(); - } - if(i > 0){ - names += " or "; - } - names += SqlBuilder.build_IN_Statement(" name ", SqlBuilder.IN, nameList.subList(startIndex, endIndex)); - } - names = "(" + names + ")"; - } + String names = SqlUtils.getStringFieldInLargeCollectionsPredicate("name", nameList); sqlBuilder.append(" and ").append(names); }