From 5c72b20bee11513c06cdfb30c52cd0a4016a7102 Mon Sep 17 00:00:00 2001
From: huangzhen <867217663@qq.com>
Date: Fri, 20 Oct 2023 15:56:52 +0800
Subject: [PATCH] 解决日报在linux上无法生成的问题
---
src/main/java/com/gkhy/fourierSpecialGasMonitor/websocket/GasFluxWebsocketServer.java | 2 +-
src/main/resources/config/application-online-uat.yaml | 5 +++++
src/main/java/com/gkhy/fourierSpecialGasMonitor/service/impl/GasCategoryServiceImpl.java | 12 ++++++++++++
src/main/java/com/gkhy/fourierSpecialGasMonitor/schedule/DailyReportSchedule.java | 37 ++++++++++++++++++++++++++++++-------
src/main/java/com/gkhy/fourierSpecialGasMonitor/schedule/HeartbeatSchedule.java | 2 +-
5 files changed, 49 insertions(+), 9 deletions(-)
diff --git a/src/main/java/com/gkhy/fourierSpecialGasMonitor/schedule/DailyReportSchedule.java b/src/main/java/com/gkhy/fourierSpecialGasMonitor/schedule/DailyReportSchedule.java
index 2086fb0..b22477b 100644
--- a/src/main/java/com/gkhy/fourierSpecialGasMonitor/schedule/DailyReportSchedule.java
+++ b/src/main/java/com/gkhy/fourierSpecialGasMonitor/schedule/DailyReportSchedule.java
@@ -1,6 +1,7 @@
package com.gkhy.fourierSpecialGasMonitor.schedule;
import com.alibaba.fastjson.JSON;
+import com.gkhy.fourierSpecialGasMonitor.Application;
import com.gkhy.fourierSpecialGasMonitor.commons.enums.ForeignResultCode;
import com.gkhy.fourierSpecialGasMonitor.commons.enums.ResultCode;
import com.gkhy.fourierSpecialGasMonitor.commons.exception.BusinessException;
@@ -26,6 +27,8 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.io.ClassPathResource;
+import org.springframework.core.io.Resource;
import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@@ -39,6 +42,7 @@
import javax.xml.parsers.ParserConfigurationException;
import java.io.*;
import java.lang.reflect.Field;
+import java.net.URL;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
@@ -98,18 +102,38 @@
//加载文档
XWPFDocument doc = null;
try {
- FileInputStream originalFileInputStream = new FileInputStream("src/main/resources/template/dailyReportTemplate.docx");
- FileOutputStream copyFileOutputStream = new FileOutputStream("src/main/resources/temp/dailyReportTemplate.docx");
- // 创建副本文件
+ ClassLoader classLoader = Application.class.getClassLoader();
+ InputStream originalFileInputStream = classLoader.getResourceAsStream("template/dailyReportTemplate.docx");
+ String copyFileUrl = reportFilePathConfig.getDcPath()+"temp/dailyReportTemplate.docx";
+ File file = new File(copyFileUrl);
+ if (!file.exists()){
+ try {
+ // 获取文件所在的文件夹路径
+ String folderPath = file.getParent();
+ // 创建文件夹(包括父目录)
+ File folder = new File(folderPath);
+ if (!folder.exists()){
+ folder.mkdirs();
+ }
+ file.createNewFile();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ FileOutputStream copyFileOutputStream = new FileOutputStream(copyFileUrl);
IOUtils.copy(originalFileInputStream, copyFileOutputStream);
- opcPackage = POIXMLDocument.openPackage("src/main/resources/temp/dailyReportTemplate.docx");
+ opcPackage = POIXMLDocument.openPackage(copyFileUrl);
+
+ //FileInputStream originalFileInputStream = new FileInputStream("src/main/resources/template/dailyReportTemplate.docx");
+ //FileOutputStream copyFileOutputStream = new FileOutputStream("src/main/resources/temp/dailyReportTemplate.docx");
+ //// 创建副本文件
+ //IOUtils.copy(originalFileInputStream, copyFileOutputStream);
+ //opcPackage = POIXMLDocument.openPackage("src/main/resources/temp/dailyReportTemplate.docx");
doc = new XWPFDocument(opcPackage);
} catch (IOException e) {
e.printStackTrace();
}
-
Map<String, Object> map = dataMap(gasCategories);
-
List<XWPFParagraph> paragraphList = doc.getParagraphs();
for (XWPFParagraph par : paragraphList) {
//获取段落的文本对象
@@ -173,7 +197,6 @@
drawLineChart(gasConcentrations, fileurl, series, title, gasCategories.get(i).getMolecularFormula(), i);
}
}
-
//List<GasFlux> gasFluxes = gasFluxService.listYesterday();
List<GasFlux> gasFluxes = gasFluxService.listYesterdayTenAmToSixPm();
List<Integer> areaNum = gasFluxes.stream().map(GasFlux::getAreaId).distinct().collect(Collectors.toList());
diff --git a/src/main/java/com/gkhy/fourierSpecialGasMonitor/schedule/HeartbeatSchedule.java b/src/main/java/com/gkhy/fourierSpecialGasMonitor/schedule/HeartbeatSchedule.java
index 57078f3..a8eafe3 100644
--- a/src/main/java/com/gkhy/fourierSpecialGasMonitor/schedule/HeartbeatSchedule.java
+++ b/src/main/java/com/gkhy/fourierSpecialGasMonitor/schedule/HeartbeatSchedule.java
@@ -43,7 +43,7 @@
private final Logger logger = LoggerFactory.getLogger(this.getClass());
- @Scheduled(cron = "1 * * * * ?") // 每天凌晨执行
+ @Scheduled(cron = "0/1 * * * * ?") // 每秒执行一次
@Async(value = "SocketTaskExecutor")
public void gasConcentrationStatus() {
GasConcentration gasConcentration = gasConcentrationService.getLastData();
diff --git a/src/main/java/com/gkhy/fourierSpecialGasMonitor/service/impl/GasCategoryServiceImpl.java b/src/main/java/com/gkhy/fourierSpecialGasMonitor/service/impl/GasCategoryServiceImpl.java
index f9aedeb..dd91e79 100644
--- a/src/main/java/com/gkhy/fourierSpecialGasMonitor/service/impl/GasCategoryServiceImpl.java
+++ b/src/main/java/com/gkhy/fourierSpecialGasMonitor/service/impl/GasCategoryServiceImpl.java
@@ -20,8 +20,16 @@
import com.gkhy.fourierSpecialGasMonitor.service.GasCategoryService;
import com.gkhy.fourierSpecialGasMonitor.utils.ThreadLocalUtil;
import io.micrometer.core.instrument.util.StringUtils;
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.FormulaEvaluator;
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.ss.usermodel.Workbook;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.redisson.api.RBucket;
import org.redisson.api.RedissonClient;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
@@ -31,11 +39,15 @@
import org.springframework.data.jpa.domain.Specification;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
+import org.springframework.web.multipart.MultipartFile;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Predicate;
import javax.persistence.criteria.Root;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
import java.time.LocalDateTime;
import java.util.*;
import java.util.concurrent.locks.ReentrantLock;
diff --git a/src/main/java/com/gkhy/fourierSpecialGasMonitor/websocket/GasFluxWebsocketServer.java b/src/main/java/com/gkhy/fourierSpecialGasMonitor/websocket/GasFluxWebsocketServer.java
index 18db060..e649fd1 100644
--- a/src/main/java/com/gkhy/fourierSpecialGasMonitor/websocket/GasFluxWebsocketServer.java
+++ b/src/main/java/com/gkhy/fourierSpecialGasMonitor/websocket/GasFluxWebsocketServer.java
@@ -88,7 +88,7 @@
*/
@OnMessage
public void onMessage(String message, Session session) {
- log.info("收到来自窗口" + userId + "的信息:" + message);
+ //log.info("收到来自窗口" + userId + "的信息:" + message);
if (StringUtils.isNotBlank(message)) {
try {
diff --git a/src/main/resources/config/application-online-uat.yaml b/src/main/resources/config/application-online-uat.yaml
index 5d4a69f..e9824a4 100644
--- a/src/main/resources/config/application-online-uat.yaml
+++ b/src/main/resources/config/application-online-uat.yaml
@@ -63,6 +63,11 @@
externalAccessHeader: Access-Token
externalAccessKey: HG0f40036fe7420230808150035407
+reportfile:
+ path:
+ #基础路径
+ dcPath: /home/gkhy/upload/fourierSpecialgasMonitor/
+ urlRootPath: /upload/
file:
path:
#基础路径
--
Gitblit v1.9.2