代码调整
This commit is contained in:
@@ -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<ReportTemplateDTO> 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"));
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user