|
@@ -12,8 +12,7 @@ import org.bson.Document;
|
|
|
import org.springframework.data.mongodb.core.MongoTemplate;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.List;
|
|
|
+import java.util.*;
|
|
|
import java.util.concurrent.CountDownLatch;
|
|
|
|
|
|
@Slf4j
|
|
@@ -42,125 +41,348 @@ public class DataStaticAnalysisDs extends Ops implements Runnable {
|
|
|
log.info("数据分析-对手透视");
|
|
|
// 直接删除并创建表
|
|
|
String newFileId = "";
|
|
|
- String dateFileIdwld = getFileId("五联单-对手透视", modelId, mongoTemplate);
|
|
|
- String dateFileIdfa = getFileId("反诈治安-对手透视", modelId, mongoTemplate);
|
|
|
- String dateFileIdcft = getFileId("财付通-对手透视", modelId, mongoTemplate);
|
|
|
+ String dateFileIdwld = getFileId("五联单-账户明细", modelId, mongoTemplate);
|
|
|
+ String dateFileIdfa = getFileId("反诈治安-交易明细", modelId, mongoTemplate);
|
|
|
+ String dateFileIdcft = getFileId("财付通-交易明细", modelId, mongoTemplate);
|
|
|
// 插入记录用户后续查询明细
|
|
|
if (StringUtils.isNotBlank(dateFileIdwld) || StringUtils.isNotBlank(dateFileIdfa) || StringUtils.isNotBlank(dateFileIdcft)) {
|
|
|
newFileId = createLogicAndDeleteOld("数据分析-对手透视", modelId, headerProperties.getAntiSecurityTradeEndAnalysisOutput(), mongoTemplate, fileService);
|
|
|
}
|
|
|
|
|
|
+ // 插入记录用户后续查询明细
|
|
|
if (StringUtils.isNotBlank(dateFileIdcft)) {
|
|
|
MongoCursor<Document> cursor = getCursor(dateFileIdcft, mongoTemplate);
|
|
|
if (cursor.hasNext()) {
|
|
|
insertFromTo(dateFileIdcft, newFileId, modelId, mongoTemplate);
|
|
|
}
|
|
|
- List<DataMap> cftList = new ArrayList<>();
|
|
|
+ Set<String> alipayIds = new HashSet<>();
|
|
|
+ Map<String, DataMap> idToData = new HashMap<>();
|
|
|
+ Map<String, Set<String>> idToMainIds = new HashMap<>();
|
|
|
+ Map<String, Set<String>> idToNames = new HashMap<>();
|
|
|
Document origin;
|
|
|
while (cursor.hasNext()) {
|
|
|
try {
|
|
|
+
|
|
|
origin = cursor.next();
|
|
|
- DataMap dataMap = new DataMap();
|
|
|
- dataMap = new DataMap();
|
|
|
- dataMap.put("fileId", newFileId);
|
|
|
- dataMap.put("交易对手账号", String.valueOf(origin.get("交易对手账号")));
|
|
|
- dataMap.put("交易对手户名", String.valueOf(origin.get("交易对手户名")));
|
|
|
- dataMap.put("交易总额", origin.get("交易总额"));
|
|
|
- dataMap.put("交易主体收入金额", origin.get("交易主体收入金额"));
|
|
|
- dataMap.put("交易主体支出金额", origin.get("交易主体支出金额"));
|
|
|
- dataMap.put("交易主体收入笔数", origin.get("交易主体收入笔数"));
|
|
|
- dataMap.put("交易主体支出笔数",origin.get("交易主体支出笔数"));
|
|
|
- dataMap.put("总笔数", origin.get("总笔数"));
|
|
|
- dataMap.put("共同交易主体数", origin.get("共同交易主体数"));
|
|
|
- dataMap.put("共同交易主体账号汇总", origin.get("共同交易主体账号汇总"));
|
|
|
- cftList.add(dataMap);
|
|
|
- if (cftList.size() >= 1000) {
|
|
|
- saveLines(new ArrayList<>(cftList), mongoTemplate);
|
|
|
- cftList.clear();
|
|
|
+ String alipayId = origin.getString("交易对手账号");
|
|
|
+ DataMap dataMap;
|
|
|
+ if (alipayIds.contains(alipayId)) {
|
|
|
+ dataMap = idToData.get(alipayId);
|
|
|
+ } else {
|
|
|
+ alipayIds.add(alipayId);
|
|
|
+ dataMap = new DataMap();
|
|
|
+ dataMap.put("fileId", newFileId);
|
|
|
+ dataMap.put("交易对手账号", alipayId);
|
|
|
+ dataMap.put("交易对手户名", "");
|
|
|
+ dataMap.put("交易总额", new BigDecimal("0.00"));
|
|
|
+ dataMap.put("交易主体收入金额", new BigDecimal("0.00"));
|
|
|
+ dataMap.put("交易主体支出金额", new BigDecimal("0.00"));
|
|
|
+ dataMap.put("交易主体收入笔数", 0);
|
|
|
+ dataMap.put("交易主体支出笔数", 0);
|
|
|
+ dataMap.put("总笔数", 0);
|
|
|
+ dataMap.put("共同交易主体数", 0);
|
|
|
+ dataMap.put("共同交易主体账号汇总", "");
|
|
|
+ idToData.put(alipayId, dataMap);
|
|
|
+ }
|
|
|
+ String alipayUsername = origin.getString("交易对手户名");
|
|
|
+ if (StringUtils.isNotBlank(alipayUsername)
|
|
|
+ && !"_".equals(alipayUsername)
|
|
|
+ && !"-".equals(alipayUsername) && !"null".equals(alipayUsername)) {
|
|
|
+ if (idToNames.containsKey(alipayId)) {
|
|
|
+ Set<String> names = idToNames.get(alipayId);
|
|
|
+ names.add(alipayUsername);
|
|
|
+ } else {
|
|
|
+ Set<String> names = new HashSet<>();
|
|
|
+ names.add(alipayUsername);
|
|
|
+ idToNames.put(alipayId, names);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ String flag = "借贷类型";
|
|
|
+ String flagValue = origin.getString(flag);
|
|
|
+ String money = (String) origin.get("交易金额(元)");
|
|
|
+ if (StringUtils.isBlank(money)) {
|
|
|
+ money = "0";
|
|
|
+ }
|
|
|
+ if ("入".equals(flagValue)) {
|
|
|
+ BigDecimal oMoney = (BigDecimal) dataMap.get("交易主体收入金额");
|
|
|
+ oMoney = oMoney.add(new BigDecimal(money));
|
|
|
+ dataMap.put("交易主体收入金额", oMoney);
|
|
|
+ int oCount = (int) dataMap.get("交易主体收入笔数");
|
|
|
+ oCount++;
|
|
|
+ dataMap.put("交易主体收入笔数", oCount);
|
|
|
+ } else if ("出".equals(flagValue)) {
|
|
|
+ BigDecimal oMoney = (BigDecimal) dataMap.get("交易主体支出金额");
|
|
|
+ oMoney = oMoney.add(new BigDecimal(money));
|
|
|
+ dataMap.put("交易主体支出金额", oMoney);
|
|
|
+ int oCount = (int) dataMap.get("交易主体支出笔数");
|
|
|
+ oCount++;
|
|
|
+ dataMap.put("交易主体支出笔数", oCount);
|
|
|
+ }
|
|
|
+ BigDecimal oMoney = (BigDecimal) dataMap.get("交易总额");
|
|
|
+ oMoney = oMoney.add(new BigDecimal(money));
|
|
|
+ dataMap.put("交易总额", oMoney);
|
|
|
+ int oCount = (int) dataMap.get("总笔数");
|
|
|
+ oCount++;
|
|
|
+ dataMap.put("总笔数", oCount);
|
|
|
+ String mainId = (String) origin.get("交易主体账号");
|
|
|
+ if (idToMainIds.containsKey(alipayId)) {
|
|
|
+ Set<String> mainIds = idToMainIds.get(alipayId);
|
|
|
+ mainIds.add(mainId);
|
|
|
+ } else {
|
|
|
+ Set<String> mainIds = new HashSet<>();
|
|
|
+ mainIds.add(mainId);
|
|
|
+ idToMainIds.put(alipayId, mainIds);
|
|
|
}
|
|
|
} catch (Exception exception) {
|
|
|
log.error(exception.getMessage(), exception);
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
- if (CollectionUtils.isNotEmpty(cftList)) {
|
|
|
- saveLines(cftList, mongoTemplate);
|
|
|
+ if (CollectionUtils.isNotEmpty(idToData.values())) {
|
|
|
+ for (Map.Entry<String, DataMap> entry : idToData.entrySet()) {
|
|
|
+ String key = entry.getKey();
|
|
|
+ DataMap value = entry.getValue();
|
|
|
+ Set<String> mainIds = idToMainIds.get(key);
|
|
|
+ Set<String> names = idToNames.get(key);
|
|
|
+ if (CollectionUtils.isNotEmpty(names)) {
|
|
|
+ value.put("交易对手户名", StringUtils.join(names, ";"));
|
|
|
+ }
|
|
|
+ if (CollectionUtils.isNotEmpty(mainIds)) {
|
|
|
+ value.put("共同交易主体数", mainIds.size());
|
|
|
+ value.put("共同交易主体账号汇总", StringUtils.join(mainIds+"("+StringUtils.join(names, ",")+")", ";"));
|
|
|
+ }
|
|
|
+ DataMap dataMap = entry.getValue();
|
|
|
+ BigDecimal money1 = (BigDecimal) dataMap.get("交易总额");
|
|
|
+ dataMap.put("交易总额", money1.doubleValue());
|
|
|
+ BigDecimal money2 = (BigDecimal) dataMap.get("交易主体收入金额");
|
|
|
+ dataMap.put("交易主体收入金额", money2.doubleValue());
|
|
|
+ BigDecimal money3 = (BigDecimal) dataMap.get("交易主体支出金额");
|
|
|
+ dataMap.put("交易主体支出金额", money3.doubleValue());
|
|
|
+ }
|
|
|
+ saveLines(idToData.values(), "交易总额", mongoTemplate);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if (StringUtils.isNotBlank(dateFileIdfa)) {
|
|
|
+
|
|
|
MongoCursor<Document> cursor = getCursor(dateFileIdfa, mongoTemplate);
|
|
|
if (cursor.hasNext()) {
|
|
|
insertFromTo(dateFileIdfa, newFileId, modelId, mongoTemplate);
|
|
|
}
|
|
|
- List<DataMap> fzList = new ArrayList<>();
|
|
|
+ Set<String> alipayIds = new HashSet<>();
|
|
|
+ Map<String, DataMap> idToData = new HashMap<>();
|
|
|
+ Map<String, Set<String>> idToMainIds = new HashMap<>();
|
|
|
+ Map<String, Set<String>> idToNames = new HashMap<>();
|
|
|
Document origin;
|
|
|
while (cursor.hasNext()) {
|
|
|
try {
|
|
|
+
|
|
|
origin = cursor.next();
|
|
|
- DataMap dataMap = new DataMap();
|
|
|
- dataMap = new DataMap();
|
|
|
- dataMap.put("fileId", newFileId);
|
|
|
- dataMap.put("交易对手账号", String.valueOf(origin.get("交易对手账号")));
|
|
|
- dataMap.put("交易对手户名", String.valueOf(origin.get("交易对手户名")));
|
|
|
- dataMap.put("交易总额", origin.get("交易总额"));
|
|
|
- dataMap.put("交易主体收入金额", origin.get("交易主体收入金额"));
|
|
|
- dataMap.put("交易主体支出金额", origin.get("交易主体支出金额"));
|
|
|
- dataMap.put("交易主体收入笔数", origin.get("交易主体收入笔数"));
|
|
|
- dataMap.put("交易主体支出笔数", origin.get("交易主体支出笔数"));
|
|
|
- dataMap.put("总笔数", origin.get("总笔数"));
|
|
|
- dataMap.put("共同交易主体数", origin.get("共同交易主体数"));
|
|
|
- dataMap.put("共同交易主体账号汇总", origin.get("共同交易主体账号汇总"));
|
|
|
- fzList.add(dataMap);
|
|
|
- if (fzList.size() >= 1000) {
|
|
|
- saveLines(new ArrayList<>(fzList), mongoTemplate);
|
|
|
- fzList.clear();
|
|
|
+ String alipayId = origin.getString("交易对手账号");
|
|
|
+ DataMap dataMap;
|
|
|
+ if (alipayIds.contains(alipayId)) {
|
|
|
+ dataMap = idToData.get(alipayId);
|
|
|
+ } else {
|
|
|
+ alipayIds.add(alipayId);
|
|
|
+ dataMap = new DataMap();
|
|
|
+ dataMap.put("fileId", newFileId);
|
|
|
+ dataMap.put("交易对手账号", alipayId);
|
|
|
+ dataMap.put("交易对手户名", "");
|
|
|
+ dataMap.put("交易总额", new BigDecimal("0.00"));
|
|
|
+ dataMap.put("交易主体收入金额", new BigDecimal("0.00"));
|
|
|
+ dataMap.put("交易主体支出金额", new BigDecimal("0.00"));
|
|
|
+ dataMap.put("交易主体收入笔数", 0);
|
|
|
+ dataMap.put("交易主体支出笔数", 0);
|
|
|
+ dataMap.put("总笔数", 0);
|
|
|
+ dataMap.put("共同交易主体数", 0);
|
|
|
+ dataMap.put("共同交易主体账号汇总", "");
|
|
|
+ idToData.put(alipayId, dataMap);
|
|
|
+ }
|
|
|
+ String alipayUsername = origin.getString("交易对手户名");
|
|
|
+ if (StringUtils.isNotBlank(alipayUsername)
|
|
|
+ && !"_".equals(alipayUsername)
|
|
|
+ && !"-".equals(alipayUsername)&& !"null".equals(alipayUsername)) {
|
|
|
+ if (idToNames.containsKey(alipayId)) {
|
|
|
+ Set<String> names = idToNames.get(alipayId);
|
|
|
+ names.add(alipayUsername);
|
|
|
+ } else {
|
|
|
+ Set<String> names = new HashSet<>();
|
|
|
+ names.add(alipayUsername);
|
|
|
+ idToNames.put(alipayId, names);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ String flag = "交易主体的出入账标识";
|
|
|
+ String flagValue = origin.getString(flag);
|
|
|
+ String money = (String) origin.get("交易金额");
|
|
|
+ if ("入账".equals(flagValue)) {
|
|
|
+ BigDecimal oMoney = (BigDecimal) dataMap.get("交易主体收入金额");
|
|
|
+ oMoney = oMoney.add(new BigDecimal(money));
|
|
|
+ dataMap.put("交易主体收入金额", oMoney);
|
|
|
+ int oCount = (int) dataMap.get("交易主体收入笔数");
|
|
|
+ oCount++;
|
|
|
+ dataMap.put("交易主体收入笔数", oCount);
|
|
|
+ } else if ("出账".equals(flagValue)) {
|
|
|
+ BigDecimal oMoney = (BigDecimal) dataMap.get("交易主体支出金额");
|
|
|
+ oMoney = oMoney.add(new BigDecimal(money));
|
|
|
+ dataMap.put("交易主体支出金额", oMoney);
|
|
|
+ int oCount = (int) dataMap.get("交易主体支出笔数");
|
|
|
+ oCount++;
|
|
|
+ dataMap.put("交易主体支出笔数", oCount);
|
|
|
+ }
|
|
|
+ BigDecimal oMoney = (BigDecimal) dataMap.get("交易总额");
|
|
|
+ oMoney = oMoney.add(new BigDecimal(money));
|
|
|
+ dataMap.put("交易总额", oMoney);
|
|
|
+ int oCount = (int) dataMap.get("总笔数");
|
|
|
+ oCount++;
|
|
|
+ dataMap.put("总笔数", oCount);
|
|
|
+ String mainId = (String) origin.get("交易主体账号");
|
|
|
+ String mainName = (String) origin.get("交易主体户名");
|
|
|
+ if (idToMainIds.containsKey(alipayId)) {
|
|
|
+ Set<String> mainIds = idToMainIds.get(alipayId);
|
|
|
+ mainIds.add(mainId);
|
|
|
+ } else {
|
|
|
+ Set<String> mainIds = new HashSet<>();
|
|
|
+ mainIds.add(mainId);
|
|
|
+ //mainIds.add(mainId+(StringUtils.isBlank(mainName)||"null".equals(mainName)?"":"("+mainName+")"));
|
|
|
+ idToMainIds.put(alipayId, mainIds);
|
|
|
}
|
|
|
} catch (Exception exception) {
|
|
|
log.error(exception.getMessage(), exception);
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
- if (CollectionUtils.isNotEmpty(fzList)) {
|
|
|
- saveLines(fzList, mongoTemplate);
|
|
|
+ if (CollectionUtils.isNotEmpty(idToData.values())) {
|
|
|
+ for (Map.Entry<String, DataMap> entry : idToData.entrySet()) {
|
|
|
+ String key = entry.getKey();
|
|
|
+ DataMap value = entry.getValue();
|
|
|
+ Set<String> names = idToNames.get(key);
|
|
|
+ if (CollectionUtils.isNotEmpty(names)) {
|
|
|
+ value.put("交易对手户名", StringUtils.join(names, ";"));
|
|
|
+ }
|
|
|
+ Set<String> mainIds = idToMainIds.get(key);
|
|
|
+ if (CollectionUtils.isNotEmpty(mainIds)) {
|
|
|
+ value.put("共同交易主体数", mainIds.size());
|
|
|
+ value.put("共同交易主体账号汇总", StringUtils.join(mainIds+"("+StringUtils.join(names, ",")+")", ";"));
|
|
|
+ }
|
|
|
+ DataMap dataMap = entry.getValue();
|
|
|
+ BigDecimal money1 = (BigDecimal) dataMap.get("交易总额");
|
|
|
+ dataMap.put("交易总额", money1.doubleValue());
|
|
|
+ BigDecimal money2 = (BigDecimal) dataMap.get("交易主体收入金额");
|
|
|
+ dataMap.put("交易主体收入金额", money2.doubleValue());
|
|
|
+ BigDecimal money3 = (BigDecimal) dataMap.get("交易主体支出金额");
|
|
|
+ dataMap.put("交易主体支出金额", money3.doubleValue());
|
|
|
+ }
|
|
|
+ saveLines(idToData.values(), "交易总额", mongoTemplate);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if (StringUtils.isNotBlank(dateFileIdwld)) {
|
|
|
+
|
|
|
MongoCursor<Document> cursor = getCursor(dateFileIdwld, mongoTemplate);
|
|
|
if (cursor.hasNext()) {
|
|
|
insertFromTo(dateFileIdwld, newFileId, modelId, mongoTemplate);
|
|
|
}
|
|
|
- List<DataMap> wldList = new ArrayList<>();
|
|
|
+ Set<String> alipayIds = new HashSet<>();
|
|
|
+ Map<String, DataMap> idToData = new HashMap<>();
|
|
|
+ Map<String, Set<String>> idToMainIds = new HashMap<>();
|
|
|
+ Map<String, Set<String>> idToNames = new HashMap<>();
|
|
|
Document origin;
|
|
|
while (cursor.hasNext()) {
|
|
|
+
|
|
|
try {
|
|
|
+
|
|
|
origin = cursor.next();
|
|
|
- DataMap dataMap = new DataMap();
|
|
|
- dataMap = new DataMap();
|
|
|
- dataMap.put("fileId", newFileId);
|
|
|
- dataMap.put("对手支付宝用户ID", String.valueOf(origin.get("对手支付宝用户ID")));
|
|
|
- dataMap.put("对手支付宝户名", String.valueOf(origin.get("对手支付宝用户ID")));
|
|
|
- dataMap.put("交易总额", origin.get("交易总额"));
|
|
|
- dataMap.put("主用户ID收入金额", origin.get("主用户ID收入金额"));
|
|
|
- dataMap.put("主用户ID支出金额", origin.get("主用户ID支出金额"));
|
|
|
- dataMap.put("主用户ID收入笔数", origin.get("主用户ID收入笔数"));
|
|
|
- dataMap.put("主用户ID支出笔数", origin.get("主用户ID支出笔数"));
|
|
|
- dataMap.put("总笔数", origin.get("总笔数"));
|
|
|
- dataMap.put("共同主用户ID数", origin.get("共同主用户ID数"));
|
|
|
- dataMap.put("共同主用户ID汇总", origin.get("共同主用户ID汇总"));
|
|
|
- wldList.add(dataMap);
|
|
|
- if (wldList.size() >= 1000) {
|
|
|
- saveLines(new ArrayList<>(wldList), mongoTemplate);
|
|
|
- wldList.clear();
|
|
|
+ String alipayId = origin.getString("对手支付宝用户ID");
|
|
|
+ DataMap dataMap;
|
|
|
+ if (alipayIds.contains(alipayId)) {
|
|
|
+ dataMap = idToData.get(alipayId);
|
|
|
+ } else {
|
|
|
+ alipayIds.add(alipayId);
|
|
|
+ dataMap = new DataMap();
|
|
|
+ dataMap.put("fileId", newFileId);
|
|
|
+ dataMap.put("交易对手账号", alipayId);
|
|
|
+ dataMap.put("交易对手户名", "");
|
|
|
+ dataMap.put("交易总额", new BigDecimal("0.00"));
|
|
|
+ dataMap.put("主用户ID收入金额", new BigDecimal("0.00"));
|
|
|
+ dataMap.put("主用户ID支出金额", new BigDecimal("0.00"));
|
|
|
+ dataMap.put("主用户ID收入笔数", 0);
|
|
|
+ dataMap.put("主用户ID支出笔数", 0);
|
|
|
+ dataMap.put("总笔数", 0);
|
|
|
+ dataMap.put("共同主用户ID数", 0);
|
|
|
+ dataMap.put("共同主用户ID汇总", "");
|
|
|
+ idToData.put(alipayId, dataMap);
|
|
|
+ }
|
|
|
+ String alipayUsername = origin.getString("对手支付宝户名");
|
|
|
+ if (StringUtils.isNotBlank(alipayUsername)
|
|
|
+ && !"_".equals(alipayUsername)
|
|
|
+ && !"-".equals(alipayUsername)&& !"null".equals(alipayUsername)) {
|
|
|
+ if (idToNames.containsKey(alipayId)) {
|
|
|
+ Set<String> names = idToNames.get(alipayId);
|
|
|
+ names.add(alipayUsername);
|
|
|
+ } else {
|
|
|
+ Set<String> names = new HashSet<>();
|
|
|
+ names.add(alipayUsername);
|
|
|
+ idToNames.put(alipayId, names);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ String flag = "收/支";
|
|
|
+ String flagValue = origin.getString(flag);
|
|
|
+ String money = (String) origin.get("金额(元)");
|
|
|
+ if ("收入".equals(flagValue)) {
|
|
|
+ BigDecimal oMoney = (BigDecimal) dataMap.get("主用户ID收入金额");
|
|
|
+ oMoney = oMoney.add(new BigDecimal(money));
|
|
|
+ dataMap.put("主用户ID收入金额", oMoney);
|
|
|
+ int oCount = (int) dataMap.get("主用户ID收入笔数");
|
|
|
+ oCount++;
|
|
|
+ dataMap.put("主用户ID收入笔数", oCount);
|
|
|
+ } else if ("支出".equals(flagValue)) {
|
|
|
+ BigDecimal oMoney = (BigDecimal) dataMap.get("主用户ID支出金额");
|
|
|
+ oMoney = oMoney.add(new BigDecimal(money));
|
|
|
+ dataMap.put("主用户ID支出金额", oMoney);
|
|
|
+ int oCount = (int) dataMap.get("主用户ID支出笔数");
|
|
|
+ oCount++;
|
|
|
+ dataMap.put("主用户ID支出笔数", oCount);
|
|
|
+ }
|
|
|
+ BigDecimal oMoney = (BigDecimal) dataMap.get("交易总额");
|
|
|
+ oMoney = oMoney.add(new BigDecimal(money));
|
|
|
+ dataMap.put("交易总额", oMoney);
|
|
|
+ int oCount = (int) dataMap.get("总笔数");
|
|
|
+ oCount++;
|
|
|
+ dataMap.put("总笔数", oCount);
|
|
|
+ String mainId = (String) origin.get("支付宝用户ID");
|
|
|
+ String mainName = (String) origin.get("支付宝户名");
|
|
|
+ if (idToMainIds.containsKey(alipayId)) {
|
|
|
+ Set<String> mainIds = idToMainIds.get(alipayId);
|
|
|
+ mainIds.add(mainId);
|
|
|
+ } else {
|
|
|
+ Set<String> mainIds = new HashSet<>();
|
|
|
+ mainIds.add(mainId);
|
|
|
+ idToMainIds.put(alipayId, mainIds);
|
|
|
}
|
|
|
} catch (Exception exception) {
|
|
|
log.error(exception.getMessage(), exception);
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
- if (CollectionUtils.isNotEmpty(wldList)) {
|
|
|
- saveLines(wldList, mongoTemplate);
|
|
|
+ if (CollectionUtils.isNotEmpty(idToData.values())) {
|
|
|
+ for (Map.Entry<String, DataMap> entry : idToData.entrySet()) {
|
|
|
+ String key = entry.getKey();
|
|
|
+ DataMap value = entry.getValue();
|
|
|
+ Set<String> mainIds = idToMainIds.get(key);
|
|
|
+ Set<String> names = idToNames.get(key);
|
|
|
+ if (CollectionUtils.isNotEmpty(names)) {
|
|
|
+ value.put("交易对手户名", StringUtils.join(names, ";"));
|
|
|
+ }
|
|
|
+ if (CollectionUtils.isNotEmpty(mainIds)) {
|
|
|
+ value.put("共同主用户ID数", mainIds.size());
|
|
|
+ value.put("共同主用户ID汇总", StringUtils.join(mainIds+"("+StringUtils.join(names, ",")+")", ";"));
|
|
|
+ }
|
|
|
+ DataMap dataMap = entry.getValue();
|
|
|
+ BigDecimal money1 = (BigDecimal) dataMap.get("交易总额");
|
|
|
+ dataMap.put("交易总额", money1.doubleValue());
|
|
|
+ BigDecimal money2 = (BigDecimal) dataMap.get("主用户ID收入金额");
|
|
|
+ dataMap.put("主用户ID收入金额", money2.doubleValue());
|
|
|
+ BigDecimal money3 = (BigDecimal) dataMap.get("主用户ID支出金额");
|
|
|
+ dataMap.put("主用户ID支出金额", money3.doubleValue());
|
|
|
+ }
|
|
|
+ saveLines(idToData.values(), "交易总额", mongoTemplate);
|
|
|
}
|
|
|
}
|
|
|
|