|
@@ -511,30 +511,30 @@ public class EmailParseService {
|
|
}
|
|
}
|
|
//因为要做振幅检测,所以不能使用批量插入的方式
|
|
//因为要做振幅检测,所以不能使用批量插入的方式
|
|
for(NavDO insertDO : navDOS){
|
|
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);
|
|
BigDecimal amplitude = amplitudeNav(insertDO);
|
|
if(amplitude.compareTo(BigDecimal.valueOf(1)) >= 0){
|
|
if(amplitude.compareTo(BigDecimal.valueOf(1)) >= 0){
|
|
//振幅超过100%不可以入库,要给出提示信息
|
|
//振幅超过100%不可以入库,要给出提示信息
|
|
saveEmailFundNav(insertDO,fileId,NavParseStatusConst.AMPLITUDE_ERROR,0);
|
|
saveEmailFundNav(insertDO,fileId,NavParseStatusConst.AMPLITUDE_ERROR,0);
|
|
}else{
|
|
}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%可以入库,但要给出提示信息
|
|
//振幅超过20%可以入库,但要给出提示信息
|
|
if(amplitude.compareTo(BigDecimal.valueOf(0.2)) >= 0){
|
|
if(amplitude.compareTo(BigDecimal.valueOf(0.2)) >= 0){
|
|
saveEmailFundNav(insertDO,fileId,NavParseStatusConst.AMPLITUDE_EXCEPTION,1);
|
|
saveEmailFundNav(insertDO,fileId,NavParseStatusConst.AMPLITUDE_EXCEPTION,1);
|