From 6f08c72b1056c9e4b2bdf79bafbc49fcc3cdcaa1 Mon Sep 17 00:00:00 2001 From: xufenglei <xufenglei> Date: Sun, 08 Apr 2018 11:24:56 +0800 Subject: [PATCH] 报表优化 --- src/main/java/com/moral/controller/ReportController.java | 59 +++++++++++++++++++++++++++++++---------------------------- 1 files changed, 31 insertions(+), 28 deletions(-) diff --git a/src/main/java/com/moral/controller/ReportController.java b/src/main/java/com/moral/controller/ReportController.java index d5dd547..ed398a7 100644 --- a/src/main/java/com/moral/controller/ReportController.java +++ b/src/main/java/com/moral/controller/ReportController.java @@ -4,6 +4,7 @@ import static com.moral.common.util.WebUtils.getParametersStartingWith; import java.io.OutputStream; +import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Set; @@ -12,14 +13,19 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import com.alibaba.fastjson.JSON; -import com.moral.entity.charts.LineChartCriteria; -import com.moral.entity.charts.PairData; -import org.springframework.web.bind.annotation.*; +import org.springframework.util.ObjectUtils; +import org.springframework.web.bind.annotation.CrossOrigin; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; import com.moral.common.bean.ResultBean; +import com.moral.entity.charts.LineChartCriteria; import com.moral.service.HistoryMinutelyService; +@SuppressWarnings("unchecked") @RestController @RequestMapping("report") @CrossOrigin(origins = "*", maxAge = 3600) @@ -27,39 +33,36 @@ @Resource private HistoryMinutelyService historyMinutelyService; - + @GetMapping("compare") public ResultBean<Map<String, List<Object>>> getCompareReport(HttpServletRequest request) throws Exception { Map<String, Object> parameters = getParametersStartingWith(request, null); - Map<String, List<Object>> demo = historyMinutelyService.getCompareReport(parameters); - return new ResultBean<Map<String,List<Object>>>(demo); + Map<String, List<Object>> demo = historyMinutelyService.getCompareReport(parameters); + return new ResultBean<Map<String, List<Object>>>(demo); } + @PostMapping("line-chart") - public ResultBean <Map<String, List<List<PairData>>>> lineChart(@RequestBody LineChartCriteria lineChartCriteria){ - return new ResultBean<>(historyMinutelyService.queryLineChartDateByCrieria(lineChartCriteria)); + public ResultBean<Map<String, List<List<Double>>>> lineChart(@RequestBody LineChartCriteria lineChartCriteria) { + return new ResultBean<>(historyMinutelyService.queryLineChartDateByCrieria(lineChartCriteria)); } + @GetMapping("excel") - public ResultBean<Boolean> getExcelReport(HttpServletRequest request,HttpServletResponse response) throws Exception { + public ResultBean<Boolean> getExcelReport(HttpServletRequest request, HttpServletResponse response) throws Exception { Map<String, Object> parameters = getParametersStartingWith(request, null); - List<Map<String, Object>> list = historyMinutelyService.getMonitorPointOrDeviceAvgData(parameters); - String[][] exportColumn = new String[2][]; - if (parameters.containsKey("sensors")) { - Set<String> sensors = (Set<String>) parameters.get("sensors"); - exportColumn = new String[sensors.size() + 1][]; - // exportColumn[0] = new String[] { "������", "20", "time" }; - int index = 1; - for (String sensorKey : sensors) { - String[] split = sensorKey.split("-"); - String name = split[1]; - String key = split[0]; - exportColumn[index] = new String[] { name, "10", key }; - index++; - } - } else { - exportColumn[1] = new String[] { (String) parameters.get("sensorName"), "10", (String) parameters.get("sensorKey") }; - } + List<Map<String, Object>> list = historyMinutelyService.getMonitorPointOrDeviceAvgData(parameters); + List<String> sensors= (List<String>) parameters.get("sensors"); + String[][] exportColumn = new String[sensors.size() + 1][]; exportColumn[0] = new String[] { "������", "20", "time" }; - + for (int index = 0; index < sensors.size(); index++) { + String[] split = sensors.get(index).split("-"); + String name = split[1]; + String key = split[0]; + String unit = split[2]; + if (!ObjectUtils.isEmpty(unit) && !"null".equals(unit) ) { + name += "-" + unit; + } + exportColumn[index + 1] = new String[] { name , "10", key }; + } OutputStream outputStream = exportData(response, "Excel������", list, exportColumn); outputStream.flush(); outputStream.close(); -- Gitblit v1.8.0