From 8b739ce9e80fce73da0f36408aaeec85318b806b Mon Sep 17 00:00:00 2001
From: zhizhijie <zhizhijie@users.noreply.gitee.com>
Date: 星期二, 22 九月 2026 17:31:09 +0800
Subject: [PATCH] docs(交接): 统一 09-22 关机快照(合并同事版本,修正运行状态为实测:8090/8080 在运行)

---
 traffic-audit-server/src/main/java/com/trafficaudit/dataimport/controller/DataImportController.java |   82 +++++++++++++++++++++++++++++++++++++++++
 1 files changed, 82 insertions(+), 0 deletions(-)

diff --git a/traffic-audit-server/src/main/java/com/trafficaudit/dataimport/controller/DataImportController.java b/traffic-audit-server/src/main/java/com/trafficaudit/dataimport/controller/DataImportController.java
index 5700733..46d6e61 100644
--- a/traffic-audit-server/src/main/java/com/trafficaudit/dataimport/controller/DataImportController.java
+++ b/traffic-audit-server/src/main/java/com/trafficaudit/dataimport/controller/DataImportController.java
@@ -242,6 +242,51 @@
         }
     }
 
+
+    /** 缃戠害杞︽�绘暟锛堟湀搴﹀叏鐪� pin锛氭ā鏉縚缃戠害杞︽�绘暟.xlsx锛� */
+    @PostMapping("/wycTotal")
+    public Result<String> importWycTotal(@RequestParam("file") MultipartFile file,
+                                         @RequestParam("period") String period) {
+        try {
+            int count = importService.importWycTotal(file, period);
+            return Result.ok("缃戠害杞︽�绘暟瀵煎叆鎴愬姛, 鍏� " + count + " 鏈�");
+        } catch (Exception e) {
+            log.error("wycTotal import error", e);
+            return Result.error("瀵煎叆澶辫触: " + e.getMessage());
+        }
+    }
+
+    /** 缃戠害杞﹁鍗曞強鍏ㄧ渷鎬婚噺锛堟ā鏉縚缃戠害杞﹁鍗曞強鍏ㄧ渷鎬婚噺.xlsx锛� */
+    @PostMapping("/wycOrder")
+    public Result<String> importWycOrder(@RequestParam("file") MultipartFile file,
+                                         @RequestParam("period") String period) {
+        try {
+            int count = importService.importWycOrder(file, period);
+            return Result.ok("缃戠害杞﹁鍗曞強鍏ㄧ渷鎬婚噺瀵煎叆鎴愬姛, 鍏� " + count + " 鏈�");
+        } catch (Exception e) {
+            log.error("wycOrder import error", e);
+            return Result.error("瀵煎叆澶辫触: " + e.getMessage());
+        }
+    }
+
+    /** 缃戠害杞﹁鍗曡繍琛岀洃娴嬪垎鏋愭姤鍛婏紙docx锛氥�婄綉绾﹁溅琛屼笟YYYY骞碝鏈堣繍琛岀洃娴嬫儏鍐靛垎鏋愭姤鍛娿�嬶級 */
+    @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("锛涗互涓嬪競宸炴湭鍦ㄦ姤鍛婁腑瑙f瀽鍒帮紝鏈啓鍏ワ細").append(String.join("銆�", r.getMissingCities()));
+            }
+            return Result.ok(msg.toString());
+        } catch (Exception e) {
+            log.error("wycOrderReport import error", e);
+            return Result.error("瀵煎叆澶辫触: " + e.getMessage());
+        }
+    }
+
     /** 鎶曡祫鏈堟姤锛堝叏鐪佹眹鎬诲ぇ琛級锛歝ategory=瀹㈣繍绔欏満/鐗╂祦鍥尯 */
     @PostMapping("/investment")
     public Result<String> importInvestment(@RequestParam("file") MultipartFile file,
@@ -264,6 +309,20 @@
         } catch (Exception e) {
             log.error("investment import error", e);
             return Result.error("瀵煎叆澶辫触: " + e.getMessage());
+        }
+    }
+
+    /** 澶氭枃浠舵壒閲忓鍏ワ細鍓嶇涓�娆¢�夋嫨澶氫釜 Excel 涓婁紶锛坱ype 涓烘暟鎹被鍨嬶紝鎶曡祫绫诲瀷鎸夊競宸炲崟琛ㄨВ鏋愶級 */
+    @PostMapping("/batch")
+    public Result<Object> importBatch(@RequestParam("type") String type,
+                                      @RequestParam("period") String period,
+                                      @RequestParam("files") List<MultipartFile> files) {
+        try {
+            Map<String, Object> result = importService.importBatchFiles(type, period, files);
+            return Result.ok(result);
+        } catch (Exception e) {
+            log.error("batch import error", e);
+            return Result.error("鎵归噺瀵煎叆澶辫触: " + e.getMessage());
         }
     }
 
@@ -402,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());
+        }
+    }
+
 }

--
Gitblit v1.9.1