Sfoglia il codice sorgente

feat(1): 处理数据透传时, 部分字段为字符串,忽略处理

洪海涛 5 mesi fa
parent
commit
bb51860973

+ 3 - 0
.gitignore

@@ -28,3 +28,6 @@ target/
 build/
 !**/src/main/**/build/
 !**/src/test/**/build/
+
+tempFiles/
+.vscode

+ 2 - 1
src/main/java/ieven/server/webapp/service/alipay/AntiSecurityTradeEndAnalysis.java

@@ -5,6 +5,7 @@ import ieven.server.webapp.domain.alipay.HeaderProperties;
 import ieven.server.webapp.domain.data.DataMap;
 import ieven.server.webapp.domain.file.FileService;
 import ieven.server.webapp.service.Ops;
+import ieven.server.webapp.util.Common;
 import ieven.server.webapp.util.excel.PublicStatic;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.CollectionUtils;
@@ -123,7 +124,7 @@ public class AntiSecurityTradeEndAnalysis extends Ops implements Runnable {
                         dataMap.put("交易主体支出笔数", oCount);
                     }
                     BigDecimal oMoney = (BigDecimal) dataMap.get("交易总额");
-                    oMoney = oMoney.add(new BigDecimal(money));
+                    oMoney = Common.addMoney(oMoney, money);
                     dataMap.put("交易总额", oMoney);
                     int oCount = (int) dataMap.get("总笔数");
                     oCount++;

+ 2 - 1
src/main/java/ieven/server/webapp/service/alipay/AntiSecurityTradeScaleAnalysis.java

@@ -6,6 +6,7 @@ import ieven.server.webapp.domain.data.DataMap;
 import ieven.server.webapp.domain.file.FileService;
 import ieven.server.webapp.service.Ops;
 import ieven.server.webapp.util.excel.PublicStatic;
+import ieven.server.webapp.util.Common;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
@@ -114,7 +115,7 @@ public class AntiSecurityTradeScaleAnalysis extends Ops implements Runnable {
             dataMap.put("支出笔数", oCount);
           }
           BigDecimal oMoney = (BigDecimal) dataMap.get("交易总额");
-          oMoney = oMoney.add(new BigDecimal(money));
+          oMoney = Common.addMoney(oMoney, money);
           dataMap.put("交易总额", oMoney);
           int oCount = (int) dataMap.get("总笔数");
           oCount++;

+ 2 - 1
src/main/java/ieven/server/webapp/service/datastatic/DataStaticAnalysisDs.java

@@ -5,6 +5,7 @@ import ieven.server.webapp.domain.alipay.HeaderProperties;
 import ieven.server.webapp.domain.data.DataMap;
 import ieven.server.webapp.domain.file.FileService;
 import ieven.server.webapp.service.Ops;
+import ieven.server.webapp.util.Common;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
@@ -251,7 +252,7 @@ public class DataStaticAnalysisDs extends Ops implements Runnable {
                         dataMap.put("交易主体支出笔数", oCount);
                     }
                     BigDecimal oMoney = (BigDecimal) dataMap.get("交易总额");
-                    oMoney = oMoney.add(new BigDecimal(money));
+                    oMoney = Common.addMoney(oMoney, money);
                     dataMap.put("交易总额", oMoney);
                     int oCount = (int) dataMap.get("总笔数");
                     oCount++;

+ 2 - 1
src/main/java/ieven/server/webapp/service/datastatic/DataStaticAnalysisMain.java

@@ -7,6 +7,7 @@ import ieven.server.webapp.domain.data.DataMap;
 import ieven.server.webapp.domain.file.FileService;
 import ieven.server.webapp.domain.tenpay.TenpayHeaders;
 import ieven.server.webapp.service.Ops;
+import ieven.server.webapp.util.Common;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
@@ -209,7 +210,7 @@ public class DataStaticAnalysisMain extends Ops implements Runnable {
                         dataMap.put("支出笔数", oCount);
                     }
                     BigDecimal oMoney = (BigDecimal) dataMap.get("交易总额");
-                    oMoney = oMoney.add(new BigDecimal(money));
+                    oMoney = Common.addMoney(oMoney, money);
                     dataMap.put("交易总额", oMoney);
                     int oCount = (int) dataMap.get("总笔数");
                     oCount++;

+ 26 - 0
src/main/java/ieven/server/webapp/util/Common.java

@@ -5,6 +5,7 @@
 
 package ieven.server.webapp.util;
 
+import java.math.BigDecimal;
 import java.security.MessageDigest;
 import java.security.NoSuchAlgorithmException;
 import java.util.ArrayList;
@@ -66,4 +67,29 @@ public class Common {
 
         return sb.toString();
     }
+
+    public static BigDecimal addMoney(BigDecimal oMoney, Object money) {
+        try {
+            if (money == null) {
+                return oMoney.add(BigDecimal.ZERO);
+            }
+
+            // 尝试将 money 转换为 Number 类型
+            if (money instanceof Number) {
+                return oMoney.add(new BigDecimal(((Number) money).doubleValue()));
+            } else if (money instanceof String) {
+                String str = (String) money;
+                if (str.isEmpty()) {
+                    return oMoney.add(BigDecimal.ZERO);
+                }
+                // 尝试解析字符串
+                return oMoney.add(new BigDecimal(str));
+            }
+        } catch (NumberFormatException e) {
+            // 如果无法转换或解析,返回 0
+            return BigDecimal.ZERO;
+        }
+        // 如果 money 是其他类型,默认返回 0
+        return BigDecimal.ZERO;
+    }
 }

+ 1 - 1
src/main/java/ieven/server/webapp/util/DataUtils.java

@@ -37,7 +37,7 @@ public class DataUtils {
   }
 
   public static String transferDateToStr(String str) {
-    if (StringUtils.isBlank(str)) {
+    if (StringUtils.isBlank(str) || str.matches("[^0-9]+")) {
       return null;
     }
     String resultString = null;