From 99042da077ad98e38340f96cb03ffcf4d249ab87 Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期五, 01 十一月 2024 13:49:21 +0800
Subject: [PATCH] 1

---
 src/main/java/com/yssh/config/ScheduleConfig.java |   50 +++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 39 insertions(+), 11 deletions(-)

diff --git a/src/main/java/com/yssh/config/ScheduleConfig.java b/src/main/java/com/yssh/config/ScheduleConfig.java
index 0e46d77..d90aafb 100644
--- a/src/main/java/com/yssh/config/ScheduleConfig.java
+++ b/src/main/java/com/yssh/config/ScheduleConfig.java
@@ -15,15 +15,15 @@
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Configuration;
 import org.springframework.scheduling.annotation.EnableScheduling;
 import org.springframework.scheduling.annotation.Scheduled;
-import org.springframework.stereotype.Component;
 
 import com.github.biyanwen.EasyCsv;
 
 import javax.annotation.Resource;
 
-@Component
+@Configuration
 @EnableScheduling
 public class ScheduleConfig {
 	protected final Logger logger = LoggerFactory.getLogger(this.getClass());
@@ -46,28 +46,44 @@
 	@Resource
 	XlsReportService xlsReportService;
 
+	@Resource
+	EmailService emailService;
+
 	@Value("${csv.voc_max}")
 	private int vocMax = 96;
 
 	@Value("${csv.cron_max}")
 	private int cronMax = 48;
 
+	@Value("${email.enable}")
+	private Boolean enableEmail;
+
+	private static boolean flag = false;
+
+	private static final Object OBJ = new Object();
+
 	private final static List<String> md5List = new ArrayList<>();
 
 	private final static SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHH");
 
 	public void corpReserveDataSync() {
-		loadVocSync();
+		//loadVocSync();
 		loadCsvSync();
 	}
 
 	@Scheduled(cron = "${csv.cron}")
 	private void loadCsvSync() {
+		synchronized (OBJ) {
+			if (flag) return;
+			flag = true;
+		}
+
 		logger.info("***************** 寮�濮嬫墽琛孋SV鍏ュ簱 *****************" + "\n");
 		Calendar calendar = getCalendar(1);
+		calendar.add(Calendar.HOUR, -cronMax);
 		for (int i = 0; i < cronMax; i++) {
 			try {
-				calendar.add(Calendar.HOUR, -1);
+				calendar.add(Calendar.HOUR, 1);
 				String time = format.format(calendar.getTime());
 				String filePath = csvFilePathConfig.getFilePath() + File.separator + time + ".csv";
 
@@ -96,6 +112,7 @@
 			}
 		}
 		logger.info("***************** CSV鍏ュ簱鎵ц瀹屾垚 *****************" + "\n");
+		flag = false;
 	}
 
 	public Calendar getCalendar(int start) {
@@ -118,7 +135,7 @@
 	private void loadVocSync() {
 		logger.info("***************** 寮�濮嬪叏鍩烠SV鍏ュ簱 *****************" + "\n");
 		vocValsService.deleteLastYear();
-		Calendar calendar = getCalendar(96);
+		Calendar calendar = getCalendar(vocMax);
 		for (int i = 0; i < vocMax; i++) {
 			calendar.add(Calendar.HOUR, -1);
 			String time = format.format(calendar.getTime());
@@ -130,18 +147,19 @@
 				continue;
 			}
 
-			String md5 = FileUtils.getFileMd5(filePath);
-			if (null != md5 && md5List.contains(md5)) {
-				continue; // csv宸插叆搴�
-			}
+			//String md5 = FileUtils.getFileMd5(filePath);
+			//if (null != md5 && md5List.contains(md5)) {
+			//	continue; // csv宸插叆搴�
+			//}
 
 			int count = vocValsService.countByTime(time);
 			if (count > 0) {
-				vocValsService.deleteByTime(time); // 鍒犻櫎宸插叆搴�
+				//vocValsService.deleteByTime(time); // 鍒犻櫎宸插叆搴�
+				continue;
 			}
 
 			try {
-				addFileMd5(md5);
+				//addFileMd5(md5);
 				logger.info("loadVocSync: " + filePath);
 				Date date = (Date) calendar.getTime().clone();
 				EasyCsv.read(filePath, VocVals.class, new VocParser(vocValsService, date)).doRead();
@@ -235,4 +253,14 @@
 			}
 		}
 	}
+
+	@Scheduled(cron = "${email.times}")
+	public void autoCalcData() {
+		if (enableEmail) {
+			//System.out.println("${email.times}");
+			logger.info("***************** 寮�濮嬫暟鎹璀﹁绠� *****************" + "\n");
+			emailService.calcData();
+			logger.info("***************** 鏁版嵁棰勮璁$畻瀹屾垚 *****************" + "\n");
+		}
+	}
 }

--
Gitblit v1.9.3