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/service/decision/BiForecastService.java |   28 ++++++++++++++++++++++++++++
 1 files changed, 28 insertions(+), 0 deletions(-)

diff --git a/yudao-module-bi/src/main/java/cn/iocoder/yudao/module/bi/service/decision/BiForecastService.java b/yudao-module-bi/src/main/java/cn/iocoder/yudao/module/bi/service/decision/BiForecastService.java
index de4abcf..e565613 100644
--- a/yudao-module-bi/src/main/java/cn/iocoder/yudao/module/bi/service/decision/BiForecastService.java
+++ b/yudao-module-bi/src/main/java/cn/iocoder/yudao/module/bi/service/decision/BiForecastService.java
@@ -1,5 +1,6 @@
 package cn.iocoder.yudao.module.bi.service.decision;
 
+import cn.iocoder.yudao.module.bi.controller.admin.decision.vo.DecisionForecastHistorySaveReqVO;
 import cn.iocoder.yudao.module.bi.controller.admin.decision.vo.DecisionForecastWorkOrderCreateReqVO;
 import cn.iocoder.yudao.module.bi.dal.dataobject.decision.BiForecastDataDO;
 
@@ -15,9 +16,36 @@
 
     List<BiForecastDataDO> getForecastList(String forecastCode, LocalDateTime beginTime, LocalDateTime endTime);
 
+    /**
+     * 鍩轰簬鍘嗗彶棰勬祴鏁版嵁鐢熸垚棰勬祴锛堥粯璁� SMA锛�
+     */
     void generateForecast(String forecastCode, LocalDateTime pointTime);
 
     /**
+     * 鍩轰簬鍘嗗彶棰勬祴鏁版嵁鎸夋寚瀹氭ā鍨嬬敓鎴愰娴�
+     *
+     * @param model SMA/WMA/LR/SEASONAL/YOY
+     */
+    void generateForecast(String forecastCode, String model, int window, int period,
+                          LocalDateTime pointTime);
+
+    /**
+     * 鍩轰簬 KPI 鍘嗗彶蹇収鐢熸垚棰勬祴骞惰惤搴擄紙璐熻嵎/浜ч噺/閲囪喘/鍥炴绛夊喅绛栧満鏅級
+     *
+     * @param kpiCode  KPI 缂栫爜
+     * @param model    SMA/WMA/LR/SEASONAL/YOY
+     * @param window   SMA/WMA 绐楀彛
+     * @param period   SEASONAL 鍛ㄦ湡
+     * @param periods  棰勬祴鏈熸暟锛堢敓鎴愭湭鏉� N 鏈熼娴嬬偣锛�
+     * @param intervalMinutes 棰勬祴鐐归棿闅旓紙鍒嗛挓锛�
+     * @return 鐢熸垚鐨勯娴嬭褰曟暟
+     */
+    int generateKpiForecast(String kpiCode, String model, int window, int period,
+                            int periods, int intervalMinutes);
+
+    Long createForecastHistory(DecisionForecastHistorySaveReqVO reqVO);
+
+    /**
      * 璐熻嵎棰勬祴鑱斿姩鍒涘缓鐢熶骇宸ュ崟锛堣繍缁�/鍙戠數/妫�淇被锛�
      *
      * @param reqVO 鍒涘缓璇锋眰

--
Gitblit v1.9.3