93 lines
3.2 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.southern.power.grid.controller;
import com.alibaba.excel.EasyExcel;
import com.southern.power.grid.common.Result;
import com.southern.power.grid.entity.*;
import com.southern.power.grid.listener.DataExcelListener;
import com.southern.power.grid.service.IDnerDailyPowerOutageEventService;
import com.southern.power.grid.service.IDnerHourlyPowerOutageEventService;
import com.southern.power.grid.service.IDnerSiteAreaConfigurationService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.io.InputStream;
import java.util.List;
import java.util.UUID;
/**
* 配网抢修-Controller
*
* @author: junzhangfm
* @date: 2026/3/13
**/
@RestController
@RequestMapping("/api/v1/dner")
@Slf4j
public class DnerController {
@Autowired
private DataExcelListener dataExcelListener;
@Autowired
private IDnerHourlyPowerOutageEventService dnerHourlyPowerOutageEventService;
@Autowired
private IDnerDailyPowerOutageEventService dnerDailyPowerOutageEventService;
@Autowired
private IDnerSiteAreaConfigurationService dnerSiteAreaConfigurationService;
@PostMapping("/area-tree/query")
public Result<List<AreaTreeVO>> queryAreaTree(@RequestBody AreaTreeReq req) {
// TODO 使用POST请求后续新增高级筛选时加入请求入参
return Result.success(dnerSiteAreaConfigurationService.queryAreaTree());
}
/**
* 分时图数据查询
*
* @param orgCode 地区编码
* @param startDate 开始时间
* @param endDate 结束时间
* @return 返回结果
*/
@GetMapping("/intraday/query")
public Result<HourlyPowerOutageEventChartVO> queryIntradayData(@RequestParam String orgCode,
@RequestParam String startDate,
@RequestParam String endDate) {
return Result.success(dnerHourlyPowerOutageEventService.queryIntradayData(orgCode, startDate, endDate));
}
/**
* K线数据查询
*
* @param orgCode 地区编码
* @param startDate 开始时间
* @param endDate 结束时间
* @return 返回结果
*/
@GetMapping("/kline/query")
public Result<DailyPowerOutageEventVO> queryKlineData(@RequestParam String orgCode,
@RequestParam String startDate,
@RequestParam String endDate) {
return Result.success(dnerDailyPowerOutageEventService.queryKlineData(orgCode, startDate, endDate));
}
/**
* 通过easyexcel流式读取导入数据
*
* @param inputStream 文件流
* @return 返回结果
*/
@PostMapping("/excel/import")
public Result<Boolean> importExcel(@RequestParam("file") InputStream inputStream) {
// 采用easyExcel流式读取一行一行读不加载整个excel文件防止OOM
EasyExcel.read(inputStream, DataExcelEntity.class, dataExcelListener)
.sheet()
.doRead();
return Result.success(Boolean.TRUE);
}
}