diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/report/AreaHarmonicReportController.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/report/AreaHarmonicReportController.java index f89efd96d..dfe16b7e7 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/report/AreaHarmonicReportController.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/report/AreaHarmonicReportController.java @@ -49,7 +49,7 @@ public class AreaHarmonicReportController extends BaseController { */ @OperateInfo(info = LogEnum.BUSINESS_COMMON) @PostMapping("/areaHarmonicReport") - @ApiOperation("区域稳态报告") + @ApiOperation("导出区域稳态报告") public void areaHarmonicReport(@RequestBody AreaHarmReportParam areaHarmReportParam, HttpServletResponse response) { TimeInterval timeInterval = new TimeInterval(); String methodDescribe = getMethodDescribe("areaHarmonicReport"); diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/report/ExportModelController.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/report/ExportModelController.java index 2742ada8b..2410400df 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/report/ExportModelController.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/report/ExportModelController.java @@ -184,7 +184,6 @@ public class ExportModelController extends BaseController { param.setStartTime(DateUtil.format(startDate, "yyyy-MM-dd HH:mm:ss")); LocalDateTime parse = LocalDateTimeUtil.parse(DateUtil.format(endDate, "yyyy-MM-dd HH:mm:ss"), DatePattern.NORM_DATETIME_PATTERN); if(LocalDateTime.now().isBefore(parse)){ - param.setEndTime(LocalDateTimeUtil.format(LocalDateTime.now(),DatePattern.NORM_DATETIME_PATTERN)); endDate = DateUtil.parse(LocalDateTimeUtil.format(LocalDateTime.now(),DatePattern.NORM_DATETIME_PATTERN)); diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/report/impl/AreaHarmonicServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/report/impl/AreaHarmonicServiceImpl.java index 417a70493..9ee4d8ab6 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/report/impl/AreaHarmonicServiceImpl.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/report/impl/AreaHarmonicServiceImpl.java @@ -49,7 +49,7 @@ public class AreaHarmonicServiceImpl implements AreaHarmonicService { // 常量定义 private static final String REPORT_TEMPLATE_PATH = "file/areaReportTemplate.docx"; - private static final String DEFAULT_PROVIDER_DEPT = "中国电力技术研究院"; + private static final String DEFAULT_PROVIDER_DEPT = "云网能源(曲靖)有限责任公司"; private static final String NO_DATA_PLACEHOLDER = "无"; private static final String UNKNOWN_VALUE = "/"; @@ -90,7 +90,9 @@ public class AreaHarmonicServiceImpl implements AreaHarmonicService { // 3. 生成Word报告 generateWordReport(reportData, tableList, response); - } catch (Exception e) { + } catch (BusinessException e){ + throw e; + }catch (Exception e) { log.error("区域谐波报告生成失败,参数: {}", areaHarmReportParam, e); throw new BusinessException(CommonResponseEnum.FAIL,"报告生成失败"); } @@ -106,10 +108,12 @@ public class AreaHarmonicServiceImpl implements AreaHarmonicService { Dept dept = getDeptInfo(param.getDeptId()); reportData.put("$deptName$", dept.getName()); reportData.put("$provideDept$", DEFAULT_PROVIDER_DEPT); - reportData.put("$TitleTime$", DateUtil.format(new DateTime(), DatePattern.CHINESE_DATE_PATTERN)); + + DateTime now = DateTime.now(); + reportData.put("$TitleTime$", DateUtil.format(now, DatePattern.CHINESE_DATE_PATTERN)); // 时间范围 - String timeRange = formatTimeRange(param.getStartTime(), param.getEndTime()); + String timeRange = formatTimeRange(param.getStartTime(), param.getEndTime(),now); reportData.put("$reportRangeTime$", timeRange); return reportData; @@ -118,7 +122,7 @@ public class AreaHarmonicServiceImpl implements AreaHarmonicService { /** * 构建所有表格数据 */ - private List> buildTableData(AreaHarmReportParam param,Map reportData) { + private List> buildTableData(AreaHarmReportParam param,Map reportData){ List> tableList = new ArrayList<>(); // 添加空行(保持原有结构) @@ -126,6 +130,9 @@ public class AreaHarmonicServiceImpl implements AreaHarmonicService { // 1. 台账表格 List ledgerTable = buildLedgerTable(param.getDeptId()); + if(CollUtil.isEmpty(ledgerTable)){ + throw new BusinessException(CommonResponseEnum.FAIL,"当前部门不存在在运监测点"); + } tableList.add(ledgerTable); // 添加空行(保持原有结构) @@ -152,6 +159,8 @@ public class AreaHarmonicServiceImpl implements AreaHarmonicService { // 计算并设置指标数据到临时存储,稍后合并 calculateAndStoreIndicatorData(reportData, validData, monitorNameMap); + }else { + throw new BusinessException(CommonResponseEnum.FAIL,"时间范围内数据为空"); } } @@ -691,16 +700,26 @@ public class AreaHarmonicServiceImpl implements AreaHarmonicService { /** * 工具方法:格式化时间范围 */ - private String formatTimeRange(String startTime, String endTime) { + private String formatTimeRange(String startTime, String endTime,DateTime now) { try { String start = DateUtil.format( DateUtil.beginOfDay(DateUtil.parse(startTime)), - DatePattern.NORM_DATETIME_PATTERN - ); - String end = DateUtil.format( - DateUtil.endOfDay(DateUtil.parse(endTime)), - DatePattern.NORM_DATETIME_PATTERN + DatePattern.CHINESE_DATE_TIME_PATTERN ); + + DateTime dateTime = DateUtil.endOfDay(DateUtil.parse(endTime)); + String end; + if(now.isBefore(dateTime)){ + end = DateUtil.format( + now, + DatePattern.CHINESE_DATE_TIME_PATTERN); + }else { + end = DateUtil.format( + dateTime, + DatePattern.CHINESE_DATE_TIME_PATTERN); + } + + return start + "-" + end; } catch (Exception e) { log.error("格式化时间范围失败", e); diff --git a/pqs-harmonic/harmonic-boot/src/main/resources/file/areaReportTemplate.docx b/pqs-harmonic/harmonic-boot/src/main/resources/file/areaReportTemplate.docx index 84526aac3..23244fcbc 100644 Binary files a/pqs-harmonic/harmonic-boot/src/main/resources/file/areaReportTemplate.docx and b/pqs-harmonic/harmonic-boot/src/main/resources/file/areaReportTemplate.docx differ