瀏覽代碼

支付宝五联单

hankunkun 11 月之前
父節點
當前提交
9b0a0f4f99

+ 3 - 11
src/main/java/ieven/server/webapp/api/AlipayController.java

@@ -69,17 +69,9 @@ public class AlipayController {
                 return Mapped.ERROR("未查询到明细");
             } else {
                 Future<Long> totalFuture = this.dataService.countTotalByQuery(new Query(criteria));
-                List<DataMap> dataMaps = new ArrayList<>();
-                if (filename.contains("对手透视")) {
-                    dataMaps =
-                            this.mongoTemplate.find(
-                                    (new Query(criteria).with(Sort.by(Sort.Direction.DESC, "共同主端数"))).skip(skip).limit(pageSize), DataMap.class);
-                } else {
-                    dataMaps =
-                            this.mongoTemplate.find(
-                                    (new Query(criteria)).skip(skip).limit(pageSize), DataMap.class);
-                }
-
+                List<DataMap>  dataMaps =
+                        this.mongoTemplate.find(
+                                (new Query(criteria)).skip(skip).limit(pageSize), DataMap.class);;
                 Long total;
 
                 try {

+ 216 - 209
src/main/java/ieven/server/webapp/service/alipay/AntiSecurityTrade3.java

@@ -5,7 +5,6 @@ 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.DataUtils;
 import ieven.server.webapp.util.excel.PublicStatic;
 import org.apache.commons.collections4.CollectionUtils;
@@ -20,220 +19,228 @@ import java.util.concurrent.CountDownLatch;
 
 public class AntiSecurityTrade3 extends Ops implements Runnable {
 
-  HeaderProperties headerProperties;
-
-  MongoTemplate mongoTemplate;
-  String modelId;
-
-  Map<String, String> accountToName;
-  FileService fileService;
-
-  CountDownLatch latch;
-
-  public AntiSecurityTrade3(
-      HeaderProperties headerProperties,
-      String modelId,
-      MongoTemplate mongoTemplate,
-      Map<String, String> accountToName,
-      FileService fileService,
-      CountDownLatch latch3) {
-    this.headerProperties = headerProperties;
-    this.accountToName = accountToName;
-    this.modelId = modelId;
-    this.mongoTemplate = mongoTemplate;
-    this.fileService = fileService;
-    latch = latch3;
-  }
-
-  @Override
-  public void run() {
-    String antiSecurityFileId = "";
-    String dateFileId1 = getFileId("反诈数据-订单明细", modelId, mongoTemplate);
-    String dateFileId2 = getFileId("治安数据-订单明细", modelId, mongoTemplate);
-
-    // 遍历登录日志全表
-    if (StringUtils.isNotBlank(dateFileId1) || StringUtils.isNotBlank(dateFileId2)) {
-
-      MongoCursor<Document> cursor1 = getCursor(dateFileId1, mongoTemplate);
-      if (cursor1.hasNext()) {
-        antiSecurityFileId = antiSecurityFileId();
-        insertData1(cursor1, antiSecurityFileId);
-      }
-      MongoCursor<Document> cursor2 = getCursor(dateFileId2, mongoTemplate);
-      if (cursor2.hasNext()) {
-        if (StringUtils.isBlank(antiSecurityFileId)) {
-          antiSecurityFileId = antiSecurityFileId();
-        }
-        insertData2(cursor2, antiSecurityFileId);
-      }
+    HeaderProperties headerProperties;
+
+    MongoTemplate mongoTemplate;
+    String modelId;
+
+    Map<String, String> accountToName;
+    FileService fileService;
+
+    CountDownLatch latch;
+
+    public AntiSecurityTrade3(
+            HeaderProperties headerProperties,
+            String modelId,
+            MongoTemplate mongoTemplate,
+            Map<String, String> accountToName,
+            FileService fileService,
+            CountDownLatch latch3) {
+        this.headerProperties = headerProperties;
+        this.accountToName = accountToName;
+        this.modelId = modelId;
+        this.mongoTemplate = mongoTemplate;
+        this.fileService = fileService;
+        latch = latch3;
     }
-    latch.countDown();
-  }
-
-  public String antiSecurityFileId() {
-    return createLogicAndDeleteOld(
-        "反诈治安-交易明细",
-        modelId,
-        headerProperties.getAntiSecurityTradeOutput(),
-        mongoTemplate,
-        fileService);
-  }
-
-  public void insertData1(MongoCursor<Document> cursor, String antiSecurityFileId) {
-    Document origin;
-    List<DataMap> needToSave = new ArrayList<>(1000);
-    while (cursor.hasNext()) {
-      origin = cursor.next();
-      DataMap dataMap = new DataMap();
-      dataMap.put("fileId", antiSecurityFileId);
-      dataMap.put("支付订单号", origin.getString("支付订单号"));
-      dataMap.put("交易流水号", origin.getString("交易流水号"));
-      String flag = origin.getString("交易主体的出入账标识");
-      dataMap.put("交易主体的出入账标识", flag);
-      dataMap.put("交易类型", origin.getString("交易类型"));
-      dataMap.put("支付类型", origin.getString("支付类型"));
-      dataMap.put("币种", origin.getString("币种"));
-      String string = origin.getString("交易金额");
-      if (StringUtils.isBlank(string)) {
-        continue;
-      }
-      dataMap.put("交易金额", origin.getString("交易金额"));
-      dataMap.put("交易余额", origin.getString("交易余额"));
-      dataMap.put("消费POS机编号", origin.getString("消费POS机编号"));
-      dataMap.put("交易设备类型", origin.getString("交易设备类型"));
-      dataMap.put("交易支付设备IP", origin.getString("交易支付设备IP"));
-      dataMap.put("MAC地址", origin.getString("MAC地址"));
-      dataMap.put("交易地点经度", origin.getString("交易地点经度"));
-      dataMap.put("交易地点纬度", origin.getString("交易地点纬度"));
-      dataMap.put("备注", origin.getString("备注"));
-      if ("出账".equals(flag)) {
-        dataMap.put("交易主体账号", origin.getString("付款方的支付账号"));
-        dataMap.put("交易主体银行卡号", origin.getString("付款方银行卡所属银行卡号"));
-        dataMap.put("交易主体银行名称", origin.getString("付款方银行卡所属银行名称"));
-        dataMap.put("交易主体户名", "");
-        dataMap.put("交易对手账号", origin.getString("收款方的支付账号"));
-        dataMap.put("交易对手银行卡号", origin.getString("收款方银行卡所属银行卡号"));
-        dataMap.put("交易对手银行名称", origin.getString("收款方银行卡所属银行名称"));
-        dataMap.put("交易对手户名", origin.getString("收款方的商户名称"));
-
-      } else if ("入账".equals(flag)) {
-        dataMap.put("交易主体账号", origin.getString("收款方的支付账号"));
-        dataMap.put("交易主体银行卡号", origin.getString("收款方银行卡所属银行卡号"));
-        dataMap.put("交易主体银行名称", origin.getString("收款方银行卡所属银行名称"));
-        dataMap.put("交易主体户名", origin.getString("收款方的商户名称"));
-        dataMap.put("交易对手账号", origin.getString("付款方的支付账号"));
-        dataMap.put("交易对手银行卡号", origin.getString("付款方银行卡所属银行卡号"));
-        dataMap.put("交易对手银行名称", origin.getString("付款方银行卡所属银行名称"));
-        dataMap.put("交易对手户名", "");
-      }
-      dataMap.put("交易时间", DataUtils.transferDateToStr(origin.getString("交易时间")));
-      if ("".equals((String) dataMap.get("交易主体户名"))) {
-        String account = (String) dataMap.getOrDefault("交易主体账号", "");
-        if (StringUtils.isBlank(account) || "-".equals(account)) {
-        } else {
-          String newName = accountToName.getOrDefault(account, "");
-          if (StringUtils.isNotBlank(newName)) {
-            dataMap.put("交易主体户名", newName);
-          }
-        }
-      }
-      if ("".equals((String) dataMap.get("交易对手户名"))) {
-        String account = (String) dataMap.getOrDefault("交易对手账号", "");
-        if (StringUtils.isBlank(account) || "-".equals(account)) {
-        } else {
-          String newName = accountToName.getOrDefault(account, "");
-          if (StringUtils.isNotBlank(newName)) {
-            dataMap.put("交易对手户名", newName);
-          }
+
+    @Override
+    public void run() {
+        String antiSecurityFileId = "";
+        String dateFileId1 = getFileId("反诈数据-订单明细", modelId, mongoTemplate);
+        String dateFileId2 = getFileId("治安数据-订单明细", modelId, mongoTemplate);
+
+        // 遍历登录日志全表
+        if (StringUtils.isNotBlank(dateFileId1) || StringUtils.isNotBlank(dateFileId2)) {
+
+            MongoCursor<Document> cursor1 = getCursor(dateFileId1, mongoTemplate);
+            if (cursor1.hasNext()) {
+                antiSecurityFileId = antiSecurityFileId();
+                insertData1(cursor1, antiSecurityFileId);
+            }
+            MongoCursor<Document> cursor2 = getCursor(dateFileId2, mongoTemplate);
+            if (cursor2.hasNext()) {
+                if (StringUtils.isBlank(antiSecurityFileId)) {
+                    antiSecurityFileId = antiSecurityFileId();
+                }
+                insertData2(cursor2, antiSecurityFileId);
+            }
         }
-      }
-      needToSave.add(dataMap);
-      if (needToSave.size() >= 1000) {
-        saveLines(new ArrayList<>(needToSave), mongoTemplate);
-        needToSave.clear();
-      }
+        latch.countDown();
     }
-    if (CollectionUtils.isNotEmpty(needToSave)) {
-      saveLines(needToSave, mongoTemplate);
+
+    public String antiSecurityFileId() {
+        return createLogicAndDeleteOld(
+                "反诈治安-交易明细",
+                modelId,
+                headerProperties.getAntiSecurityTradeOutput(),
+                mongoTemplate,
+                fileService
+        );
     }
-  }
-
-  public void insertData2(MongoCursor<Document> cursor, String antiSecurityFileId) {
-    Document origin;
-    List<DataMap> needToSave = new ArrayList<>(1000);
-    while (cursor.hasNext()) {
-      origin = cursor.next();
-      DataMap dataMap = new DataMap();
-      dataMap.put("fileId", antiSecurityFileId);
-      dataMap.put("支付订单号", origin.getString("支付订单号"));
-      dataMap.put("交易流水号", origin.getString("交易流水号"));
-      String flag = origin.getString("交易主体的出入账标识");
-      dataMap.put("交易主体的出入账标识", flag);
-      dataMap.put("交易类型", origin.getString("交易类型"));
-      dataMap.put("支付类型", origin.getString("支付类型"));
-      dataMap.put("币种", origin.getString("币种"));
-      dataMap.put("交易金额", origin.getString("交易金额"));
-      dataMap.put("交易余额", origin.getString("交易余额"));
-      dataMap.put("消费POS机编号", origin.getString("消费POS机编号"));
-      dataMap.put("交易设备类型", origin.getString("交易设备类型"));
-      dataMap.put("交易支付设备IP", origin.getString("交易支付设备IP"));
-      dataMap.put("MAC地址", origin.getString("MAC地址"));
-      dataMap.put("交易地点经度", origin.getString("交易地点经度"));
-      dataMap.put("交易地点纬度", origin.getString("交易地点纬度"));
-      dataMap.put("备注", origin.getString("备注"));
-      if ("出账".equals(flag)) {
-        dataMap.put("交易主体账号", origin.getString("付款支付账号"));
-        dataMap.put("交易主体银行卡号", origin.getString("付款银行卡号"));
-        dataMap.put("交易主体银行名称", origin.getString("付款银行卡银行名称"));
-        dataMap.put("交易主体户名", "");
-        dataMap.put("交易对手账号", origin.getString("收款支付账号"));
-        dataMap.put("交易对手银行卡号", origin.getString("收款银行卡号"));
-        dataMap.put("交易对手银行名称", origin.getString("收款银行卡银行名称"));
-        dataMap.put("交易对手户名", origin.getString("收款方的商户名称"));
-
-      } else if ("入账".equals(flag)) {
-        dataMap.put("交易主体账号", origin.getString("收款支付账号"));
-        dataMap.put("交易主体银行卡号", origin.getString("收款银行卡号"));
-        dataMap.put("交易主体银行名称", origin.getString("收款银行卡银行名称"));
-        dataMap.put("交易主体户名", origin.getString("收款方的商户名称"));
-        dataMap.put("交易对手账号", origin.getString("付款支付账号"));
-        dataMap.put("交易对手银行卡号", origin.getString("付款银行卡号"));
-        dataMap.put("交易对手银行名称", origin.getString("付款银行卡银行名称"));
-        dataMap.put("交易对手户名", "");
-      }
-      dataMap.put("交易时间", DataUtils.transferDateToStr(origin.getString("交易时间")));
-      String jyzthm=String.valueOf(dataMap.get("交易主体户名"));
-      if (StringUtils.isBlank(jyzthm)) {
-        String account = (String) dataMap.getOrDefault("交易主体账号", "");
-        if (StringUtils.isBlank(account) || "-".equals(account)) {
-        } else {
-          String newName = accountToName.getOrDefault(account, "");
-          if (StringUtils.isNotBlank(newName)) {
-            dataMap.put("交易主体户名", newName);
-          }
+
+    public void insertData1(MongoCursor<Document> cursor, String antiSecurityFileId) {
+        Document origin;
+        List<DataMap> needToSave = new ArrayList<>(1000);
+        while (cursor.hasNext()) {
+            origin = cursor.next();
+            DataMap dataMap = new DataMap();
+            dataMap.put("fileId", antiSecurityFileId);
+            dataMap.put("支付订单号", origin.getString("支付订单号"));
+            dataMap.put("交易流水号", origin.getString("交易流水号"));
+            String flag = origin.getString("交易主体的出入账标识");
+            dataMap.put("交易主体的出入账标识", flag);
+            dataMap.put("交易类型", origin.getString("交易类型"));
+            dataMap.put("支付类型", origin.getString("支付类型"));
+            dataMap.put("币种", origin.getString("币种"));
+            String string = origin.getString("交易金额");
+            if (StringUtils.isBlank(string)) {
+                continue;
+            }
+            dataMap.put("交易金额", origin.getString("交易金额"));
+            dataMap.put("交易余额", origin.getString("交易余额"));
+            dataMap.put("消费POS机编号", origin.getString("消费POS机编号"));
+            dataMap.put("交易设备类型", origin.getString("交易设备类型"));
+            dataMap.put("交易支付设备IP", origin.getString("交易支付设备IP"));
+            dataMap.put("MAC地址", origin.getString("MAC地址"));
+            dataMap.put("交易地点经度", origin.getString("交易地点经度"));
+            dataMap.put("交易地点纬度", origin.getString("交易地点纬度"));
+            dataMap.put("备注", origin.getString("备注"));
+            if ("出账".equals(flag)) {
+                dataMap.put("交易主体账号", origin.getString("付款方的支付账号"));
+                dataMap.put("交易主体银行卡号", origin.getString("付款方银行卡所属银行卡号"));
+                dataMap.put("交易主体银行名称", origin.getString("付款方银行卡所属银行名称"));
+                dataMap.put("交易主体户名", "");
+                dataMap.put("交易对手账号", origin.getString("收款方的支付账号"));
+                dataMap.put("交易对手银行卡号", origin.getString("收款方银行卡所属银行卡号"));
+                dataMap.put("交易对手银行名称", origin.getString("收款方银行卡所属银行名称"));
+                dataMap.put("交易对手户名", origin.getString("收款方的商户名称"));
+
+            } else if ("入账".equals(flag)) {
+                dataMap.put("交易主体账号", origin.getString("收款方的支付账号"));
+                dataMap.put("交易主体银行卡号", origin.getString("收款方银行卡所属银行卡号"));
+                dataMap.put("交易主体银行名称", origin.getString("收款方银行卡所属银行名称"));
+                dataMap.put("交易主体户名", origin.getString("收款方的商户名称"));
+                dataMap.put("交易对手账号", origin.getString("付款方的支付账号"));
+                dataMap.put("交易对手银行卡号", origin.getString("付款方银行卡所属银行卡号"));
+                dataMap.put("交易对手银行名称", origin.getString("付款方银行卡所属银行名称"));
+                dataMap.put("交易对手户名", "");
+            }
+            dataMap.put("交易时间", DataUtils.transferDateToStr(origin.getString("交易时间")));
+
+            String jyzthm = String.valueOf(dataMap.get("交易主体户名"));
+            if (StringUtils.isBlank(jyzthm)|| "-".equals(jyzthm)) {
+                String account = (String) dataMap.getOrDefault("交易主体账号", "");
+                if (StringUtils.isBlank(account) || "-".equals(account)) {
+                } else {
+                    String newName = accountToName.getOrDefault(account, "");
+                    if (StringUtils.isNotBlank(newName)) {
+                        dataMap.put("交易主体户名", PublicStatic.specialFormatStr(newName));
+                    }
+                }
+            } else {
+                dataMap.put("交易主体户名", PublicStatic.specialFormatStr(jyzthm));
+            }
+
+            String value = String.valueOf(dataMap.get("交易对手户名"));
+            if (StringUtils.isBlank(value)|| "-".equals(value)) {
+                String account = (String) dataMap.getOrDefault("交易对手账号", "");
+                if (StringUtils.isBlank(account) || "-".equals(account)) {
+                } else {
+                    String newName = accountToName.getOrDefault(account, "");
+                    if (StringUtils.isNotBlank(newName)) {
+                        dataMap.put("交易对手户名",  PublicStatic.specialFormatStr(newName));
+                    }
+                }
+            }else {
+                dataMap.put("交易对手户名",  PublicStatic.specialFormatStr(value));
+            }
+            needToSave.add(dataMap);
+            if (needToSave.size() >= 1000) {
+                saveLines(new ArrayList<>(needToSave), mongoTemplate);
+                needToSave.clear();
+            }
         }
-      }else {
-        String jyzthmStr = PublicStatic.removeAllBlank(jyzthm).replaceAll("个人", "").replaceAll("-","");
-        dataMap.put("交易主体户名", jyzthmStr);
-      }
-      if ("".equals((String) dataMap.get("交易对手户名"))) {
-        String account = (String) dataMap.getOrDefault("交易对手账号", "");
-        if (StringUtils.isBlank(account) || "-".equals(account)) {
-        } else {
-          String newName = accountToName.getOrDefault(account, "");
-          if (StringUtils.isNotBlank(newName)) {
-            dataMap.put("交易对手户名", newName);
-          }
+        if (CollectionUtils.isNotEmpty(needToSave)) {
+            saveLines(needToSave, mongoTemplate);
         }
-      }
-      needToSave.add(dataMap);
-      if (needToSave.size() >= 1000) {
-        saveLines(new ArrayList<>(needToSave), mongoTemplate);
-        needToSave.clear();
-      }
     }
-    if (CollectionUtils.isNotEmpty(needToSave)) {
-      saveLines(needToSave, mongoTemplate);
+
+    public void insertData2(MongoCursor<Document> cursor, String antiSecurityFileId) {
+        Document origin;
+        List<DataMap> needToSave = new ArrayList<>(1000);
+        while (cursor.hasNext()) {
+            origin = cursor.next();
+            DataMap dataMap = new DataMap();
+            dataMap.put("fileId", antiSecurityFileId);
+            dataMap.put("支付订单号", origin.getString("支付订单号"));
+            dataMap.put("交易流水号", origin.getString("交易流水号"));
+            String flag = origin.getString("交易主体的出入账标识");
+            dataMap.put("交易主体的出入账标识", flag);
+            dataMap.put("交易类型", origin.getString("交易类型"));
+            dataMap.put("支付类型", origin.getString("支付类型"));
+            dataMap.put("币种", origin.getString("币种"));
+            dataMap.put("交易金额", origin.getString("交易金额"));
+            dataMap.put("交易余额", origin.getString("交易余额"));
+            dataMap.put("消费POS机编号", origin.getString("消费POS机编号"));
+            dataMap.put("交易设备类型", origin.getString("交易设备类型"));
+            dataMap.put("交易支付设备IP", origin.getString("交易支付设备IP"));
+            dataMap.put("MAC地址", origin.getString("MAC地址"));
+            dataMap.put("交易地点经度", origin.getString("交易地点经度"));
+            dataMap.put("交易地点纬度", origin.getString("交易地点纬度"));
+            dataMap.put("备注", origin.getString("备注"));
+            if ("出账".equals(flag)) {
+                dataMap.put("交易主体账号", origin.getString("付款支付账号"));
+                dataMap.put("交易主体银行卡号", origin.getString("付款银行卡号"));
+                dataMap.put("交易主体银行名称", origin.getString("付款银行卡银行名称"));
+                dataMap.put("交易主体户名", "");
+                dataMap.put("交易对手账号", origin.getString("收款支付账号"));
+                dataMap.put("交易对手银行卡号", origin.getString("收款银行卡号"));
+                dataMap.put("交易对手银行名称", origin.getString("收款银行卡银行名称"));
+                dataMap.put("交易对手户名", origin.getString("收款方的商户名称"));
+
+            } else if ("入账".equals(flag)) {
+                dataMap.put("交易主体账号", origin.getString("收款支付账号"));
+                dataMap.put("交易主体银行卡号", origin.getString("收款银行卡号"));
+                dataMap.put("交易主体银行名称", origin.getString("收款银行卡银行名称"));
+                dataMap.put("交易主体户名", origin.getString("收款方的商户名称"));
+                dataMap.put("交易对手账号", origin.getString("付款支付账号"));
+                dataMap.put("交易对手银行卡号", origin.getString("付款银行卡号"));
+                dataMap.put("交易对手银行名称", origin.getString("付款银行卡银行名称"));
+                dataMap.put("交易对手户名", "");
+            }
+            dataMap.put("交易时间", DataUtils.transferDateToStr(origin.getString("交易时间")));
+            String jyzthm = String.valueOf(dataMap.get("交易主体户名"));
+            if (StringUtils.isBlank(jyzthm)) {
+                String account = (String) dataMap.getOrDefault("交易主体账号", "");
+                if (StringUtils.isBlank(account) || "-".equals(account)) {
+                } else {
+                    String newName = accountToName.getOrDefault(account, "");
+                    if (StringUtils.isNotBlank(newName)) {
+                        dataMap.put("交易主体户名", newName);
+                    }
+                }
+            } else {
+                dataMap.put("交易主体户名", PublicStatic.specialFormatStr(jyzthm));
+            }
+            if ("".equals((String) dataMap.get("交易对手户名"))) {
+                String account = (String) dataMap.getOrDefault("交易对手账号", "");
+                if (StringUtils.isBlank(account) || "-".equals(account)) {
+                } else {
+                    String newName = accountToName.getOrDefault(account, "");
+                    if (StringUtils.isNotBlank(newName)) {
+                        dataMap.put("交易对手户名", newName);
+                    }
+                }
+            }
+            needToSave.add(dataMap);
+            if (needToSave.size() >= 1000) {
+                saveLines(new ArrayList<>(needToSave), mongoTemplate);
+                needToSave.clear();
+            }
+        }
+        if (CollectionUtils.isNotEmpty(needToSave)) {
+            saveLines(needToSave, mongoTemplate);
+        }
     }
-  }
 }

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

@@ -131,7 +131,7 @@ public class AntiSecurityTradeEndAnalysis extends Ops implements Runnable {
             mainIds.add(mainId);
           } else {
             Set<String> mainIds = new HashSet<>();
-            mainIds.add(mainId+"("+alipayUsername+")");
+            mainIds.add(mainId+(StringUtils.isBlank(alipayUsername)?"":"("+alipayUsername+")"));
             idToMainIds.put(alipayId, mainIds);
           }
         } catch (Exception exception) {

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

@@ -135,7 +135,7 @@ public class EndAnalysis extends Ops implements Runnable {
             mainIds.add(mainId);
           } else {
             Set<String> mainIds = new HashSet<>();
-            mainIds.add(mainId+"("+mainName+")");
+            mainIds.add(mainId+(StringUtils.isBlank(mainName)?"":"("+mainName+")"));
             idToMainIds.put(alipayId, mainIds);
           }
         } catch (Exception exception) {

+ 1 - 1
src/main/java/ieven/server/webapp/service/tenpay/TenpayTradesEndAnalysis.java

@@ -135,7 +135,7 @@ public class TenpayTradesEndAnalysis extends Ops implements Runnable {
           mainIds.add(mainId);
         } else {
           Set<String> mainIds = new HashSet<>();
-          mainIds.add(mainId+"("+mainName+")");
+          mainIds.add(mainId+(StringUtils.isBlank(mainName)?"":"("+mainName+")"));
           idToMainIds.put(alipayId, mainIds);
         }
       } catch (Exception exception) {

+ 16 - 0
src/main/java/ieven/server/webapp/util/excel/PublicStatic.java

@@ -316,6 +316,22 @@ public class PublicStatic {
     return result;
   }
 
+    public static String specialFormatStr(String s) {
+        // 全角转半角
+        String result = "";
+        if (null != s && !"".equals(s)) {
+            result = s;
+            result = result.replace("-", "-");
+            result = result.replace("/", "/");
+            result = result.replace("(", "(");
+            result = result.replace(")", ")");
+            result=result.replaceAll("(","").replaceAll(")","")
+                    .replaceAll("个人", "").
+                    replaceAll("-","").replaceAll("商户", "");
+        }
+        return result;
+    }
+
   /**
    * 包含数字
    *