From c096cab61aa4072c700e28d3f12912214aca9a85 Mon Sep 17 00:00:00 2001 From: "litao@lymsh.com" Date: Thu, 23 Nov 2017 15:50:32 +0800 Subject: [PATCH] =?UTF-8?q?=E5=86=99bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/lyms/platform/common/utils/DateUtil.java | 66 +++++++++++++++++++++- .../web/service/impl/ReportServiceImpl.java | 15 ++++- 2 files changed, 76 insertions(+), 5 deletions(-) diff --git a/platform-common/src/main/java/com/lyms/platform/common/utils/DateUtil.java b/platform-common/src/main/java/com/lyms/platform/common/utils/DateUtil.java index e18df0a..200c56f 100644 --- a/platform-common/src/main/java/com/lyms/platform/common/utils/DateUtil.java +++ b/platform-common/src/main/java/com/lyms/platform/common/utils/DateUtil.java @@ -4,9 +4,7 @@ import org.joda.time.DateTime; import java.text.ParseException; import java.text.SimpleDateFormat; -import java.util.Calendar; -import java.util.Date; -import java.util.GregorianCalendar; +import java.util.*; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; @@ -16,6 +14,7 @@ public class DateUtil { public static SimpleDateFormat yyyy = new SimpleDateFormat("yyyy"); public static SimpleDateFormat ymd = new SimpleDateFormat("yyyyMMdd"); public static SimpleDateFormat y_m_d = new SimpleDateFormat("yyyy-MM-dd"); + public static SimpleDateFormat y_m = new SimpleDateFormat("yyyy年MM月"); public static SimpleDateFormat y_m_d1= new SimpleDateFormat("yyyy年MM月dd日"); public static SimpleDateFormat md = new SimpleDateFormat("MM-dd"); @@ -340,6 +339,18 @@ public class DateUtil { return null; } } + + public static String getyyyy_mm(Date d) { + if (d == null) { + return null; + } + try { + return y_m.format(d); + } catch (Exception e) { + return null; + } + } + public static String getyyyy_MM_dd1(Date d) { if (d == null) { return null; @@ -1205,4 +1216,53 @@ public class DateUtil { return time; } + public static List> getRange(Date start, Date end) { + List> restList = new ArrayList<>(); + if(start != null && end != null) { + List dates = getMonthBetween(start, end); + for (int i = 0; i < dates.size(); i++) { + Map temp = new HashMap<>(); + temp.put("cname", getyyyy_mm(dates.get(i))); + if(i == 0) { + temp.put("condition", Arrays.asList(start, dates.get(i))); + } else if(i == dates.size() - 1) { + temp.put("condition", Arrays.asList(dates.get(dates.size() - 1), end)); + } else { + temp.put("condition", Arrays.asList(dates.get(i), dates.get(i + 1))); + } + restList.add(temp); + } + } + return restList; + } + + private static List getMonthBetween(Date start, Date end) { + List result = new ArrayList<>(); + Calendar min = Calendar.getInstance(); + Calendar max = Calendar.getInstance(); + min.setTime(start); + min.set(min.get(Calendar.YEAR), min.get(Calendar.MONTH), 1); + max.setTime(end); + max.set(max.get(Calendar.YEAR), max.get(Calendar.MONTH), 2); + + Calendar curr = min; + while (curr.before(max)) { + result.add(curr.getTime()); + curr.add(Calendar.MONTH, 1); + } + return result; + } + + public static void main(String[] args) { + List> monthBetween = getRange(parseYMD("2017-1-11"), parseYMD("2017-3-11")); + for (Map map : monthBetween) { + System.out.println(map.get("cname")); + List conditions = (List) map.get("condition"); + for (Date condition : conditions) { + System.out.println(condition.toLocaleString()); + } + } + + } + } 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 02def01..38d7c08 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 @@ -197,8 +197,10 @@ public class ReportServiceImpl extends BaseServiceImpl implements IReportService List xDatas = new ArrayList<>(); List> series = new ArrayList<>(); List legend = Arrays.asList("建档总数"); - List bar = new ArrayList<>(); + List bar = new ArrayList<>(); + List line = new ArrayList<>(); Map barMap = new HashMap<>(); + Map lineMap = new HashMap<>(); if(StringUtils.isNotEmpty(aredId)) { // 按照医院统计 List patientIds = new ArrayList<>(); @@ -211,7 +213,7 @@ public class ReportServiceImpl extends BaseServiceImpl implements IReportService List mappedResults = results.getMappedResults(); for (Map mappedResult : mappedResults) { xDatas.add(couponMapper.findHospitalNameById((String) mappedResult.get("_id"))); - bar.add(mappedResult.get("count")); + bar.add((Integer) mappedResult.get("count")); } } else { Map areaCountMap = new HashMap<>(); @@ -244,6 +246,15 @@ public class ReportServiceImpl extends BaseServiceImpl implements IReportService barMap.put("name", "建档总数"); series.add(barMap); + for (Integer count : bar) { + + } + lineMap.put("data", line); + lineMap.put("type", "line"); + lineMap.put("name", "建档总数"); + series.add(lineMap); + + restMap.put("legend", legend); restMap.put("series", series); restMap.put("xDatas", xDatas); -- 1.8.3.1