Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java =================================================================== diff -u -r29860 -r29874 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 29860) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 29874) @@ -11181,14 +11181,17 @@ sql += " and po.sterilizationPurpose = '" + sterilizationPurpose + "' "; } List srList = objectDao.findBySql(SterilizationRecord.class.getSimpleName(), sql); + Map sterilizaCountMap = new HashMap();//灭菌炉次数汇总map + Map bioloicalMonitoringCountMap = new HashMap();//生物监测次数汇总map for (SterilizationRecord sr : srList) { String dateStr = ""; if(sr.getEndDate() != null){ dateStr = Constants.SIMPLEDATEFORMAT_YYYYMMDD.format(sr.getEndDate()); } String key = null; if(sr.getSterilizer() != null){ - key = dateStr + sr.getSterilizer().getName(); + Sterilizer sterilizer = sr.getSterilizer(); + key = dateStr + sterilizer.getName(); if(StringUtils.isNotBlank(key)){ SterilizingStove_child sc = null; if(keyResultMap.containsKey(key)){ @@ -11200,6 +11203,11 @@ } int curCount = sc.getTotalSterilizaCount(); sc.setTotalSterilizaCount(curCount + 1); + if(sterilizaCountMap.containsKey(sterilizer)){ + sterilizaCountMap.put(sterilizer, sterilizaCountMap.get(sterilizer) + 1); + }else{ + sterilizaCountMap.put(sterilizer, 1); + } sc.setSterilizaTime(dateStr); String biologicalMonitoringStatus = sr.getBiologicalMonitoringStatus(); if(biologicalMonitoringStatus != null && @@ -11211,6 +11219,11 @@ } int bioloicalMonitoringCount = sc.getBiologicalMonitoringCount(); if(bioloicalMonitoringCount > 0){ + if(bioloicalMonitoringCountMap.containsKey(sterilizer)){ + bioloicalMonitoringCountMap.put(sterilizer, bioloicalMonitoringCount + bioloicalMonitoringCountMap.get(sterilizer)); + }else{ + bioloicalMonitoringCountMap.put(sterilizer, 0); + } sc.setCountStr(sc.getTotalSterilizaCount() + "/" + bioloicalMonitoringCount); }else{ sc.setCountStr(sc.getTotalSterilizaCount() + ""); @@ -11219,6 +11232,24 @@ } } } + if(!(keyResultMap == null || keyResultMap.isEmpty())){ + for (Entry entry : sterilizaCountMap.entrySet()) { + SterilizingStove_child sc = new SterilizingStove_child(); + Sterilizer sterilizer = entry.getKey(); + Integer totalSterilizaCount = entry.getValue(); + Integer bioloicalMonitoringCount = bioloicalMonitoringCountMap.get(sterilizer); + if(bioloicalMonitoringCount == null || bioloicalMonitoringCount == 0){ + sc.setCountStr(totalSterilizaCount + ""); + }else{ + sc.setCountStr(totalSterilizaCount + "/" + bioloicalMonitoringCount); + sc.setBiologicalMonitoringCount(bioloicalMonitoringCount); + } + sc.setSterilizerName(sterilizer.getName()); + sc.setSterilizerNameSequence(sterilizer.getSequence()); + sc.setSterilizaTime("合计"); + keyResultMap.put("合计" + sterilizer.getName(), sc); + } + } }catch(Exception ex){ ex.printStackTrace(); }