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 org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.moral.common.bean.ResultBean; import com.moral.service.DataService; @RestController @RequestMapping("report") @CrossOrigin(origins = "*", maxAge = 3600) public class ReportController { @Resource private DataService dataService; @GetMapping("compare") public ResultBean>> getCompareReport(HttpServletRequest request) throws Exception { Map parameters = getParametersStartingWith(request, null); Map> demo = dataService.getCompareReport(parameters); return new ResultBean>>(demo); } @GetMapping("excel") public ResultBean getExcelReport(HttpServletRequest request,HttpServletResponse response) throws Exception { Map parameters = getParametersStartingWith(request, null); List> list = dataService.getMonitorPointOrDeviceAvgData4Excel(parameters); String[][] exportColumn = new String[2][]; exportColumn[0] = new String[] { "时间", "20", "time" }; 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") }; } OutputStream outputStream = exportData(response, "Excel数据", list, exportColumn); outputStream.flush(); outputStream.close(); return new ResultBean(true); } }