Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java =================================================================== diff -u -r14363 -r14367 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java (.../JasperreportsAction.java) (revision 14363) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java (.../JasperreportsAction.java) (revision 14367) @@ -2073,8 +2073,31 @@ questionName = list.get(0).getQuestionName(); } if (totalAmount > 0) { + // 对每个bean 做统计 + Map beanStatisticsMap = getBeanMap(list); + if(beanStatisticsMap != null){ + for (Map.Entry entry : beanStatisticsMap.entrySet()){ + String key = entry.getKey(); + String[] arr = key.split("_"); + if(arr.length >=3){ + int _orderNumber = Integer.valueOf(arr[0]); + String _option = arr[1]; + String _questionName = arr[2]; + int anwserInt = entry.getValue(); + MonitoringItemBean bean1 = new MonitoringItemBean(); + bean1.setGoodsName("汇总"); + bean1.setDateTime("汇总"); + bean1.setOrderNumber(_orderNumber); + bean1.setOption(_option); + bean1.setQuestionName(_questionName); + bean1.setAmount(totalAmount); + bean1.setAnswer(anwserInt+""); + list.add(bean1); + } + } + } MonitoringItemBean bean = new MonitoringItemBean(); - bean.setGoodsName(""); + bean.setGoodsName("汇总"); bean.setDateTime("汇总"); bean.setOrderNumber(orderNumber); bean.setOption(option); @@ -2087,6 +2110,28 @@ return list; } + private Map getBeanMap(List beanList){ + if(beanList == null) + return null; + Map map = new HashMap(); + for(MonitoringItemBean mt : beanList){ + int orderNumber = mt.getOrderNumber(); + String option = mt.getOption(); + String questionName = mt.getQuestionName(); + String answer = mt.getAnswer(); + String key = orderNumber + "_" + option + "_" + questionName; + // 统计项有值才添加 + if(StringUtils.isNotBlank(answer)){ + if( !map.containsKey(key) ){ + map.put(key, 1); + }else{ + int value = map.get(key) + 1; + map.put(key, value); + } + } + } + return map; + } /** * 构造报表参数 *