瀏覽代碼

修改问题

hankunkun 9 月之前
父節點
當前提交
80d45f8ba7

+ 35 - 38
src/main/java/ieven/server/webapp/service/datastatic/DataStaticAnalysisDs.java

@@ -23,12 +23,7 @@ public class DataStaticAnalysisDs extends Ops implements Runnable {
     FileService fileService;
     CountDownLatch latch;
 
-    public DataStaticAnalysisDs(
-            HeaderProperties headerProperties,
-            String modelId,
-            MongoTemplate mongoTemplate,
-            FileService fileService,
-            CountDownLatch latch) {
+    public DataStaticAnalysisDs(HeaderProperties headerProperties, String modelId, MongoTemplate mongoTemplate, FileService fileService, CountDownLatch latch) {
         this.headerProperties = headerProperties;
         this.modelId = modelId;
         this.mongoTemplate = mongoTemplate;
@@ -50,6 +45,7 @@ public class DataStaticAnalysisDs extends Ops implements Runnable {
         }
 
         // 插入记录用户后续查询明细
+        List<DataMap> dataMapList = new ArrayList<>();
         if (StringUtils.isNotBlank(dateFileIdcft)) {
             MongoCursor<Document> cursor = getCursor(dateFileIdcft, mongoTemplate);
             if (cursor.hasNext()) {
@@ -88,9 +84,7 @@ public class DataStaticAnalysisDs extends Ops implements Runnable {
                         idToData.put(alipayId, dataMap);
                     }
                     String alipayUsername = origin.getString("交易对手户名");
-                    if (StringUtils.isNotBlank(alipayUsername)
-                            && !"_".equals(alipayUsername)
-                            && !"-".equals(alipayUsername) && !"null".equals(alipayUsername)) {
+                    if (StringUtils.isNotBlank(alipayUsername) && !"_".equals(alipayUsername) && !"-".equals(alipayUsername) && !"null".equals(alipayUsername)) {
                         if (idToNames.containsKey(alipayId)) {
                             Set<String> names = idToNames.get(alipayId);
                             names.add(alipayUsername);
@@ -129,11 +123,11 @@ public class DataStaticAnalysisDs extends Ops implements Runnable {
                     dataMap.put("总笔数", oCount);
                     String mainId = (String) origin.get("交易主体账号");
                     String mainIdhm = (String) origin.get("交易主体户名");
-                    if(StringUtils.isNotBlank(mainId)&&StringUtils.isNotBlank(mainIdhm)){
+                    if (StringUtils.isNotBlank(mainId) && StringUtils.isNotBlank(mainIdhm)) {
                         if (hm.containsKey(mainId)) {
                             Set<String> hmnew = hm.get(mainId);
                             hmnew.add(mainIdhm);
-                            hm.put(mainId,hmnew);
+                            hm.put(mainId, hmnew);
                         } else {
                             Set<String> mainIds = new HashSet<>();
                             mainIds.add(mainIdhm);
@@ -163,17 +157,17 @@ public class DataStaticAnalysisDs extends Ops implements Runnable {
                     }
                     if (CollectionUtils.isNotEmpty(mainIds)) {
                         value.put("共同交易主体数", mainIds.size());
-                        String str="";
-                        Set<String>jyzthm = new HashSet<>();
+                        String str = "";
+                        Set<String> jyzthm = new HashSet<>();
                         for (String mainId : mainIds) {
                             Set<String> strings = hm.get(mainId);
-                            if(CollectionUtils.isNotEmpty(strings)){
+                            if (CollectionUtils.isNotEmpty(strings)) {
                                 jyzthm.addAll(strings);
                             }
-                            str+=CollectionUtils.isEmpty(strings)?mainId+";":mainId+"("+StringUtils.join(strings, ",")+");";
+                            str += CollectionUtils.isEmpty(strings) ? mainId + ";" : mainId + "(" + StringUtils.join(strings, ",") + ");";
                         }
                         value.put("共同交易主体账号汇总", str);
-                        value.put("共同交易主体户名汇总", Math.min(mainIds.size(),jyzthm.size()));
+                        value.put("共同交易主体户名汇总", Math.min(mainIds.size(), jyzthm.size()));
                     }
                     DataMap dataMap = entry.getValue();
                     BigDecimal money1 = (BigDecimal) dataMap.get("交易总额");
@@ -183,7 +177,8 @@ public class DataStaticAnalysisDs extends Ops implements Runnable {
                     BigDecimal money3 = (BigDecimal) dataMap.get("交易主体支出金额");
                     dataMap.put("交易主体支出金额", money3.doubleValue());
                 }
-                saveLines(idToData.values(), "共同交易主体数", mongoTemplate);
+                dataMapList.addAll(idToData.values());
+                //saveLines(idToData.values(), "共同交易主体数", mongoTemplate);
             }
         }
 
@@ -226,9 +221,7 @@ public class DataStaticAnalysisDs extends Ops implements Runnable {
                         idToData.put(alipayId, dataMap);
                     }
                     String alipayUsername = origin.getString("交易对手户名");
-                    if (StringUtils.isNotBlank(alipayUsername)
-                            && !"_".equals(alipayUsername)
-                            && !"-".equals(alipayUsername)&& !"null".equals(alipayUsername)) {
+                    if (StringUtils.isNotBlank(alipayUsername) && !"_".equals(alipayUsername) && !"-".equals(alipayUsername) && !"null".equals(alipayUsername)) {
                         if (idToNames.containsKey(alipayId)) {
                             Set<String> names = idToNames.get(alipayId);
                             names.add(alipayUsername);
@@ -264,11 +257,11 @@ public class DataStaticAnalysisDs extends Ops implements Runnable {
                     dataMap.put("总笔数", oCount);
                     String mainId = (String) origin.get("交易主体账号");
                     String mainIdhm = (String) origin.get("交易主体户名");
-                    if(StringUtils.isNotBlank(mainId)&&StringUtils.isNotBlank(mainIdhm)){
+                    if (StringUtils.isNotBlank(mainId) && StringUtils.isNotBlank(mainIdhm)) {
                         if (hm.containsKey(mainId)) {
                             Set<String> hmnew = hm.get(mainId);
                             hmnew.add(mainIdhm);
-                            hm.put(mainId,hmnew);
+                            hm.put(mainId, hmnew);
                         } else {
                             Set<String> mainIds = new HashSet<>();
                             mainIds.add(mainIdhm);
@@ -301,17 +294,17 @@ public class DataStaticAnalysisDs extends Ops implements Runnable {
 
                     if (CollectionUtils.isNotEmpty(mainIds)) {
                         value.put("共同交易主体数", mainIds.size());
-                        String str="";
-                        Set<String>jyzthm = new HashSet<>();
+                        String str = "";
+                        Set<String> jyzthm = new HashSet<>();
                         for (String mainId : mainIds) {
                             Set<String> strings = hm.get(mainId);
-                            if(CollectionUtils.isNotEmpty(strings)){
+                            if (CollectionUtils.isNotEmpty(strings)) {
                                 jyzthm.addAll(strings);
                             }
-                            str+=CollectionUtils.isEmpty(strings)?mainId+";":mainId+"("+StringUtils.join(strings, ",")+");";
+                            str += CollectionUtils.isEmpty(strings) ? mainId + ";" : mainId + "(" + StringUtils.join(strings, ",") + ");";
                         }
                         value.put("共同交易主体账号汇总", str);
-                        value.put("共同交易主体户名汇总", Math.min(mainIds.size(),jyzthm.size()));
+                        value.put("共同交易主体户名汇总", Math.min(mainIds.size(), jyzthm.size()));
                     }
                     DataMap dataMap = entry.getValue();
                     BigDecimal money1 = (BigDecimal) dataMap.get("交易总额");
@@ -321,8 +314,10 @@ public class DataStaticAnalysisDs extends Ops implements Runnable {
                     BigDecimal money3 = (BigDecimal) dataMap.get("交易主体支出金额");
                     dataMap.put("交易主体支出金额", money3.doubleValue());
                 }
-                saveLines(idToData.values(), "共同交易主体数", mongoTemplate);
+                dataMapList.addAll(idToData.values());
+                //saveLines(idToData.values(), "共同交易主体数", mongoTemplate);
             }
+
         }
 
         if (StringUtils.isNotBlank(dateFileIdwld)) {
@@ -365,9 +360,7 @@ public class DataStaticAnalysisDs extends Ops implements Runnable {
                         idToData.put(alipayId, dataMap);
                     }
                     String alipayUsername = origin.getString("对手支付宝户名");
-                    if (StringUtils.isNotBlank(alipayUsername)
-                            && !"_".equals(alipayUsername)
-                            && !"-".equals(alipayUsername)&& !"null".equals(alipayUsername)) {
+                    if (StringUtils.isNotBlank(alipayUsername) && !"_".equals(alipayUsername) && !"-".equals(alipayUsername) && !"null".equals(alipayUsername)) {
                         if (idToNames.containsKey(alipayId)) {
                             Set<String> names = idToNames.get(alipayId);
                             names.add(alipayUsername);
@@ -437,18 +430,18 @@ public class DataStaticAnalysisDs extends Ops implements Runnable {
                     }
                     if (CollectionUtils.isNotEmpty(mainIds)) {
                         value.put("共同交易主体数", mainIds.size());
-                        String str="";
-                        Set<String>jyzthm = new HashSet<>();
-                        int count=0;
+                        String str = "";
+                        Set<String> jyzthm = new HashSet<>();
+                        int count = 0;
                         for (String mainId : mainIds) {
                             Set<String> strings = hm.get(mainId);
-                            if(CollectionUtils.isNotEmpty(strings)){
+                            if (CollectionUtils.isNotEmpty(strings)) {
                                 count++;
                             }
-                            str+=CollectionUtils.isEmpty(strings)?mainId+";":mainId+"("+StringUtils.join(strings, ",")+");";
+                            str += CollectionUtils.isEmpty(strings) ? mainId + ";" : mainId + "(" + StringUtils.join(strings, ",") + ");";
                         }
                         value.put("共同交易主体账号汇总", str);
-                        value.put("共同交易主体户名汇总", Math.min(mainIds.size(),count));
+                        value.put("共同交易主体户名汇总", Math.min(mainIds.size(), count));
                     }
 
                     DataMap dataMap = entry.getValue();
@@ -459,10 +452,14 @@ public class DataStaticAnalysisDs extends Ops implements Runnable {
                     BigDecimal money3 = (BigDecimal) dataMap.get("交易主体支出金额");
                     dataMap.put("交易主体支出金额", money3.doubleValue());
                 }
-                saveLines(idToData.values(), "共同交易主体数", mongoTemplate);
+                dataMapList.addAll(idToData.values());
             }
         }
 
+        if (CollectionUtils.isNotEmpty(dataMapList)) {
+            saveLines(dataMapList, "共同交易主体数", mongoTemplate);
+        }
+
         latch.countDown();
         log.info("数据分析-对手透视");
     }

+ 0 - 4
src/main/java/ieven/server/webapp/service/datastatic/DataStaticAnalysisTotal.java

@@ -176,10 +176,6 @@ public class DataStaticAnalysisTotal extends Ops implements Runnable {
                     log.error(exception.getMessage(), exception);
                 }
             }
-
-            List<String>ids=new ArrayList<>();
-            ids.add(newFileId);
-            ids.add(newFileId1);
             if (CollectionUtils.isNotEmpty(idToData.values())) {
                 for (Map.Entry<String, DataMap> entry : idToData.entrySet()) {
                     DataMap dataMap = entry.getValue();

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

@@ -135,6 +135,13 @@ public class DataStaticService extends Ops {
                             datamapnew.put("交易主体户名", s);
                             dataMaps.add(datamapnew);
                             personzhmcMap.put(s, dataMaps);
+                        }else {
+                            DataMap datamapnew = new DataMap();
+                            String id = String.valueOf(dataMap.get("_id")) + i;
+                            datamapnew.put("_id", id);
+                            datamapnew.put("交易主体户名", s);
+                            dataMaps.add(datamapnew);
+                            personzhmcMap.put(s, dataMaps);
                         }
                     }
                 }
@@ -237,6 +244,8 @@ public class DataStaticService extends Ops {
         Document originDoc;
         Map<String, List<DataMap>> dsMap = new HashMap<>();
         Map<String, Set<String>> zh = new HashMap<>();
+
+        Map<String,  Set<String>> jyzthmMap = new HashMap<>();
         while (cursor.hasNext()) {
             // 写法1(建议)
             try {
@@ -244,9 +253,20 @@ public class DataStaticService extends Ops {
                 DataMap map = initWithOrigin(originDoc, dateFileId);
                 String jydszh = String.valueOf(map.get("交易对手账号"));
                 String jyzthm = String.valueOf(map.get("交易主体户名"));
+                String jyztzh = String.valueOf(map.get("交易主体账号"));
                 if (PublicStatic.checkStr(jydszh) || PublicStatic.checkStr(jyzthm)) {
                     continue;
                 }
+                if(StringUtils.isNotBlank(jyzthm)){
+                    Set<String> strings = jyzthmMap.get(jyzthm);
+                    if (CollectionUtils.isEmpty(strings)) {
+                        strings = new HashSet<>();
+                        strings.add(jyztzh);
+                    } else {
+                        strings.add(jyztzh);
+                    }
+                    jyzthmMap.put(jyzthm, strings);
+                }
                 Set<String> strings = zh.get(jydszh);
                 if (CollectionUtils.isEmpty(strings)) {
                     strings = new HashSet<>();
@@ -264,6 +284,21 @@ public class DataStaticService extends Ops {
             }
         }
 
+        //组装数据
+        Map<String, List<DataMap>> personzhmcMapNew = new HashMap<>();
+        for (Map.Entry<String, Set<String>> entry : jyzthmMap.entrySet()) {
+            String key = entry.getKey();
+            Set<String> value = entry.getValue();
+            List<DataMap>dataListNew = new ArrayList<>();
+            for (String s : value) {
+                DataMap dataMap1=new DataMap();
+                dataMap1.put("交易主体户名",key);
+                dataMap1.put("交易主体账号",s);
+                dataListNew.add(dataMap1);
+            }
+            personzhmcMapNew.put(key,dataListNew);
+        }
+
   /*      for (DataMap map : dataMapDetail) {
             String jydszh = String.valueOf(map.get("交易对手账号"));
             String jyzthm = String.valueOf(map.get("交易主体户名"));
@@ -305,9 +340,6 @@ public class DataStaticService extends Ops {
         for (DataMap map : newList) {
             String jythm = String.valueOf(map.get("交易主体户名"));
             String jythm1 = String.valueOf(map.get("交易对手户名"));
-            if(jythm1.equals("中国银行")){
-                System.out.println("5555");
-            }
             String jydszh = String.valueOf(map.get("交易对手账号"));
             if (StringUtils.isBlank(jythm) || "null".equals(jythm)) {
                 continue;
@@ -319,7 +351,7 @@ public class DataStaticService extends Ops {
             }
 
             //获取节点名称
-            List<DataMap> dataMapsparty1 = personzhmcMap.get(jythm);
+            List<DataMap> dataMapsparty1 = personzhmcMapNew.get(jythm);
             List<DataMap> dataMapsparty2 = personMap.get(jydszh);
             if (CollectionUtils.isEmpty(dataMapsparty1) || CollectionUtils.isEmpty(dataMapsparty2)) {
                 continue;