龚焕茏
2024-07-30 9c2dab107551b64b3fe16e1c7c178a4c15cacb5b
ycl-server/src/main/java/com/ycl/platform/service/impl/CalculateReportServiceImpl.java
@@ -199,12 +199,20 @@
    @Override
    @SneakyThrows
    public void export(Integer contractId, HttpServletResponse response) {
        // 获取数据
        List<CalculateExport> list = baseMapper.exportData(contractId);
        CalculateExport calculateExport = new CalculateExport();
        calculateExport.setRuleName("合计");
        calculateExport.setNum(list.stream().mapToInt(CalculateExport::getNum).sum());
        calculateExport.setScore(list.stream().mapToInt(CalculateExport::getScore).sum());
        list.add(calculateExport);
        // 输出文件
        response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
        response.setCharacterEncoding("utf-8");
        String fileName = URLEncoder.encode("核算报告", StandardCharsets.UTF_8).replace("\\+", "%20");
        response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
        EasyExcel.write(response.getOutputStream(), CalculateExport.class)
                .sheet("核算报告")
                .doWrite(baseMapper.exportData(contractId));
                .doWrite(list);
    }
}