Browse Source

fix:指标计算支持传交易日

wangzaijun 1 năm trước cách đây
mục cha
commit
9218cca0b7

+ 1 - 1
pom.xml

@@ -6,7 +6,7 @@
 
     <groupId>com.smppw</groupId>
     <artifactId>data-calc</artifactId>
-    <version>0.1.4-SNAPSHOT</version>
+    <version>0.1.6-SNAPSHOT</version>
 
     <properties>
         <maven.compiler.source>17</maven.compiler.source>

+ 17 - 17
src/main/java/com/smppw/common/cache/CaffeineLocalCache.java

@@ -2,11 +2,11 @@ package com.smppw.common.cache;
 
 import com.github.benmanes.caffeine.cache.Cache;
 import com.github.benmanes.caffeine.cache.Caffeine;
+import com.smppw.common.pojo.IndexesTradeDate;
 import com.smppw.constants.Consts;
 import com.smppw.constants.DateConst;
 import com.smppw.constants.IndexConst;
 import com.smppw.constants.SearchConst;
-import com.smppw.common.pojo.IndexesTradeDateDo;
 import com.smppw.common.pojo.ValueLabelVO;
 import org.apache.commons.lang3.StringUtils;
 import org.joda.time.DateTime;
@@ -60,7 +60,7 @@ public class CaffeineLocalCache extends BasicLocalCache {
     /**
      * 交易日  indexes_trade_date 指数和交易日一对多
      */
-    private static Cache<String, List<IndexesTradeDateDo>> LIST_INFO_TREND_DATE = Caffeine.newBuilder().maximumSize(1).build();
+    private static Cache<String, List<IndexesTradeDate>> LIST_INFO_TREND_DATE = Caffeine.newBuilder().maximumSize(1).build();
     /**
      * 缓存所有的无风险ID
      */
@@ -121,9 +121,9 @@ public class CaffeineLocalCache extends BasicLocalCache {
         return DATE_YEAR_WEEK.getIfPresent(date);
     }
 
-    public static void addDateYearWeek(List<IndexesTradeDateDo> indexesTradeDateDoList) {
-        for (IndexesTradeDateDo indexesTradeDateDo : indexesTradeDateDoList) {
-            DATE_YEAR_WEEK.put(indexesTradeDateDo.getTradeDate(), indexesTradeDateDo.getYearWeek());
+    public static void addDateYearWeek(List<IndexesTradeDate> indexesTradeDateList) {
+        for (IndexesTradeDate indexesTradeDate : indexesTradeDateList) {
+            DATE_YEAR_WEEK.put(indexesTradeDate.getTradeDate(), indexesTradeDate.getYearWeek());
         }
     }
 
@@ -135,9 +135,9 @@ public class CaffeineLocalCache extends BasicLocalCache {
         return YEAR_WEEK_LAST_TRADE_DATE.getIfPresent(yearWeek);
     }
 
-    public static void addYearWeekLastTradeDate(List<IndexesTradeDateDo> indexesTradeDateDoList) {
-        for (IndexesTradeDateDo indexesTradeDateDo : indexesTradeDateDoList) {
-            YEAR_WEEK_LAST_TRADE_DATE.put(indexesTradeDateDo.getYearWeek(), indexesTradeDateDo.getTradeDate());
+    public static void addYearWeekLastTradeDate(List<IndexesTradeDate> indexesTradeDateList) {
+        for (IndexesTradeDate indexesTradeDate : indexesTradeDateList) {
+            YEAR_WEEK_LAST_TRADE_DATE.put(indexesTradeDate.getYearWeek(), indexesTradeDate.getTradeDate());
         }
     }
 
@@ -145,9 +145,9 @@ public class CaffeineLocalCache extends BasicLocalCache {
         DATE_YEAR_MONTH.invalidateAll();
     }
 
-    public static void addDateYearMonth(List<IndexesTradeDateDo> indexesTradeDateDoList) {
-        for (IndexesTradeDateDo indexesTradeDateDo : indexesTradeDateDoList) {
-            DATE_YEAR_MONTH.put(indexesTradeDateDo.getTradeDate(), indexesTradeDateDo.getYearmonth());
+    public static void addDateYearMonth(List<IndexesTradeDate> indexesTradeDateList) {
+        for (IndexesTradeDate indexesTradeDate : indexesTradeDateList) {
+            DATE_YEAR_MONTH.put(indexesTradeDate.getTradeDate(), indexesTradeDate.getYearmonth());
         }
     }
 
@@ -177,9 +177,9 @@ public class CaffeineLocalCache extends BasicLocalCache {
         return DATE_MONTH_WEEK.getIfPresent(date);
     }
 
-    public static void addYearMonthLastTradeDate(List<IndexesTradeDateDo> indexesTradeDateDoList) {
-        for (IndexesTradeDateDo indexesTradeDateDo : indexesTradeDateDoList) {
-            YEAR_MONTH_LAST_TRADE_DATE.put(indexesTradeDateDo.getYearmonth(), indexesTradeDateDo.getTradeDate());
+    public static void addYearMonthLastTradeDate(List<IndexesTradeDate> indexesTradeDateList) {
+        for (IndexesTradeDate indexesTradeDate : indexesTradeDateList) {
+            YEAR_MONTH_LAST_TRADE_DATE.put(indexesTradeDate.getYearmonth(), indexesTradeDate.getTradeDate());
         }
     }
 
@@ -187,11 +187,11 @@ public class CaffeineLocalCache extends BasicLocalCache {
         YEAR_MONTH_LAST_TRADE_DATE.invalidateAll();
     }
 
-    public static void addListInfoTrendDate(List<IndexesTradeDateDo> indexesTradeDateDoList) {
-        LIST_INFO_TREND_DATE.put(DateConst.TREND_DATE, indexesTradeDateDoList);
+    public static void addListInfoTrendDate(List<IndexesTradeDate> indexesTradeDateList) {
+        LIST_INFO_TREND_DATE.put(DateConst.TREND_DATE, indexesTradeDateList);
     }
 
-    public static List<IndexesTradeDateDo> getListInfoTrendDate() {
+    public static List<IndexesTradeDate> getListInfoTrendDate() {
         return LIST_INFO_TREND_DATE.getIfPresent(DateConst.TREND_DATE);
     }
 

+ 36 - 0
src/main/java/com/smppw/common/pojo/IndexesTradeDate.java

@@ -0,0 +1,36 @@
+package com.smppw.common.pojo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 交易日
+ */
+@Setter
+@Getter
+public class IndexesTradeDate {
+    /**
+     * 日期
+     */
+    private String tradeDate;
+
+    /**
+     * 年周
+     */
+    private String yearWeek;
+
+    /**
+     * 星期,周一为1
+     */
+    private Integer dayOfWeek;
+
+    /**
+     * 是否为节假日 0 工作日 1 节假日
+     */
+    private Integer isholiday;
+
+    /**
+     * 年月
+     */
+    private String yearmonth;
+}

+ 0 - 121
src/main/java/com/smppw/common/pojo/IndexesTradeDateDo.java

@@ -1,121 +0,0 @@
-package com.smppw.common.pojo;
-
-import lombok.Data;
-
-import java.util.Date;
-
-/**
-    * 交易日
-    */
-@Data
-public class IndexesTradeDateDo {
-    /**
-    * 主键ID
-    */
-    private Integer id;
-
-    /**
-    * 指数代码
-    */
-    private String indexCode;
-
-    /**
-    * 日期
-    */
-    private String tradeDate;
-
-    /**
-    * 截止年份
-    */
-    private String endYear;
-
-    /**
-    * 全年的第几周
-    */
-    private Integer weekOfYear;
-
-    /**
-    * 年周
-    */
-    private String yearWeek;
-
-    /**
-    * 星期,周一为1
-    */
-    private Integer dayOfWeek;
-
-    /**
-    * 周的开始日期
-    */
-    private Date weekBegin;
-
-    /**
-    * 周的结束日期
-    */
-    private Date weekEnd;
-
-    /**
-    * 上一周所在的年
-    */
-    private String preYear;
-
-    /**
-    * 上一周
-    */
-    private Byte preWeek;
-
-    /**
-    * 是否为节假日 0 工作日 1 节假日
-    */
-    private Integer isholiday;
-
-    /**
-    * 是否周最后交易日:1-是,2-否
-    */
-    private Integer isWeekend;
-
-    /**
-    * 是否月最后交易日:1-是,2-否
-    */
-    private Integer isMonthend;
-
-    /**
-    * 是否季最后交易日:1-是,2-否
-    */
-    private Integer isQuarterend;
-
-    /**
-    * 是否年最后交易日:1-是,2-否
-    */
-    private Integer isYearend;
-
-    /**
-    * 记录有效性 1 有效 0 无效
-    */
-    private Integer isvalid;
-
-    /**
-    * 创建人id
-    */
-    private Integer creatorid;
-
-    /**
-    * 创建时间
-    */
-    private Date createtime;
-
-    /**
-    * 更新人id
-    */
-    private Integer updaterid;
-
-    /**
-    * 更新时间
-    */
-    private Date updatetime;
-
-    /**
-    * 年月
-    */
-    private String yearmonth;
-}

+ 35 - 15
src/main/java/com/smppw/core/IndicatorService.java

@@ -1,8 +1,9 @@
 package com.smppw.core;
 
 import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.util.StrUtil;
 import com.smppw.common.pojo.IStrategy;
-import com.smppw.common.pojo.IndexesTradeDateDo;
+import com.smppw.common.pojo.IndexesTradeDate;
 import com.smppw.common.pojo.dto.CompoundRet;
 import com.smppw.common.pojo.dto.DateValue;
 import com.smppw.common.pojo.dto.calc.IndicatorCalcPropertyDto;
@@ -22,6 +23,7 @@ import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * @author wangzaijun
@@ -61,15 +63,15 @@ public class IndicatorService {
                 theLastNavDate = mainSecIdNavList.get(mainSecIdNavList.size() - 1).getDate();
             }
 
-            List<IndexesTradeDateDo> indexesTradeDateDoList = TradeDateUtil.listInfoByDateInterval(theFirstNavDate, theLastNavDate);
+            List<IndexesTradeDate> indexesTradeDateList = TradeDateUtil.listInfoByDateInterval(theFirstNavDate, theLastNavDate);
 
             Frequency defaultFrequency = secFreqMap.getOrDefault(mainSecId, Frequency.Daily);
             Frequency calcFrequency = frequency == null || frequency == Frequency.Default ? defaultFrequency : frequency;
 
-            List<DateValue> validMainSecNavList = NavUtil.filterFrequencyNav(mainSecIdNavList, indexesTradeDateDoList, navFrequency);
+            List<DateValue> validMainSecNavList = NavUtil.filterFrequencyNav(mainSecIdNavList, indexesTradeDateList, navFrequency);
             secAllNavMap.put(mainSecId, validMainSecNavList);
 
-            List<IndicatorCalcTimeRangeDto> indicatorCalcTimeRangeDtoList = DateIntervalUtil.getIndicatorCalcTimeRangeDto(dateIntervalDto, validMainSecNavList, indexesTradeDateDoList
+            List<IndicatorCalcTimeRangeDto> indicatorCalcTimeRangeDtoList = DateIntervalUtil.getIndicatorCalcTimeRangeDto(dateIntervalDto, validMainSecNavList, indexesTradeDateList
                     , dateIntervalDto.getId());
 
             List<IndicatorCalcPropertyDto> indicatorCalcPropertyDtoList = new ArrayList<>();
@@ -99,7 +101,19 @@ public class IndicatorService {
         return indicatorCalcPropertyDtoListMap;
     }
 
-    public Map<String, List<IndicatorCalcPropertyDto>> calcMultipleSecMultipleTimeRangeIndicator(CalcMultipleSecMultipleTimeRangeIndicatorReq req, Map<String, List<DateValue>> allNavMap, Map<String, Frequency> secFreqMap) {
+    /**
+     * 多标的多时段多指标计算
+     *
+     * @param req        请求参数
+     * @param allNavMap  所有标的的净值
+     * @param secFreqMap 标的的净值频率
+     * @param tradeDates 所有要计算的交易日序列
+     * @return /
+     */
+    public Map<String, List<IndicatorCalcPropertyDto>> calcMultipleSecMultipleTimeRangeIndicator(CalcMultipleSecMultipleTimeRangeIndicatorReq req,
+                                                                                                 Map<String, List<DateValue>> allNavMap,
+                                                                                                 Map<String, Frequency> secFreqMap,
+                                                                                                 List<IndexesTradeDate> tradeDates) {
 
         List<String> mainSecIdList = req.getMainSecIdList();
         Map<String, String> secBenchmarkIdMap = req.getSecBenchmarkIdMap();
@@ -142,8 +156,13 @@ public class IndicatorService {
                 theFirstNavDate = mainSecIdNavList.get(0).getDate();
                 theLastNavDate = mainSecIdNavList.get(mainSecIdNavList.size() - 1).getDate();
             }
-            List<IndexesTradeDateDo> indexesTradeDateDoList = TradeDateUtil.listInfoByDateInterval(theFirstNavDate, theLastNavDate);
-            List<DateValue> validMainSecNavList = NavUtil.filterFrequencyNav(mainSecIdNavList, indexesTradeDateDoList, navFrequency);
+            if (StrUtil.isAllNotBlank(theFirstNavDate, theLastNavDate)) {
+                String finalTheFirstNavDate = theFirstNavDate;
+                String finalTheLastNavDate = theLastNavDate;
+                tradeDates = tradeDates.stream().filter(e -> e.getTradeDate().compareTo(finalTheFirstNavDate) >= 0)
+                        .filter(e -> e.getTradeDate().compareTo(finalTheLastNavDate) <= 0).collect(Collectors.toList());
+            }
+            List<DateValue> validMainSecNavList = NavUtil.filterFrequencyNav(mainSecIdNavList, tradeDates, navFrequency);
             secAllNavMap.put(mainSecId, validMainSecNavList);
 
             Frequency defaultFrequency = secFreqMap.getOrDefault(mainSecId, Frequency.Daily);
@@ -156,9 +175,9 @@ public class IndicatorService {
 
             for (DateIntervalDto dateIntervalDto : dateIntervalDtoList) {
 
-                rollFindStartDate(mainSecId, dateIntervalDto, indexesTradeDateDoList, allNavMap, calcFrequency);
+                rollFindStartDate(mainSecId, dateIntervalDto, tradeDates, allNavMap, calcFrequency);
 
-                List<IndicatorCalcTimeRangeDto> indicatorCalcTimeRangeDtoList = DateIntervalUtil.getIndicatorCalcTimeRangeDto(dateIntervalDto, validMainSecNavList, indexesTradeDateDoList
+                List<IndicatorCalcTimeRangeDto> indicatorCalcTimeRangeDtoList = DateIntervalUtil.getIndicatorCalcTimeRangeDto(dateIntervalDto, validMainSecNavList, tradeDates
                         , dateIntervalDto.getId());
 
                 for (IndicatorCalcTimeRangeDto indicatorCalcTimeRangeDto : indicatorCalcTimeRangeDtoList) {
@@ -215,9 +234,9 @@ public class IndicatorService {
             theLastNavDate = mainSecIdNavList.get(mainSecIdNavList.size() - 1).getDate();
         }
 
-        List<IndexesTradeDateDo> indexesTradeDateDoList = TradeDateUtil.listInfoByDateInterval(theFirstNavDate, theLastNavDate);
+        List<IndexesTradeDate> indexesTradeDateList = TradeDateUtil.listInfoByDateInterval(theFirstNavDate, theLastNavDate);
 
-        indicatorCalcTimeRangeDtoList = DateIntervalUtil.getIndicatorCalcTimeRangeDto(dateIntervalDto, allNavMap.get(mainSecId), indexesTradeDateDoList
+        indicatorCalcTimeRangeDtoList = DateIntervalUtil.getIndicatorCalcTimeRangeDto(dateIntervalDto, allNavMap.get(mainSecId), indexesTradeDateList
                 , dateIntervalDto.getId());
 
         for (IndicatorCalcTimeRangeDto indicatorCalcTimeRangeDto : indicatorCalcTimeRangeDtoList) {
@@ -243,7 +262,8 @@ public class IndicatorService {
     public Map<String, List<IndicatorCalcPropertyDto>> getMultiSecRetListNew(List<String> mainSecIdList, List<String> indexIdList, Frequency frequency,
                                                                              Frequency rollingFrequency, String startDate, String endDate,
                                                                              boolean ifExcessReturn, String benchmarkId, RaiseType raiseType, IStrategy strategy,
-                                                                             Visibility visibility, NavType navType, Map<String, List<DateValue>> allNavMap, Map<String, Frequency> secFreqMap) {
+                                                                             Visibility visibility, NavType navType,
+                                                                             Map<String, List<DateValue>> allNavMap, Map<String, Frequency> secFreqMap, List<IndexesTradeDate> tradeDates) {
         List<DateIntervalDto> dateIntervalDtoList = new ArrayList<>();
         DateIntervalDto defaultIntervalDto = new DateIntervalDto();
         defaultIntervalDto.setStartDate(startDate);
@@ -290,7 +310,7 @@ public class IndicatorService {
         calcMultipleSecMultipleTimeRangeIndicatorReq.setNeedExtraRet(false);
         calcMultipleSecMultipleTimeRangeIndicatorReq.setIfConvertPerformanceConsistencyWord(true);
 
-        return calcMultipleSecMultipleTimeRangeIndicator(calcMultipleSecMultipleTimeRangeIndicatorReq, allNavMap, secFreqMap);
+        return calcMultipleSecMultipleTimeRangeIndicator(calcMultipleSecMultipleTimeRangeIndicatorReq, allNavMap, secFreqMap, tradeDates);
     }
 
 //
@@ -552,7 +572,7 @@ public class IndicatorService {
         return indicatorCalcReq;
     }
 
-    public void rollFindStartDate(String mainSecId, DateIntervalDto dateIntervalDto, List<IndexesTradeDateDo> indexesTradeDateDoList, Map<String, List<DateValue>> allNavMap, Frequency defaultFrequency) {
+    public void rollFindStartDate(String mainSecId, DateIntervalDto dateIntervalDto, List<IndexesTradeDate> indexesTradeDateList, Map<String, List<DateValue>> allNavMap, Frequency defaultFrequency) {
         if (dateIntervalDto.getDateIntervalType() == DateIntervalType.DefaultRolling || dateIntervalDto.getDateIntervalType() == DateIntervalType.CustomRolling) {
             DateIntervalDto defaultIntervalDateIntervalDto = new DateIntervalDto();
             defaultIntervalDateIntervalDto.setStartDate(dateIntervalDto.getStartDate());
@@ -561,7 +581,7 @@ public class IndicatorService {
             defaultIntervalDateIntervalDto.setTimeRange(dateIntervalDto.getTimeRange());
 
             List<DateValue> newNavList = NavUtil.getNewNavList(allNavMap.get(mainSecId));
-            List<IndicatorCalcTimeRangeDto> indicatorCalcTimeRangeDtoList = DateIntervalUtil.getIndicatorCalcTimeRangeDto(defaultIntervalDateIntervalDto, newNavList, indexesTradeDateDoList
+            List<IndicatorCalcTimeRangeDto> indicatorCalcTimeRangeDtoList = DateIntervalUtil.getIndicatorCalcTimeRangeDto(defaultIntervalDateIntervalDto, newNavList, indexesTradeDateList
                     , dateIntervalDto.getId());
 
             if (indicatorCalcTimeRangeDtoList != null && indicatorCalcTimeRangeDtoList.size() > 0) {

+ 14 - 14
src/main/java/com/smppw/utils/DateIntervalUtil.java

@@ -1,8 +1,8 @@
 package com.smppw.utils;
 
 import com.smppw.common.cache.CaffeineLocalCache;
+import com.smppw.common.pojo.IndexesTradeDate;
 import com.smppw.constants.DateConst;
-import com.smppw.common.pojo.IndexesTradeDateDo;
 import com.smppw.common.pojo.dto.DateValue;
 import com.smppw.common.pojo.dto.calc.IndicatorCalcTimeRangeDto;
 import com.smppw.common.pojo.dto.indicator.DateIntervalDto;
@@ -23,20 +23,20 @@ public class DateIntervalUtil {
      * @param endDateStr
      * @param rollingFrequency
      * @param navList
-     * @param indexesTradeDateDoList
+     * @param indexesTradeDateList
      * @return
      */
     public static List<IndicatorCalcTimeRangeDto> getDefualtRollingInterval(String startDateStr, String endDateStr,
-                                                                            Frequency rollingFrequency, List<DateValue> navList, List<IndexesTradeDateDo> indexesTradeDateDoList, String id) {
-        List<DateValue> dateValues = NavUtil.filterDefaultRollingFrequencyNav(navList, indexesTradeDateDoList, rollingFrequency, endDateStr);
+                                                                            Frequency rollingFrequency, List<DateValue> navList, List<IndexesTradeDate> indexesTradeDateList, String id) {
+        List<DateValue> dateValues = NavUtil.filterDefaultRollingFrequencyNav(navList, indexesTradeDateList, rollingFrequency, endDateStr);
 
         if (StringUtils.isEmpty(startDateStr)) {
             return new ArrayList<>();
         }
 
-        Map<Date, IndexesTradeDateDo> tradeDateDoMap = new HashMap<>();
-        for (IndexesTradeDateDo indexesTradeDateDo : indexesTradeDateDoList) {
-            tradeDateDoMap.put(DateUtil.StringToDate(indexesTradeDateDo.getTradeDate(), DateConst.YYYY_MM_DD), indexesTradeDateDo);
+        Map<Date, IndexesTradeDate> tradeDateDoMap = new HashMap<>();
+        for (IndexesTradeDate indexesTradeDate : indexesTradeDateList) {
+            tradeDateDoMap.put(DateUtil.StringToDate(indexesTradeDate.getTradeDate(), DateConst.YYYY_MM_DD), indexesTradeDate);
         }
         List<IndicatorCalcTimeRangeDto> indicatorCalcTimeRangeDtoList = new ArrayList<>();
 
@@ -160,7 +160,7 @@ public class DateIntervalUtil {
         return indicatorCalcTimeRangeDtoList;
     }
 
-    public static List<IndicatorCalcTimeRangeDto> getTimeInterval(List<TimeIntervalDto> timeIntervalDtoList, String minIncept, List<DateValue> validNavList, List<IndexesTradeDateDo> indexesTradeDateDoList) {
+    public static List<IndicatorCalcTimeRangeDto> getTimeInterval(List<TimeIntervalDto> timeIntervalDtoList, String minIncept, List<DateValue> validNavList, List<IndexesTradeDate> indexesTradeDateList) {
         if (timeIntervalDtoList == null || timeIntervalDtoList.size() == 0) {
             return new ArrayList<>();
         }
@@ -185,7 +185,7 @@ public class DateIntervalUtil {
             indicatorCalcTimeRangeDto.setEndDate(timeIntervalDto.getEndDate());
             indicatorCalcTimeRangeDto.setStartDate(timeIntervalDto.getStartDate());
 
-            prepareIndicatorCalcTimeRangeDto(indicatorCalcTimeRangeDto, minIncept, validNavList, indexesTradeDateDoList);
+            prepareIndicatorCalcTimeRangeDto(indicatorCalcTimeRangeDto, minIncept, validNavList, indexesTradeDateList);
 
             indicatorCalcTimeRangeDtoList.add(indicatorCalcTimeRangeDto);
         }
@@ -244,7 +244,7 @@ public class DateIntervalUtil {
         return defaultIndicatorCalcTimeRangeDtoList;
     }
 
-    public static List<IndicatorCalcTimeRangeDto> getIndicatorCalcTimeRangeDto(DateIntervalDto dateIntervalDto, List<DateValue> navList, List<IndexesTradeDateDo> indexesTradeDateDoList, String id) {
+    public static List<IndicatorCalcTimeRangeDto> getIndicatorCalcTimeRangeDto(DateIntervalDto dateIntervalDto, List<DateValue> navList, List<IndexesTradeDate> indexesTradeDateList, String id) {
 
         List<DateValue> validNavList = new ArrayList<>();
         for (DateValue nav : navList) {
@@ -274,7 +274,7 @@ public class DateIntervalUtil {
 
         if (DateIntervalType.DefaultRolling == dateIntervalDto.getDateIntervalType()) {
             List<IndicatorCalcTimeRangeDto> defualtRollingInterval = getDefualtRollingInterval(startDate, endDate,
-                    dateIntervalDto.getFrequency(), validNavList, indexesTradeDateDoList, id);
+                    dateIntervalDto.getFrequency(), validNavList, indexesTradeDateList, id);
             return defualtRollingInterval;
         } else if (DateIntervalType.CustomRolling == dateIntervalDto.getDateIntervalType()) {
             List<IndicatorCalcTimeRangeDto> customRollingInterval = getCustomRollingInterval(startDate, endDate,
@@ -288,7 +288,7 @@ public class DateIntervalUtil {
             timeIntervalDto.setEndDate(endDate);
             timeIntervalDto.setTimeRange(dateIntervalDto.getTimeRange());
             timeIntervalDtoList.add(timeIntervalDto);
-            List<IndicatorCalcTimeRangeDto> customTimeInterval = getTimeInterval(timeIntervalDtoList, minIncept, validNavList, indexesTradeDateDoList);
+            List<IndicatorCalcTimeRangeDto> customTimeInterval = getTimeInterval(timeIntervalDtoList, minIncept, validNavList, indexesTradeDateList);
             return customTimeInterval;
         } else if (DateIntervalType.TrailingInterval == dateIntervalDto.getDateIntervalType()) {
             List<IndicatorCalcTimeRangeDto> trailingInterval = getTrailingInterval(dateIntervalDto.getId(), endDate,
@@ -313,7 +313,7 @@ public class DateIntervalUtil {
     }
 
     private static void prepareIndicatorCalcTimeRangeDto(IndicatorCalcTimeRangeDto indicatorCalcTimeRangeDto, String minIncept, List<DateValue> validNavList
-            , List<IndexesTradeDateDo> indexesTradeDateDoList) {
+            , List<IndexesTradeDate> indexesTradeDateList) {
         TimeRange timeRange = indicatorCalcTimeRangeDto.getTimeRange();
         if (timeRange == TimeRange.Custom) {
             return;
@@ -347,7 +347,7 @@ public class DateIntervalUtil {
                     i = 5;
                 }
             }
-            List<DateValue> dateValues = NavUtil.filterDefaultRollingFrequencyNav(validNavList, indexesTradeDateDoList, frequency, endDate);
+            List<DateValue> dateValues = NavUtil.filterDefaultRollingFrequencyNav(validNavList, indexesTradeDateList, frequency, endDate);
 
             startDate = getRollingStartDate(dateValues, endDate, i);
 

+ 67 - 67
src/main/java/com/smppw/utils/NavUtil.java

@@ -6,7 +6,7 @@ import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.collection.ListUtil;
 import cn.hutool.core.map.MapUtil;
 import com.smppw.common.cache.CaffeineLocalCache;
-import com.smppw.common.pojo.IndexesTradeDateDo;
+import com.smppw.common.pojo.IndexesTradeDate;
 import com.smppw.common.pojo.dto.DateValue;
 import com.smppw.common.pojo.dto.NavDto;
 import com.smppw.common.pojo.dto.calc.IndicatorCalcPropertyDto;
@@ -21,7 +21,7 @@ import java.util.*;
 
 public class NavUtil {
 
-    public static List<DateValue> filterFrequencyNav(List<DateValue> mainSecNavList, List<IndexesTradeDateDo> indexesTradeDateDoList, Frequency frequency) {
+    public static List<DateValue> filterFrequencyNav(List<DateValue> mainSecNavList, List<IndexesTradeDate> indexesTradeDateList, Frequency frequency) {
         Map<String, DateValue> mainSecNavMap = new HashMap<>();
         if (mainSecNavList == null || mainSecNavList.size() == 0) {
             return new ArrayList<>();
@@ -35,8 +35,8 @@ public class NavUtil {
         if (Frequency.Daily == frequency) {
             validMainSecNavList = new ArrayList<>();
             List<String> dailyTradeDateList = new ArrayList<>();
-            for (IndexesTradeDateDo indexesTradeDateDo : indexesTradeDateDoList) {
-                dailyTradeDateList.add(indexesTradeDateDo.getTradeDate());
+            for (IndexesTradeDate indexesTradeDate : indexesTradeDateList) {
+                dailyTradeDateList.add(indexesTradeDate.getTradeDate());
             }
             for (String dailyTradeDate : dailyTradeDateList) {
                 if (mainSecNavMap.containsKey(dailyTradeDate)) {
@@ -48,13 +48,13 @@ public class NavUtil {
                 }
             }
         } else if (Frequency.Weekly == frequency) {
-            validMainSecNavList = filterWeeklyFrequencyNav(indexesTradeDateDoList, mainSecNavMap);
+            validMainSecNavList = filterWeeklyFrequencyNav(indexesTradeDateList, mainSecNavMap);
         } else if (Frequency.Monthly == frequency) {
-            validMainSecNavList = filterMonthlyFrequencyNav(mainSecNavList, indexesTradeDateDoList, mainSecNavMap, frequency);
+            validMainSecNavList = filterMonthlyFrequencyNav(mainSecNavList, indexesTradeDateList, mainSecNavMap, frequency);
         } else if (Frequency.Quarterly == frequency) {
-            validMainSecNavList = filterMonthlyFrequencyNav(mainSecNavList, indexesTradeDateDoList, mainSecNavMap, frequency);
+            validMainSecNavList = filterMonthlyFrequencyNav(mainSecNavList, indexesTradeDateList, mainSecNavMap, frequency);
         } else if (Frequency.Annually == frequency) {
-            validMainSecNavList = filterMonthlyFrequencyNav(mainSecNavList, indexesTradeDateDoList, mainSecNavMap, frequency);
+            validMainSecNavList = filterMonthlyFrequencyNav(mainSecNavList, indexesTradeDateList, mainSecNavMap, frequency);
         }
 
         Collections.sort(validMainSecNavList, new Comparator<DateValue>() {
@@ -67,31 +67,31 @@ public class NavUtil {
         return validMainSecNavList;
     }
 
-    private static List<DateValue> filterWeeklyFrequencyNav(List<IndexesTradeDateDo> indexesTradeDateDoList, Map<String, DateValue> mainSecNavMap) {
+    private static List<DateValue> filterWeeklyFrequencyNav(List<IndexesTradeDate> indexesTradeDateList, Map<String, DateValue> mainSecNavMap) {
         List<DateValue> validMainSecNavList = new ArrayList<>();
         List<String> yearWeekList = new ArrayList<>();
 
-        Map<String, List<IndexesTradeDateDo>> yearWeekIndexesTradeDateDoListMap = new HashMap<>();
-        for (IndexesTradeDateDo indexesTradeDateDo : indexesTradeDateDoList) {
-            if (!yearWeekList.contains(indexesTradeDateDo.getYearWeek())) {
-                yearWeekList.add(indexesTradeDateDo.getYearWeek());
+        Map<String, List<IndexesTradeDate>> yearWeekIndexesTradeDateDoListMap = new HashMap<>();
+        for (IndexesTradeDate indexesTradeDate : indexesTradeDateList) {
+            if (!yearWeekList.contains(indexesTradeDate.getYearWeek())) {
+                yearWeekList.add(indexesTradeDate.getYearWeek());
             }
-            if (yearWeekIndexesTradeDateDoListMap.containsKey(indexesTradeDateDo.getYearWeek())) {
-                List<IndexesTradeDateDo> yearWeekIndexesTradeDateDoList = yearWeekIndexesTradeDateDoListMap.get(indexesTradeDateDo.getYearWeek());
-                yearWeekIndexesTradeDateDoList.add(indexesTradeDateDo);
+            if (yearWeekIndexesTradeDateDoListMap.containsKey(indexesTradeDate.getYearWeek())) {
+                List<IndexesTradeDate> yearWeekIndexesTradeDateList = yearWeekIndexesTradeDateDoListMap.get(indexesTradeDate.getYearWeek());
+                yearWeekIndexesTradeDateList.add(indexesTradeDate);
             } else {
-                List<IndexesTradeDateDo> yearWeekIndexesTradeDateDoList = new ArrayList<>();
-                yearWeekIndexesTradeDateDoList.add(indexesTradeDateDo);
-                yearWeekIndexesTradeDateDoListMap.put(indexesTradeDateDo.getYearWeek(), yearWeekIndexesTradeDateDoList);
+                List<IndexesTradeDate> yearWeekIndexesTradeDateList = new ArrayList<>();
+                yearWeekIndexesTradeDateList.add(indexesTradeDate);
+                yearWeekIndexesTradeDateDoListMap.put(indexesTradeDate.getYearWeek(), yearWeekIndexesTradeDateList);
             }
         }
 
         for (String yearWeek : yearWeekList) {
-            List<IndexesTradeDateDo> yearWeekIndexesTradeDateDoList = yearWeekIndexesTradeDateDoListMap.get(yearWeek);
+            List<IndexesTradeDate> yearWeekIndexesTradeDateList = yearWeekIndexesTradeDateDoListMap.get(yearWeek);
             DateValue weekDateValue = null;
-            for (int i = yearWeekIndexesTradeDateDoList.size() - 1; i >= 0; i--) {
-                IndexesTradeDateDo indexesTradeDateDo = yearWeekIndexesTradeDateDoList.get(i);
-                DateValue dv = mainSecNavMap.get(indexesTradeDateDo.getTradeDate());
+            for (int i = yearWeekIndexesTradeDateList.size() - 1; i >= 0; i--) {
+                IndexesTradeDate indexesTradeDate = yearWeekIndexesTradeDateList.get(i);
+                DateValue dv = mainSecNavMap.get(indexesTradeDate.getTradeDate());
                 if (dv != null) {
                     if (weekDateValue == null) {
                         weekDateValue = new DateValue();
@@ -112,22 +112,22 @@ public class NavUtil {
         return validMainSecNavList;
     }
 
-    private static List<DateValue> filterMonthlyFrequencyNav(List<DateValue> mainSecNavList, List<IndexesTradeDateDo> indexesTradeDateDoList, Map<String, DateValue> mainSecNavMap,
+    private static List<DateValue> filterMonthlyFrequencyNav(List<DateValue> mainSecNavList, List<IndexesTradeDate> indexesTradeDateList, Map<String, DateValue> mainSecNavMap,
                                                              Frequency frequency) {
         List<DateValue> validMainSecNavList = new ArrayList<>();
         List<String> yearMonthList = new ArrayList<>();
         Map<String, List<String>> yearMonthTradeDateListMap = new HashMap<>();
-        for (IndexesTradeDateDo indexesTradeDateDo : indexesTradeDateDoList) {
-            if (!yearMonthList.contains(indexesTradeDateDo.getYearmonth())) {
-                yearMonthList.add(indexesTradeDateDo.getYearmonth());
+        for (IndexesTradeDate indexesTradeDate : indexesTradeDateList) {
+            if (!yearMonthList.contains(indexesTradeDate.getYearmonth())) {
+                yearMonthList.add(indexesTradeDate.getYearmonth());
             }
-            if (yearMonthTradeDateListMap.containsKey(indexesTradeDateDo.getYearmonth())) {
-                List<String> yearMonthTradeDateList = yearMonthTradeDateListMap.get(indexesTradeDateDo.getYearmonth());
-                yearMonthTradeDateList.add(indexesTradeDateDo.getTradeDate());
+            if (yearMonthTradeDateListMap.containsKey(indexesTradeDate.getYearmonth())) {
+                List<String> yearMonthTradeDateList = yearMonthTradeDateListMap.get(indexesTradeDate.getYearmonth());
+                yearMonthTradeDateList.add(indexesTradeDate.getTradeDate());
             } else {
                 List<String> yearMonthTradeDateList = new ArrayList<>();
-                yearMonthTradeDateList.add(indexesTradeDateDo.getTradeDate());
-                yearMonthTradeDateListMap.put(indexesTradeDateDo.getYearmonth(), yearMonthTradeDateList);
+                yearMonthTradeDateList.add(indexesTradeDate.getTradeDate());
+                yearMonthTradeDateListMap.put(indexesTradeDate.getYearmonth(), yearMonthTradeDateList);
             }
         }
         String lastMonth = mainSecNavList.get(mainSecNavList.size() - 1).getDate().substring(0, 7);
@@ -247,7 +247,7 @@ public class NavUtil {
         return validMainSecNavList;
     }
 
-    public static List<DateValue> filterDefaultRollingFrequencyNav(List<DateValue> mainSecNavList, List<IndexesTradeDateDo> indexesTradeDateDoList, Frequency frequency,
+    public static List<DateValue> filterDefaultRollingFrequencyNav(List<DateValue> mainSecNavList, List<IndexesTradeDate> indexesTradeDateList, Frequency frequency,
                                                                    String endDateStr) {
         Map<String, DateValue> mainSecNavMap = new HashMap<>();
         if (mainSecNavList == null || mainSecNavList.size() == 0) {
@@ -262,8 +262,8 @@ public class NavUtil {
         if (Frequency.Daily == frequency) {
             validMainSecNavList = new ArrayList<>();
             List<String> dailyTradeDateList = new ArrayList<>();
-            for (IndexesTradeDateDo indexesTradeDateDo : indexesTradeDateDoList) {
-                dailyTradeDateList.add(indexesTradeDateDo.getTradeDate());
+            for (IndexesTradeDate indexesTradeDate : indexesTradeDateList) {
+                dailyTradeDateList.add(indexesTradeDate.getTradeDate());
             }
             for (String dailyTradeDate : dailyTradeDateList) {
                 if (mainSecNavMap.containsKey(dailyTradeDate)) {
@@ -275,13 +275,13 @@ public class NavUtil {
                 }
             }
         } else if (Frequency.Weekly == frequency) {
-            validMainSecNavList = filterWeeklyFrequencyNavFillNullWeek(indexesTradeDateDoList, mainSecNavMap);
+            validMainSecNavList = filterWeeklyFrequencyNavFillNullWeek(indexesTradeDateList, mainSecNavMap);
         } else if (Frequency.Monthly == frequency) {
-            validMainSecNavList = filterMonthlyFrequencyNavFillNullMonth(indexesTradeDateDoList, mainSecNavMap, frequency, endDateStr);
+            validMainSecNavList = filterMonthlyFrequencyNavFillNullMonth(indexesTradeDateList, mainSecNavMap, frequency, endDateStr);
         } else if (Frequency.Quarterly == frequency) {
-            validMainSecNavList = filterMonthlyFrequencyNavFillNullMonth(indexesTradeDateDoList, mainSecNavMap, frequency, endDateStr);
+            validMainSecNavList = filterMonthlyFrequencyNavFillNullMonth(indexesTradeDateList, mainSecNavMap, frequency, endDateStr);
         } else if (Frequency.Annually == frequency) {
-            validMainSecNavList = filterMonthlyFrequencyNavFillNullMonth(indexesTradeDateDoList, mainSecNavMap, frequency, endDateStr);
+            validMainSecNavList = filterMonthlyFrequencyNavFillNullMonth(indexesTradeDateList, mainSecNavMap, frequency, endDateStr);
         }
 
         Collections.sort(validMainSecNavList, (o1, o2) -> o1.getDate().compareTo(o2.getDate()));
@@ -289,22 +289,22 @@ public class NavUtil {
         return validMainSecNavList;
     }
 
-    private static List<DateValue> filterMonthlyFrequencyNavFillNullMonth(List<IndexesTradeDateDo> indexesTradeDateDoList, Map<String, DateValue> mainSecNavMap,
+    private static List<DateValue> filterMonthlyFrequencyNavFillNullMonth(List<IndexesTradeDate> indexesTradeDateList, Map<String, DateValue> mainSecNavMap,
                                                                           Frequency frequency, String endDateStr) {
         List<DateValue> validMainSecNavList = new ArrayList<>();
         List<String> yearMonthList = new ArrayList<>();
         Map<String, List<String>> yearMonthTradeDateListMap = new HashMap<>();
-        for (IndexesTradeDateDo indexesTradeDateDo : indexesTradeDateDoList) {
-            if (!yearMonthList.contains(indexesTradeDateDo.getYearmonth())) {
-                yearMonthList.add(indexesTradeDateDo.getYearmonth());
+        for (IndexesTradeDate indexesTradeDate : indexesTradeDateList) {
+            if (!yearMonthList.contains(indexesTradeDate.getYearmonth())) {
+                yearMonthList.add(indexesTradeDate.getYearmonth());
             }
-            if (yearMonthTradeDateListMap.containsKey(indexesTradeDateDo.getYearmonth())) {
-                List<String> yearMonthTradeDateList = yearMonthTradeDateListMap.get(indexesTradeDateDo.getYearmonth());
-                yearMonthTradeDateList.add(indexesTradeDateDo.getTradeDate());
+            if (yearMonthTradeDateListMap.containsKey(indexesTradeDate.getYearmonth())) {
+                List<String> yearMonthTradeDateList = yearMonthTradeDateListMap.get(indexesTradeDate.getYearmonth());
+                yearMonthTradeDateList.add(indexesTradeDate.getTradeDate());
             } else {
                 List<String> yearMonthTradeDateList = new ArrayList<>();
-                yearMonthTradeDateList.add(indexesTradeDateDo.getTradeDate());
-                yearMonthTradeDateListMap.put(indexesTradeDateDo.getYearmonth(), yearMonthTradeDateList);
+                yearMonthTradeDateList.add(indexesTradeDate.getTradeDate());
+                yearMonthTradeDateListMap.put(indexesTradeDate.getYearmonth(), yearMonthTradeDateList);
             }
         }
 
@@ -422,32 +422,32 @@ public class NavUtil {
         return validMainSecNavList;
     }
 
-    private static List<DateValue> filterWeeklyFrequencyNavFillNullWeek(List<IndexesTradeDateDo> indexesTradeDateDoList, Map<String, DateValue> mainSecNavMap) {
+    private static List<DateValue> filterWeeklyFrequencyNavFillNullWeek(List<IndexesTradeDate> indexesTradeDateList, Map<String, DateValue> mainSecNavMap) {
         List<DateValue> validMainSecNavList = new ArrayList<>();
         List<String> yearWeekList = new ArrayList<>();
 
-        Map<String, List<IndexesTradeDateDo>> yearWeekIndexesTradeDateDoListMap = new HashMap<>();
-        for (IndexesTradeDateDo indexesTradeDateDo : indexesTradeDateDoList) {
-            if (!yearWeekList.contains(indexesTradeDateDo.getYearWeek())) {
-                yearWeekList.add(indexesTradeDateDo.getYearWeek());
+        Map<String, List<IndexesTradeDate>> yearWeekIndexesTradeDateDoListMap = new HashMap<>();
+        for (IndexesTradeDate indexesTradeDate : indexesTradeDateList) {
+            if (!yearWeekList.contains(indexesTradeDate.getYearWeek())) {
+                yearWeekList.add(indexesTradeDate.getYearWeek());
             }
-            if (yearWeekIndexesTradeDateDoListMap.containsKey(indexesTradeDateDo.getYearWeek())) {
-                List<IndexesTradeDateDo> yearWeekIndexesTradeDateDoList = yearWeekIndexesTradeDateDoListMap.get(indexesTradeDateDo.getYearWeek());
-                yearWeekIndexesTradeDateDoList.add(indexesTradeDateDo);
+            if (yearWeekIndexesTradeDateDoListMap.containsKey(indexesTradeDate.getYearWeek())) {
+                List<IndexesTradeDate> yearWeekIndexesTradeDateList = yearWeekIndexesTradeDateDoListMap.get(indexesTradeDate.getYearWeek());
+                yearWeekIndexesTradeDateList.add(indexesTradeDate);
             } else {
-                List<IndexesTradeDateDo> yearWeekIndexesTradeDateDoList = new ArrayList<>();
-                yearWeekIndexesTradeDateDoList.add(indexesTradeDateDo);
-                yearWeekIndexesTradeDateDoListMap.put(indexesTradeDateDo.getYearWeek(), yearWeekIndexesTradeDateDoList);
+                List<IndexesTradeDate> yearWeekIndexesTradeDateList = new ArrayList<>();
+                yearWeekIndexesTradeDateList.add(indexesTradeDate);
+                yearWeekIndexesTradeDateDoListMap.put(indexesTradeDate.getYearWeek(), yearWeekIndexesTradeDateList);
             }
         }
 
         for (String yearWeek : yearWeekList) {
-            List<IndexesTradeDateDo> yearWeekIndexesTradeDateDoList = yearWeekIndexesTradeDateDoListMap.get(yearWeek);
+            List<IndexesTradeDate> yearWeekIndexesTradeDateList = yearWeekIndexesTradeDateDoListMap.get(yearWeek);
             String lastTradeDate = null;
-            for (int i = yearWeekIndexesTradeDateDoList.size() - 1; i >= 0; i--) {
-                IndexesTradeDateDo indexesTradeDateDo = yearWeekIndexesTradeDateDoList.get(i);
-                if (indexesTradeDateDo.getIsholiday().compareTo(0) == 0) {
-                    lastTradeDate = indexesTradeDateDo.getTradeDate();
+            for (int i = yearWeekIndexesTradeDateList.size() - 1; i >= 0; i--) {
+                IndexesTradeDate indexesTradeDate = yearWeekIndexesTradeDateList.get(i);
+                if (indexesTradeDate.getIsholiday().compareTo(0) == 0) {
+                    lastTradeDate = indexesTradeDate.getTradeDate();
                     break;
                 }
             }
@@ -455,9 +455,9 @@ public class NavUtil {
                 continue;
             }
             DateValue weekDateValue = null;
-            for (int i = yearWeekIndexesTradeDateDoList.size() - 1; i >= 0; i--) {
-                IndexesTradeDateDo indexesTradeDateDo = yearWeekIndexesTradeDateDoList.get(i);
-                DateValue dv = mainSecNavMap.get(indexesTradeDateDo.getTradeDate());
+            for (int i = yearWeekIndexesTradeDateList.size() - 1; i >= 0; i--) {
+                IndexesTradeDate indexesTradeDate = yearWeekIndexesTradeDateList.get(i);
+                DateValue dv = mainSecNavMap.get(indexesTradeDate.getTradeDate());
                 if (dv != null) {
                     weekDateValue = new DateValue();
                     weekDateValue.setValue(dv.getValue());

+ 42 - 42
src/main/java/com/smppw/utils/TradeDateUtil.java

@@ -1,7 +1,7 @@
 package com.smppw.utils;
 
 import com.smppw.common.cache.CaffeineLocalCache;
-import com.smppw.common.pojo.IndexesTradeDateDo;
+import com.smppw.common.pojo.IndexesTradeDate;
 import com.smppw.common.pojo.enums.TimeRange;
 import com.smppw.common.timerange.TimeRangeFactory;
 import org.apache.commons.lang3.StringUtils;
@@ -124,19 +124,19 @@ public class TradeDateUtil {
      * @param endDate
      * @return
      */
-    public static List<IndexesTradeDateDo> listInfoByDateInterval(String startDate, String endDate) {
+    public static List<IndexesTradeDate> listInfoByDateInterval(String startDate, String endDate) {
 
         if (StringUtils.isEmpty(startDate) || StringUtils.isEmpty(endDate)) {
             return new ArrayList<>();
         }
         //获取到缓存的交易日
-        List<IndexesTradeDateDo> listInfoTrendDateList = CaffeineLocalCache.getListInfoTrendDate();
+        List<IndexesTradeDate> listInfoTrendDateList = CaffeineLocalCache.getListInfoTrendDate();
 
-        IndexesTradeDateDo firstIndexesTradeDateDo = listInfoTrendDateList.get(0);
-        IndexesTradeDateDo lastIndexesTradeDateDo = listInfoTrendDateList.get(listInfoTrendDateList.size() - 1);
+        IndexesTradeDate firstIndexesTradeDate = listInfoTrendDateList.get(0);
+        IndexesTradeDate lastIndexesTradeDate = listInfoTrendDateList.get(listInfoTrendDateList.size() - 1);
 
-        String firstDate = firstIndexesTradeDateDo.getTradeDate();
-        String lastDate = lastIndexesTradeDateDo.getTradeDate();
+        String firstDate = firstIndexesTradeDate.getTradeDate();
+        String lastDate = lastIndexesTradeDate.getTradeDate();
 
         if (startDate.compareTo(firstDate) < 0) {
             startDate = firstDate;
@@ -158,9 +158,9 @@ public class TradeDateUtil {
 
     public static List<String> listTradeDaysByDateInterval(String startDate, String endDate) {
 
-        List<IndexesTradeDateDo> indexesTradeDateDos = listInfoByDateInterval(startDate, endDate);
+        List<IndexesTradeDate> indexesTradeDates = listInfoByDateInterval(startDate, endDate);
         List<String> tradeDays = new ArrayList<>();
-        for (IndexesTradeDateDo dateDo : indexesTradeDateDos) {
+        for (IndexesTradeDate dateDo : indexesTradeDates) {
             if (dateDo != null && dateDo.getIsholiday() == 0) {
                 tradeDays.add(dateDo.getTradeDate());
             }
@@ -170,20 +170,20 @@ public class TradeDateUtil {
     }
 
     /**
-     * @param indexesTradeDateDoList 从小到大的日期序列
+     * @param indexesTradeDateList 从小到大的日期序列
      * @param date                   日期
      * @return 小于等于 date 的 日期最大的 日期
      */
-    public static Integer getMostLeftLess(List<IndexesTradeDateDo> indexesTradeDateDoList, String date) {
-        if (indexesTradeDateDoList == null || indexesTradeDateDoList.size() == 0) {
+    public static Integer getMostLeftLess(List<IndexesTradeDate> indexesTradeDateList, String date) {
+        if (indexesTradeDateList == null || indexesTradeDateList.size() == 0) {
             return -1;
         }
         int L = 0;
-        int R = indexesTradeDateDoList.size() - 1;
+        int R = indexesTradeDateList.size() - 1;
         int ans = -1;
         while (L <= R) {
             int mid = (L + R) / 2;
-            if (indexesTradeDateDoList.get(mid) != null && indexesTradeDateDoList.get(mid).getTradeDate().compareTo(date) <= 0) {
+            if (indexesTradeDateList.get(mid) != null && indexesTradeDateList.get(mid).getTradeDate().compareTo(date) <= 0) {
                 ans = mid;
                 L = mid + 1;
             } else {
@@ -194,22 +194,22 @@ public class TradeDateUtil {
     }
 
     /**
-     * @param indexesTradeDateDoList 从小到大的日期序列
+     * @param indexesTradeDateList 从小到大的日期序列
      * @param date                   日期
      * @return 大于等于 date 的 日期最小的 日期
      */
-    public static Integer getMostRightThan(List<IndexesTradeDateDo> indexesTradeDateDoList, String date) {
-        if (indexesTradeDateDoList == null || Objects.requireNonNull(indexesTradeDateDoList).size() == 0) {
+    public static Integer getMostRightThan(List<IndexesTradeDate> indexesTradeDateList, String date) {
+        if (indexesTradeDateList == null || Objects.requireNonNull(indexesTradeDateList).size() == 0) {
             return -1;
-        } else if (indexesTradeDateDoList.get(indexesTradeDateDoList.size() - 1).getTradeDate().compareTo(date) < 0) {
-            return indexesTradeDateDoList.size() - 1;
+        } else if (indexesTradeDateList.get(indexesTradeDateList.size() - 1).getTradeDate().compareTo(date) < 0) {
+            return indexesTradeDateList.size() - 1;
         }
         int low = 0;
-        int high = indexesTradeDateDoList.size() - 1;
+        int high = indexesTradeDateList.size() - 1;
         while (low < high) {
             //防止溢出
             int mid = low + (high - low) / 2;
-            if (indexesTradeDateDoList.get(mid).getTradeDate().compareTo(date) < 0) {
+            if (indexesTradeDateList.get(mid).getTradeDate().compareTo(date) < 0) {
                 low = mid + 1;
             } else {
                 high = mid;
@@ -219,37 +219,37 @@ public class TradeDateUtil {
     }
 
     public static List<String> getEveryWeekLastTradeDay(String startDate, String endDate) {
-        List<IndexesTradeDateDo> indexesTradeDateDoList = listInfoByDateInterval(startDate, endDate);
+        List<IndexesTradeDate> indexesTradeDateList = listInfoByDateInterval(startDate, endDate);
 
-        if (indexesTradeDateDoList == null || indexesTradeDateDoList.size() == 0) {
+        if (indexesTradeDateList == null || indexesTradeDateList.size() == 0) {
             return new ArrayList<>();
         }
 
         List<String> yearWeekList = new ArrayList<>();
 
-        Map<String, List<IndexesTradeDateDo>> yearWeekIndexesTradeDateDoListMap = new HashMap<>();
-        for (IndexesTradeDateDo indexesTradeDateDo : indexesTradeDateDoList) {
-            if (!yearWeekList.contains(indexesTradeDateDo.getYearWeek())) {
-                yearWeekList.add(indexesTradeDateDo.getYearWeek());
+        Map<String, List<IndexesTradeDate>> yearWeekIndexesTradeDateDoListMap = new HashMap<>();
+        for (IndexesTradeDate indexesTradeDate : indexesTradeDateList) {
+            if (!yearWeekList.contains(indexesTradeDate.getYearWeek())) {
+                yearWeekList.add(indexesTradeDate.getYearWeek());
             }
-            if (yearWeekIndexesTradeDateDoListMap.containsKey(indexesTradeDateDo.getYearWeek())) {
-                List<IndexesTradeDateDo> yearWeekIndexesTradeDateDoList = yearWeekIndexesTradeDateDoListMap.get(indexesTradeDateDo.getYearWeek());
-                yearWeekIndexesTradeDateDoList.add(indexesTradeDateDo);
+            if (yearWeekIndexesTradeDateDoListMap.containsKey(indexesTradeDate.getYearWeek())) {
+                List<IndexesTradeDate> yearWeekIndexesTradeDateList = yearWeekIndexesTradeDateDoListMap.get(indexesTradeDate.getYearWeek());
+                yearWeekIndexesTradeDateList.add(indexesTradeDate);
             } else {
-                List<IndexesTradeDateDo> yearWeekIndexesTradeDateDoList = new ArrayList<>();
-                yearWeekIndexesTradeDateDoList.add(indexesTradeDateDo);
-                yearWeekIndexesTradeDateDoListMap.put(indexesTradeDateDo.getYearWeek(), yearWeekIndexesTradeDateDoList);
+                List<IndexesTradeDate> yearWeekIndexesTradeDateList = new ArrayList<>();
+                yearWeekIndexesTradeDateList.add(indexesTradeDate);
+                yearWeekIndexesTradeDateDoListMap.put(indexesTradeDate.getYearWeek(), yearWeekIndexesTradeDateList);
             }
         }
 
         List<String> everyWeekLastTradeList = new ArrayList<>();
         for (String yearWeek : yearWeekList) {
-            List<IndexesTradeDateDo> yearWeekIndexesTradeDateDoList = yearWeekIndexesTradeDateDoListMap.get(yearWeek);
+            List<IndexesTradeDate> yearWeekIndexesTradeDateList = yearWeekIndexesTradeDateDoListMap.get(yearWeek);
             String lastTradeDate = null;
-            for (int i = yearWeekIndexesTradeDateDoList.size() - 1; i >= 0; i--) {
-                IndexesTradeDateDo indexesTradeDateDo = yearWeekIndexesTradeDateDoList.get(i);
-                if (indexesTradeDateDo.getIsholiday().compareTo(0) == 0) {
-                    lastTradeDate = indexesTradeDateDo.getTradeDate();
+            for (int i = yearWeekIndexesTradeDateList.size() - 1; i >= 0; i--) {
+                IndexesTradeDate indexesTradeDate = yearWeekIndexesTradeDateList.get(i);
+                if (indexesTradeDate.getIsholiday().compareTo(0) == 0) {
+                    lastTradeDate = indexesTradeDate.getTradeDate();
                     break;
                 }
             }
@@ -262,10 +262,10 @@ public class TradeDateUtil {
     public static String getPreWeekTradeDay(String date, int preNum) {
         String startDate = TimeRangeFactory.getInstance().get(TimeRange.Last1Month).generateStartDate(date, TimeRange.Last1Month);
         //获取到缓存的交易日
-        List<IndexesTradeDateDo> listInfoTrendDateList = listInfoByDateInterval(startDate, date);
+        List<IndexesTradeDate> listInfoTrendDateList = listInfoByDateInterval(startDate, date);
 
         List<String> weekList = new ArrayList<>();
-        for (IndexesTradeDateDo listInfoTrendDate : listInfoTrendDateList) {
+        for (IndexesTradeDate listInfoTrendDate : listInfoTrendDateList) {
             String tradeDate = listInfoTrendDate.getTradeDate();
             String yearWeek = CaffeineLocalCache.getYearWeekByDate(tradeDate);
             if (!weekList.contains(yearWeek)) {
@@ -293,10 +293,10 @@ public class TradeDateUtil {
     public static String getPreWeekTradeDayWithoutDerived(String date, int preNum) {
         String startDate = TimeRangeFactory.getInstance().get(TimeRange.Last1Month).generateStartDate(date, TimeRange.Last1Month);
         //获取到缓存的交易日
-        List<IndexesTradeDateDo> listInfoTrendDateList = listInfoByDateInterval(startDate, date);
+        List<IndexesTradeDate> listInfoTrendDateList = listInfoByDateInterval(startDate, date);
 
         List<String> weekList = new ArrayList<>();
-        for (IndexesTradeDateDo listInfoTrendDate : listInfoTrendDateList) {
+        for (IndexesTradeDate listInfoTrendDate : listInfoTrendDateList) {
             String tradeDate = listInfoTrendDate.getTradeDate();
             String yearWeek = CaffeineLocalCache.getYearWeekByDate(tradeDate);
             if (!weekList.contains(yearWeek)) {