Bladeren bron

fix:针对净值日期错误,规模单发问题处理

chenjianhua 1 maand geleden
bovenliggende
commit
5a36359df5

+ 11 - 0
service-base/src/main/java/com/simuwang/base/common/util/NavDataUtil.java

@@ -1,10 +1,13 @@
 package com.simuwang.base.common.util;
 
+import cn.hutool.core.date.DatePattern;
 import cn.hutool.core.util.StrUtil;
 import com.simuwang.base.pojo.dto.EmailFundNavDTO;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import java.util.Date;
+
 public class NavDataUtil {
 
     private static final Logger log = LoggerFactory.getLogger(NavDataUtil.class);
@@ -45,6 +48,14 @@ public class NavDataUtil {
         if (StrUtil.isBlank(fundNavDTO.getPriceDate())) {
             return "缺少净值日期";
         }
+        String priceDate = fundNavDTO.getPriceDate();
+        try{
+            if(DateUtils.parse(priceDate, DateUtils.YYYY_MM_DD).after(DateUtils.getNowDate())){
+                return "净值日期不合法";
+            }
+        }catch (Exception e){
+
+        }
         if (StrUtil.isBlank(fundNavDTO.getFundName()) && StrUtil.isBlank(fundNavDTO.getRegisterNumber())) {
             return "基金名称和备案编码均缺失";
         }

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

@@ -650,6 +650,9 @@ public class EmailParseService {
                 && !fundNavDTO.getParseStatus().equals(NavParseStatusConst.NOT_MATCH) && !fundNavDTO.getParseStatus().equals(NavParseStatusConst.NAV_NEGATIVE) ? 1 : 0;
         if (CollUtil.isNotEmpty(fundNavDTO.getFundIdList())) {
             for (String fundId : fundNavDTO.getFundIdList()) {
+                if(nav == null && cumulativeNavWithdrawal == null){
+                    continue;
+                }
                 EmailFundNavDO emailFundNavDO = new EmailFundNavDO();
                 emailFundNavDO.setFileId(fileId);
                 emailFundNavDO.setIsStored(isStored);
@@ -669,6 +672,9 @@ public class EmailParseService {
                 fundNavDOList.add(emailFundNavDO);
             }
         } else {
+            if(nav == null && cumulativeNavWithdrawal == null){
+                return fundNavDOList;
+            }
             EmailFundNavDO emailFundNavDO = new EmailFundNavDO();
             emailFundNavDO.setFileId(fileId);
             emailFundNavDO.setPriceDate(priceDate);
@@ -715,7 +721,7 @@ public class EmailParseService {
 
     private void setNavParseStatus(EmailFundNavDTO fundNavDTO, String emailTitle) {
         // 1.单位净值或累计净值缺失
-        if (StrUtil.isBlank(fundNavDTO.getNav()) || StrUtil.isBlank(fundNavDTO.getCumulativeNavWithdrawal())) {
+        if ((StrUtil.isBlank(fundNavDTO.getNav()) || StrUtil.isBlank(fundNavDTO.getCumulativeNavWithdrawal()) ) && StrUtil.isBlank(fundNavDTO.getAssetNet())) {
             fundNavDTO.setParseStatus(NavParseStatusConst.NAV_DEFICIENCY);
             return;
         }