zhizhijie
2026-09-19 60b8347dcc5d8e2c47133fe19739374125340103
traffic-audit-server/src/main/java/com/trafficaudit/dataimport/controller/DataImportController.java
@@ -269,6 +269,24 @@
        }
    }
    /** 网约车订单运行监测分析报告(docx:《网约车行业YYYY年M月运行监测情况分析报告》) */
    @PostMapping("/wycOrderReport")
    public Result<String> importWycOrderReport(@RequestParam("file") MultipartFile file,
                                               @RequestParam("period") String period) {
        try {
            DataImportService.WycOrderReportResult r = importService.importWycOrderReport(file, period);
            StringBuilder msg = new StringBuilder("网约车订单报告导入成功:报表期 " + r.getPeriod()
                    + ",订单合计 " + String.format("%,.0f", r.getOrderSum()) + " 单,已写入 " + r.getCityCount() + " 个市州");
            if (!r.getMissingCities().isEmpty()) {
                msg.append(";以下市州未在报告中解析到,未写入:").append(String.join("、", r.getMissingCities()));
            }
            return Result.ok(msg.toString());
        } catch (Exception e) {
            log.error("wycOrderReport import error", e);
            return Result.error("导入失败: " + e.getMessage());
        }
    }
    /** 投资月报(全省汇总大表):category=客运站场/物流园区 */
    @PostMapping("/investment")
    public Result<String> importInvestment(@RequestParam("file") MultipartFile file,
@@ -443,4 +461,27 @@
        return Result.ok(result);
    }
    /**
     * 清空指定报表期已导入数据与审核结果(数据导入页"清空数据"入口调用),便于整月重新导入。
     * types 为空表示清空该报表期全部类型;否则只清空指定数据类型(逗号分隔,如 h2032,cityBus)。
     */
    @PostMapping("/clear")
    public Result<Map<String, Object>> clearData(@RequestParam("period") String period,
                                                 @RequestParam(value = "types", required = false) String types) {
        try {
            List<String> typeList = new java.util.ArrayList<>();
            if (types != null) {
                for (String t : types.split(",")) {
                    String s = t.trim();
                    if (!s.isEmpty()) typeList.add(s);
                }
            }
            Map<String, Object> stats = importService.clearPeriod(period, typeList);
            return Result.ok(stats);
        } catch (Exception e) {
            log.error("clear period {} types {} error", period, types, e);
            return Result.error("清空失败: " + e.getMessage());
        }
    }
}