93 lines
3.2 KiB
Java
93 lines
3.2 KiB
Java
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);
|
||
}
|
||
}
|