Explorar o código

超短池历史数据填充逻辑修改

Zhangbw hai 1 mes
pai
achega
d21ae81341

+ 6 - 5
ruoyi-modules/yp-stock/src/main/java/com/yingpai/stock/service/impl/StockPoolServiceImpl.java

@@ -337,15 +337,16 @@ public class StockPoolServiceImpl implements IStockPoolService {
     public String completeHistoryData(LocalDate importDate) throws Exception {
         log.info("[补全历史数据] 开始补全,导入日期: {}", importDate);
 
-        // 查找离导入日期最近的一天(向前查找最多7天)
+        // 查找离导入日期最近的一个交易日(从stock_pool_history表确定,向前查找最多30天)
         LocalDate previousDate = null;
         List<StockPool> previousDayData = new java.util.ArrayList<>();
-        for (int i = 1; i <= 7; i++) {
+        for (int i = 1; i <= 30; i++) {
             LocalDate checkDate = importDate.minusDays(i);
-            List<StockPool> data = baseMapper.selectByDateAndType(checkDate, 1);
-            if (!data.isEmpty()) {
+            LambdaQueryWrapper<StockPoolHistory> checkWrapper = Wrappers.lambdaQuery();
+            checkWrapper.eq(StockPoolHistory::getRecordDate, checkDate).last("LIMIT 1");
+            if (stockPoolHistoryMapper.selectCount(checkWrapper) > 0) {
                 previousDate = checkDate;
-                previousDayData = data;
+                previousDayData = baseMapper.selectByDateAndType(checkDate, 1);
                 log.info("[补全历史数据] 找到最近的交易日: {}", previousDate);
                 break;
             }