龚焕茏
2024-07-30 9c2dab107551b64b3fe16e1c7c178a4c15cacb5b
feat:核算报告导出
3个文件已修改
31 ■■■■■ 已修改文件
ycl-pojo/src/main/java/com/ycl/platform/domain/excel/CalculateExport.java 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/service/impl/CalculateReportServiceImpl.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/resources/mapper/zgyw/CalculateReportMapper.xml 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-pojo/src/main/java/com/ycl/platform/domain/excel/CalculateExport.java
@@ -37,27 +37,15 @@
    private Integer num;
    /**
     * 金额
     */
    @ExcelProperty({"自贡市公共视频监控系统续维合同", "金额"})
    private BigDecimal money;
    /**
     * 分数
     */
    @ExcelProperty({"自贡市公共视频监控系统续维合同", "分数"})
    private Integer score;
    /**
     * 剩余分数
     * 金额
     */
    @ExcelProperty({"自贡市公共视频监控系统续维合同", "剩余分数"})
    private Integer surplusScore;
    /**
     * 合计
     */
    @ExcelProperty({"自贡市公共视频监控系统续维合同", "合计"})
    private BigDecimal total;
    @ExcelProperty({"自贡市公共视频监控系统续维合同", "金额"})
    private BigDecimal money;
}
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);
    }
}
ycl-server/src/main/resources/mapper/zgyw/CalculateReportMapper.xml
@@ -104,8 +104,7 @@
        SELECT
            SUBSTRING_INDEX(rule_name, '/', 1) AS rule_name,
            COUNT(*) AS num,
            SUM(score) AS score,
            (100 - SUM(score)) AS surplusScore
            -SUM(score) AS score
        FROM t_contract_score
        WHERE contract_id = #{contractId} AND auditing_status = 'PASS' AND deleted = 0
        GROUP BY SUBSTRING_INDEX(rule_name, '/', 1)