From e753f8190991134b62fece845680cc2a85206d3b Mon Sep 17 00:00:00 2001 From: junzhangfm Date: Fri, 27 Mar 2026 16:47:53 +0800 Subject: [PATCH] =?UTF-8?q?2026-03-27=E6=8F=90=E4=BA=A4=EF=BC=9A=E5=88=86?= =?UTF-8?q?=E6=97=B6=E5=9B=BE=E5=AF=BC=E5=85=A5=E8=BF=9B=E5=BA=A6=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=EF=BC=9B=E8=B0=83=E6=95=B4=E4=BB=BB=E5=8A=A1=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E4=BD=8D=E7=BD=AE=E5=88=B0taskcontroller?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../power/grid/controller/DnerController.java | 22 ------- .../grid/controller/ImportTaskController.java | 59 +++++++++++++++++++ .../DnerDailyPowerOutageEventSyncMapper.java | 10 +++- .../power/grid/entity/ProgressVO.java | 20 +++++++ .../grid/service/IImportTaskService.java | 9 +++ .../service/impl/ImportTaskServiceImpl.java | 13 +++- .../DnerDailyPowerOutageEventSyncMapper.xml | 10 ++++ 7 files changed, 119 insertions(+), 24 deletions(-) create mode 100644 src/main/java/com/southern/power/grid/controller/ImportTaskController.java create mode 100644 src/main/java/com/southern/power/grid/entity/ProgressVO.java diff --git a/src/main/java/com/southern/power/grid/controller/DnerController.java b/src/main/java/com/southern/power/grid/controller/DnerController.java index 01b905a..5e617ca 100644 --- a/src/main/java/com/southern/power/grid/controller/DnerController.java +++ b/src/main/java/com/southern/power/grid/controller/DnerController.java @@ -8,7 +8,6 @@ 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 org.springframework.web.multipart.MultipartFile; import javax.validation.Valid; import java.util.List; @@ -23,9 +22,6 @@ import java.util.List; @RequestMapping("/api/v1/dner") @Slf4j public class DnerController { - @Autowired - private IImportTaskService importTaskService; - @Autowired private IDnerHourlyPowerOutageEventService dnerHourlyPowerOutageEventService; @@ -84,18 +80,6 @@ public class DnerController { orgCode, startDate, endDate, eventId)); } - /** - * 通过easyexcel流式读取导入数据 -- 异步导入 - * - * @param file 文件 - * @return 返回结果 - */ - @PostMapping("/excel/import") - public Result importExcel(@RequestParam("file") MultipartFile file, - @RequestParam("eventId") Long eventId) { - return Result.success(importTaskService.importExcel(file, eventId)); - } - /** * 下载附件 * @@ -107,12 +91,6 @@ public class DnerController { return dnerEventAttachmentService.downloadExcel(attachmentId); } - // 2. 查询导入进度 - @GetMapping("/progress/{taskNo}") - public Result getProgress(@PathVariable String taskNo) { - ImportTask task = importTaskService.getProgress(taskNo); - return Result.success(task); - } /** * 同步区域气象数据 diff --git a/src/main/java/com/southern/power/grid/controller/ImportTaskController.java b/src/main/java/com/southern/power/grid/controller/ImportTaskController.java new file mode 100644 index 0000000..817129f --- /dev/null +++ b/src/main/java/com/southern/power/grid/controller/ImportTaskController.java @@ -0,0 +1,59 @@ +package com.southern.power.grid.controller; + +import com.southern.power.grid.common.Result; +import com.southern.power.grid.entity.ImportTask; +import com.southern.power.grid.entity.ProgressVO; +import com.southern.power.grid.service.IImportTaskService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +/** + * 导入任务Controller + * + * @Author junzhangfm + * @Date 2026-03-27 + */ +@RestController +@RequestMapping("/api/v1/task") +@Slf4j +public class ImportTaskController { + @Autowired + private IImportTaskService importTaskService; + + /** + * 通过easyexcel流式读取导入数据 -- 异步导入 + * + * @param file 文件 + * @return 返回结果 + */ + @PostMapping("/excel/import") + public Result importExcel(@RequestParam("file") MultipartFile file, + @RequestParam("eventId") Long eventId) { + return Result.success(importTaskService.importExcel(file, eventId)); + } + + /** + * 根据任务编号查询任务信息 + * + * @param taskNo 任务编号 + * @return 查询结果 + */ + @GetMapping("/progress/{taskNo}") + public Result getProgress(@PathVariable String taskNo) { + ImportTask task = importTaskService.getProgress(taskNo); + return Result.success(task); + } + + /** + * 查询日K图同步进度 + * + * @param eventId 事件ID + * @return 结果 + */ + @GetMapping("/syncDailyProgress/{eventId}") + public Result getSyncDailyProgress(@PathVariable String eventId) { + return Result.success(importTaskService.getSyncDailyProgress(eventId)); + } +} diff --git a/src/main/java/com/southern/power/grid/dao/DnerDailyPowerOutageEventSyncMapper.java b/src/main/java/com/southern/power/grid/dao/DnerDailyPowerOutageEventSyncMapper.java index 9bf9477..ec6fa86 100644 --- a/src/main/java/com/southern/power/grid/dao/DnerDailyPowerOutageEventSyncMapper.java +++ b/src/main/java/com/southern/power/grid/dao/DnerDailyPowerOutageEventSyncMapper.java @@ -2,7 +2,9 @@ package com.southern.power.grid.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.southern.power.grid.entity.DnerDailyPowerOutageEventSync; +import com.southern.power.grid.entity.ProgressVO; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; /** @@ -13,5 +15,11 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface DnerDailyPowerOutageEventSyncMapper extends BaseMapper { - + /** + * 统计日K图同步成功数和失败书 + * + * @param eventId 事件ID + * @return 统计结果 + */ + ProgressVO countSync(@Param("eventId") String eventId); } diff --git a/src/main/java/com/southern/power/grid/entity/ProgressVO.java b/src/main/java/com/southern/power/grid/entity/ProgressVO.java new file mode 100644 index 0000000..e375d13 --- /dev/null +++ b/src/main/java/com/southern/power/grid/entity/ProgressVO.java @@ -0,0 +1,20 @@ +package com.southern.power.grid.entity; + +import lombok.Data; +import lombok.experimental.Accessors; + +/** + * 进度VO + * + * @Author junzhangfm + * @Date 2026-03-27 + */ +@Data +@Accessors(chain = true) +public class ProgressVO { + private Integer total; + + private Integer successCount; + + private Integer failCount; +} diff --git a/src/main/java/com/southern/power/grid/service/IImportTaskService.java b/src/main/java/com/southern/power/grid/service/IImportTaskService.java index c30ac96..a7b1b23 100644 --- a/src/main/java/com/southern/power/grid/service/IImportTaskService.java +++ b/src/main/java/com/southern/power/grid/service/IImportTaskService.java @@ -1,6 +1,7 @@ package com.southern.power.grid.service; import com.southern.power.grid.entity.ImportTask; +import com.southern.power.grid.entity.ProgressVO; import org.springframework.web.multipart.MultipartFile; /** @@ -13,4 +14,12 @@ public interface IImportTaskService { String importExcel(MultipartFile file, Long eventId); ImportTask getProgress(String taskNo); + + /** + * 查询日K图同步进度 + * + * @param eventId 事件ID + * @return 结果 + */ + ProgressVO getSyncDailyProgress(String eventId); } diff --git a/src/main/java/com/southern/power/grid/service/impl/ImportTaskServiceImpl.java b/src/main/java/com/southern/power/grid/service/impl/ImportTaskServiceImpl.java index 240204d..3fe8e0c 100644 --- a/src/main/java/com/southern/power/grid/service/impl/ImportTaskServiceImpl.java +++ b/src/main/java/com/southern/power/grid/service/impl/ImportTaskServiceImpl.java @@ -1,11 +1,12 @@ package com.southern.power.grid.service.impl; -import cn.hutool.core.io.FileUtil; import cn.hutool.core.util.IdUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.southern.power.grid.dao.DnerDailyPowerOutageEventSyncMapper; import com.southern.power.grid.dao.ImportTaskMapper; import com.southern.power.grid.entity.ImportTask; +import com.southern.power.grid.entity.ProgressVO; import com.southern.power.grid.enums.ImportTaskStatusEnum; import com.southern.power.grid.service.IFileService; import com.southern.power.grid.service.IImportTaskService; @@ -37,6 +38,9 @@ public class ImportTaskServiceImpl extends ServiceImpl().eq(ImportTask::getTaskNo, taskNo)); } + + @Override + public ProgressVO getSyncDailyProgress(String eventId) { + // 拿这个事件ID查询分时图表,按日期的年月日,还有区域ID分组,就是同步的总条数 + // 根据事件ID查询dner_daily_power_outage_event_sync这张表就能知道这1000条里成功了多少条,失败了多少条 + return dnerDailyPowerOutageEventSyncMapper.countSync(eventId); + } } diff --git a/src/main/resources/mapper/DnerDailyPowerOutageEventSyncMapper.xml b/src/main/resources/mapper/DnerDailyPowerOutageEventSyncMapper.xml index 8fef4ff..27e61df 100644 --- a/src/main/resources/mapper/DnerDailyPowerOutageEventSyncMapper.xml +++ b/src/main/resources/mapper/DnerDailyPowerOutageEventSyncMapper.xml @@ -5,4 +5,14 @@ + \ No newline at end of file