Parcourir la source

fix: 净值日期规则校验:净值日期不能大于当前日期,净值日期不能早于基金成立日,净值日期不能晚于基金清算日期,非成立日净值日期不能是周末

chenjianhua il y a 4 mois
Parent
commit
bb2166f70a

+ 19 - 19
service-daq/src/main/java/com/simuwang/daq/service/EmailParseService.java

@@ -511,30 +511,30 @@ public class EmailParseService {
             }
             //因为要做振幅检测,所以不能使用批量插入的方式
             for(NavDO insertDO : navDOS){
+                //针对净值日期做校验,净值日期不能早于基金成立日,净值日期不能晚于基金清算日期,非成立日净值日期不能是周末
+                Date priceDate = insertDO.getPriceDate();
+                FundInfoDO fundInfoDO = fundInfoMapper.searchFundDetail(insertDO.getFundId());
+                String inceptionDate = fundInfoDO.getInceptionDate();
+                if(inceptionDate != null && DateUtils.parse(inceptionDate,DateUtils.YYYY_MM_DD).after(priceDate)){
+                    saveEmailFundNav(insertDO,fileId,NavParseStatusConst.PRICE_DATE_BEFORE_INCEPTION,0);
+                    continue;
+                }
+                String liquidateDate = fundInfoDO.getLiquidateDate();
+                if(liquidateDate != null && DateUtils.parse(liquidateDate,DateUtils.YYYY_MM_DD).before(priceDate)){
+                    saveEmailFundNav(insertDO,fileId,NavParseStatusConst.PRICE_DATE_AFTER_LIQUIDATE,0);
+                    continue;
+                }
+                //周日算每周第一天,非成立日净值日期不能是周末
+                Integer dayOfWeek = DateUtil.dayOfWeek(priceDate);
+                if((dayOfWeek == 1 || dayOfWeek==7) && !priceDate.equals(inceptionDate)){
+                    saveEmailFundNav(insertDO,fileId,NavParseStatusConst.PRICE_DATE_NOT_WORK_DAY,0);
+                    continue;
+                }
                BigDecimal  amplitude = amplitudeNav(insertDO);
                if(amplitude.compareTo(BigDecimal.valueOf(1)) >= 0){
                    //振幅超过100%不可以入库,要给出提示信息
                    saveEmailFundNav(insertDO,fileId,NavParseStatusConst.AMPLITUDE_ERROR,0);
                }else{
-                   //针对净值日期做校验,净值日期不能早于基金成立日,净值日期不能晚于基金清算日期,非成立日净值日期不能是周末
-                   Date priceDate = insertDO.getPriceDate();
-                   FundInfoDO fundInfoDO = fundInfoMapper.searchFundDetail(insertDO.getFundId());
-                   String inceptionDate = fundInfoDO.getInceptionDate();
-                   if(inceptionDate != null && DateUtils.parse(inceptionDate,DateUtils.YYYY_MM_DD).after(priceDate)){
-                       saveEmailFundNav(insertDO,fileId,NavParseStatusConst.PRICE_DATE_BEFORE_INCEPTION,0);
-                       continue;
-                   }
-                   String liquidateDate = fundInfoDO.getLiquidateDate();
-                   if(liquidateDate != null && DateUtils.parse(liquidateDate,DateUtils.YYYY_MM_DD).before(priceDate)){
-                       saveEmailFundNav(insertDO,fileId,NavParseStatusConst.PRICE_DATE_AFTER_LIQUIDATE,0);
-                       continue;
-                   }
-                   //周日算每周第一天,非成立日净值日期不能是周末
-                   Integer dayOfWeek = DateUtil.dayOfWeek(priceDate);
-                   if((dayOfWeek == 1 || dayOfWeek==7) && !priceDate.equals(inceptionDate)){
-                       saveEmailFundNav(insertDO,fileId,NavParseStatusConst.PRICE_DATE_NOT_WORK_DAY,0);
-                       continue;
-                   }
                    //振幅超过20%可以入库,但要给出提示信息
                    if(amplitude.compareTo(BigDecimal.valueOf(0.2)) >= 0){
                        saveEmailFundNav(insertDO,fileId,NavParseStatusConst.AMPLITUDE_EXCEPTION,1);