diff --git a/xhpc-modules/xhpc-general/src/main/java/com/xhpc/general/controller/XhpcStatisticsExcelController.java b/xhpc-modules/xhpc-general/src/main/java/com/xhpc/general/controller/XhpcStatisticsExcelController.java new file mode 100644 index 00000000..7174852c --- /dev/null +++ b/xhpc-modules/xhpc-general/src/main/java/com/xhpc/general/controller/XhpcStatisticsExcelController.java @@ -0,0 +1,60 @@ +package com.xhpc.general.controller; + +import cn.hutool.core.date.DateUtil; +import com.xhpc.general.mapper.XhpcStatisticsExcelMapper; +import com.xhpc.general.service.IXhpcStatisticsExcelService; +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.RestController; + +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletResponse; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/** + * @Author HongYun on 2021/11/15 + */ +@RestController +@RequestMapping(value = "/statistics") +public class XhpcStatisticsExcelController { + + + @Autowired + private IXhpcStatisticsExcelService iXhpcStatisticsExcelService; + + @Autowired + private XhpcStatisticsExcelMapper xhpcStatisticsExcelMapper; + + + @GetMapping(value = "/downByDay") + public Object test(HttpServletResponse response) { + + String[] titles = {"时段(某天)", " 电量(度)", "充电时长(小时)", "充电次数(次)", "电费(元)", "服务费(元)" + , "订单总金额(元)", "电站折扣(元)", "运营商实收电费(元)", "运营商实收服务费(元)", "运营商实收合计(元)", "用户实际支出(元)" + , "流量方总金额抽成(元)", "流量方服务费抽成(元)", "平台总金额抽成(元)", "平台服务费抽成(元)", "运维总金额抽成(元)", "运维服务费抽成(元)"}; + String[] keys = {"time", "chargingDegree", "chargingTime", "chargingNumber", "powerPrice", "servicePrice", "totalPrice" + , "promotionDiscount", "actPowerPrice", "actServicePrice", "actTotalPrice", "actPrice", "internetCommission", "internetSvcCommission" + , "platformCommission", "platformSvcCommission", "operationCommission", "operationSvcCommission"}; + List> data = xhpcStatisticsExcelMapper.selectByDay(); + 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(); + } + iXhpcStatisticsExcelService.exportByDay(out, titles, keys, data); + return "success"; + } catch (Exception e) { + e.printStackTrace(); + return "导出信息失败"; + } + } +} diff --git a/xhpc-modules/xhpc-general/src/main/java/com/xhpc/general/mapper/XhpcStatisticsExcelMapper.java b/xhpc-modules/xhpc-general/src/main/java/com/xhpc/general/mapper/XhpcStatisticsExcelMapper.java new file mode 100644 index 00000000..16feb9a7 --- /dev/null +++ b/xhpc-modules/xhpc-general/src/main/java/com/xhpc/general/mapper/XhpcStatisticsExcelMapper.java @@ -0,0 +1,15 @@ +package com.xhpc.general.mapper; + +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; +import java.util.Map; + +/** + * @Author HongYun on 2021/11/15 + */ +@Mapper +public interface XhpcStatisticsExcelMapper { + + List> selectByDay(); +} diff --git a/xhpc-modules/xhpc-general/src/main/java/com/xhpc/general/service/IXhpcAgreementService.java b/xhpc-modules/xhpc-general/src/main/java/com/xhpc/general/service/IXhpcAgreementService.java index 96498034..eb9ed4e9 100644 --- a/xhpc-modules/xhpc-general/src/main/java/com/xhpc/general/service/IXhpcAgreementService.java +++ b/xhpc-modules/xhpc-general/src/main/java/com/xhpc/general/service/IXhpcAgreementService.java @@ -1,9 +1,7 @@ package com.xhpc.general.service; import com.xhpc.common.core.web.domain.AjaxResult; -import com.xhpc.common.core.web.page.TableDataInfo; import com.xhpc.general.domain.XhpcAgreement; -import org.apache.commons.math3.genetics.Fitness; import java.util.List; diff --git a/xhpc-modules/xhpc-general/src/main/java/com/xhpc/general/service/IXhpcStatisticsExcelService.java b/xhpc-modules/xhpc-general/src/main/java/com/xhpc/general/service/IXhpcStatisticsExcelService.java new file mode 100644 index 00000000..89802546 --- /dev/null +++ b/xhpc-modules/xhpc-general/src/main/java/com/xhpc/general/service/IXhpcStatisticsExcelService.java @@ -0,0 +1,16 @@ +package com.xhpc.general.service; + +import javax.servlet.ServletOutputStream; +import java.util.List; +import java.util.Map; + +/** + * @Author HongYun on 2021/11/15 + */ + +public interface IXhpcStatisticsExcelService { + + void exportByDay(ServletOutputStream out, String[] titles, String[] keys, List> data) throws Exception; + + void export(ServletOutputStream out, String[] titles, String[] keys, List> data) throws Exception; +} diff --git a/xhpc-modules/xhpc-general/src/main/java/com/xhpc/general/service/XhpcStatisticsExcelServiceImpl.java b/xhpc-modules/xhpc-general/src/main/java/com/xhpc/general/service/XhpcStatisticsExcelServiceImpl.java new file mode 100644 index 00000000..73865547 --- /dev/null +++ b/xhpc-modules/xhpc-general/src/main/java/com/xhpc/general/service/XhpcStatisticsExcelServiceImpl.java @@ -0,0 +1,74 @@ +package com.xhpc.general.service; + +import org.apache.poi.hssf.usermodel.*; +import org.apache.poi.hssf.util.HSSFColor; +import org.springframework.stereotype.Service; + +import javax.servlet.ServletOutputStream; +import java.util.List; +import java.util.Map; + +/** + * @Author HongYun on 2021/11/15 + */ +@Service +public class XhpcStatisticsExcelServiceImpl implements IXhpcStatisticsExcelService { + + + public void exportByDay(ServletOutputStream out, String[] titles, String[] keys, List> data) throws Exception { + + export(out, titles, keys, data); + } + + public void export(ServletOutputStream out, String[] titles, String[] keys, List> data) throws Exception { + + 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("导出信息失败!"); + } + } + +} diff --git a/xhpc-modules/xhpc-general/src/main/resources/mapper/XhpcStatisticsExcelMapper.xml b/xhpc-modules/xhpc-general/src/main/resources/mapper/XhpcStatisticsExcelMapper.xml new file mode 100644 index 00000000..1c176dff --- /dev/null +++ b/xhpc-modules/xhpc-general/src/main/resources/mapper/XhpcStatisticsExcelMapper.xml @@ -0,0 +1,23 @@ + + + + + + +