From d10cc6d02b6edcc9199712ea174112b1c9fa7c8d Mon Sep 17 00:00:00 2001 From: hongawen <83944980@qq.com> Date: Wed, 19 Apr 2023 16:23:05 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/njcn/common/utils/FileUtil.java | 60 ++++++ .../influxdb/param/InfluxDBSqlConstant.java | 4 +- .../com/njcn/oss/utils/FileStorageUtil.java | 13 +- .../service/impl/CustomReportServiceImpl.java | 181 +++++------------- .../mysql/Impl/line/ReportServiceImpl.java | 116 +---------- 5 files changed, 128 insertions(+), 246 deletions(-) create mode 100644 pqs-common/common-core/src/main/java/com/njcn/common/utils/FileUtil.java diff --git a/pqs-common/common-core/src/main/java/com/njcn/common/utils/FileUtil.java b/pqs-common/common-core/src/main/java/com/njcn/common/utils/FileUtil.java new file mode 100644 index 000000000..e67d17f16 --- /dev/null +++ b/pqs-common/common-core/src/main/java/com/njcn/common/utils/FileUtil.java @@ -0,0 +1,60 @@ +package com.njcn.common.utils; + +import cn.hutool.core.text.StrPool; +import org.springframework.web.multipart.MultipartFile; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.nio.charset.StandardCharsets; +import java.util.UUID; + +/** + * @author hongawen + * @version 1.0.0 + * @date 2023年04月19日 16:02 + */ +public class FileUtil { + + /*** + * 随机生成文件名 + * @author hongawen + * @date 2023/4/19 16:02 + * @param originalFileName 原文件名 + * @return String + */ + public static String generateFileName(String originalFileName) { + String suffix; + if (originalFileName.contains(StrPool.DOT)) { + suffix = originalFileName.substring(originalFileName.lastIndexOf(StrPool.DOT)); + } else { + suffix = StrPool.DOT + originalFileName; + } + return UUID.randomUUID().toString().replace("-", "").toUpperCase() + suffix; + } + + /** + * MultipartFile 转 String + * + * @param multipartFile 原字符串 + * @return 成功标记 + */ + public static String multipartFileToString(MultipartFile multipartFile) { + StringBuilder txtResult = new StringBuilder(); + try ( + InputStreamReader isr = new InputStreamReader(multipartFile.getInputStream(), StandardCharsets.UTF_8); + BufferedReader br = new BufferedReader(isr) + ) { + String lineTxt; + while ((lineTxt = br.readLine()) != null) { + txtResult.append(lineTxt); + } + return txtResult.toString(); + } catch (IOException e) { + e.printStackTrace(); + return ""; + } + } + + +} diff --git a/pqs-common/common-influxdb/src/main/java/com/njcn/influxdb/param/InfluxDBSqlConstant.java b/pqs-common/common-influxdb/src/main/java/com/njcn/influxdb/param/InfluxDBSqlConstant.java index a6ff96c00..5f4a01131 100644 --- a/pqs-common/common-influxdb/src/main/java/com/njcn/influxdb/param/InfluxDBSqlConstant.java +++ b/pqs-common/common-influxdb/src/main/java/com/njcn/influxdb/param/InfluxDBSqlConstant.java @@ -59,7 +59,7 @@ public interface InfluxDBSqlConstant { /** * " as value " */ - String AS_VALUE = StrPool.C_SPACE+"as value"+StrPool.C_SPACE; + String AS_VALUE = StrPool.C_SPACE + "as value" + StrPool.C_SPACE; String EQ = "="; String QM = "'"; @@ -99,7 +99,7 @@ public interface InfluxDBSqlConstant { /** * 时间 */ - String TIME = "time"; + String TIME = "time" + StrPool.C_SPACE; /** * 每天固定时间分钟 diff --git a/pqs-common/common-oss/src/main/java/com/njcn/oss/utils/FileStorageUtil.java b/pqs-common/common-oss/src/main/java/com/njcn/oss/utils/FileStorageUtil.java index 4d66a1dad..2d7525222 100644 --- a/pqs-common/common-oss/src/main/java/com/njcn/oss/utils/FileStorageUtil.java +++ b/pqs-common/common-oss/src/main/java/com/njcn/oss/utils/FileStorageUtil.java @@ -1,5 +1,7 @@ package com.njcn.oss.utils; +import cn.hutool.core.text.CharPool; +import cn.hutool.core.text.StrPool; import com.njcn.common.config.GeneralInfo; import com.njcn.common.pojo.exception.BusinessException; import com.njcn.huawei.obs.util.OBSUtil; @@ -17,6 +19,7 @@ import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; import java.io.*; +import java.util.UUID; /** * @author hongawen @@ -75,19 +78,19 @@ public class FileStorageUtil { * 上传InputStream流, * @author hongawen * @date 2023/3/7 22:48 - * @param fileStream 文件源 + * @param inputStream 文件源 * @param dir 服务器文件存放路径 * @param fileName 原始文件名 */ - public String uploadStream(FileInputStream fileStream, String dir, String fileName) { + public String uploadStream(InputStream inputStream, String dir, String fileName) { String filePath; if (generalInfo.getBusinessFileStorage() == GeneralConstant.HUAWEI_OBS) { filePath = dir + minIoUtils.minFileName(fileName); - obsUtil.uploadStream(fileStream, filePath); + obsUtil.uploadStream(inputStream, filePath); } else { try { //把名称存入数据 - MinIoUploadResDTO minIoUploadResDTO = minIoUtils.uploadStream(fileStream, minIossProperties.getBucket(), dir, minIoUtils.minFileName(fileName)); + MinIoUploadResDTO minIoUploadResDTO = minIoUtils.uploadStream(inputStream, minIossProperties.getBucket(), dir, minIoUtils.minFileName(fileName)); filePath = minIoUploadResDTO.getMinFileName(); } catch (Exception e) { throw new BusinessException(OssResponseEnum.UPLOAD_FILE_ERROR); @@ -218,4 +221,6 @@ public class FileStorageUtil { } } + + } diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/CustomReportServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/CustomReportServiceImpl.java index 8d1c8ae89..b344771d1 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/CustomReportServiceImpl.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/CustomReportServiceImpl.java @@ -2,13 +2,16 @@ package com.njcn.harmonic.service.impl; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.io.IoUtil; import cn.hutool.core.text.StrPool; +import cn.hutool.core.util.CharsetUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.json.*; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.njcn.common.config.GeneralInfo; import com.njcn.common.pojo.enums.common.DataStateEnum; import com.njcn.common.pojo.exception.BusinessException; +import com.njcn.common.utils.FileUtil; import com.njcn.harmonic.enums.HarmonicResponseEnum; import com.njcn.harmonic.mapper.DeptTempMapper; import com.njcn.harmonic.mapper.EleEpdMapper; @@ -94,10 +97,9 @@ public class CustomReportServiceImpl implements CustomReportService { public boolean addCustomReportTemplate(ReportTemplateParam reportTemplateParam) { checkName(reportTemplateParam, false); MultipartFile fileContent = reportTemplateParam.getFileContent(); - String fileName = fileContent.getName(); //检验模板json数据规范 try { - String content = MultipartFileToString(fileContent); + String content = FileUtil.multipartFileToString(fileContent); new JSONArray(content); } catch (Exception e) { throw new BusinessException(HarmonicResponseEnum.CUSTOM_REPORT_JSON); @@ -129,7 +131,7 @@ public class CustomReportServiceImpl implements CustomReportService { MultipartFile fileContent = reportTemplateParam.getFileContent(); //检验模板json数据规范 try { - String content = MultipartFileToString(fileContent); + String content = FileUtil.multipartFileToString(fileContent); new JSONArray(content); } catch (Exception e) { throw new BusinessException(HarmonicResponseEnum.CUSTOM_REPORT_JSON); @@ -366,10 +368,8 @@ public class CustomReportServiceImpl implements CustomReportService { //根据content,获取v值并进行处理 List reportTemplateDTOList = new ArrayList<>(); JSONArray jsonArray; - InputStream fileStream = null; - try { + try(InputStream fileStream = fileStorageUtil.getFileStream(excelRptTemp.getContent())) { //通过文件服务器获取 - fileStream = fileStorageUtil.getFileStream(excelRptTemp.getContent()); jsonArray = new JSONArray(new JSONTokener(fileStream, new JSONConfig())); jsonArray.forEach(item -> { JSONObject jsonObject = (JSONObject) item; @@ -412,8 +412,6 @@ public class CustomReportServiceImpl implements CustomReportService { }); } catch (Exception e) { throw new BusinessException(HarmonicResponseEnum.CUSTOM_REPORT_JSON); - } finally { - IOUtils.closeQuietly(fileStream); } List endList = new ArrayList<>(); @@ -421,13 +419,13 @@ public class CustomReportServiceImpl implements CustomReportService { //开始组织sql reportTemplateDTOList.stream().forEach(data -> { StringBuilder sql = new StringBuilder(InfluxDBSqlConstant.SELECT); - if (InfluxDBTableConstant.MAX.equals(data.getStatMethod())) { + if (InfluxDBTableConstant.MAX.equalsIgnoreCase(data.getStatMethod())) { assSql(data, sql, endList, InfluxDBSqlConstant.MAX, reportSearchParam); - } else if (InfluxDBTableConstant.MIN.equals(data.getStatMethod())) { + } else if (InfluxDBTableConstant.MIN.equalsIgnoreCase(data.getStatMethod())) { assSql(data, sql, endList, InfluxDBSqlConstant.MIN, reportSearchParam); - } else if (InfluxDBTableConstant.AVG.equals(data.getStatMethod())) { + } else if (InfluxDBTableConstant.AVG.equalsIgnoreCase(data.getStatMethod())) { assSql(data, sql, endList, InfluxDBSqlConstant.AVG, reportSearchParam); - } else if (InfluxDBTableConstant.CP95.equals(data.getStatMethod())) { + } else if (InfluxDBTableConstant.CP95.equalsIgnoreCase(data.getStatMethod())) { assSql(data, sql, endList, InfluxDBSqlConstant.CP95, reportSearchParam); } }); @@ -463,9 +461,8 @@ public class CustomReportServiceImpl implements CustomReportService { }); } - File newFile = stringToFile(jsonArray.toString()); - MultipartFile newMultipartFile = getMultipartFile(newFile); - String newContent = fileStorageUtil.uploadMultipart(newMultipartFile, OssPath.HARMONIC_EXCEL_REPORT); + InputStream reportStream = IoUtil.toStream(jsonArray.toString(), CharsetUtil.UTF_8); + String newContent = fileStorageUtil.uploadStream(reportStream, OssPath.HARMONIC_EXCEL_REPORT, FileUtil.generateFileName("json")); //存入报表库 ExcelRpt excelRpt = new ExcelRpt(); @@ -475,12 +472,8 @@ public class CustomReportServiceImpl implements CustomReportService { excelRpt.setTempId(excelRptTemp.getId()); excelRpt.setContent(newContent); excelRpt.setType(reportSearchParam.getType()); - //根据模板激活状态,判断是否进库(修改State字段:0未进库 1已进库) - if (DataStateEnum.ENABLE.getCode().equals(reportSearchParam.getActivation())) { - excelRpt.setState(DataStateEnum.ENABLE.getCode()); - } else { - excelRpt.setState(DataStateEnum.DELETED.getCode()); - } + excelRpt.setState(DataStateEnum.ENABLE.getCode()); + excelRptMapper.insert(excelRpt); return newContent; @@ -497,30 +490,54 @@ public class CustomReportServiceImpl implements CustomReportService { //cp95函数特殊处理 PERCENTILE(field_key, N) if (InfluxDBSqlConstant.CP95.equals(method)) { - sql.append(method).append(InfluxDBSqlConstant.LBK).append(data.getTemplateName()).append(InfluxDBSqlConstant.NUM_95).append(InfluxDBSqlConstant.RBK).append(InfluxDBSqlConstant.AS_VALUE); + sql.append(method) + .append(InfluxDBSqlConstant.LBK) + .append(data.getTemplateName()) + .append(InfluxDBSqlConstant.NUM_95) + .append(InfluxDBSqlConstant.RBK) + .append(InfluxDBSqlConstant.AS_VALUE); } else { - sql.append(method).append(InfluxDBSqlConstant.LBK).append(data.getTemplateName()).append(InfluxDBSqlConstant.RBK).append(InfluxDBSqlConstant.AS_VALUE); + sql.append(method) + .append(InfluxDBSqlConstant.LBK) + .append(data.getTemplateName()) + .append(InfluxDBSqlConstant.RBK) + .append(InfluxDBSqlConstant.AS_VALUE); } - sql.append(InfluxDBSqlConstant.FROM).append(data.getClassId()).append(InfluxDBSqlConstant.WHERE).append(InfluxDBTableConstant.LINE_ID).append(InfluxDBSqlConstant.EQ).append(InfluxDBSqlConstant.QM).append(reportSearchParam.getLineId()).append(InfluxDBSqlConstant.QM); + sql.append(InfluxDBSqlConstant.FROM) + .append(data.getClassId()) + .append(InfluxDBSqlConstant.WHERE) + .append(InfluxDBTableConstant.LINE_ID) + .append(InfluxDBSqlConstant.EQ) + .append(InfluxDBSqlConstant.QM) + .append(reportSearchParam.getLineId()) + .append(InfluxDBSqlConstant.QM); //相别特殊处理 if (!InfluxDBTableConstant.NO_PHASE.equals(data.getPhase())) { - sql.append(InfluxDBSqlConstant.AND).append(InfluxDBTableConstant.PHASIC_TYPE).append(InfluxDBSqlConstant.EQ).append(InfluxDBSqlConstant.QM).append(data.getPhase()).append(InfluxDBSqlConstant.QM); + sql.append(InfluxDBSqlConstant.AND) + .append(InfluxDBTableConstant.PHASIC_TYPE) + .append(InfluxDBSqlConstant.EQ) + .append(InfluxDBSqlConstant.QM) + .append(data.getPhase()) + .append(InfluxDBSqlConstant.QM); } //data_flicker、data_fluc、data_plt 无 value_type if (!InfluxDBTableConstant.DATA_FLICKER.equals(data.getClassId()) && !InfluxDBTableConstant.DATA_FLUC.equals(data.getClassId()) && !InfluxDBTableConstant.DATA_PLT.equals(data.getClassId())) { - sql.append(InfluxDBSqlConstant.AND).append(InfluxDBTableConstant.VALUE_TYPE).append(InfluxDBSqlConstant.EQ).append(InfluxDBSqlConstant.QM).append(data.getStatMethod()).append(InfluxDBSqlConstant.QM); + sql.append(InfluxDBSqlConstant.AND) + .append(InfluxDBTableConstant.VALUE_TYPE) + .append(InfluxDBSqlConstant.EQ) + .append(InfluxDBSqlConstant.QM) + .append(data.getStatMethod()) + .append(InfluxDBSqlConstant.QM); } //时间范围处理 sql .append(InfluxDBSqlConstant.AND) - .append("time ").append(InfluxDBSqlConstant.GE).append("'").append(reportSearchParam.getStartTime()).append(InfluxDBSqlConstant.START_TIME).append("'") + .append(InfluxDBSqlConstant.TIME).append(InfluxDBSqlConstant.GE).append(InfluxDBSqlConstant.QM).append(reportSearchParam.getStartTime()).append(InfluxDBSqlConstant.START_TIME).append(InfluxDBSqlConstant.QM) .append(InfluxDBSqlConstant.AND) - .append("time ").append(InfluxDBSqlConstant.LT).append("'").append(reportSearchParam.getEndTime()).append(InfluxDBSqlConstant.END_TIME).append("'"); - + .append(InfluxDBSqlConstant.TIME).append(InfluxDBSqlConstant.LT).append(InfluxDBSqlConstant.QM).append(reportSearchParam.getEndTime()).append(InfluxDBSqlConstant.END_TIME).append(InfluxDBSqlConstant.QM); sql.append(InfluxDBSqlConstant.TZ); - System.out.println(sql); //根据不同的库表赋值 QueryResult queryResult = influxDbUtils.query(String.valueOf(sql)); @@ -548,109 +565,5 @@ public class CustomReportServiceImpl implements CustomReportService { } - /** - * 文件Url 转 String - * - * @param objectUrl 文件url - * @return 成功标记 - */ - private String urlToString(String objectUrl) throws IOException { - URL url = new URL(objectUrl); - BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream())); - StringBuffer buffer = new StringBuffer(); - String line = " "; - while ((line = in.readLine()) != null) { - buffer.append(line); - } - return buffer.toString(); - } - - /** - * 字符串写入指定文件 - * - * @param res 原字符串 - * @return 成功标记 - */ - public File stringToFile(String res) { - BufferedReader bufferedReader = null; - BufferedWriter bufferedWriter = null; - String businessTempPath = generalInfo.getBusinessTempPath(); - File distFile = new File(businessTempPath + File.separator + "temp.json"); - try { - if (!distFile.getParentFile().exists()) { - distFile.getParentFile().mkdirs(); - } - bufferedReader = new BufferedReader(new StringReader(res)); - bufferedWriter = new BufferedWriter(new FileWriter(distFile)); - bufferedWriter.write(""); - char buf[] = new char[1024]; //字符缓冲区 - int len; - while ((len = bufferedReader.read(buf)) != -1) { - bufferedWriter.write(buf, 0, len); - } - bufferedWriter.flush(); - bufferedReader.close(); - bufferedWriter.close(); - } catch (IOException e) { - e.printStackTrace(); - } finally { - if (bufferedReader != null) { - try { - bufferedReader.close(); - } catch (IOException e) { - e.printStackTrace(); - } - } - } - return distFile; - } - - /** - * MultipartFile 转 String - * - * @param multipartFile 原字符串 - * @return 成功标记 - */ - private String MultipartFileToString(MultipartFile multipartFile) { - InputStreamReader isr; - BufferedReader br; - StringBuilder txtResult = new StringBuilder(); - try { - isr = new InputStreamReader(multipartFile.getInputStream(), StandardCharsets.UTF_8); - br = new BufferedReader(isr); - String lineTxt; - while ((lineTxt = br.readLine()) != null) { - txtResult.append(lineTxt); - } - isr.close(); - br.close(); - return txtResult.toString(); - } catch (IOException e) { - e.printStackTrace(); - return ""; - } - } - - /** - * File 转 MultipartFile - * - * @param file 原字符串 - * @return 成功标记 - */ - public static MultipartFile getMultipartFile(File file) { - FileItem item = new DiskFileItemFactory().createItem("file" - , MediaType.MULTIPART_FORM_DATA_VALUE - , true - , file.getName()); - try (InputStream input = new FileInputStream(file); - OutputStream os = item.getOutputStream()) { - // 流转移 - IOUtils.copy(input, os); - } catch (Exception e) { - throw new IllegalArgumentException("Invalid file: " + e, e); - } - - return new CommonsMultipartFile(item); - } } diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/ReportServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/ReportServiceImpl.java index 3c887488e..e093e3389 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/ReportServiceImpl.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/ReportServiceImpl.java @@ -4,6 +4,8 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.io.IoUtil; +import cn.hutool.core.util.CharsetUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.json.*; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -11,6 +13,7 @@ import com.njcn.common.config.GeneralInfo; import com.njcn.common.pojo.constant.BizParamConstant; import com.njcn.common.pojo.enums.common.DataStateEnum; import com.njcn.common.pojo.exception.BusinessException; +import com.njcn.common.utils.FileUtil; import com.njcn.device.pq.api.DeptLineFeignClient; import com.njcn.harmonic.enums.HarmonicResponseEnum; import com.njcn.harmonic.pojo.dto.ReportTemplateDTO; @@ -30,7 +33,7 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.disk.DiskFileItemFactory; -import org.apache.commons.io.IOUtils; +import org.apache.tomcat.util.http.fileupload.IOUtils; import org.influxdb.dto.QueryResult; import org.springframework.http.MediaType; import org.springframework.scheduling.annotation.Async; @@ -39,8 +42,6 @@ import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.commons.CommonsMultipartFile; import java.io.*; -import java.net.URL; -import java.time.LocalDate; import java.util.*; import java.util.stream.Collectors; @@ -63,8 +64,6 @@ public class ReportServiceImpl implements ReportService { private final ExcelRptMapper excelRptMapper; - private final GeneralInfo generalInfo; - private final FileStorageUtil fileStorageUtil; @@ -94,20 +93,12 @@ public class ReportServiceImpl implements ReportService { List dataList; JSONArray jsonArray; for (ExcelRptTemp excelRptTemp : reportTemplateList) { - InputStream fileStream = null; - try { + try (InputStream fileStream = fileStorageUtil.getFileStream(excelRptTemp.getContent())) { //获取content解析数据 - fileStream = fileStorageUtil.getFileStream(excelRptTemp.getContent()); jsonArray = new JSONArray(new JSONTokener(fileStream, new JSONConfig())); dataList = getDataList(jsonArray); } catch (Exception e) { throw new BusinessException(HarmonicResponseEnum.CUSTOM_REPORT_JSON); - }finally { - try { - fileStream.close(); - } catch (IOException e) { - throw new RuntimeException(e); - } } //查询influxDB数据 @@ -115,7 +106,6 @@ public class ReportServiceImpl implements ReportService { for (String lineId : list) { //先判断该模板是否是当前监测点部门的 - if (CollUtil.isNotEmpty(dataList)) { //开始组织sql dataList.stream().forEach(data -> { @@ -315,7 +305,7 @@ public class ReportServiceImpl implements ReportService { String endTime; DateTime dateTime = new DateTime(reportParam.getDataDate(), DatePattern.NORM_DATE_PATTERN); //时间范围需要处理下 - switch (reportParam.getType()){ + switch (reportParam.getType()) { case 1: startTime = DateUtil.beginOfYear(dateTime).toString(DatePattern.NORM_DATETIME_PATTERN); endTime = DateUtil.endOfYear(dateTime).toString(DatePattern.NORM_DATETIME_PATTERN); @@ -339,13 +329,11 @@ public class ReportServiceImpl implements ReportService { } sql .append(InfluxDBSqlConstant.AND) - .append("time ").append(InfluxDBSqlConstant.GE).append("'").append(startTime).append("'") + .append(InfluxDBSqlConstant.TIME).append(InfluxDBSqlConstant.GE).append(InfluxDBSqlConstant.QM).append(startTime).append(InfluxDBSqlConstant.QM) .append(InfluxDBSqlConstant.AND) - .append("time ").append(InfluxDBSqlConstant.LT).append("'").append(endTime).append("'"); + .append(InfluxDBSqlConstant.TIME).append(InfluxDBSqlConstant.LT).append(InfluxDBSqlConstant.QM).append(endTime).append(InfluxDBSqlConstant.QM); sql.append(InfluxDBSqlConstant.TZ); - - System.out.println(sql); //根据不同的库表赋值 QueryResult queryResult = influxDbUtils.query(String.valueOf(sql)); @@ -380,92 +368,8 @@ public class ReportServiceImpl implements ReportService { * @return 成功标记 */ private String contentToOss(String content) { - //上传到minio - String businessTempPath = generalInfo.getBusinessTempPath(); - File file = stringToFile(content, businessTempPath + File.separator + "temp.json"); - MultipartFile multiFile = getMultipartFile(file); - return fileStorageUtil.uploadMultipart(multiFile, OssPath.HARMONIC_EXCEL_REPORT); - } - - /** - * 将字符串写入指定文件 - * - * @param res 原字符串 - * @param filePath 文件路径 - * @return 成功标记 - */ - public File stringToFile(String res, String filePath) { - boolean flag = true; - BufferedReader bufferedReader = null; - BufferedWriter bufferedWriter = null; - File distFile = new File(filePath); - try { - if (!distFile.getParentFile().exists()) { - distFile.getParentFile().mkdirs(); - } - bufferedReader = new BufferedReader(new StringReader(res)); - bufferedWriter = new BufferedWriter(new FileWriter(distFile)); - //先清空 - bufferedWriter.write(""); - char buf[] = new char[1024]; //字符缓冲区 - int len; - while ((len = bufferedReader.read(buf)) != -1) { - bufferedWriter.write(buf, 0, len); - } - bufferedWriter.flush(); - bufferedReader.close(); - bufferedWriter.close(); - } catch (IOException e) { - e.printStackTrace(); - } finally { - if (bufferedReader != null) { - try { - bufferedReader.close(); - } catch (IOException e) { - e.printStackTrace(); - } - } - } - return distFile; - } - - /** - * 将文件转成Multipart - * - * @param file 文件 - * @return 成功标记 - */ - private MultipartFile getMultipartFile(File file) { - FileItem item = new DiskFileItemFactory().createItem("file" - , MediaType.MULTIPART_FORM_DATA_VALUE - , true - , file.getName()); - try (InputStream input = new FileInputStream(file); - OutputStream os = item.getOutputStream()) { - // 流转移 - IOUtils.copy(input, os); - } catch (Exception e) { - throw new IllegalArgumentException("Invalid file: " + e, e); - } - - return new CommonsMultipartFile(item); - } - - /** - * 将文件Url读取,转为String - * - * @param objectUrl 文件url - * @return 成功标记 - */ - private String urlToString(String objectUrl) throws IOException { - URL url = new URL(objectUrl); - BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream())); - StringBuffer buffer = new StringBuffer(); - String line = " "; - while ((line = in.readLine()) != null) { - buffer.append(line); - } - return buffer.toString(); + InputStream reportStream = IoUtil.toStream(content, CharsetUtil.UTF_8); + return fileStorageUtil.uploadStream(reportStream, OssPath.HARMONIC_EXCEL_REPORT, FileUtil.generateFileName("json")); }