From 9a0b56662b720a3c5d145fa5c910176eeae101e0 Mon Sep 17 00:00:00 2001 From: Mzaxd Date: Mon, 29 May 2023 11:55:06 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E5=88=B7=E6=96=B0=E5=85=A8=E6=96=87?= =?UTF-8?q?=E6=A3=80=E7=B4=A2=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../config/ShiroFilterConfiguration.java | 3 ++ .../controller/ReportManageConroller.java | 11 +++++ .../report/service/IReportContentService.java | 6 +++ .../impl/IReportContentServiceImpl.java | 7 +++ .../service/impl/IReportServiceImpl.java | 43 ++++++++++++++++++- .../impl/ITtReportManageActServiceImpl.java | 2 + 6 files changed, 71 insertions(+), 1 deletion(-) diff --git a/adc-da-login/src/main/java/com/adc/da/login/config/ShiroFilterConfiguration.java b/adc-da-login/src/main/java/com/adc/da/login/config/ShiroFilterConfiguration.java index d6744d3..51bb276 100644 --- a/adc-da-login/src/main/java/com/adc/da/login/config/ShiroFilterConfiguration.java +++ b/adc-da-login/src/main/java/com/adc/da/login/config/ShiroFilterConfiguration.java @@ -115,6 +115,9 @@ public class ShiroFilterConfiguration { /* 用户信息不用认证 */ filterChainDefinitionMap.put(restPath + "/userInfo", ANON); + /* 用户信息不用认证 */ + filterChainDefinitionMap.put(restPath + "/report/refreshReportContent", ANON); + /* 在线用户列表不用验证 */ filterChainDefinitionMap.put(restPath + "/onlineUser", ANON); diff --git a/adc-da-report/src/main/java/com/adc/da/report/controller/ReportManageConroller.java b/adc-da-report/src/main/java/com/adc/da/report/controller/ReportManageConroller.java index 513bc2a..fd53514 100644 --- a/adc-da-report/src/main/java/com/adc/da/report/controller/ReportManageConroller.java +++ b/adc-da-report/src/main/java/com/adc/da/report/controller/ReportManageConroller.java @@ -809,4 +809,15 @@ public class ReportManageConroller { return Result.success(reportFileIPage); } + /** + * 刷新报告内容表,对比报告内容和报告表的差异,找到没有抽取过内容的报告,生成其内容放入报告内容表中 + * @return + * @throws ParseException + */ + @ApiOperation("刷新报告内容表") + @GetMapping("/refreshReportContent") + public ResponseMessage refreshReportContent() { + return reportService.refreshReportContent(); + } + } diff --git a/adc-da-report/src/main/java/com/adc/da/report/service/IReportContentService.java b/adc-da-report/src/main/java/com/adc/da/report/service/IReportContentService.java index a592798..1835b17 100644 --- a/adc-da-report/src/main/java/com/adc/da/report/service/IReportContentService.java +++ b/adc-da-report/src/main/java/com/adc/da/report/service/IReportContentService.java @@ -19,4 +19,10 @@ public interface IReportContentService extends IService { * @param reportId 报告id */ void insertReportContent(String reportId) throws IOException; + + /** + * 根据报告id删除记录 + * @param reportId + */ + void removeByReportId(String reportId); } diff --git a/adc-da-report/src/main/java/com/adc/da/report/service/impl/IReportContentServiceImpl.java b/adc-da-report/src/main/java/com/adc/da/report/service/impl/IReportContentServiceImpl.java index 3fde68d..ef2a98b 100644 --- a/adc-da-report/src/main/java/com/adc/da/report/service/impl/IReportContentServiceImpl.java +++ b/adc-da-report/src/main/java/com/adc/da/report/service/impl/IReportContentServiceImpl.java @@ -103,6 +103,13 @@ public class IReportContentServiceImpl extends ServiceImpl lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(ReportContentEntity::getReportId, reportId); + remove(lambdaQueryWrapper); + } } diff --git a/adc-da-report/src/main/java/com/adc/da/report/service/impl/IReportServiceImpl.java b/adc-da-report/src/main/java/com/adc/da/report/service/impl/IReportServiceImpl.java index 9fef497..7d1d091 100644 --- a/adc-da-report/src/main/java/com/adc/da/report/service/impl/IReportServiceImpl.java +++ b/adc-da-report/src/main/java/com/adc/da/report/service/impl/IReportServiceImpl.java @@ -175,7 +175,8 @@ public class IReportServiceImpl extends ServiceImpl } iReportLabelService.saveBatch(labelList); } - //插入报表内容表 + //修改报表内容表(先删后增) + iReportContentService.removeByReportId(reportId); try { iReportContentService.insertReportContent(reportId); log.info("抽取报告内容"); @@ -213,6 +214,46 @@ public class IReportServiceImpl extends ServiceImpl return reportFileDao.filePage(page,reportFilePageVO); } + @Override + public ResponseMessage refreshReportContent() { + //找出所有能生成内容的报告id + LambdaQueryWrapper reportFileLambdaQueryWrapper = new LambdaQueryWrapper<>(); + //只找不在流程中的报告 + reportFileLambdaQueryWrapper.ne(ReportFile::getState, 1); + List reportFileList = iReportFileService.list(reportFileLambdaQueryWrapper); + Set allReportIdSet = reportFileList.stream().map(ReportFile::getReportId).collect(Collectors.toSet()); + //找出已经生成过的报告id + List reportContentList = iReportContentService.list(); + Set generatedReportIdSet = reportContentList.stream().map(ReportContentEntity::getReportId).collect(Collectors.toSet()); + //获取缺失的报告id + allReportIdSet.removeAll(generatedReportIdSet); + //需要生成的数量 + int needGenerateCount = allReportIdSet.size(); + log.info("发现缺少" + needGenerateCount + "条报告的内容"); + //实际生成的数量 + int count = 0; + //生成报告内容 + for (String reportId : allReportIdSet) { + //修改报表内容表(先删后增) + iReportContentService.removeByReportId(reportId); + try { + iReportContentService.insertReportContent(reportId); + log.info("抽取reportId为{}报告内容", reportId); + count++; + } catch (IOException e) { + log.error("获取reportId为{}的报告内容失败", reportId); + log.error(String.valueOf(e)); + } + } + log.info("实际生成" + count + "条报告的内容"); + if (needGenerateCount == count) { + return Result.success("成功,全部生成完毕,共" + count + "条"); + } else { + int missing = needGenerateCount - count; + return Result.success("失败," + missing + "条报告的内容生成失败"); + } + } + /** * 新增或编辑报告 * diff --git a/adc-da-report/src/main/java/com/adc/da/report/service/impl/ITtReportManageActServiceImpl.java b/adc-da-report/src/main/java/com/adc/da/report/service/impl/ITtReportManageActServiceImpl.java index 92c57a3..25063aa 100644 --- a/adc-da-report/src/main/java/com/adc/da/report/service/impl/ITtReportManageActServiceImpl.java +++ b/adc-da-report/src/main/java/com/adc/da/report/service/impl/ITtReportManageActServiceImpl.java @@ -165,6 +165,8 @@ public class ITtReportManageActServiceImpl extends ServiceImpl