From e753b17d4fb95c882491a7338fdf5dc130f80c7a Mon Sep 17 00:00:00 2001 From: litao Date: Tue, 6 Jun 2017 14:34:27 +0800 Subject: [PATCH] bug xiufu --- .../com/lyms/hospitalapi/pojo/ReportModel.java | 75 ++++++++++++++++++++++ .../web/service/impl/ReportServiceImpl.java | 2 + .../operate/web/utils/CollectionUtils.java | 26 ++++++-- 3 files changed, 99 insertions(+), 4 deletions(-) diff --git a/platform-operate-api/src/main/java/com/lyms/hospitalapi/pojo/ReportModel.java b/platform-operate-api/src/main/java/com/lyms/hospitalapi/pojo/ReportModel.java index e1fcd70..1ece89a 100644 --- a/platform-operate-api/src/main/java/com/lyms/hospitalapi/pojo/ReportModel.java +++ b/platform-operate-api/src/main/java/com/lyms/hospitalapi/pojo/ReportModel.java @@ -1,7 +1,10 @@ package com.lyms.hospitalapi.pojo; +import com.lyms.platform.operate.web.utils.CollectionUtils; import com.lymsh.platform.reportdata.model.echarts.Series; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -29,6 +32,78 @@ public class ReportModel { private List doctorInfo; + /** + * 将 x 轴数据去重并把series数据合并 + */ + public void doMerge() { + // 用于放x轴数据 所对应的series data的下标list + Map> mergeMap = new HashMap<>(); + for (int i = 0; i < xAxis.size(); i++) { + String xVal = xAxis.get(i); + if(!mergeMap.containsKey(xVal)) { + List list = new ArrayList<>(); + list.add(i); + mergeMap.put(xAxis.get(i), list); + } else { + mergeMap.get(xVal).add(i); + } + } + + calcSeries(mergeMap); + + CollectionUtils.removeDuplicate(xAxis); + + /*List xAxis = reportModel.getxAxis(); + List xAxisTemp = new ArrayList<>(); + + for (Series series : reportModel.getSeries()) { + List data = series.getData(); + Map tempMap = new LinkedHashMap<>(); + for (int i = 0; i < xAxis.size(); i++) { + int count = Integer.parseInt(data.get(i) + ""); + if(!tempMap.containsKey(xAxis.get(i))) { + tempMap.put(xAxis.get(i), count); + xAxisTemp.add(xAxis.get(i) + ""); + } else { + data.remove(i); + tempMap.put(xAxis.get(i), tempMap.get(xAxis.get(i)) + count); + } + } + + data.clear(); + Iterator it = tempMap.keySet().iterator(); + while (it.hasNext()) { + String key = it.next().toString(); + data.add(tempMap.get(key)); + } + + xAxis.clear(); + xAxis.addAll(xAxisTemp); + } + + List series = reportModel.getSeries().get(1).getData();*/ + } + + /** + * 计算总和 + * @param mergeMap + */ + private void calcSeries(Map> mergeMap) { + List> list = CollectionUtils.transValToList(mergeMap); + for (Series s : series) { + List data = s.getData(); + List tempData = new ArrayList<>(); + for (List integers : list) { + int count = 0; + for (Integer i : integers) { + count += Integer.parseInt(data.get(i) + ""); + } + tempData.add(count); + } + s.setData(tempData); + } + } + public List getxAxis() { return xAxis; } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/ReportServiceImpl.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/ReportServiceImpl.java index 3488871..4e00fc1 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/ReportServiceImpl.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/ReportServiceImpl.java @@ -25,6 +25,7 @@ import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; import org.springframework.stereotype.Service; +import scala.util.parsing.combinator.testing.Str; import javax.servlet.http.HttpServletResponse; import java.sql.PreparedStatement; @@ -470,6 +471,7 @@ public class ReportServiceImpl extends BaseServiceImpl implements IReportService reportModel.setxAxis(xAxis); reportModel.setData(Arrays.asList("发放券数", "使用券数")); reportModel.setSeries(createSeries(couponReport)); + reportModel.doMerge(); Map titleMap = parseTitle(couponReport); diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/utils/CollectionUtils.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/utils/CollectionUtils.java index 76195a2..8d0e3bd 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/utils/CollectionUtils.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/utils/CollectionUtils.java @@ -3,10 +3,7 @@ package com.lyms.platform.operate.web.utils; import org.apache.commons.lang3.StringUtils; import org.springframework.util.Assert; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; /** * @Author: litao @@ -91,4 +88,25 @@ public class CollectionUtils { return list; } + /** + * list去重数据 + * @param list + */ + public static void removeDuplicate(List list) { + Assert.notNull(list, "list must be not null!"); + Set temp = new HashSet<>(list); + list.clear(); + list.addAll(temp); + } + + public static List transValToList(Map map) { + Assert.notNull(map, "参数不能为null"); + List restList = new ArrayList<>(); + Set set = map.keySet(); + for (String s : set) { + restList.add(map.get(s)); + } + return restList; + } + } -- 1.8.3.1