package cn.iocoder.yudao.module.bi.controller.admin.decision; import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.module.bi.controller.admin.decision.vo.DecisionForecastReqVO; import cn.iocoder.yudao.module.bi.controller.admin.decision.vo.DecisionForecastRespVO; import cn.iocoder.yudao.module.bi.dal.dataobject.decision.BiForecastDataDO; import cn.iocoder.yudao.module.bi.service.decision.BiForecastService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.annotation.Resource; import jakarta.validation.Valid; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.time.LocalDateTime; import java.util.List; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; @Tag(name = "管理后台 - 决策支持 负荷预测") @RestController @RequestMapping("/bi/decision/forecast") @Validated public class DecisionForecastController { @Resource private BiForecastService forecastService; @GetMapping("/list") @Operation(summary = "获取预测数据") @PreAuthorize("@ss.hasPermission('bi:decision:kpi:query')") public CommonResult> getForecastList(@Valid DecisionForecastReqVO reqVO) { // 默认查最近30天 LocalDateTime endTime = LocalDateTime.now(); LocalDateTime beginTime = endTime.minusDays(30); return success(forecastService.getForecastList(reqVO.getForecastCode(), beginTime, endTime)); } @PostMapping("/generate") @Operation(summary = "生成预测(占位)") @PreAuthorize("@ss.hasPermission('bi:decision:kpi:query')") public CommonResult generateForecast(@RequestParam("forecastCode") String forecastCode) { forecastService.generateForecast(forecastCode, LocalDateTime.now()); return success(true); } }