Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java =================================================================== diff -u -r14543 -r14667 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java (.../JasperreportsAction.java) (revision 14543) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java (.../JasperreportsAction.java) (revision 14667) @@ -2087,6 +2087,7 @@ // 质量检测加数量汇总 if ("质量监测".equals(monitoringType)) { Integer totalAmount = 0; + Integer totalItem = 0; Integer orderNumber = 1; String option = ""; String questionName = ""; @@ -2096,6 +2097,7 @@ amount = 0; } totalAmount += amount; + totalItem++; } if (list != null && list.size() > 0) { orderNumber = list.get(0).getOrderNumber(); @@ -2104,35 +2106,60 @@ } 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); + List> listMap = getBeanMap(list); + if( listMap != null && listMap.size() > 1){ + Map beanStatisticsMap = listMap.get(0); + Map beanStatisticsMap2 = listMap.get(1); + 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(totalItem); + bean1.setAnswer(anwserInt+""); + list.add(bean1); + } } } + if(beanStatisticsMap2 != null){ + for (Map.Entry entry : beanStatisticsMap2.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 bean2 = new MonitoringItemBean(); + bean2.setGoodsName("材料数量汇总"); + bean2.setDateTime("材料数量汇总"); + bean2.setOrderNumber(_orderNumber); + bean2.setOption(_option); + bean2.setQuestionName(_questionName); + bean2.setAmount(totalAmount); + bean2.setAnswer(anwserInt+""); + list.add(bean2); + } + } + } } MonitoringItemBean bean = new MonitoringItemBean(); bean.setGoodsName("汇总"); bean.setDateTime("汇总"); bean.setOrderNumber(orderNumber); bean.setOption(option); bean.setQuestionName(questionName); - bean.setAmount(totalAmount); + bean.setAmount(totalItem); list.add(bean); } } @@ -2229,10 +2256,12 @@ return list; } - private Map getBeanMap(List beanList){ + private List> getBeanMap(List beanList){ if(beanList == null) return null; + List> listMap = new ArrayList>(); Map map = new HashMap(); + Map map2 = new HashMap(); for(MonitoringItemBean mt : beanList){ int orderNumber = mt.getOrderNumber(); String option = mt.getOption(); @@ -2247,9 +2276,21 @@ int value = map.get(key) + 1; map.put(key, value); } + // 有数量才添加 + Integer amount = mt.getAmount(); + if(amount != null && amount > 0){ + if( !map2.containsKey(key) ){ + map2.put(key, amount); + }else{ + int value = map2.get(key) + amount; + map2.put(key, value); + } + } } } - return map; + listMap.add(map); + listMap.add(map2); + return listMap; } /** * 构造报表参数