hankunkun hai 11 meses
pai
achega
db0181330d

+ 3 - 1
src/main/java/ieven/server/webapp/domain/data/StaticModelInput.java

@@ -20,5 +20,7 @@ public class StaticModelInput {
 
     private String jyzthmds;
 
-    private String jysj;
+    private String jysjStart;
+
+    private String jysjEnd;
 }

+ 64 - 14
src/main/java/ieven/server/webapp/service/alipay/AntiSecurityTrade3.java

@@ -13,6 +13,7 @@ import org.bson.Document;
 import org.springframework.data.mongodb.core.MongoTemplate;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.CountDownLatch;
@@ -52,7 +53,7 @@ public class AntiSecurityTrade3 extends Ops implements Runnable {
         String dateFileId3 = getFileId("经侦数据-订单明细", modelId, mongoTemplate);
 
         // 遍历登录日志全表
-        if (StringUtils.isNotBlank(dateFileId1) || StringUtils.isNotBlank(dateFileId2)|| StringUtils.isNotBlank(dateFileId3)) {
+        if (StringUtils.isNotBlank(dateFileId1) || StringUtils.isNotBlank(dateFileId2) || StringUtils.isNotBlank(dateFileId3)) {
 
             MongoCursor<Document> cursor1 = getCursor(dateFileId1, mongoTemplate);
             if (cursor1.hasNext()) {
@@ -91,6 +92,7 @@ public class AntiSecurityTrade3 extends Ops implements Runnable {
     public void insertData1(MongoCursor<Document> cursor, String antiSecurityFileId) {
         Document origin;
         List<DataMap> needToSave = new ArrayList<>(1000);
+        Map<String, Object> dataMapUser = new HashMap<>();
         while (cursor.hasNext()) {
             origin = cursor.next();
             DataMap dataMap = new DataMap();
@@ -124,6 +126,11 @@ public class AntiSecurityTrade3 extends Ops implements Runnable {
                 dataMap.put("交易对手银行卡号", origin.getString("收款方银行卡所属银行卡号"));
                 dataMap.put("交易对手银行名称", origin.getString("收款方银行卡所属银行名称"));
                 dataMap.put("交易对手户名", origin.getString("收款方的商户名称"));
+                String jyztzh = String.valueOf(origin.getString("收款方的支付账号"));
+                String jyztzhhm = String.valueOf(origin.getString("收款方的商户名称"));
+                if (StringUtils.isNotBlank(jyztzh) && !"null".equals(jyztzh) && StringUtils.isNotBlank(jyztzhhm) && !"null".equals(jyztzhhm)) {
+                    dataMapUser.put(jyztzh, jyztzhhm);
+                }
 
             } else if ("入账".equals(flag)) {
                 dataMap.put("交易主体账号", origin.getString("收款方的支付账号"));
@@ -134,17 +141,25 @@ public class AntiSecurityTrade3 extends Ops implements Runnable {
                 dataMap.put("交易对手银行卡号", origin.getString("付款方银行卡所属银行卡号"));
                 dataMap.put("交易对手银行名称", origin.getString("付款方银行卡所属银行名称"));
                 dataMap.put("交易对手户名", "");
+
+                String jyztzh = String.valueOf(origin.getString("收款方的支付账号"));
+                String jyztzhhm = String.valueOf(origin.getString("收款方的商户名称"));
+                if (StringUtils.isNotBlank(jyztzh) && !"null".equals(jyztzh) && StringUtils.isNotBlank(jyztzhhm) && !"null".equals(jyztzhhm)) {
+                    dataMapUser.put(jyztzh, jyztzhhm);
+                }
             }
             dataMap.put("交易时间", DataUtils.transferDateToStr(origin.getString("交易时间")));
 
             String jyzthm = String.valueOf(dataMap.get("交易主体户名"));
-            if (StringUtils.isBlank(jyzthm) || "-".equals(jyzthm)||"null".equals(jyzthm)) {
+            if (StringUtils.isBlank(jyzthm) || "-".equals(jyzthm) || "null".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(String.valueOf(dataMapUser.get(account))));
                     }
                 }
             } else {
@@ -152,13 +167,15 @@ public class AntiSecurityTrade3 extends Ops implements Runnable {
             }
 
             String value = String.valueOf(dataMap.get("交易对手户名"));
-            if (StringUtils.isBlank(value) || "-".equals(value)||"null".equals(value)) {
+            if (StringUtils.isBlank(value) || "-".equals(value) || "null".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(String.valueOf(dataMapUser.get(account))));
                     }
                 }
             } else {
@@ -178,6 +195,7 @@ public class AntiSecurityTrade3 extends Ops implements Runnable {
     public void insertData2(MongoCursor<Document> cursor, String antiSecurityFileId) {
         Document origin;
         List<DataMap> needToSave = new ArrayList<>(1000);
+        Map<String, Object> dataMapUser = new HashMap<>();
         while (cursor.hasNext()) {
             origin = cursor.next();
             DataMap dataMap = new DataMap();
@@ -207,6 +225,11 @@ public class AntiSecurityTrade3 extends Ops implements Runnable {
                 dataMap.put("交易对手银行卡号", origin.getString("收款银行卡号"));
                 dataMap.put("交易对手银行名称", origin.getString("收款银行卡银行名称"));
                 dataMap.put("交易对手户名", origin.getString("收款方的商户名称"));
+                String jyztzh = String.valueOf(origin.getString("收款支付账号"));
+                String jyztzhhm = String.valueOf(origin.getString("收款方的商户名称"));
+                if (StringUtils.isNotBlank(jyztzh) && !"null".equals(jyztzh) && StringUtils.isNotBlank(jyztzhhm) && !"null".equals(jyztzhhm)) {
+                    dataMapUser.put(jyztzh, jyztzhhm);
+                }
 
             } else if ("入账".equals(flag)) {
                 dataMap.put("交易主体账号", origin.getString("收款支付账号"));
@@ -217,32 +240,42 @@ public class AntiSecurityTrade3 extends Ops implements Runnable {
                 dataMap.put("交易对手银行卡号", origin.getString("付款银行卡号"));
                 dataMap.put("交易对手银行名称", origin.getString("付款银行卡银行名称"));
                 dataMap.put("交易对手户名", "");
+                String jyztzh = String.valueOf(origin.getString("收款支付账号"));
+                String jyztzhhm = String.valueOf(origin.getString("收款方的商户名称"));
+                if (StringUtils.isNotBlank(jyztzh) && !"null".equals(jyztzh) && StringUtils.isNotBlank(jyztzhhm) && !"null".equals(jyztzhhm)) {
+                    dataMapUser.put(jyztzh, jyztzhhm);
+                }
             }
             dataMap.put("交易时间", DataUtils.transferDateToStr(origin.getString("交易时间")));
             String jyzthm = String.valueOf(dataMap.get("交易主体户名"));
-            if (StringUtils.isBlank(jyzthm) || "-".equals(jyzthm)||"null".equals(jyzthm)) {
+            if (StringUtils.isBlank(jyzthm) || "-".equals(jyzthm) || "null".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("交易主体户名", newName);
+                        dataMap.put("交易主体户名", PublicStatic.specialFormatStr(newName));
+                    } else {
+                        dataMap.put("交易主体户名", PublicStatic.specialFormatStr(String.valueOf(dataMapUser.get(account))));
+
                     }
                 }
             } else {
                 dataMap.put("交易主体户名", PublicStatic.specialFormatStr(jyzthm));
             }
             String value = String.valueOf(dataMap.get("交易对手户名"));
-            if (StringUtils.isBlank(value) || "-".equals(value)||"null".equals(value)) {
+            if (StringUtils.isBlank(value) || "-".equals(value) || "null".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("交易对手户名", newName);
+                        dataMap.put("交易对手户名", PublicStatic.specialFormatStr(newName));
+                    } else {
+                        dataMap.put("交易对手户名", PublicStatic.specialFormatStr(String.valueOf(dataMapUser.get(account))));
                     }
                 }
-            }else {
+            } else {
                 dataMap.put("交易对手户名", PublicStatic.specialFormatStr(value));
             }
             needToSave.add(dataMap);
@@ -259,6 +292,7 @@ public class AntiSecurityTrade3 extends Ops implements Runnable {
     public void insertData3(MongoCursor<Document> cursor, String antiSecurityFileId) {
         Document originDoc;
         List<DataMap> needToSave = new ArrayList<>(1000);
+        Map<String, Object> dataMapUser = new HashMap<>();
         while (cursor.hasNext()) {
             originDoc = cursor.next();
             DataMap dataMap = new DataMap();
@@ -271,7 +305,6 @@ public class AntiSecurityTrade3 extends Ops implements Runnable {
             dataMap.put("交易类型", originDoc.getString("交易类型"));
             dataMap.put("交易时间", originDoc.getString("交易时间"));
             dataMap.put("银行类型", originDoc.getString("支付类型"));
-            dataMap.put("交易主体的出入账标识", originDoc.getString("借贷类型"));
             dataMap.put("交易流水号", originDoc.getString("银行外部渠道交易流水号"));
             dataMap.put("备注", originDoc.getString("备注"));
             dataMap.put("币种", originDoc.getString("币种"));
@@ -283,6 +316,12 @@ public class AntiSecurityTrade3 extends Ops implements Runnable {
                 dataMap.put("交易主体银行名称", originDoc.getString("收款方银行卡所属行"));
                 dataMap.put("交易主体银行卡号", originDoc.getString("收款方银行卡号"));
                 dataMap.put("交易主体户名", originDoc.getString("收款方的商户名称"));
+                dataMap.put("交易主体的出入账标识", "入账");
+                String jyztzh = String.valueOf(originDoc.getString("查询账号"));
+                String jyztzhhm = String.valueOf(originDoc.getString("收款方的商户名称"));
+                if (StringUtils.isNotBlank(jyztzh) && !"null".equals(jyztzh) && StringUtils.isNotBlank(jyztzhhm) && !"null".equals(jyztzhhm)) {
+                    dataMapUser.put(jyztzh, jyztzhhm);
+                }
             }
             if (f1.equals("借")) {
                 dataMap.put("交易主体银行名称", originDoc.getString("付款方银行卡所属行"));
@@ -291,33 +330,44 @@ public class AntiSecurityTrade3 extends Ops implements Runnable {
                 dataMap.put("交易对手银行名称", originDoc.getString("收款方银行卡所属行"));
                 dataMap.put("交易对手银行卡号", originDoc.getString("收款方银行卡号"));
                 dataMap.put("交易对手户名", originDoc.getString("收款方的商户名称"));
+                dataMap.put("交易主体的出入账标识", "出账");
+                String jyztzh = String.valueOf(originDoc.getString("查询账号"));
+                String jyztzhhm = String.valueOf(originDoc.getString("收款方的商户名称"));
+                if (StringUtils.isNotBlank(jyztzh) && !"null".equals(jyztzh) && StringUtils.isNotBlank(jyztzhhm) && !"null".equals(jyztzhhm)) {
+                    dataMapUser.put(jyztzh, jyztzhhm);
+                }
             }
             String jyzthm = String.valueOf(dataMap.get("交易主体户名"));
-            if (StringUtils.isBlank(jyzthm) || "-".equals(jyzthm)||"null".equals(jyzthm)) {
+            if (StringUtils.isBlank(jyzthm) || "-".equals(jyzthm) || "null".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("交易主体户名", newName);
+                        dataMap.put("交易主体户名", PublicStatic.specialFormatStr(newName));
+                    } else {
+                        dataMap.put("交易主体户名", PublicStatic.specialFormatStr(String.valueOf(dataMapUser.get(account))));
                     }
                 }
             } else {
                 dataMap.put("交易主体户名", PublicStatic.specialFormatStr(jyzthm));
             }
             String value = String.valueOf(dataMap.get("交易对手户名"));
-            if (StringUtils.isBlank(value) || "-".equals(value)||"null".equals(value)) {
+            if (StringUtils.isBlank(value) || "-".equals(value) || "null".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("交易对手户名", newName);
+                        dataMap.put("交易对手户名", PublicStatic.specialFormatStr(newName));
+                    } else {
+                        dataMap.put("交易对手户名", PublicStatic.specialFormatStr(String.valueOf(dataMapUser.get(account))));
                     }
                 }
-            }else {
+            } else {
                 dataMap.put("交易对手户名", PublicStatic.specialFormatStr(value));
             }
+
             needToSave.add(dataMap);
             if (needToSave.size() >= 1000) {
                 saveLines(new ArrayList<>(needToSave), mongoTemplate);

+ 98 - 5
src/main/java/ieven/server/webapp/service/datastatic/DataStaticAnalysisTotal.java

@@ -66,6 +66,7 @@ public class DataStaticAnalysisTotal extends Ops implements Runnable {
             Document origin;
             List<DataMap> needToSave = new ArrayList<>(1000);
             List<DataMap> needToSaveall = new ArrayList<>(1000);
+            Map<String,Object>dataMapUser=new HashMap<>();
             while (cursor.hasNext()) {
                 try {
                     origin = cursor.next();
@@ -92,9 +93,26 @@ public class DataStaticAnalysisTotal extends Ops implements Runnable {
                         namesSet.add(alipayUsername);
                     }
                     //组装用户基本信息
-                    getDataAll(needToSaveall,origin,alipayIdsAll,newFileIdAll);
+                    getDataAll(needToSaveall,origin,alipayIdsAll,newFileIdAll,dataMapUser);
                     if (needToSaveall.size() >= 1000) {
-                        saveLines(new ArrayList<>(needToSaveall), mongoTemplate);
+                        List<DataMap>newDataList=new ArrayList<>();
+                        for (DataMap map : needToSaveall) {
+                            String zh = String.valueOf(map.get("账号"));
+                            String zhmc = String.valueOf(map.get("账号名称"));
+                            if(StringUtils.isBlank(zhmc)||"null".equals(zhmc)){
+                                String newZh = String.valueOf(dataMapUser.get(zh));
+                                if(StringUtils.isBlank(newZh)||"null".equals(newZh)){
+                                    continue;
+                                }else {
+                                    map.put("账号名称",newZh);
+                                    newDataList.add(map);
+                                }
+                            }else {
+                                newDataList.add(map);
+                            }
+
+                        }
+                        saveLines(new ArrayList<>(newDataList), mongoTemplate);
                         needToSaveall.clear();
                     }
 
@@ -121,6 +139,27 @@ public class DataStaticAnalysisTotal extends Ops implements Runnable {
                     saveLines(needToSave, mongoTemplate);
                 }
             }
+
+            if (CollectionUtils.isNotEmpty(needToSaveall)) {
+                List<DataMap>newDataList=new ArrayList<>();
+                for (DataMap map : needToSaveall) {
+                    String zh = String.valueOf(map.get("账号"));
+                    String zhmc = String.valueOf(map.get("账户名称"));
+                    if(StringUtils.isBlank(zhmc)||"null".equals(zhmc)){
+                        String newZh = String.valueOf(dataMapUser.get(zh));
+                        if(StringUtils.isBlank(newZh)||"null".equals(newZh)){
+                            continue;
+                        }else {
+                            map.put("账号名称",newZh);
+                            newDataList.add(map);
+                        }
+                    }else {
+                        newDataList.add(map);
+                    }
+
+                }
+                saveLines(newDataList, mongoTemplate);
+            }
         }
         latch.countDown();
         log.info("数据分析-主体信息汇总开始");
@@ -179,17 +218,35 @@ public class DataStaticAnalysisTotal extends Ops implements Runnable {
         dataMap.put("绑定手机号", bdsjh);
         dataMap.put("注册时间", zcsj);
     }
-    public void getDataAll(List<DataMap> needToSaveall,Document origin,Set<String> alipayIdsAll,String newFileIdAll){
+    public void getDataAll(List<DataMap> needToSaveall,Document origin,Set<String> alipayIdsAll,String newFileIdAll,Map<String,Object>userMap){
         String type = origin.getString("类型");
-        String account = origin.getString("交易主体账号");
-        String accountds = origin.getString("交易对手账号");
+        String account = String.valueOf(origin.getString("交易主体账号"));
+        String accounthm = String.valueOf(origin.getString("交易主体户名"));
+        String accountds = String.valueOf(origin.getString("交易对手账号"));
+        String accountdshm = String.valueOf(origin.getString("交易对手户名"));
+
         List<String>accountList=new ArrayList<>();
+        Map<String,Object>dataMaphm=new HashMap<>();
         if(StringUtils.isNotBlank(account)&&!"null".equals(account)){
             accountList.add(account);
+            dataMaphm.put(account,accounthm);
+            if(StringUtils.isNotBlank(account)&&!"null".equals(account)&&StringUtils.isNotBlank(accounthm)&&!"null".equals(accounthm)){
+                String s = String.valueOf(userMap.get(account));
+                if(StringUtils.isBlank(s)){
+                    userMap.put(account,accounthm);
+                }
+            }
         }
 
         if(StringUtils.isNotBlank(accountds)&&!"null".equals(accountds)){
             accountList.add(accountds);
+            dataMaphm.put(accountds,accountdshm);
+            if(StringUtils.isNotBlank(accountds)&&!"null".equals(accountds)&&StringUtils.isNotBlank(accountdshm)&&!"null".equals(accountdshm)){
+                String s = String.valueOf(userMap.get(accountds));
+                if(StringUtils.isBlank(s)){
+                    userMap.put(accountds,accountdshm);
+                }
+            }
         }
         if(CollectionUtils.isEmpty(accountList)){
             return;
@@ -218,6 +275,30 @@ public class DataStaticAnalysisTotal extends Ops implements Runnable {
                         alipayIdsAll.add(String.valueOf(dataMap.get("账号")));
                     }
                 }
+            }else {
+                for (String s : accountList) {
+                    if(!alipayIdsAll.contains(s)){
+                        DataMap newDataMap=new DataMap();
+                        newDataMap.put("fileId", newFileIdAll);
+                        newDataMap.put("证件号","");
+                        newDataMap.put("账户名称",StringUtils.isBlank(String.valueOf(dataMaphm.get(s)))||"null".equals(String.valueOf(dataMaphm.get(s)))?"":String.valueOf(dataMaphm.get(s)));
+                        newDataMap.put("账号",s);
+                        needToSaveall.add(newDataMap);
+                        alipayIdsAll.add(s);
+                    }
+                }
+            }
+        }else if("反诈".equals(type)){
+            for (String s : accountList) {
+                if(!alipayIdsAll.contains(s)){
+                    DataMap newDataMap=new DataMap();
+                    newDataMap.put("fileId", newFileIdAll);
+                    newDataMap.put("证件号","");
+                    newDataMap.put("账户名称",StringUtils.isBlank(String.valueOf(dataMaphm.get(s)))||"null".equals(String.valueOf(dataMaphm.get(s)))?"":String.valueOf(dataMaphm.get(s)));
+                    newDataMap.put("账号",s);
+                    needToSaveall.add(newDataMap);
+                    alipayIdsAll.add(s);
+                }
             }
         }
         else if("五联单".equals(type)){
@@ -244,6 +325,18 @@ public class DataStaticAnalysisTotal extends Ops implements Runnable {
                         alipayIdsAll.add(String.valueOf(dataMap.get("用户ID")));
                     }
                 }
+            }else {
+                for (String s : accountList) {
+                    if(!alipayIdsAll.contains(s)){
+                        DataMap newDataMap=new DataMap();
+                        newDataMap.put("fileId", newFileIdAll);
+                        newDataMap.put("证件号","");
+                        newDataMap.put("账户名称",StringUtils.isBlank(String.valueOf(dataMaphm.get(s)))||"null".equals(String.valueOf(dataMaphm.get(s)))?"":String.valueOf(dataMaphm.get(s)));
+                        newDataMap.put("账号",s);
+                        needToSaveall.add(newDataMap);
+                        alipayIdsAll.add(s);
+                    }
+                }
             }
         }
     }

+ 68 - 59
src/main/java/ieven/server/webapp/service/datastatic/DataStaticService.java

@@ -21,9 +21,7 @@ import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
 import java.util.*;
-import java.util.function.Function;
 import java.util.regex.Pattern;
-import java.util.stream.Collectors;
 
 @Slf4j
 @Service
@@ -111,12 +109,8 @@ public class DataStaticService extends Ops {
 
         //查询所有的主体信息汇总
         List<DataMap> dataMaps = this.mongoTemplate.find((new Query(
-                Criteria.where("modelId")
-                        .is(modelId)
-                        .and("fileId")
-                        .is(dateFileIdUser)
-                        .and("generated")
-                        .is(Boolean.TRUE))), DataMap.class);
+                Criteria.where("fileId")
+                        .is(dateFileIdUser))), DataMap.class);
         Map<String, List<DataMap>> personMap = new HashMap<>();
         Map<String, List<DataMap>> personzhmcMap = new HashMap<>();
         for (DataMap dataMap : dataMaps) {
@@ -143,8 +137,7 @@ public class DataStaticService extends Ops {
 
         Query query = new Query();
         //Pattern compile = Pattern.compile("^((?!" + "张"+ ").)*$",Pattern.CASE_INSENSITIVE);
-        query.addCriteria(Criteria.where("modelId").is(modelId));
-        query.addCriteria(Criteria.where("generated").is(Boolean.TRUE));
+        query.addCriteria(Criteria.where("fileId").is(dateFileId));
         query.addCriteria(new Criteria().andOperator(getQuery()));
         if (StringUtils.isNotBlank(staticModelInput.getJyztzh())) {
             query.addCriteria(Criteria.where("交易主体账号").in(Objects.requireNonNull(SplitCharacterEnum.splitByCharacter(staticModelInput.getJyztzh()))));
@@ -159,8 +152,14 @@ public class DataStaticService extends Ops {
             query.addCriteria(Criteria.where("交易对手户名").in(Objects.requireNonNull(SplitCharacterEnum.splitByCharacter(staticModelInput.getJyzthmds()))));
         }
 
-        if (StringUtils.isNotBlank(staticModelInput.getJysj())) {
-            query.addCriteria(Criteria.where("交易时间").in(Objects.requireNonNull(SplitCharacterEnum.splitByCharacter(staticModelInput.getJysj()))));
+        if (StringUtils.isNotBlank(staticModelInput.getJysjStart())&&StringUtils.isBlank(staticModelInput.getJysjEnd())) {
+            query.addCriteria(Criteria.where("交易时间").gte(staticModelInput.getJysjStart()));
+        }
+        if (StringUtils.isNotBlank(staticModelInput.getJysjEnd())&&StringUtils.isBlank(staticModelInput.getJysjStart())) {
+            query.addCriteria(Criteria.where("交易时间").lte(staticModelInput.getJysjEnd()));
+        }
+        if (StringUtils.isNotBlank(staticModelInput.getJysjEnd())&&StringUtils.isNotBlank(staticModelInput.getJysjStart())) {
+            query.addCriteria(Criteria.where("交易时间").gte(staticModelInput.getJysjStart()).lte(staticModelInput.getJysjEnd()));
         }
 
         Map<String, Object> dataMap = new HashMap<>();
@@ -175,8 +174,11 @@ public class DataStaticService extends Ops {
         for (DataMap map : dataMapDetail) {
             String jythm = String.valueOf(map.get("交易主体户名"));
             String jydszh = String.valueOf(map.get("交易对手账号"));
+            if (StringUtils.isBlank(jythm) || "null".equals(jythm)) {
+                continue;
+            }
             String jdlx = String.valueOf(map.get("借贷类型"));
-            if (!jdlx.equals("借") || !jdlx.equals("贷")) {
+            if (!jdlx.equals("借") && !jdlx.equals("贷")) {
                 continue;
             }
 
@@ -184,24 +186,28 @@ public class DataStaticService extends Ops {
             if (!userList.contains(jythm)) {
                 Map<String, Object> userMap = new HashMap<>();
                 List<DataMap> dataMaps1 = personzhmcMap.get(jythm);
-                userMap.put("id", dataMaps1.get(0).get("_id"));
-                userMap.put("name", dataMaps1.get(0).get("账户名称"));
-                userMap.put("relationPersons", dataMaps1);
-                userMap.put("type", "主");
-                partyDataList.add(userMap);
-                userList.add(jythm);
+                if (CollectionUtils.isNotEmpty(dataMaps1)) {
+                    userMap.put("id", String.valueOf(dataMaps1.get(0).get("_id")));
+                    userMap.put("name", dataMaps1.get(0).get("账户名称"));
+                    userMap.put("relationPersons", dataMaps1);
+                    userMap.put("type", "主");
+                    partyDataList.add(userMap);
+                    userList.add(jythm);
+                }
             }
 
             if (!usermcList.contains(jydszh)) {
                 Map<String, Object> userMap = new HashMap<>();
                 List<DataMap> dataMaps1 = personMap.get(jydszh);
-                String cid = String.valueOf(dataMaps1.get(0).get("_id"));
-                userMap.put("id", cid);
-                userMap.put("name", dataMaps1.get(0).get("账户"));
-                userMap.put("relationPersons", dataMaps1);
-                userMap.put("type", "从");
-                partyDataList.add(userMap);
-                usermcList.add(jydszh);
+                if (CollectionUtils.isNotEmpty(dataMaps1)) {
+                    String cid = String.valueOf(dataMaps1.get(0).get("_id"));
+                    userMap.put("id", cid);
+                    userMap.put("name", dataMaps1.get(0).get("账号"));
+                    userMap.put("relationPersons", dataMaps1);
+                    userMap.put("type", "从");
+                    partyDataList.add(userMap);
+                    usermcList.add(jydszh);
+                }
             }
             //增加线上数据
             Map<String, Object> total = new HashMap<>();
@@ -212,43 +218,43 @@ public class DataStaticService extends Ops {
             String userAllId = "";
             if (jdlx.equals("借")) {
                 List<DataMap> dataMaps1 = personzhmcMap.get(jythm);
-                String one = String.valueOf(dataMaps1.get(0).get("_id"));
-                party1.put("id", one);
-                party1.put("name", dataMaps1.get(0).get("账户名称"));
-
                 List<DataMap> dataMaps2 = personMap.get(jydszh);
-                String two = String.valueOf(dataMaps2.get(0).get("_id"));
-                party2.put("id", two);
-                party2.put("name", dataMaps2.get(0).get("账号"));
-                userAllId = one + "-" + two;
+                if(CollectionUtils.isNotEmpty(dataMaps1)&&CollectionUtils.isNotEmpty(dataMaps2)){
+                    String one = String.valueOf(dataMaps1.get(0).get("_id"));
+                    party1.put("id", one);
+                    party1.put("name", dataMaps1.get(0).get("账户名称"));
+
+                    String two = String.valueOf(dataMaps2.get(0).get("_id"));
+                    party2.put("id", two);
+                    party2.put("name", dataMaps2.get(0).get("账号"));
+                    userAllId = one + "-" + two;
+                }
 
             } else if (jdlx.equals("贷")) {
                 List<DataMap> dataMaps1 = personzhmcMap.get(jythm);
-                String two = String.valueOf(dataMaps1.get(0).get("_id"));
-                party2.put("id", dataMaps1.get(0).get("_id"));
-                party2.put("name", dataMaps1.get(0).get("账户名称"));
-
                 List<DataMap> dataMaps2 = personMap.get(jydszh);
-                String one = String.valueOf(dataMaps2.get(0).get("_id"));
-                party1.put("id", dataMaps2.get(0).get("_id"));
-                party1.put("name", dataMaps2.get(0).get("账号"));
-                userAllId = one + "-" + two;
+                if(CollectionUtils.isNotEmpty(dataMaps1)&&CollectionUtils.isNotEmpty(dataMaps2)){
+                    String two = String.valueOf(dataMaps1.get(0).get("_id"));
+                    party2.put("id", dataMaps1.get(0).get("_id"));
+                    party2.put("name", dataMaps1.get(0).get("账户名称"));
+
+                    String one = String.valueOf(dataMaps2.get(0).get("_id"));
+                    party1.put("id", dataMaps2.get(0).get("_id"));
+                    party1.put("name", dataMaps2.get(0).get("账号"));
+                    userAllId = one + "-" + two;
+                }
             }
             if (!userAllList.contains(userAllId)) {
                 //查询所有的数据
                 //查询所有的主体信息汇总
                 BigDecimal sum = BigDecimal.ZERO;
                 List<DataMap> dataDetailList = this.mongoTemplate.find((new Query(
-                        Criteria.where("modelId")
-                                .is(modelId)
-                                .and("fileId")
+                        Criteria.where("fileId")
                                 .is(dateFileId)
                                 .and("交易主体户名")
                                 .is(jythm)
                                 .and("交易对手账号")
-                                .is(jydszh)
-                                .and("generated")
-                                .is(Boolean.TRUE))), DataMap.class);
+                                .is(jydszh))), DataMap.class);
                 for (DataMap dataMap1 : dataDetailList) {
                     String jyje = String.valueOf(dataMap1.get("交易金额"));
                     sum.add(new BigDecimal(jyje));
@@ -266,25 +272,28 @@ public class DataStaticService extends Ops {
         }
         dataMap.put("partyData", partyDataList);
         dataMap.put("relationshipGraph", relationshipGraphList);
-
         Mapped mapped = Mapped.OK();
-        mapped.put("result", dataMaps);
+        if(partyDataList.size()>1000){
+            return Mapped.ERROR("节点超过300个,请重新查询");
+        }
+
+        mapped.put("result", dataMap);
         return mapped;
     }
 
-    public List<Criteria>getQuery(){
-        List<Criteria>dataList=new ArrayList<>();
-        List<String>filedsList=Lists.newArrayList("交易对手账号","交易对手户名");
-        List<String>noQueryData=Lists.newArrayList(
-                "公司","慈善","红十字","店","工作室","商行","中心","经营部","水果行","餐厅","超市","市场","商贸","西饼屋","科技","酒楼","停车场","ETC","etc","服务","批发",
-                "渔场","浴场","设计","物业","咨询","批发","合作社","工厂","鞋厂","动物园","植物园","土黑猪","猫狗","学校","学院","大学","棋牌","娱乐","袜厂","制品厂","加油站",
-                "体育馆","研究所","保健院","龙虾","羊蝎子","足道","公安局","税务局","法院","菜馆","棋牌","水产行","海鲜行","公司","服饰","服装","基金","宠物","车行","保险","理财",
-                "支付宝","财付通","apple","烟酒","经营者","商户"
+    public List<Criteria> getQuery() {
+        List<Criteria> dataList = new ArrayList<>();
+        List<String> filedsList = Lists.newArrayList("交易对手账号", "交易对手户名");
+        List<String> noQueryData = Lists.newArrayList(
+                "公司", "慈善", "红十字", "店", "工作室", "商行", "中心", "经营部", "水果行", "餐厅", "超市", "市场", "商贸", "西饼屋", "科技", "酒楼", "停车场", "ETC", "etc", "服务", "批发",
+                "渔场", "浴场", "设计", "物业", "咨询", "批发", "合作社", "工厂", "鞋厂", "动物园", "植物园", "土黑猪", "猫狗", "学校", "学院", "大学", "棋牌", "娱乐", "袜厂", "制品厂", "加油站",
+                "体育馆", "研究所", "保健院", "龙虾", "羊蝎子", "足道", "公安局", "税务局", "法院", "菜馆", "棋牌", "水产行", "海鲜行", "公司", "服饰", "服装", "基金", "宠物", "车行", "保险", "理财",
+                "支付宝", "财付通", "apple", "烟酒", "经营者", "商户"
         );
         for (String s : filedsList) {
             for (String noQueryDatum : noQueryData) {
                 Criteria newCri = new Criteria(s);
-                Pattern compile = Pattern.compile("^((?!" + noQueryDatum+ ").)*$",Pattern.CASE_INSENSITIVE);
+                Pattern compile = Pattern.compile("^((?!" + noQueryDatum + ").)*$", Pattern.CASE_INSENSITIVE);
                 newCri.regex(compile);
                 dataList.add(newCri);
             }

+ 1 - 0
src/main/java/ieven/server/webapp/util/excel/ExcelXlsReader.java

@@ -7,6 +7,7 @@ import org.apache.poi.hssf.eventusermodel.dummyrecord.LastCellOfRowDummyRecord;
 import org.apache.poi.hssf.eventusermodel.dummyrecord.MissingCellDummyRecord;
 import org.apache.poi.hssf.model.HSSFFormulaParser;
 import org.apache.poi.hssf.record.*;
+import org.apache.poi.hssf.record.Record;
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 import org.apache.poi.poifs.filesystem.POIFSFileSystem;
 

+ 3 - 3
src/main/resources/application.properties

@@ -1,7 +1,7 @@
 server.servlet.context-path=/
 spring.application.name=webapp
 #spring.data.mongodb.uri=mongodb://admin:123456@localhost:27017/ieven
-spring.data.mongodb.uri=mongodb://localhost:28000/user_model
+spring.data.mongodb.uri=mongodb://localhost:27017/user_model
 #spring.data.mongodb.database=idata
 #spring.data.mongodb.host=localhost
 #spring.data.mongodb.port=27017
@@ -13,7 +13,7 @@ spring.servlet.multipart.max-request-size=1024MB
 logging.level.org.springframework.data.mongodb.core=DEBUG
 spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
 spring.jackson.time-zone=GMT+8
-spring.data.fileUploadPath=D:\\tempFiles\\createModel
+spring.data.fileUploadPath=E:\\tempFiles\\createModel
 headers.anti-cheat-origin=\u5E8F\u53F7,\u652F\u4ED8\u8BA2\u5355\u53F7,\u4EA4\u6613\u7C7B\u578B,\u652F\u4ED8\u7C7B\u578B,\u4EA4\u6613\u4E3B\u4F53\u7684\u51FA\u5165\u8D26\u6807\u8BC6,\u4EA4\u6613\u65F6\u95F4,\u5E01\u79CD,\u4EA4\u6613\u91D1\u989D,\u4EA4\u6613\u6D41\u6C34\u53F7,\u4EA4\u6613\u4F59\u989D,\
   \u6536\u6B3E\u65B9\u94F6\u884C\u5361\u6240\u5C5E\u94F6\u884C\u673A\u6784\u7F16\u7801,\u6536\u6B3E\u65B9\u94F6\u884C\u5361\u6240\u5C5E\u94F6\u884C\u540D\u79F0,\u6536\u6B3E\u65B9\u94F6\u884C\u5361\u6240\u5C5E\u94F6\u884C\u5361\u53F7,\u6536\u6B3E\u65B9\u7684\u652F\u4ED8\u5E10\u53F7,\u6D88\u8D39pos\u673A\u7F16\u53F7,\u6536\u6B3E\u65B9\u7684\u5546\u6237\u53F7,\
   \u6536\u6B3E\u65B9\u7684\u5546\u6237\u540D\u79F0,\u4ED8\u6B3E\u65B9\u94F6\u884C\u5361\u6240\u5C5E\u94F6\u884C\u673A\u6784\u7F16\u7801,\u4ED8\u6B3E\u65B9\u94F6\u884C\u5361\u6240\u5C5E\u94F6\u884C\u540D\u79F0,\u4ED8\u6B3E\u65B9\u94F6\u884C\u5361\u6240\u5C5E\u94F6\u884C\u5361\u53F7,\u4ED8\u6B3E\u65B9\u7684\u652F\u4ED8\u5E10\u53F7,\u4EA4\u6613\u8BBE\u5907\u7C7B\u578B,\
@@ -45,6 +45,6 @@ headers.anti-security-trade=\u5e8f\u53f7,\u67e5\u8be2\u8d26\u53f7,\u652f\u4ed8\u
 headers.static-user-output=\u4ea4\u6613\u4e3b\u4f53\u8d26\u53f7,\u4ea4\u6613\u4e3b\u4f53\u6237\u540d,\u8bc1\u4ef6\u53f7\u7801,\u7ed1\u5b9a\u94f6\u884c\u5361\u53f7,\u5f00\u6237\u94f6\u884c\u540d\u79f0,\u7ed1\u5b9a\u624b\u673a\u53f7,\u6ce8\u518c\u65f6\u95f4
 headers.economic-order=\u5e8f\u53f7,\u67e5\u8be2\u8d26\u53f7,\u652f\u4ed8\u673a\u6784\u5185\u90e8\u8ba2\u5355\u53f7,\u4ed8\u6b3e\u65b9\u652f\u4ed8\u5e10\u53f7,\u4ed8\u6b3e\u65b9\u94f6\u884c\u5361\u6240\u5c5e\u884c,\u4ed8\u6b3e\u65b9\u94f6\u884c\u5361\u53f7,\u4ea4\u6613\u91d1\u989d,\u4ea4\u6613\u4f59\u989d,\u6536\u6b3e\u65b9\u652f\u4ed8\u5e10\u53f7,\u6536\u6b3e\u65b9\u94f6\u884c\u5361\u6240\u5c5e\u884c,\u6536\u6b3e\u65b9\u94f6\u884c\u5361\u53f7,\u4ea4\u6613\u7c7b\u578b,\u4ea4\u6613\u65f6\u95f4,\u652f\u4ed8\u7c7b\u578b,\u501f\u8d37\u6807\u5fd7,\u5e01\u79cd,\u6d88\u8d39POS\u673a\u7f16\u53f7,\u6536\u6b3e\u65b9\u7684\u5546\u6237\u53f7,\u6536\u6b3e\u65b9\u7684\u5546\u6237\u540d\u79f0,\u4ea4\u6613\u8bbe\u5907\u53f7,\u94f6\u884c\u5916\u90e8\u6e20\u9053\u4ea4\u6613\u6d41\u6c34\u53f7,\u5907\u6ce8
 headers.economic-order-output=\u5e8f\u53f7,\u67e5\u8be2\u8d26\u53f7,\u652f\u4ed8\u673a\u6784\u5185\u90e8\u8ba2\u5355\u53f7,\u4ed8\u6b3e\u65b9\u652f\u4ed8\u5e10\u53f7,\u4ed8\u6b3e\u65b9\u94f6\u884c\u5361\u6240\u5c5e\u884c,\u4ed8\u6b3e\u65b9\u94f6\u884c\u5361\u53f7,\u4ea4\u6613\u91d1\u989d,\u4ea4\u6613\u4f59\u989d,\u6536\u6b3e\u65b9\u652f\u4ed8\u5e10\u53f7,\u6536\u6b3e\u65b9\u94f6\u884c\u5361\u6240\u5c5e\u884c,\u6536\u6b3e\u65b9\u94f6\u884c\u5361\u53f7,\u4ea4\u6613\u7c7b\u578b,\u4ea4\u6613\u65f6\u95f4,\u652f\u4ed8\u7c7b\u578b,\u501f\u8d37\u6807\u5fd7,\u5e01\u79cd,\u6d88\u8d39POS\u673a\u7f16\u53f7,\u6536\u6b3e\u65b9\u7684\u5546\u6237\u53f7,\u6536\u6b3e\u65b9\u7684\u5546\u6237\u540d\u79f0,\u4ea4\u6613\u8bbe\u5907\u53f7,\u94f6\u884c\u5916\u90e8\u6e20\u9053\u4ea4\u6613\u6d41\u6c34\u53f7,\u5907\u6ce8
-headers.static-user-all-output=
+headers.static-user-all-output=\u8bc1\u4ef6\u53f7,\u8d26\u6237\u540d\u79f0,\u8d26\u53f7
 #\u8F6C\u8D26\u5206\u6790-\u603B\u91D1\u989Ddesc
 #\u8D26\u6237\u900F\u89C6-\u4EA4\u6613\u603B\u989Ddesc