hankunkun 11 mesiacov pred
rodič
commit
324e5c1ddb

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

@@ -69,6 +69,8 @@ public class FileService {
             "五联单-收货地址分析"
     };
     String[] order3 = {"财付通-注册信息", "财付通-订单明细1","财付通-订单明细2", "财付通-交易明细", "财付通-账户透视", "财付通-对手透视", "财付通-手机明细"};
+
+    String[] order4 = {"数据分析-主体信息汇总", "数据分析-共同关系网络"};
     @Autowired
     private GridFsTemplate gridFsTemplate;
     @Autowired
@@ -275,6 +277,7 @@ public class FileService {
             groupLogicalFile("反诈治安数据分析", new String[]{"反诈", "治安"}, resultList, groupLogincalFiles);
             groupLogicalFile("支付宝数据分析", new String[]{"五联单"}, resultList, groupLogincalFiles);
             groupLogicalFile("财付通数据分析", new String[]{"财付通"}, resultList, groupLogincalFiles);
+            groupLogicalFile("数据综合分析", new String[]{"数据分析"}, resultList, groupLogincalFiles);
             Mapped res = Mapped.OK();
             res.put("code", 200);
             res.put("result", groupLogincalFiles);
@@ -314,6 +317,9 @@ public class FileService {
         if (groupName.equals("财付通数据分析")) {
             return orderGroupLogicalFileChild(order3, list);
         }
+        if (groupName.equals("数据综合分析")) {
+            return orderGroupLogicalFileChild(order4, list);
+        }
         return null;
     }
 

+ 8 - 0
src/main/java/ieven/server/webapp/service/alipay/AlipayService.java

@@ -8,6 +8,7 @@ import ieven.server.webapp.domain.file.FileService;
 import ieven.server.webapp.domain.file.LogicalFile;
 import ieven.server.webapp.infrastructure.wrapper.Mapped;
 import ieven.server.webapp.service.FieldsService;
+import ieven.server.webapp.service.datastatic.DataStaticAnalysis;
 import ieven.server.webapp.service.tenpay.*;
 import ieven.server.webapp.util.DataUtils;
 import lombok.extern.slf4j.Slf4j;
@@ -182,6 +183,13 @@ public class AlipayService {
                 new TenpayTradesScaleAnalysis(
                         headerProperties, modelId, mongoTemplate, fileService, latch7));
         latch7.await();
+
+        //主题账户信息
+        CountDownLatch latch10 = new CountDownLatch(1);
+        exec.execute(
+                new DataStaticAnalysis(
+                        headerProperties, modelId, mongoTemplate, fileService, latch10));
+        latch10.await();
         reorder(modelId);
         log.info("执行完毕");
         return Mapped.OK();

+ 73 - 0
src/main/java/ieven/server/webapp/service/datastatic/DataStaticAnalysis.java

@@ -0,0 +1,73 @@
+package ieven.server.webapp.service.datastatic;
+
+import cn.hutool.core.util.NumberUtil;
+import com.mongodb.client.MongoCursor;
+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 lombok.extern.slf4j.Slf4j;
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.bson.Document;
+import org.springframework.data.mongodb.core.MongoTemplate;
+
+import java.math.BigDecimal;
+import java.util.*;
+import java.util.concurrent.CountDownLatch;
+
+@Slf4j
+public class DataStaticAnalysis extends Ops implements Runnable {
+    private HeaderProperties headerProperties;
+    String modelId;
+    MongoTemplate mongoTemplate;
+    FileService fileService;
+    CountDownLatch latch;
+
+    public DataStaticAnalysis(
+            HeaderProperties headerProperties,
+            String modelId,
+            MongoTemplate mongoTemplate,
+            FileService fileService,
+            CountDownLatch latch) {
+        this.headerProperties = headerProperties;
+        this.modelId = modelId;
+        this.mongoTemplate = mongoTemplate;
+        this.fileService = fileService;
+        this.latch = latch;
+    }
+
+    @Override
+    public void run() {
+        log.info("数据统计-主体信息开始");
+        // 直接删除并创建表
+        String newFileId = "";
+        String dateFileIdcft = getFileId("财付通-交易明细", modelId, mongoTemplate);
+        String dateFileIdfzza = getFileId("反诈治安-交易明细", modelId, mongoTemplate);
+
+        if(StringUtils.isNotBlank(dateFileIdcft)||StringUtils.isNotBlank(dateFileIdfzza)){
+            newFileId =createLogicAndDeleteOld( "数据分析-主体信息汇总", modelId, headerProperties.getAntiSecurityTradeScaleAnalysisOutput(), mongoTemplate, fileService);
+        }
+        // 插入记录用户后续查询明细
+        if (StringUtils.isNotBlank(dateFileIdcft)) {
+            MongoCursor<Document> cursor = getCursor(dateFileIdcft, mongoTemplate);
+            Document origin;
+            List<DataMap> needToSave = new ArrayList<>(1000);
+            while (cursor.hasNext()) {
+                origin = cursor.next();
+                DataMap dataMap = new DataMap();
+                dataMap.put("fileId", newFileId);
+                needToSave.add(dataMap);
+                if (needToSave.size() >= 1000) {
+                    saveLines(new ArrayList<>(needToSave), mongoTemplate);
+                    needToSave.clear();
+                }
+            }
+            if (CollectionUtils.isNotEmpty(needToSave)) {
+                saveLines(needToSave, mongoTemplate);
+            }
+        }
+        latch.countDown();
+        log.info("数据统计-主体信息结束");
+    }
+}