From 6aed66b1caef6e348b59f932a5085e96c321312c Mon Sep 17 00:00:00 2001 From: Mzaxd Date: Thu, 25 May 2023 10:52:21 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E4=B8=8A=E4=BC=A0=E6=97=B6=E6=8A=BD?= =?UTF-8?q?=E5=8F=96=E6=8A=A5=E5=91=8A=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../report/service/IReportContentService.java | 4 +- .../impl/IReportContentServiceImpl.java | 62 ++++++++++++------- .../service/impl/IReportServiceImpl.java | 3 +- .../impl/ITtReportManageActServiceImpl.java | 2 +- 4 files changed, 44 insertions(+), 27 deletions(-) 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 37ce02d..a592798 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 @@ -3,7 +3,6 @@ package com.adc.da.report.service; import com.adc.da.report.eo.ReportContentEntity; import com.baomidou.mybatisplus.extension.service.IService; -import java.io.FileNotFoundException; import java.io.IOException; /** @@ -18,7 +17,6 @@ public interface IReportContentService extends IService { * 插入报告内容表 * * @param reportId 报告id - * @param fileId 文件id */ - void insertReportContent(String reportId, String fileId) throws IOException; + void insertReportContent(String reportId) throws IOException; } 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 bd326c1..c77fbfd 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 @@ -1,19 +1,22 @@ package com.adc.da.report.service.impl; import com.adc.da.report.dao.mysql.FileDao; +import com.adc.da.report.dao.mysql.ReportFileDao; import com.adc.da.report.eo.FileEntity; +import com.adc.da.report.eo.ReportFile; import com.adc.da.report.util.FileContentUtil; import com.adc.da.report.util.LocalFileUtil; import com.adc.da.report.util.OSSClientUtil; import com.adc.da.report.util.ObsBootUtil; +import com.adc.da.util.utils.CollectionUtils; import com.adc.da.util.utils.FileUtil; import com.adc.da.util.utils.UUID; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.adc.da.report.eo.ReportContentEntity; import com.adc.da.report.service.IReportContentService; import com.adc.da.report.dao.mysql.ReportContentDao; import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -22,6 +25,9 @@ import javax.annotation.Resource; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; /** * @author Caihaohan @@ -51,36 +57,50 @@ public class IReportContentServiceImpl extends ServiceImpl reportFileLambdaQueryWrapper = new LambdaQueryWrapper<>(); + reportFileLambdaQueryWrapper.eq(ReportFile::getReportId, reportId); + List reportFiles = reportFileDao.selectList(reportFileLambdaQueryWrapper); + List fileIds = new ArrayList<>(); + if (CollectionUtils.isNotEmpty(reportFiles)) { + fileIds = reportFiles.stream().map(ReportFile::getFileId).collect(Collectors.toList()); + } + StringBuilder content = new StringBuilder(); + for (String fileId : fileIds) { + //获取文件 + FileEntity fileEntity = fileDao.selectById(fileId); + String path = uploadFile + fileEntity.getSavePath(); + FileOutputStream outputStream = new FileOutputStream(path); + // 上传方式:阿里云:alioss 华为云:hwobs + if ("hwobs".equals(uploadType)) { + obsBootUtil.getFileFromOBS(fileEntity.getSavePath(), outputStream); + } else if ("alioss".equals(uploadType)) { + ossClientUtil.getFileFromOSS(fileEntity.getSavePath(), outputStream); + } else if ("local".equals(uploadType)) { + localFileUtil.getFileFromLocal(fileEntity.getSavePath(), outputStream); + } + File file = new File(path); + //解析出内容 + content.append(FileContentUtil.readFileContent(file)); + + //将文件删除 + outputStream.close(); + FileUtil.deleteFile(path); } - File file = new File(path); - //解析出内容 - String content = FileContentUtil.readFileContent(file); //将内容存入 ReportContentEntity reportContent = query().eq("report_id", reportId).one(); if (reportContent == null) { - ReportContentEntity reportContentEntity = new ReportContentEntity(UUID.randomUUID10(), reportId, content); + ReportContentEntity reportContentEntity = new ReportContentEntity(UUID.randomUUID10(), reportId, content.toString()); save(reportContentEntity); } else { - reportContent.setReportContent(content); + reportContent.setReportContent(content.toString()); saveOrUpdate(reportContent); } - //将文件删除 - outputStream.close(); - FileUtil.deleteFile(path); } } 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 ee0a49c..a739bfe 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 @@ -177,8 +177,7 @@ public class IReportServiceImpl extends ServiceImpl } //插入报表内容表 try { - //TODO FILE - iReportContentService.insertReportContent(reportId, reportEntity.getFileId()); + iReportContentService.insertReportContent(reportId); log.info("抽取报告内容"); } catch (IOException e) { log.error("获取报告内容失败", e); 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 9790b9b..68011c9 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 @@ -163,7 +163,7 @@ public class ITtReportManageActServiceImpl extends ServiceImpl