Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java =================================================================== diff -u -r34652 -r34669 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 34652) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 34669) @@ -5615,8 +5615,9 @@ } returnGoodType.add("器械包"); } + Set typeSearchSet = new HashSet(); if(!StringTools.isBlank(typeSearch)){ - Set typeSearchSet = SqlUtils.splitStringToSet(typeSearch, ","); + typeSearchSet = SqlUtils.splitStringToSet(typeSearch, ","); if(!typeSearchSet.contains("全部器械包")){ if(typeSearchSet.contains("外来器械包")){ allTousseType.add(TousseDefinition.PACKAGE_TYPE_FOREIGN); @@ -5648,7 +5649,6 @@ } } if(typeSearchSet.contains("一次性物品")){ - allTousseType.add("一次性物品"); returnGoodType.add("一次性物品"); } } @@ -5795,7 +5795,11 @@ String expensiveDisposablegoodsIdSql = ""; if (StringUtils.isNotBlank(typeSearch)) { typeFilterSql = String.format(" and (%s)", SqlUtils.getStringFieldInLargeCollectionsPredicate("ii.tousseType", allTousseType)); - returnGoodsItemPredicate += String.format(" and ri.tousseDefinition_id in (select id from TousseDefinition where %s) ", SqlUtils.getStringFieldInLargeCollectionsPredicate("tousseType", allTousseType)); + if(typeSearchSet.contains("一次性物品") && typeSearchSet.size() > 1){//不止一次性物品 + returnGoodsItemPredicate += " and (rr.type='一次性物品' or ri.tousseDefinition_id in (select id from TousseDefinition where "+ SqlUtils.getStringFieldInLargeCollectionsPredicate("tousseType", allTousseType) +")) "; + }else if(!typeSearchSet.contains("一次性物品") && typeSearchSet.size() > 0){//不包含一次性物品 + returnGoodsItemPredicate += String.format(" and ri.tousseDefinition_id in (select id from TousseDefinition where %s) ", SqlUtils.getStringFieldInLargeCollectionsPredicate("tousseType", allTousseType)); + } returnGoodsFilterSql += " and " + SqlUtils.getStringFieldInLargeCollectionsPredicate("rr.type", returnGoodType); if(!typeSearch.contains("一次性物品") && !typeSearch.contains(DisposableGoods.TYPE_EXPENSIVEDIPOSABLEGOODS)){ outEntryFilterSql += " and 1=2 ";