Преглед на файлове

增加主体网络关系图

hankunkun преди 10 месеца
родител
ревизия
f0e17ead32

+ 3 - 29
pom.xml

@@ -54,29 +54,6 @@
             <artifactId>poi-ooxml</artifactId>
             <version>4.1.2</version>
         </dependency>
-    <!--    <dependency>
-            <groupId>org.apache.poi</groupId>
-            <artifactId>ooxml-schemas</artifactId>
-            <version>1.1</version>
-            <type>pom</type>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.poi</groupId>
-            <artifactId>poi-ooxml</artifactId>
-            <version>5.2.5</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.poi</groupId>
-            <artifactId>poi</artifactId>
-            <version>5.2.5</version>
-        </dependency>-->
-
-        <dependency>
-            <groupId>dom4j</groupId>
-            <artifactId>dom4j</artifactId>
-            <version>1.6.1</version>
-        </dependency>
         <!-- <dependency>
              <groupId>org.apache.poi</groupId>
              <artifactId>poi</artifactId>
@@ -114,7 +91,7 @@
         <dependency>
             <groupId>cn.hutool</groupId>
             <artifactId>hutool-all</artifactId>
-            <version>5.6.6</version>
+            <version>5.6.5</version>
         </dependency>
 
         <!-- cpdetector 检测文件编码格式 -->
@@ -160,11 +137,6 @@
             <artifactId>guava</artifactId>
             <version>33.2.0-jre</version>
         </dependency>
-        <dependency>
-            <groupId>com.google.guava</groupId>
-            <artifactId>guava</artifactId>
-            <version>33.2.0-jre</version>
-        </dependency>
     </dependencies>
 
     <build>
@@ -217,4 +189,6 @@
             </snapshots>
         </pluginRepository>
     </pluginRepositories>
+
+
 </project>

+ 6 - 0
src/main/java/ieven/server/webapp/domain/data/StaticModelInput.java

@@ -12,15 +12,21 @@ public class StaticModelInput {
 
     private String modelId;
 
+    //交易主体账号
     private String jyztzh;
 
+    //交易主体户名
     private String jyzthm;
 
+    //交易对手账号
     private String jyztzhds;
 
+    //交易对手户名
     private String jyzthmds;
 
+    //交易开始时间
     private String jysjStart;
 
+    //交易结束时间
     private String jysjEnd;
 }

+ 3 - 0
src/main/java/ieven/server/webapp/domain/file/FileService.java

