|
@@ -22,6 +22,7 @@ import org.dromara.common.core.utils.StringUtils;
|
|
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
|
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
|
|
import org.dromara.common.satoken.utils.LoginHelper;
|
|
import org.dromara.common.satoken.utils.LoginHelper;
|
|
|
|
|
+import org.springframework.scheduling.annotation.Async;
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
@@ -452,32 +453,8 @@ public class StockPoolHistoryServiceImpl implements IStockPoolHistoryService {
|
|
|
log.info("[强势池] 开始将排名前十的股票加入强势池,导入日期: {}", parsedRecordDate);
|
|
log.info("[强势池] 开始将排名前十的股票加入强势池,导入日期: {}", parsedRecordDate);
|
|
|
addTopTenToStrongPool(parsedRecordDate);
|
|
addTopTenToStrongPool(parsedRecordDate);
|
|
|
|
|
|
|
|
- // 调用数据补全功能,将历史数据补全到stock_pool表
|
|
|
|
|
- try {
|
|
|
|
|
- log.info("[数据补全] 开始补全历史数据到stock_pool表,导入日期: {}", parsedRecordDate);
|
|
|
|
|
- String completeResult = stockPoolService.completeHistoryData(parsedRecordDate);
|
|
|
|
|
- log.info("[数据补全] 补全结果: {}", completeResult);
|
|
|
|
|
- } catch (Exception e) {
|
|
|
|
|
- log.error("[数据补全] 补全历史数据失败: {}", e.getMessage(), e);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- // 更新强势池10天最高涨幅
|
|
|
|
|
- try {
|
|
|
|
|
- log.info("[强势池10天涨幅] 开始更新强势池10天最高涨幅,导入日期: {}", parsedRecordDate);
|
|
|
|
|
- String gainResult = stockPoolService.updateStrongPoolTenDayGain(parsedRecordDate);
|
|
|
|
|
- log.info("[强势池10天涨幅] 更新结果: {}", gainResult);
|
|
|
|
|
- } catch (Exception e) {
|
|
|
|
|
- log.error("[强势池10天涨幅] 更新失败: {}", e.getMessage(), e);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- // 回溯更新过去10天内所有记录的high_trend
|
|
|
|
|
- try {
|
|
|
|
|
- log.info("[回溯更新high_trend] 开始回溯更新,导入日期: {}", parsedRecordDate);
|
|
|
|
|
- String updateResult = updatePastTenDaysHighTrend(parsedRecordDate);
|
|
|
|
|
- log.info("[回溯更新high_trend] 更新结果: {}", updateResult);
|
|
|
|
|
- } catch (Exception e) {
|
|
|
|
|
- log.error("[回溯更新high_trend] 更新失败: {}", e.getMessage(), e);
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ // 异步执行耗时的后续操作(数据补全、更新涨幅、回溯更新)
|
|
|
|
|
+ asyncProcessAfterImport(parsedRecordDate);
|
|
|
|
|
|
|
|
if (failureNum > 0) {
|
|
if (failureNum > 0) {
|
|
|
String message = String.format("导入完成!成功 %d 条(其中更新 %d 条),失败 %d 条。详细错误信息请查看服务器日志。",
|
|
String message = String.format("导入完成!成功 %d 条(其中更新 %d 条),失败 %d 条。详细错误信息请查看服务器日志。",
|
|
@@ -601,6 +578,46 @@ public class StockPoolHistoryServiceImpl implements IStockPoolHistoryService {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 异步执行导入后的耗时操作
|
|
|
|
|
+ * 包括:数据补全、更新强势池10天涨幅、回溯更新high_trend
|
|
|
|
|
+ *
|
|
|
|
|
+ * @param importDate 导入日期
|
|
|
|
|
+ */
|
|
|
|
|
+ @Async
|
|
|
|
|
+ public void asyncProcessAfterImport(LocalDate importDate) {
|
|
|
|
|
+ log.info("[异步处理] 开始执行导入后的耗时操作,导入日期: {}", importDate);
|
|
|
|
|
+
|
|
|
|
|
+ // 调用数据补全功能,将历史数据补全到stock_pool表
|
|
|
|
|
+ try {
|
|
|
|
|
+ log.info("[数据补全] 开始补全历史数据到stock_pool表,导入日期: {}", importDate);
|
|
|
|
|
+ String completeResult = stockPoolService.completeHistoryData(importDate);
|
|
|
|
|
+ log.info("[数据补全] 补全结果: {}", completeResult);
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ log.error("[数据补全] 补全历史数据失败: {}", e.getMessage(), e);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 更新强势池10天最高涨幅
|
|
|
|
|
+ try {
|
|
|
|
|
+ log.info("[强势池10天涨幅] 开始更新强势池10天最高涨幅,导入日期: {}", importDate);
|
|
|
|
|
+ String gainResult = stockPoolService.updateStrongPoolTenDayGain(importDate);
|
|
|
|
|
+ log.info("[强势池10天涨幅] 更新结果: {}", gainResult);
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ log.error("[强势池10天涨幅] 更新失败: {}", e.getMessage(), e);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 回溯更新过去10天内所有记录的high_trend
|
|
|
|
|
+ try {
|
|
|
|
|
+ log.info("[回溯更新high_trend] 开始回溯更新,导入日期: {}", importDate);
|
|
|
|
|
+ String updateResult = updatePastTenDaysHighTrend(importDate);
|
|
|
|
|
+ log.info("[回溯更新high_trend] 更新结果: {}", updateResult);
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ log.error("[回溯更新high_trend] 更新失败: {}", e.getMessage(), e);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ log.info("[异步处理] 导入后的耗时操作全部完成,导入日期: {}", importDate);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 从 Map 中获取字符串值
|
|
* 从 Map 中获取字符串值
|