package com.ruoyi.http.controller;
|
|
import com.ruoyi.framework.aspectj.lang.annotation.Log;
|
import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
|
import com.ruoyi.framework.web.controller.BaseController;
|
import com.ruoyi.framework.web.domain.AjaxResult;
|
import com.ruoyi.http.service.StatisticEleService;
|
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
import jakarta.servlet.http.HttpServletResponse;
|
import lombok.RequiredArgsConstructor;
|
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;
|
|
@RestController
|
@Tag(name = "能耗电表统计")
|
@RequestMapping("/statisticEle")
|
@RequiredArgsConstructor
|
public class StatisticEleController extends BaseController {
|
|
private final StatisticEleService statisticEleService;
|
|
@GetMapping("/list")
|
@Operation(summary = "能耗数据-列表查询(本地库)")
|
@Log(title = "能耗数据-列表查询", businessType = BusinessType.OTHER)
|
public AjaxResult list(
|
@RequestParam(defaultValue = "hour") String dimension,
|
@RequestParam String startTime,
|
@RequestParam String endTime,
|
@RequestParam(defaultValue = "1") Integer ignoreRadio) {
|
return AjaxResult.success(statisticEleService.listRecords(dimension, startTime, endTime, ignoreRadio));
|
}
|
|
@GetMapping("/summary")
|
@Operation(summary = "能耗数据-汇总统计(本地库)")
|
@Log(title = "能耗数据-汇总统计", businessType = BusinessType.OTHER)
|
public AjaxResult summary(
|
@RequestParam(defaultValue = "hour") String dimension,
|
@RequestParam String startTime,
|
@RequestParam String endTime) {
|
return AjaxResult.success(statisticEleService.getSummary(dimension, startTime, endTime));
|
}
|
|
@GetMapping("/analytics")
|
@Operation(summary = "能耗数据-综合分析")
|
public AjaxResult analytics(
|
@RequestParam(defaultValue = "day") String dimension,
|
@RequestParam String startTime,
|
@RequestParam String endTime,
|
@RequestParam(required = false) String trendGranularity) {
|
return AjaxResult.success(statisticEleService.getAnalytics(dimension, startTime, endTime, trendGranularity));
|
}
|
|
@GetMapping("/yesterday")
|
@Operation(summary = "昨日用电量汇总")
|
public AjaxResult yesterday() {
|
return AjaxResult.success(statisticEleService.getYesterdaySummary());
|
}
|
|
@GetMapping("/syncStatus")
|
@Operation(summary = "能耗数据-同步状态")
|
public AjaxResult syncStatus() {
|
return AjaxResult.success(statisticEleService.getSyncStatus());
|
}
|
|
@GetMapping("/raw")
|
@Operation(summary = "能耗数据-原始接口(调试用,慎用)")
|
@Log(title = "能耗数据-原始接口", businessType = BusinessType.OTHER)
|
public AjaxResult raw(
|
@RequestParam(defaultValue = "hour") String dimension,
|
@RequestParam String startTime,
|
@RequestParam String endTime) {
|
return AjaxResult.success(statisticEleService.fetchRawData(dimension, startTime, endTime));
|
}
|
|
@PostMapping("/export")
|
@Operation(summary = "能耗数据-导出")
|
@Log(title = "能耗数据-导出", businessType = BusinessType.EXPORT)
|
public void export(
|
@RequestParam(defaultValue = "hour") String dimension,
|
@RequestParam String startTime,
|
@RequestParam String endTime,
|
HttpServletResponse response) {
|
statisticEleService.exportRecords(dimension, startTime, endTime, response);
|
}
|
}
|