From f329f504040f3608478c687a99aa36a3cf5720b7 Mon Sep 17 00:00:00 2001
From: xyc <jc_xiong@hotmail.com>
Date: 星期六, 03 十月 2026 23:45:04 +0800
Subject: [PATCH] feat(observation): 新增观测站分日调查数据导入与明细查看
---
traffic-audit-server/src/main/java/com/trafficaudit/observation/controller/ObservationStationController.java | 65 ++++++++++++++++++++++++++++++++
1 files changed, 65 insertions(+), 0 deletions(-)
diff --git a/traffic-audit-server/src/main/java/com/trafficaudit/observation/controller/ObservationStationController.java b/traffic-audit-server/src/main/java/com/trafficaudit/observation/controller/ObservationStationController.java
new file mode 100644
index 0000000..6a77ca5
--- /dev/null
+++ b/traffic-audit-server/src/main/java/com/trafficaudit/observation/controller/ObservationStationController.java
@@ -0,0 +1,65 @@
+package com.trafficaudit.observation.controller;
+
+import com.trafficaudit.common.Result;
+import com.trafficaudit.observation.dto.ObservationDateSummary;
+import com.trafficaudit.observation.entity.ObservationStationFlow;
+import com.trafficaudit.observation.service.ObservationStationImportService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.annotation.Resource;
+import java.time.LocalDate;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Observation station raw data. Collected and stored only; not linked to holiday flow data.
+ */
+@Slf4j
+@RestController
+@RequestMapping("/api/observation")
+public class ObservationStationController {
+
+ @Resource
+ private ObservationStationImportService importService;
+
+ @PostMapping("/import")
+ public Result<Map<String, Object>> importWorkbook(@RequestParam("file") MultipartFile file) {
+ try {
+ return Result.ok(importService.importWorkbook(file));
+ } catch (Exception e) {
+ log.error("observation station import error", e);
+ return Result.error(400, e.getMessage());
+ }
+ }
+
+ @GetMapping("/dates")
+ public Result<List<ObservationDateSummary>> dates() {
+ return Result.ok(importService.listDateSummaries());
+ }
+
+ @GetMapping("/rows")
+ public Result<List<ObservationStationFlow>> rows(@RequestParam(value = "date", required = false) String date,
+ @RequestParam(value = "limit", defaultValue = "2000") int limit) {
+ try {
+ LocalDate target = (date == null || date.trim().isEmpty()) ? null : LocalDate.parse(date);
+ return Result.ok(importService.listRows(target, limit));
+ } catch (Exception e) {
+ return Result.error(400, e.getMessage());
+ }
+ }
+
+ @PostMapping("/delete")
+ public Result<Integer> delete(@RequestParam("date") String date) {
+ try {
+ return Result.ok(importService.deleteDate(LocalDate.parse(date)));
+ } catch (Exception e) {
+ return Result.error(400, e.getMessage());
+ }
+ }
+}
--
Gitblit v1.9.1