From e9f1ee7341bcf55904f6c0d31aa91ff52aa441dc Mon Sep 17 00:00:00 2001
From: zhizhijie <zhizhijie@users.noreply.gitee.com>
Date: 星期二, 22 九月 2026 11:28:40 +0800
Subject: [PATCH] feat(数据查看): 按市州汇总(任意起止月/自动上年同期/时点列不参与/排名可选) + 导出 Excel,新增 CityRollupService 与 3 个接口
---
traffic-audit-server/src/main/java/com/trafficaudit/dataimport/controller/DataViewController.java | 37 +++++++++++++++++++++++++++++++++++++
1 files changed, 37 insertions(+), 0 deletions(-)
diff --git a/traffic-audit-server/src/main/java/com/trafficaudit/dataimport/controller/DataViewController.java b/traffic-audit-server/src/main/java/com/trafficaudit/dataimport/controller/DataViewController.java
index f769ca6..6ce7914 100644
--- a/traffic-audit-server/src/main/java/com/trafficaudit/dataimport/controller/DataViewController.java
+++ b/traffic-audit-server/src/main/java/com/trafficaudit/dataimport/controller/DataViewController.java
@@ -24,6 +24,8 @@
import com.trafficaudit.dataimport.entity.WycTotalMonthly;
import com.trafficaudit.common.util.RegionUtil;
import com.trafficaudit.reportexport.calc.WycSplitCalc;
+import com.trafficaudit.dataimport.service.CityRollupService;
+import javax.servlet.http.HttpServletResponse;
import com.trafficaudit.dataimport.mapper.FreightTurnoverImportMapper;
import com.trafficaudit.dataimport.mapper.H2032EnterpriseMonthlyMapper;
import com.trafficaudit.dataimport.mapper.PassengerAuthVehicleMapper;
@@ -100,6 +102,8 @@
private WycTotalMonthlyMapper wycTotalMapper;
@Resource
private WycSplitCalc wycSplitCalc;
+ @Resource
+ private CityRollupService cityRollupService;
@GetMapping("/list")
public Result<Map<String, Object>> list(@RequestParam("type") String type,
@@ -451,6 +455,39 @@
return rows;
}
+ /** 鏀寔鎸夊競宸炴眹鎬荤殑鏁版嵁绫诲瀷 */
+ @GetMapping("/rollupTypes")
+ public Result<List<Map<String, Object>>> rollupTypes() {
+ return Result.ok(cityRollupService.supportedTypes());
+ }
+
+ /** 鎸夊競宸炴眹鎬伙紙浠绘剰璧锋鏈堬級 */
+ @GetMapping("/summary")
+ public Result<Map<String, Object>> summary(@RequestParam("type") String type,
+ @RequestParam("from") String from,
+ @RequestParam("to") String to,
+ @RequestParam(value = "rankMode", defaultValue = "blank") String rankMode) {
+ return Result.ok(cityRollupService.summary(type, from, to, "recompute".equalsIgnoreCase(rankMode)));
+ }
+
+ /** 鎸夊競宸炴眹鎬诲鍑� Excel锛堟暟鍊煎叏绮惧害锛屾樉绀� 2 浣嶅皬鏁� / 鐧惧垎姣旓級 */
+ @GetMapping("/export")
+ public void export(@RequestParam("type") String type,
+ @RequestParam("from") String from,
+ @RequestParam("to") String to,
+ @RequestParam(value = "rankMode", defaultValue = "blank") String rankMode,
+ HttpServletResponse response) throws Exception {
+ byte[] bytes = cityRollupService.exportExcel(type, from, to, "recompute".equalsIgnoreCase(rankMode));
+ String fileName = "鎸夊競宸炴眹鎬籣" + type + "_" + from + "_" + to + ".xlsx";
+ response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
+ response.setCharacterEncoding("UTF-8");
+ response.setHeader("Content-Disposition",
+ "attachment; filename=\"" + java.net.URLEncoder.encode(fileName, "UTF-8") + "\"");
+ response.setContentLength(bytes.length);
+ response.getOutputStream().write(bytes);
+ response.getOutputStream().flush();
+ }
+
private boolean notEmpty(String s) {
return s != null && !s.trim().isEmpty();
}
--
Gitblit v1.9.1