From 5e0640513226d9d9f2d766c075f79832c9d290ba Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期三, 09 九月 2026 13:45:44 +0800
Subject: [PATCH] feat(bi): 新增BI决策支持KPI历史快照与预测功能
---
yudao-module-bi/src/main/java/cn/iocoder/yudao/module/bi/controller/admin/decision/DecisionForecastController.java | 25 ++++++++++++++++++++++---
1 files changed, 22 insertions(+), 3 deletions(-)
diff --git a/yudao-module-bi/src/main/java/cn/iocoder/yudao/module/bi/controller/admin/decision/DecisionForecastController.java b/yudao-module-bi/src/main/java/cn/iocoder/yudao/module/bi/controller/admin/decision/DecisionForecastController.java
index 2f003bb..580ba22 100644
--- a/yudao-module-bi/src/main/java/cn/iocoder/yudao/module/bi/controller/admin/decision/DecisionForecastController.java
+++ b/yudao-module-bi/src/main/java/cn/iocoder/yudao/module/bi/controller/admin/decision/DecisionForecastController.java
@@ -48,13 +48,32 @@
}
@PostMapping("/generate")
- @Operation(summary = "鐢熸垚棰勬祴锛堝崰浣嶏級")
+ @Operation(summary = "鐢熸垚棰勬祴锛堟敮鎸佹寚瀹氭ā鍨嬶級")
@PreAuthorize("@ss.hasPermission('bi:decision:kpi:query')")
- public CommonResult<Boolean> generateForecast(@RequestParam("forecastCode") String forecastCode) {
- forecastService.generateForecast(forecastCode, LocalDateTime.now());
+ public CommonResult<Boolean> generateForecast(@RequestParam("forecastCode") String forecastCode,
+ @RequestParam(value = "model", required = false) String model,
+ @RequestParam(value = "window", required = false, defaultValue = "12") Integer window,
+ @RequestParam(value = "period", required = false, defaultValue = "7") Integer period) {
+ if (model == null || model.isBlank()) {
+ forecastService.generateForecast(forecastCode, LocalDateTime.now());
+ } else {
+ forecastService.generateForecast(forecastCode, model, window, period, LocalDateTime.now());
+ }
return success(true);
}
+ @PostMapping("/generate-from-kpi")
+ @Operation(summary = "鍩轰簬KPI鍘嗗彶蹇収鐢熸垚棰勬祴锛堣礋鑽�/浜ч噺/閲囪喘/鍥炴锛�")
+ @PreAuthorize("@ss.hasPermission('bi:decision:kpi:query')")
+ public CommonResult<Integer> generateKpiForecast(@RequestParam("kpiCode") String kpiCode,
+ @RequestParam(value = "model", required = false) String model,
+ @RequestParam(value = "window", required = false, defaultValue = "12") Integer window,
+ @RequestParam(value = "period", required = false, defaultValue = "7") Integer period,
+ @RequestParam(value = "periods", required = false, defaultValue = "30") Integer periods,
+ @RequestParam(value = "intervalMinutes", required = false, defaultValue = "360") Integer intervalMinutes) {
+ return success(forecastService.generateKpiForecast(kpiCode, model, window, period, periods, intervalMinutes));
+ }
+
@PostMapping("/generate-work-order")
@Operation(summary = "璐熻嵎棰勬祴鑱斿姩鍒涘缓鐢熶骇宸ュ崟")
@PreAuthorize("@ss.hasPermission('bi:decision-forecast:generate-work-order')")
--
Gitblit v1.9.3