@@ -329,6 +329,9 @@ public class FileService {
 
             for (LogicalFile logicalFile : list) {
                 if (logicalFile.getFilename().equals(s)) {
+                    if("数据分析-共同关系网络".equals(logicalFile.getFilename())){
+                        logicalFile.setFileType("map");
+                    }
                     child.add(logicalFile);
                     break;
                 }

+ 1 - 0
src/main/java/ieven/server/webapp/domain/file/LogicalFile.java

@@ -20,4 +20,5 @@ public class LogicalFile {
   private String uploadDate;
   private String matchType; // 匹配到类型
   private String modelName;
+  private String fileType;
 }

+ 95 - 90
src/main/java/ieven/server/webapp/service/datastatic/DataStaticAnalysisTotal.java

@@ -3,7 +3,6 @@ package ieven.server.webapp.service.datastatic;
 import com.mongodb.client.MongoCursor;
 import ieven.server.webapp.domain.alipay.AlipayHeaders;
 import ieven.server.webapp.domain.alipay.HeaderProperties;
-import ieven.server.webapp.domain.data.AccountVO;
 import ieven.server.webapp.domain.data.DataMap;
 import ieven.server.webapp.domain.file.FileService;
 import ieven.server.webapp.domain.tenpay.TenpayHeaders;
@@ -16,7 +15,6 @@ import org.springframework.data.mongodb.core.MongoTemplate;
 import org.springframework.data.mongodb.core.query.Criteria;
 import org.springframework.data.mongodb.core.query.Query;
 
-import java.math.BigDecimal;
 import java.util.*;
 import java.util.concurrent.CountDownLatch;
 
@@ -52,12 +50,15 @@ public class DataStaticAnalysisTotal extends Ops implements Runnable {
         if (StringUtils.isNotBlank(dateFileId)) {
             MongoCursor<Document> cursor = getCursor(dateFileId, mongoTemplate);
             if (cursor.hasNext()) {
-                newFileId =createLogicAndDeleteOld("数据分析-主体信息汇总", modelId,headerProperties.getStaticUserOutput(),mongoTemplate, fileService);
+                newFileId = createLogicAndDeleteOld("数据分析-主体信息汇总", modelId, headerProperties.getStaticUserOutput(), mongoTemplate, fileService);
                 insertFromTo(dateFileId, newFileId, modelId, mongoTemplate);
 
                 //维护一张人员信息基础表,用于模型计算
-                newFileIdAll =createLogicAndDeleteOld("数据分析-所有主体信息汇总", modelId,headerProperties.getStaticUserAllOutput(),mongoTemplate, fileService);
+                newFileIdAll = createLogicAndDeleteOld("数据分析-所有主体信息汇总", modelId, headerProperties.getStaticUserAllOutput(), mongoTemplate, fileService);
                 insertFromTo(dateFileId, newFileIdAll, modelId, mongoTemplate);
+
+                String newFileIdAll1 = createLogicAndDeleteOld("数据分析-共同关系网络", modelId, headerProperties.getStaticUserAllOutput(), mongoTemplate, fileService);
+                insertFromTo(dateFileId, newFileIdAll1, modelId, mongoTemplate);
             }
             Set<String> alipayIds = new HashSet<>();
             Set<String> alipayIdsAll = new HashSet<>();
@@ -66,23 +67,23 @@ 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<>();
+            Map<String, Object> dataMapUser = new HashMap<>();
             while (cursor.hasNext()) {
                 try {
                     origin = cursor.next();
                     String alipayId = origin.getString("交易主体账号");
                     DataMap dataMap;
-                    if (StringUtils.isNotBlank(alipayId)&&!"null".equals(alipayId)&&!alipayIds.contains(alipayId)) {
+                    if (StringUtils.isNotBlank(alipayId) && !"null".equals(alipayId) && !alipayIds.contains(alipayId)) {
                         alipayIds.add(alipayId);
                         dataMap = new DataMap();
                         dataMap.put("fileId", newFileId);
                         dataMap.put("交易主体账号", alipayId);
                         dataMap.put("交易主体户名", "");
-                        getData(dataMap,origin);
+                        getData(dataMap, origin);
                         idToData.put(alipayId, dataMap);
                     }
                     String alipayUsername = origin.getString("交易主体户名");
-                    if (StringUtils.isNotBlank(alipayUsername)&&!"null".equals(alipayUsername)) {
+                    if (StringUtils.isNotBlank(alipayUsername) && !"null".equals(alipayUsername)) {
                         Set<String> namesSet;
                         if (idToNames.containsKey(alipayId)) {
                             namesSet = idToNames.get(alipayId);
@@ -93,26 +94,28 @@ public class DataStaticAnalysisTotal extends Ops implements Runnable {
                         namesSet.add(alipayUsername);
                     }
                     //组装用户基本信息
-                    getDataAll(needToSaveall,origin,alipayIdsAll,newFileIdAll,dataMapUser);
+                    getDataAll(needToSaveall, origin, alipayIdsAll, newFileIdAll, dataMapUser);
                     if (needToSaveall.size() >= 1000) {
-                        List<DataMap>newDataList=new ArrayList<>();
+                        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)){
+                            if (StringUtils.isBlank(zhmc) || "null".equals(zhmc)) {
                                 String newZh = String.valueOf(dataMapUser.get(zh));
-                                if(StringUtils.isBlank(newZh)||"null".equals(newZh)){
+                                if (StringUtils.isBlank(newZh) || "null".equals(newZh)) {
                                     continue;
-                                }else {
-                                    map.put("账号名称",newZh);
+                                } else {
+                                    map.put("账号名称", newZh);
                                     newDataList.add(map);
                                 }
-                            }else {
+                            } else {
                                 newDataList.add(map);
                             }
 
                         }
-                        saveLines(newDataList, mongoTemplate);
+                        if (CollectionUtils.isNotEmpty(newDataList)) {
+                            saveLines(newDataList, mongoTemplate);
+                        }
                         needToSaveall.clear();
                     }
 
@@ -141,39 +144,41 @@ public class DataStaticAnalysisTotal extends Ops implements Runnable {
             }
 
             if (CollectionUtils.isNotEmpty(needToSaveall)) {
-                List<DataMap>newDataList=new ArrayList<>();
+                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)){
+                    if (StringUtils.isBlank(zhmc) || "null".equals(zhmc)) {
                         String newZh = String.valueOf(dataMapUser.get(zh));
-                        if(StringUtils.isBlank(newZh)||"null".equals(newZh)){
+                        if (StringUtils.isBlank(newZh) || "null".equals(newZh)) {
                             continue;
-                        }else {
-                            map.put("账号名称",newZh);
+                        } else {
+                            map.put("账号名称", newZh);
                             newDataList.add(map);
                         }
-                    }else {
+                    } else {
                         newDataList.add(map);
                     }
 
                 }
-                saveLines(newDataList, mongoTemplate);
+                if (CollectionUtils.isNotEmpty(newDataList)) {
+                    saveLines(newDataList, mongoTemplate);
+                }
             }
         }
         latch.countDown();
         log.info("数据分析-主体信息汇总开始");
     }
 
-    public void getData(DataMap dataMap,Document origin){
+    public void getData(DataMap dataMap, Document origin) {
         String type = origin.getString("类型");
         String account = origin.getString("交易主体账号");
-        String zjha="";
-        String bdyhkh="";
-        String khyhmc="";
-        String bdsjh="";
-        String zcsj="";
-        if("财付通".equals(type)){
+        String zjha = "";
+        String bdyhkh = "";
+        String khyhmc = "";
+        String bdsjh = "";
+        String zcsj = "";
+        if ("财付通".equals(type)) {
             //账户状态", "账号", "注册姓名", "注册时间", "注册身份证号", "绑定手机", "绑定状态", "开户行信息", "银行账号"
             String dateFileId2 = getFileId(TenpayHeaders.getGeneratedName(3), modelId, mongoTemplate);
             List<DataMap> dataMaps = this.mongoTemplate.find((new Query(
@@ -185,14 +190,14 @@ public class DataStaticAnalysisTotal extends Ops implements Runnable {
                             .is(account)
                             .and("generated")
                             .is(Boolean.TRUE))), DataMap.class);
-            if(CollectionUtils.isNotEmpty(dataMaps)){
-                zjha=String.valueOf(dataMaps.get(0).get("注册身份证号"));
-                bdyhkh=String.valueOf(dataMaps.get(0).get("银行账号"));
-                khyhmc=String.valueOf(dataMaps.get(0).get("开户行信息"));
-                bdsjh=String.valueOf(dataMaps.get(0).get("绑定手机"));
-                zcsj=String.valueOf(dataMaps.get(0).get("注册时间"));
+            if (CollectionUtils.isNotEmpty(dataMaps)) {
+                zjha = String.valueOf(dataMaps.get(0).get("注册身份证号"));
+                bdyhkh = String.valueOf(dataMaps.get(0).get("银行账号"));
+                khyhmc = String.valueOf(dataMaps.get(0).get("开户行信息"));
+                bdsjh = String.valueOf(dataMaps.get(0).get("绑定手机"));
+                zcsj = String.valueOf(dataMaps.get(0).get("注册时间"));
             }
-        }else if("五联单".equals(type)){
+        } else if ("五联单".equals(type)) {
 //       "用户ID", "登录邮箱", "登录手机", "账户名称", "证件类型", "证件号", "可用余额", "注册时间", "绑定手机", "绑定银行卡", "对应的协查数据"));
             String dateFileId2 = getFileId(AlipayHeaders.getGeneratedName(2), modelId, mongoTemplate);
             List<DataMap> dataMaps = this.mongoTemplate.find((new Query(
@@ -204,12 +209,12 @@ public class DataStaticAnalysisTotal extends Ops implements Runnable {
                             .is(account)
                             .and("generated")
                             .is(Boolean.TRUE))), DataMap.class);
-            if(CollectionUtils.isNotEmpty(dataMaps)){
-                zjha=String.valueOf(dataMaps.get(0).get("证件号"));
-                bdyhkh=String.valueOf(dataMaps.get(0).get("绑定银行卡"));
-                khyhmc=String.valueOf(dataMaps.get(0).get("账户名称"));
-                bdsjh=String.valueOf(dataMaps.get(0).get("登录手机"));
-                zcsj=String.valueOf(dataMaps.get(0).get("注册时间"));
+            if (CollectionUtils.isNotEmpty(dataMaps)) {
+                zjha = String.valueOf(dataMaps.get(0).get("证件号"));
+                bdyhkh = String.valueOf(dataMaps.get(0).get("绑定银行卡"));
+                khyhmc = String.valueOf(dataMaps.get(0).get("账户名称"));
+                bdsjh = String.valueOf(dataMaps.get(0).get("登录手机"));
+                zcsj = String.valueOf(dataMaps.get(0).get("注册时间"));
             }
         }
         dataMap.put("证件号码", zjha);
@@ -218,40 +223,41 @@ 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,Map<String,Object>userMap){
+
+    public void getDataAll(List<DataMap> needToSaveall, Document origin, Set<String> alipayIdsAll, String newFileIdAll, Map<String, Object> userMap) {
         String type = 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)){
+        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)){
+            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.isBlank(s)) {
+                    userMap.put(account, accounthm);
                 }
             }
         }
 
-        if(StringUtils.isNotBlank(accountds)&&!"null".equals(accountds)){
+        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)){
+            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 (StringUtils.isBlank(s)) {
+                    userMap.put(accountds, accountdshm);
                 }
             }
         }
-        if(CollectionUtils.isEmpty(accountList)){
+        if (CollectionUtils.isEmpty(accountList)) {
             return;
         }
-        if("财付通".equals(type)){
+        if ("财付通".equals(type)) {
             //账户状态", "账号", "注册姓名", "注册时间", "注册身份证号", "绑定手机", "绑定状态", "开户行信息", "银行账号"
             String dateFileId2 = getFileId(TenpayHeaders.getGeneratedName(3), modelId, mongoTemplate);
             List<DataMap> dataMaps = this.mongoTemplate.find((new Query(
@@ -263,45 +269,44 @@ public class DataStaticAnalysisTotal extends Ops implements Runnable {
                             .in(accountList)
                             .and("generated")
                             .is(Boolean.TRUE))), DataMap.class);
-            if(CollectionUtils.isNotEmpty(dataMaps)){
+            if (CollectionUtils.isNotEmpty(dataMaps)) {
                 for (DataMap dataMap : dataMaps) {
-                    if(!alipayIdsAll.contains(String.valueOf(dataMap.get("账号")))){
-                        DataMap newDataMap=new DataMap();
+                    if (!alipayIdsAll.contains(String.valueOf(dataMap.get("账号")))) {
+                        DataMap newDataMap = new DataMap();
                         newDataMap.put("fileId", newFileIdAll);
-                        newDataMap.put("证件号",String.valueOf(dataMap.get("注册身份证号")));
-                        newDataMap.put("账户名称",String.valueOf(dataMap.get("注册姓名")));
-                        newDataMap.put("账号",String.valueOf(dataMap.get("账号")));
+                        newDataMap.put("证件号", String.valueOf(dataMap.get("注册身份证号")));
+                        newDataMap.put("账户名称", String.valueOf(dataMap.get("注册姓名")));
+                        newDataMap.put("账号", String.valueOf(dataMap.get("账号")));
                         needToSaveall.add(newDataMap);
                         alipayIdsAll.add(String.valueOf(dataMap.get("账号")));
                     }
                 }
-            }else {
+            } else {
                 for (String s : accountList) {
-                    if(!alipayIdsAll.contains(s)){
-                        DataMap newDataMap=new DataMap();
+                    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);
+                        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)){
+        } else if ("反诈".equals(type)) {
             for (String s : accountList) {
-                if(!alipayIdsAll.contains(s)){
-                    DataMap newDataMap=new DataMap();
+                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);
+                    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)){
+        } else if ("五联单".equals(type)) {
 //       "用户ID", "登录邮箱", "登录手机", "账户名称", "证件类型", "证件号", "可用余额", "注册时间", "绑定手机", "绑定银行卡", "对应的协查数据"));
             String dateFileId2 = getFileId(AlipayHeaders.getGeneratedName(2), modelId, mongoTemplate);
             List<DataMap> dataMaps = this.mongoTemplate.find((new Query(
@@ -313,26 +318,26 @@ public class DataStaticAnalysisTotal extends Ops implements Runnable {
                             .in(accountList)
                             .and("generated")
                             .is(Boolean.TRUE))), DataMap.class);
-            if(CollectionUtils.isNotEmpty(dataMaps)){
+            if (CollectionUtils.isNotEmpty(dataMaps)) {
                 for (DataMap dataMap : dataMaps) {
-                    if(!alipayIdsAll.contains(String.valueOf(dataMap.get("用户ID")))){
-                        DataMap newDataMap=new DataMap();
+                    if (!alipayIdsAll.contains(String.valueOf(dataMap.get("用户ID")))) {
+                        DataMap newDataMap = new DataMap();
                         newDataMap.put("fileId", newFileIdAll);
-                        newDataMap.put("证件号",String.valueOf(dataMap.get("证件号")));
-                        newDataMap.put("账户名称",String.valueOf(dataMap.get("账户名称")));
-                        newDataMap.put("账号",String.valueOf(dataMap.get("用户ID")));
+                        newDataMap.put("证件号", String.valueOf(dataMap.get("证件号")));
+                        newDataMap.put("账户名称", String.valueOf(dataMap.get("账户名称")));
+                        newDataMap.put("账号", String.valueOf(dataMap.get("用户ID")));
                         needToSaveall.add(newDataMap);
                         alipayIdsAll.add(String.valueOf(dataMap.get("用户ID")));
                     }
                 }
-            }else {
+            } else {
                 for (String s : accountList) {
-                    if(!alipayIdsAll.contains(s)){
-                        DataMap newDataMap=new DataMap();
+                    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);
+                        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);
                     }

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

@@ -273,7 +273,7 @@ public class DataStaticService extends Ops {
         dataMap.put("partyData", partyDataList);
         dataMap.put("relationshipGraph", relationshipGraphList);
         Mapped mapped = Mapped.OK();
-        if(partyDataList.size()>1000){
+        if(partyDataList.size()>300){
             return Mapped.ERROR("节点超过300个,请重新查询");
         }