package com.southern.power.grid.controller; import com.southern.power.grid.common.Result; import com.southern.power.grid.entity.*; import com.southern.power.grid.service.*; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.io.Resource; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.util.List; /** * 配网抢修-Controller * * @author: junzhangfm * @date: 2026/3/13 **/ @RestController @RequestMapping("/api/v1/dner") @Slf4j public class DnerController { @Autowired private IDnerHourlyPowerOutageEventService dnerHourlyPowerOutageEventService; @Autowired private IDnerDailyPowerOutageEventService dnerDailyPowerOutageEventService; @Autowired private IDnerSiteAreaConfigurationService dnerSiteAreaConfigurationService; @Autowired private IDnerDailyPowerOutageEventSyncService dnerDailyPowerOutageEventSyncService; @Autowired private IRegionalWeatherDataService regionalWeatherDataService; @Autowired private DnerEventAttachmentService dnerEventAttachmentService; @PostMapping("/area-tree/query") public Result> queryAreaTree(@RequestBody @Valid AreaTreeReq req) { return Result.success(dnerSiteAreaConfigurationService.queryAreaTree(req)); } /** * 分时图数据查询 * * @param orgCode 地区编码 * @param startDate 开始时间 * @param endDate 结束时间 * @return 返回结果 */ @GetMapping("/intraday/query") public Result queryIntradayData(@RequestParam String orgCode, @RequestParam String startDate, @RequestParam String endDate, @RequestParam String eventId) { return Result.success(dnerHourlyPowerOutageEventService.queryIntradayData( orgCode, startDate, endDate, eventId)); } /** * K线数据查询 * * @param orgCode 地区编码 * @param startDate 开始时间 * @param endDate 结束时间 * @return 返回结果 */ @GetMapping("/kline/query") public Result queryKlineData(@RequestParam String orgCode, @RequestParam String startDate, @RequestParam String endDate, @RequestParam String eventId) { return Result.success(dnerDailyPowerOutageEventService.queryKlineData( orgCode, startDate, endDate, eventId)); } /** * 下载附件 * * @param attachmentId 附件ID * @return 响应体 */ @GetMapping("/excel/download/{attachmentId}") public ResponseEntity downloadExcel(@PathVariable Long attachmentId) { return dnerEventAttachmentService.downloadExcel(attachmentId); } /** * 同步区域气象数据 * * @param startDate 开始日期(数据示例:2025-09-01 00:00:00) * @param endDate 结束日期(数据示例:2025-09-01 00:00:00) * @return 结果 <字符串> */ @GetMapping("/sync/regionWeatherData") public Result syncRegionWeatherData(@RequestParam String startDate, @RequestParam String endDate) { regionalWeatherDataService.syncOldWeatherData(startDate, endDate); return Result.success("success"); } /** * 同步每日停电事件 * * @param startDate 开始日期(数据示例:2025-09-01) * @param endDate 结束日期(数据示例:2025-09-01) * @param eventId 事件Id * @return 结果 <布尔> */ @GetMapping("/sync/dailyPowerOutageEvent") public Result syncDailyPowerOutageEvent(@RequestParam String startDate, @RequestParam String endDate, @RequestParam Long eventId) { return Result.success(dnerDailyPowerOutageEventSyncService.processingData(startDate, endDate,eventId)); } }