diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/controller/XhpcStatisticsController.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/controller/XhpcStatisticsController.java index e8d0c6d5..30bf2ec3 100644 --- a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/controller/XhpcStatisticsController.java +++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/controller/XhpcStatisticsController.java @@ -7,13 +7,11 @@ import com.xhpc.common.core.web.page.TableDataInfo; import com.xhpc.order.service.IXhpcStatisticsService; import io.swagger.annotations.Api; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; +import java.io.IOException; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.util.Date; @@ -208,36 +206,103 @@ public class XhpcStatisticsController extends BaseController { return xhpcStatisticsService.getTerminalList(chargingStationId, userId, type); } + + // -------- 导出数据 ------------ + + /** - * export excel by date. - * - * @param response + * 小时统计导出 + * @param chargingStationIds 电站id集合 + * @param internetUserId 流量方id + * @param operatorId 运营商id + * @param startTime 订单开始时间 + * @param endTime 订单结束时间 + * @param userId 用户id + * @param type 1 平台 2 运营商 3流量方 * @return */ - @GetMapping(value = "/exportExcelByDate") - public Object exportExcelByDate(HttpServletResponse response, String chargingStationIds, Long internetUserId, Long operatorId, String startTime, String endTime, @RequestParam("userId") Long userId, @RequestParam("type") Integer type) { - - String[] titles = {"时段", " 电量(度)", "充电时长(小时)", "充电次数(次)", "电费(元)", "服务费(元)" - , "订单总金额(元)", "抵扣的总金额(元)", "用户支付的金额(元)", "运营商电费(元)", "运营商服务费(元)" - , "流量方总金额抽成(元)", "流量方服务费抽成(元)", "平台总金额抽成(元)", "平台服务费抽成(元)", "运维总金额抽成(元)", "运维服务费抽成(元)"}; - String[] keys = {"createTime", "chargingDegree", "chargingTime", "chargingNumber", "powerPrice", "servicePrice", "totalPrice" - , "promotionDiscount", "actPrice", "actPowerPrice", "actServicePrice", "internetCommission", "internetSvcCommission" - , "platformCommission", "platformSvcCommisssion", "operationCommission", "operationSvcCommission"}; - response.setContentType("application/x-xls"); - try { - ServletOutputStream out = response.getOutputStream(); - try { - String name = DateUtil.format(new Date(), "yyyyMMddHHmmss"); - response.setHeader("Content-Disposition", "attachment;fileName=" + URLEncoder.encode(name + ".xls", "UTF-8")); - } catch (UnsupportedEncodingException e1) { - e1.printStackTrace(); - } - List> data = xhpcStatisticsService.getDateIntervalPage(chargingStationIds, internetUserId, operatorId, startTime, endTime, userId, type); - xhpcStatisticsService.exportByDay(out, titles, keys, data); - return "success"; - } catch (Exception e) { - e.printStackTrace(); - return "导出信息失败"; - } + @PostMapping("/timeInterval/export") + public void timeIntervalExport(HttpServletResponse response, String chargingStationIds,Long internetUserId, Long operatorId,String startTime, String endTime, @RequestParam("userId") Long userId, @RequestParam("type")Integer type) throws IOException { + xhpcStatisticsService.timeIntervalExport(response, chargingStationIds,internetUserId,operatorId,startTime,endTime,userId,type); } + + /** + * 日期统计导出 + * @param chargingStationIds 电站id集合 + * @param internetUserId 流量方id + * @param operatorId 运营商id + * @param startTime 订单开始时间 + * @param endTime 订单结束时间 + * @param userId 用户id + * @param type 1 平台 2 运营商 3流量方 + * @return + */ + @PostMapping("/dateInterval/export") + public void dateIntervalExport(HttpServletResponse response, String chargingStationIds,Long internetUserId, Long operatorId,String startTime, String endTime, @RequestParam("userId") Long userId, @RequestParam("type")Integer type) throws IOException { + xhpcStatisticsService.dateIntervalExport(response, chargingStationIds,internetUserId,operatorId,startTime,endTime,userId,type); + } + /** + * 电站统计导出 + * @param chargingStationIds 电站集合 + * @param operatorIds 运营商集合 + * @param internetUserId 流量方id + * @param operatorId 运营商id + * @param startTime 订单开始时间 + * @param endTime 订单结束时间 + * @param userId 用户id + * @param type 1 平台 2 运营商 3流量方 + * @return + */ + @PostMapping("/stationInterval/export") + public void stationIntervalExport(HttpServletResponse response, String chargingStationIds,String operatorIds,Long internetUserId, Long operatorId,String startTime, String endTime, @RequestParam("userId") Long userId, @RequestParam("type")Integer type) throws IOException { + xhpcStatisticsService.stationIntervalExport(response, chargingStationIds,operatorIds,internetUserId,operatorId,startTime,endTime,userId,type); + } + + /** + * 运营商统计导出 + * @param operatorIds 运营商集合 + * @param operatorId 运营商id + * @param startTime 订单开始时间 + * @param endTime 订单结束时间 + * @param userId 用户id + * @param type 1 平台 2 运营商 3流量方 + * @return + */ + @PostMapping("/operatorInterval/export") + public void operatorIntervalExport(HttpServletResponse response, String operatorIds, Long operatorId,String startTime, String endTime, @RequestParam("userId") Long userId, @RequestParam("type")Integer type) throws IOException { + xhpcStatisticsService.operatorIntervalExport(response, operatorIds,operatorId,startTime,endTime,userId,type); + } + + /** + * 流量方统计导出 + * @param internetUserIds 流量方集合 + * @param internetUserId 流量方id + * @param startTime 订单开始时间 + * @param endTime 订单结束时间 + * @param userId 用户id + * @param type 1 平台 2 运营商 3流量方 + * @return + */ + @PostMapping("/internetUserInterval/export") + public void internetUserIntervalExport(HttpServletResponse response, String internetUserIds,Long internetUserId,String startTime, String endTime, @RequestParam("userId") Long userId, @RequestParam("type")Integer type) throws IOException { + xhpcStatisticsService.internetUserIntervalExport(response, internetUserIds,internetUserId,startTime,endTime,userId,type); + } + + + /** + * 终端统计 + * @param chargingStationId 电站集合 + * @param terminalId 终端集合 + * @param operatorId 运营商id + * @param startTime 订单开始时间 + * @param endTime 订单结束时间 + * @param userId 用户id + * @param type 1 平台 2 运营商 3流量方 + * @return + */ + @PostMapping("/terminalInterval/export") + public void terminalIntervalExport(HttpServletResponse response, String chargingStationId,String terminalId,Long operatorId,String startTime, String endTime, @RequestParam("userId") Long userId, @RequestParam("type")Integer type) throws IOException { + xhpcStatisticsService.terminalIntervalExport(response, chargingStationId,terminalId,operatorId,startTime,endTime,userId,type); + } + } diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/IXhpcStatisticsService.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/IXhpcStatisticsService.java index 0370821d..9871dfa4 100644 --- a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/IXhpcStatisticsService.java +++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/IXhpcStatisticsService.java @@ -5,6 +5,8 @@ import com.xhpc.order.domain.XhpcStatisticsStation; import com.xhpc.order.domain.XhpcStatisticsTimeInterval; import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; import java.util.List; import java.util.Map; @@ -146,10 +148,89 @@ public interface IXhpcStatisticsService { */ void addStatisticsStation(XhpcStatisticsStation xhpcStatisticsStation); - void export(ServletOutputStream out, String[] titles, String[] keys, List> data) throws Exception; - void exportByDay(ServletOutputStream out, String[] titles, String[] keys, List> data) throws Exception; + // -------------------- 导出功能 ------------------ + + + /** + * 小时统计导出 + * @param chargingStationIds 电站id集合 + * @param internetUserId 流量方id + * @param operatorId 运营商id + * @param startTime 订单开始时间 + * @param endTime 订单结束时间 + * @param userId 用户id + * @param type 1 平台 2 运营商 3流量方 + * @return + */ + void timeIntervalExport(HttpServletResponse response, String chargingStationIds, Long internetUserId, Long operatorId, String startTime, String endTime, Long userId, Integer type) throws IOException; + + + /** + * 日期统计导出 + * @param chargingStationIds 电站id集合 + * @param internetUserId 流量方id + * @param operatorId 运营商id + * @param startTime 订单开始时间 + * @param endTime 订单结束时间 + * @param userId 用户id + * @param type 1 平台 2 运营商 3流量方 + * @return + */ + void dateIntervalExport(HttpServletResponse response, String chargingStationIds, Long internetUserId, Long operatorId, String startTime, String endTime, Long userId, Integer type) throws IOException; + + /** + * 电站统计导出 + * @param chargingStationIds 电站集合 + * @param operatorIds 运营集合 + * @param internetUserId 流量方id + * @param operatorId 运营商id + * @param startTime 订单开始时间 + * @param endTime 订单结束时间 + * @param userId 用户id + * @param type 1 平台 2 运营商 3流量方 + * @return + */ + void stationIntervalExport(HttpServletResponse response, String chargingStationIds,String operatorIds, Long internetUserId, Long operatorId, String startTime, String endTime, Long userId, Integer type) throws IOException; + + /** + * 运营商统计导出 + * @param operatorIds 运营商集合 + * @param operatorId 运营商id + * @param startTime 订单开始时间 + * @param endTime 订单结束时间 + * @param userId 用户id + * @param type 1 平台 2 运营商 3流量方 + * @return + */ + void operatorIntervalExport(HttpServletResponse response, String operatorIds,Long operatorId, String startTime, String endTime, Long userId, Integer type) throws IOException; + + + /** + * 流量方统计导出 + * @param internetUserIds 流量方集合 + * @param internetUserId 流量方id + * @param startTime 订单开始时间 + * @param endTime 订单结束时间 + * @param userId 用户id + * @param type 1 平台 2 运营商 3流量方 + * @return + */ + void internetUserIntervalExport(HttpServletResponse response, String internetUserIds, Long internetUserId, String startTime, String endTime, Long userId, Integer type) throws IOException; + + + /** + * 终端统计导出 + * @param chargingStationId 电站id + * @param terminalId 终端di + * @param operatorId 运营商id + * @param startTime 订单开始时间 + * @param endTime 订单结束时间 + * @param userId 用户id + * @param type 1 平台 2 运营商 3流量方 + * @return + */ + void terminalIntervalExport(HttpServletResponse response, String chargingStationId, String terminalId, Long operatorId, String startTime, String endTime, Long userId, Integer type) throws IOException; - void exportByDate(ServletOutputStream out, String[] titles, String[] keys, List> data) throws Exception; } diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcStatisticsServiceImpl.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcStatisticsServiceImpl.java index 2009c8bf..e2244900 100644 --- a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcStatisticsServiceImpl.java +++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcStatisticsServiceImpl.java @@ -2,6 +2,9 @@ package com.xhpc.order.service.impl; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.io.IoUtil; +import cn.hutool.poi.excel.ExcelUtil; +import cn.hutool.poi.excel.ExcelWriter; import com.xhpc.common.core.utils.SecurityUtils; import com.xhpc.common.core.web.domain.AjaxResult; import com.xhpc.order.domain.XhpcStatisticsStation; @@ -15,6 +18,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; import java.util.*; /** @@ -453,72 +458,263 @@ public class XhpcStatisticsServiceImpl implements IXhpcStatisticsService { return endOfDay.toString(); } -// public static void main(String[] args) { -// Date beginOfDay = DateUtil.beginOfDay(new Date()); -// -// System.out.println(">>>>>>>>>"+beginOfDay.toString()); -// } + @Override - public void exportByDay(ServletOutputStream out, String[] titles, String[] keys, List> data) throws Exception { + public void timeIntervalExport(HttpServletResponse response, String chargingStationIds, Long internetUserId, Long operatorId, String startTime, String endTime, Long userId, Integer type) throws IOException { + List> list = getTimeIntervalPage(chargingStationIds, internetUserId, operatorId, startTime, endTime, userId, type); - export(out, titles, keys, data); + // 通过工具类创建writer,默认创建xls格式 + ExcelWriter writer = ExcelUtil.getWriter(); + writer.addHeaderAlias("time", "小时时段"); + writer.addHeaderAlias("chargingDegree", "电量"); + writer.addHeaderAlias("chargingTime", "充电时长(小时)"); + writer.addHeaderAlias("chargingNumber", "充电次数"); + writer.addHeaderAlias("powerPrice", "电费"); + writer.addHeaderAlias("servicePrice", "服务费"); + writer.addHeaderAlias("totalPrice", "订单总价"); + writer.addHeaderAlias("promotionDiscount", "抵扣的总金额"); + writer.addHeaderAlias("actPrice", "用户支付金额"); + writer.addHeaderAlias("actPowerPrice", "运营商电费"); + writer.addHeaderAlias("actServicePrice", "运营商服务费"); + writer.addHeaderAlias("internetCommission", "流量方总金额抽成"); + writer.addHeaderAlias("internetSvcCommission", "流量方服务费抽成"); + writer.addHeaderAlias("platformCommission", "平台总金额抽成"); + writer.addHeaderAlias("platformSvcCommisssion", "平台服务费抽成"); + writer.addHeaderAlias("operationCommission", "运维总金额抽成"); + writer.addHeaderAlias("operationSvcCommission", "运维服务费抽成"); + + // 默认的,未添加alias的属性也会写出,如果想只写出加了别名的字段,可以调用此方法排除之 + writer.setOnlyAlias(true); + // 一次性写出内容,使用默认样式,强制输出标题 + writer.write(list, true); + //out为OutputStream,需要写出到的目标流 + response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); + response.setCharacterEncoding("utf-8"); + + ServletOutputStream out = response.getOutputStream(); + writer.flush(out, true); + writer.close(); + IoUtil.close(out); + } + + + @Override + public void dateIntervalExport(HttpServletResponse response, String chargingStationIds, Long internetUserId, Long operatorId, String startTime, String endTime, Long userId, Integer type) throws IOException { + List> list = getDateIntervalPage(chargingStationIds, internetUserId, operatorId, startTime, endTime, userId, type); + + // 通过工具类创建writer,默认创建xls格式 + ExcelWriter writer = ExcelUtil.getWriter(); + writer.addHeaderAlias("createTime", "日期"); + writer.addHeaderAlias("chargingDegree", "电量"); + writer.addHeaderAlias("chargingTime", "充电时长(小时)"); + writer.addHeaderAlias("chargingNumber", "充电次数"); + writer.addHeaderAlias("powerPrice", "电费"); + writer.addHeaderAlias("servicePrice", "服务费"); + writer.addHeaderAlias("totalPrice", "订单总价"); + writer.addHeaderAlias("promotionDiscount", "抵扣的总金额"); + writer.addHeaderAlias("actPrice", "用户支付金额"); + writer.addHeaderAlias("actPowerPrice", "运营商电费"); + writer.addHeaderAlias("actServicePrice", "运营商服务费"); + writer.addHeaderAlias("internetCommission", "流量方总金额抽成"); + writer.addHeaderAlias("internetSvcCommission", "流量方服务费抽成"); + writer.addHeaderAlias("platformCommission", "平台总金额抽成"); + writer.addHeaderAlias("platformSvcCommisssion", "平台服务费抽成"); + writer.addHeaderAlias("operationCommission", "运维总金额抽成"); + writer.addHeaderAlias("operationSvcCommission", "运维服务费抽成"); + + // 默认的,未添加alias的属性也会写出,如果想只写出加了别名的字段,可以调用此方法排除之 + writer.setOnlyAlias(true); + // 一次性写出内容,使用默认样式,强制输出标题 + writer.write(list, true); + //out为OutputStream,需要写出到的目标流 + + response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); + response.setCharacterEncoding("utf-8"); + + ServletOutputStream out = response.getOutputStream(); + + writer.flush(out, true); + // 关闭writer,释放内存 + writer.close(); + //此处记得关闭输出Servlet流 + IoUtil.close(out); } @Override - public void exportByDate(ServletOutputStream out, String[] titles, String[] keys, List> data) throws Exception { - export(out, titles, keys, data); + public void stationIntervalExport(HttpServletResponse response, String chargingStationIds,String operatorIds, Long internetUserId, Long operatorId, String startTime, String endTime, Long userId, Integer type) throws IOException { + List> list = getStationIntervalPage(chargingStationIds, operatorIds, internetUserId, operatorId, startTime, endTime, userId, type); + + // 通过工具类创建writer,默认创建xls格式 + ExcelWriter writer = ExcelUtil.getWriter(); + writer.addHeaderAlias("chargingStationName", "电站名称"); + writer.addHeaderAlias("operatorName", "运营商名称"); + writer.addHeaderAlias("chargingDegree", "电量"); + writer.addHeaderAlias("chargingTime", "充电时长(小时)"); + writer.addHeaderAlias("chargingNumber", "充电次数"); + writer.addHeaderAlias("powerPrice", "电费"); + writer.addHeaderAlias("servicePrice", "服务费"); + writer.addHeaderAlias("totalPrice", "订单总价"); + writer.addHeaderAlias("promotionDiscount", "抵扣的总金额"); + writer.addHeaderAlias("actPrice", "用户支付金额"); + writer.addHeaderAlias("actPowerPrice", "运营商电费"); + writer.addHeaderAlias("actServicePrice", "运营商服务费"); + writer.addHeaderAlias("internetCommission", "流量方总金额抽成"); + writer.addHeaderAlias("internetSvcCommission", "流量方服务费抽成"); + writer.addHeaderAlias("platformCommission", "平台总金额抽成"); + writer.addHeaderAlias("platformSvcCommisssion", "平台服务费抽成"); + writer.addHeaderAlias("operationCommission", "运维总金额抽成"); + writer.addHeaderAlias("operationSvcCommission", "运维服务费抽成"); + writer.addHeaderAlias("createTime", "日期"); + + // 默认的,未添加alias的属性也会写出,如果想只写出加了别名的字段,可以调用此方法排除之 + writer.setOnlyAlias(true); + // 一次性写出内容,使用默认样式,强制输出标题 + writer.write(list, true); + //out为OutputStream,需要写出到的目标流 + + response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); + response.setCharacterEncoding("utf-8"); + + ServletOutputStream out = response.getOutputStream(); + + writer.flush(out, true); + // 关闭writer,释放内存 + writer.close(); + //此处记得关闭输出Servlet流 + IoUtil.close(out); } @Override - public void export(ServletOutputStream out, String[] titles, String[] keys, List> data) throws Exception { + public void operatorIntervalExport(HttpServletResponse response, String operatorIds,Long operatorId, String startTime, String endTime, Long userId, Integer type) throws IOException { + List> list = getOperatorIntervalPage(operatorIds, operatorId, startTime, endTime, userId, type); -// try { -// //Making the head. -// HSSFWorkbook workbook = new HSSFWorkbook(); -// HSSFSheet hssfSheet = workbook.createSheet("sheet1"); -// HSSFRow row = hssfSheet.createRow(0); -// HSSFCellStyle hssfCellStyle = workbook.createCellStyle(); -// hssfCellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); -// hssfCellStyle.setFillForegroundColor(HSSFColor.SKY_BLUE.index); -// hssfCellStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); -// HSSFCell hssfCell; -// for (int i = 0; i < titles.length; i++) { -// hssfCell = row.createCell(i); -// hssfCell.setCellValue(titles[i]); -// hssfCell.setCellStyle(hssfCellStyle); -// hssfSheet.setColumnWidth(i, hssfCell.getStringCellValue().getBytes().length * 256 + 200); -// } -// -// //Loading data. -// HSSFRow dataRow; -// HSSFCell dataCell; -// int valuesLength = keys.length; -// for (int i = 1; i <= data.size(); i++) { -// Map map = data.get(i - 1); -// if (null != map) { -// dataRow = hssfSheet.createRow(i); -// for (int j = 0; j < valuesLength; j++) { -// if (null != map.get(keys[j])) { -// dataCell = dataRow.createCell(j); -// String s = String.valueOf(map.get(keys[j])); -// dataCell.setCellValue(s); -// } -// } -// } -// } -// // Exporting to the client. -// try { -// workbook.write(out); -// out.flush(); -// out.close(); -// } catch (Exception e) { -// e.printStackTrace(); -// } -// } catch (Exception e) { -// e.printStackTrace(); -// throw new Exception("导出信息失败!"); -// } + // 通过工具类创建writer,默认创建xls格式 + ExcelWriter writer = ExcelUtil.getWriter(); + writer.addHeaderAlias("operatorName", "运营商名称"); + writer.addHeaderAlias("chargingDegree", "电量"); + writer.addHeaderAlias("chargingTime", "充电时长(小时)"); + writer.addHeaderAlias("chargingNumber", "充电次数"); + writer.addHeaderAlias("powerPrice", "电费"); + writer.addHeaderAlias("servicePrice", "服务费"); + writer.addHeaderAlias("totalPrice", "订单总价"); + writer.addHeaderAlias("promotionDiscount", "抵扣的总金额"); + writer.addHeaderAlias("actPrice", "用户支付金额"); + writer.addHeaderAlias("actPowerPrice", "运营商电费"); + writer.addHeaderAlias("actServicePrice", "运营商服务费"); + writer.addHeaderAlias("internetCommission", "流量方总金额抽成"); + writer.addHeaderAlias("internetSvcCommission", "流量方服务费抽成"); + writer.addHeaderAlias("platformCommission", "平台总金额抽成"); + writer.addHeaderAlias("platformSvcCommisssion", "平台服务费抽成"); + writer.addHeaderAlias("operationCommission", "运维总金额抽成"); + writer.addHeaderAlias("operationSvcCommission", "运维服务费抽成"); + writer.addHeaderAlias("createTime", "日期"); + + // 默认的,未添加alias的属性也会写出,如果想只写出加了别名的字段,可以调用此方法排除之 + writer.setOnlyAlias(true); + // 一次性写出内容,使用默认样式,强制输出标题 + writer.write(list, true); + //out为OutputStream,需要写出到的目标流 + + response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); + response.setCharacterEncoding("utf-8"); + + ServletOutputStream out = response.getOutputStream(); + + writer.flush(out, true); + // 关闭writer,释放内存 + writer.close(); + //此处记得关闭输出Servlet流 + IoUtil.close(out); + } + + + @Override + public void internetUserIntervalExport(HttpServletResponse response, String internetUserIds, Long internetUserId, String startTime, String endTime, Long userId, Integer type) throws IOException { + List> list = getInternetUserIntervalPage(internetUserIds, internetUserId, startTime, endTime, userId, type); + + // 通过工具类创建writer,默认创建xls格式 + ExcelWriter writer = ExcelUtil.getWriter(); + writer.addHeaderAlias("internetUserName", "流量方名称"); + writer.addHeaderAlias("chargingDegree", "电量"); + writer.addHeaderAlias("chargingTime", "充电时长(小时)"); + writer.addHeaderAlias("chargingNumber", "充电次数"); + writer.addHeaderAlias("powerPrice", "电费"); + writer.addHeaderAlias("servicePrice", "服务费"); + writer.addHeaderAlias("totalPrice", "订单总价"); + writer.addHeaderAlias("promotionDiscount", "抵扣的总金额"); + writer.addHeaderAlias("actPrice", "用户支付金额"); + writer.addHeaderAlias("actPowerPrice", "运营商电费"); + writer.addHeaderAlias("actServicePrice", "运营商服务费"); + writer.addHeaderAlias("internetCommission", "流量方总金额抽成"); + writer.addHeaderAlias("internetSvcCommission", "流量方服务费抽成"); + writer.addHeaderAlias("platformCommission", "平台总金额抽成"); + writer.addHeaderAlias("platformSvcCommisssion", "平台服务费抽成"); + writer.addHeaderAlias("operationCommission", "运维总金额抽成"); + writer.addHeaderAlias("operationSvcCommission", "运维服务费抽成"); + writer.addHeaderAlias("createTime", "日期"); + + // 默认的,未添加alias的属性也会写出,如果想只写出加了别名的字段,可以调用此方法排除之 + writer.setOnlyAlias(true); + // 一次性写出内容,使用默认样式,强制输出标题 + writer.write(list, true); + //out为OutputStream,需要写出到的目标流 + + response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); + response.setCharacterEncoding("utf-8"); + + ServletOutputStream out = response.getOutputStream(); + + writer.flush(out, true); + // 关闭writer,释放内存 + writer.close(); + //此处记得关闭输出Servlet流 + IoUtil.close(out); + } + + + @Override + public void terminalIntervalExport(HttpServletResponse response, String chargingStationId, String terminalId, Long operatorId, String startTime, String endTime, Long userId, Integer type) throws IOException { + List> list = getTerminalIntervalPage(chargingStationId, terminalId, operatorId, startTime, endTime, userId, type); + + // 通过工具类创建writer,默认创建xls格式 + ExcelWriter writer = ExcelUtil.getWriter(); + writer.addHeaderAlias("chargingStationName", "电站名称"); + writer.addHeaderAlias("terminalName", "终端名称"); + writer.addHeaderAlias("chargingDegree", "电量"); + writer.addHeaderAlias("chargingTime", "充电时长(小时)"); + writer.addHeaderAlias("chargingNumber", "充电次数"); + writer.addHeaderAlias("powerPrice", "电费"); + writer.addHeaderAlias("servicePrice", "服务费"); + writer.addHeaderAlias("totalPrice", "订单总价"); + writer.addHeaderAlias("promotionDiscount", "抵扣的总金额"); + writer.addHeaderAlias("actPrice", "用户支付金额"); + writer.addHeaderAlias("actPowerPrice", "运营商电费"); + writer.addHeaderAlias("actServicePrice", "运营商服务费"); + writer.addHeaderAlias("internetCommission", "流量方总金额抽成"); + writer.addHeaderAlias("internetSvcCommission", "流量方服务费抽成"); + writer.addHeaderAlias("platformCommission", "平台总金额抽成"); + writer.addHeaderAlias("platformSvcCommisssion", "平台服务费抽成"); + writer.addHeaderAlias("operationCommission", "运维总金额抽成"); + writer.addHeaderAlias("operationSvcCommission", "运维服务费抽成"); + writer.addHeaderAlias("createTime", "日期"); + + // 默认的,未添加alias的属性也会写出,如果想只写出加了别名的字段,可以调用此方法排除之 + writer.setOnlyAlias(true); + // 一次性写出内容,使用默认样式,强制输出标题 + writer.write(list, true); + //out为OutputStream,需要写出到的目标流 + + response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); + response.setCharacterEncoding("utf-8"); + + ServletOutputStream out = response.getOutputStream(); + + writer.flush(out, true); + // 关闭writer,释放内存 + writer.close(); + //此处记得关闭输出Servlet流 + IoUtil.close(out); }