zhizhijie
5 天以前 f2056aa286179f5d29f3fb6fce1479035cca856a
traffic-audit-server/src/main/java/com/trafficaudit/reportexport/controller/ReportExportController.java
@@ -1,6 +1,8 @@
package com.trafficaudit.reportexport.controller;
import com.trafficaudit.common.Result;
import com.trafficaudit.reportexport.calc.FreightReadinessCheck;
import com.trafficaudit.reportexport.calc.SummaryMissingDataCheck;
import com.trafficaudit.reportexport.service.ReportExportService;
import com.trafficaudit.reportexport.service.ReportExportTaskService;
import com.trafficaudit.system.service.OperationLogService;
@@ -26,6 +28,10 @@
    @Resource
    private ReportExportService reportService;
    @Resource
    private FreightReadinessCheck freightReadinessCheck;
    @Resource
    private SummaryMissingDataCheck missingDataCheck;
    @Resource
    private ReportExportTaskService exportTaskService;
    @Resource
@@ -89,6 +95,30 @@
    }
    /** 生成_道路运输量汇总表.xlsx(汇总工作簿 P0-P1 骨架:整本复制母版,页签/公式/2025 缓存保留) */
    /** 货运口径导出前体检(B4):只读返回命中的问题清单。 */
    @GetMapping("/summaryWorkbook/freightCheck")
    public Result<java.util.List<String>> freightCheck(@RequestParam("period") String period) {
        return Result.ok(freightReadinessCheck.check(period));
    }
    /** 汇总大表缺数清单(只读):列出目标期出表会缺的月份/市州/来源(与 freightCheck 互补)。 */
    @GetMapping("/summaryWorkbook/missing")
    public Result<java.util.List<String>> missingCheck(@RequestParam("period") String period) {
        return Result.ok(missingDataCheck.check(period));
    }
    /** 汇总大表按月扩列(Step 1,只做版式、数据留空):返回下一月版式 xlsx。 */
    @GetMapping("/export/summaryWorkbook/expand")
    public ResponseEntity<byte[]> expandSummaryWorkbook(@RequestParam("period") String period,
                                                        @RequestParam(value = "titlesOnly", defaultValue = "false") boolean titlesOnly) throws Exception {
        if (titlesOnly) {
            byte[] titled = reportService.fixSummaryTitles(period);
            return buildResponse(titled, String.format("标题修正_道路运输量汇总表_%s.xlsx", period));
        }
        byte[] data = reportService.expandSummaryWorkbook(period);
        return buildResponse(data, String.format("扩列_道路运输量汇总表_%s_待确认.xlsx", period));
    }
    @GetMapping("/export/summaryWorkbook")
    public ResponseEntity<byte[]> exportSummaryWorkbook(@RequestParam("period") String period,
                                                        @RequestParam(value = "mode", defaultValue = "month") String mode,
@@ -99,7 +129,7 @@
    /**
     * 汇总大表异步导出:立即返回任务号,前端轮询进度、完成后再下载文件。
     * 生成一次约 10~20 秒,走异步可避免点击后长时间无响应;同报表期 10 分钟内的结果直接复用(期间有导入则自动失效),
     * 生成一次约 10~20 秒,走异步可避免点击后长时间无响应;同报表期结果直接复用(落盘保存、进程重启后仍有效;期间有导入则自动失效),
     * refresh=true 可强制重新生成。
     */
    @GetMapping("/exportTask/summaryWorkbook")