package com.moral.controller; import static com.moral.common.util.ExportExcelUtils.exportData; import static com.moral.common.util.WebUtils.getParametersStartingWith; import java.io.OutputStream; import java.util.List; import java.util.Map; import java.util.Set; import javax.annotation.Resource; 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 com.moral.common.bean.ResultBean; import com.moral.service.HistoryMinutelyService; @RestController @RequestMapping("report") @CrossOrigin(origins = "*", maxAge = 3600) public class ReportController { @Resource private HistoryMinutelyService historyMinutelyService; @GetMapping("compare") public ResultBean>> getCompareReport(HttpServletRequest request) throws Exception { Map parameters = getParametersStartingWith(request, null); Map> demo = historyMinutelyService.getCompareReport(parameters); return new ResultBean>>(demo); } @PostMapping("line-chart") public ResultBean >>> lineChart(@RequestBody LineChartCriteria lineChartCriteria){ return new ResultBean<>(historyMinutelyService.queryLineChartDateByCrieria(lineChartCriteria)); } @GetMapping("excel") public ResultBean getExcelReport(HttpServletRequest request,HttpServletResponse response) throws Exception { Map parameters = getParametersStartingWith(request, null); List> list = historyMinutelyService.getMonitorPointOrDeviceAvgData(parameters); String[][] exportColumn = new String[2][]; if (parameters.containsKey("sensors")) { Set sensors = (Set) 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") }; } exportColumn[0] = new String[] { "时间", "20", "time" }; OutputStream outputStream = exportData(response, "Excel数据", list, exportColumn); outputStream.flush(); outputStream.close(); return new ResultBean(true); } }