Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java =================================================================== diff -u -r15718 -r15782 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java (.../JasperreportsAction.java) (revision 15718) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java (.../JasperreportsAction.java) (revision 15782) @@ -2211,6 +2211,61 @@ bean.setPositionMsg(""); list.add(bean); } + }else if("定期监测".equals(monitoringType)){ + Integer totalAmount = 0; + Integer totalItem = 0; + Integer orderNumber = 1; + String option = ""; + String questionName = ""; + for (QualityMonitoring qualityMonitoring2 : qualityMonitoringList) { + Integer amount = qualityMonitoring2.getAmount(); + if(amount == null){ + amount = 0; + } + totalAmount += amount; + totalItem++; + } + if (list != null && list.size() > 0) { + orderNumber = list.get(0).getOrderNumber(); + option = list.get(0).getOption(); + questionName = list.get(0).getQuestionName(); + } + // 对每个bean 做统计 + List> listMap = getBeanMapByResult(list); + if( listMap != null && listMap.size() > 0){ + Map beanStatisticsMap = listMap.get(0); + 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+""); + bean1.setPositionMsg(""); + list.add(bean1); + } + } + } + MonitoringItemBean bean = new MonitoringItemBean(); + bean.setGoodsName("汇总"); + bean.setDateTime("汇总"); + bean.setOrderNumber(orderNumber); + bean.setOption(option); + bean.setQuestionName(questionName); + bean.setAmount(totalAmount); + bean.setPositionMsg(""); + list.add(bean); + } } } return list; @@ -2365,6 +2420,35 @@ return listMap; } /** + * 获取结果统计的map,结果为"√"才统计 + * @param beanList + * @return + */ + private List> getBeanMapByResult(List beanList){ + if(beanList == null) + return null; + List> listMap = new ArrayList>(); + 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("√".equals(answer)){ + if( !map.containsKey(key) ){ + map.put(key, 1); + }else{ + int value = map.get(key) + 1; + map.put(key, value); + } + } + } + listMap.add(map); + return listMap; + } + /** * 构造报表参数 * * @param reportName