Kaynağa Gözat

feat: 企业集团

- 集团投资方加入个人类型
许家凯 1 yıl önce
ebeveyn
işleme
4dd01af586

+ 19 - 9
src/main/java/com/winhc/max/compute/graph/job/enterprise_group/EnterpriseGroupVertex.java

@@ -70,7 +70,7 @@ public class EnterpriseGroupVertex extends
         if (!getValue().isSendMsg()) {
             for (String destVertexId : vertexInfo.getHoldCompanyId()) {
                 //传递控股企业
-                EntGroupMsg entGroupMsg = EntGroupMsg.ofByType_1(getId(), getValue().getCompanyName(), getValue().getCompanyType(), vertexInfo.getNotHoldCompanyId());
+                EntGroupMsg entGroupMsg = EntGroupMsg.ofByType_1(getId(), getValue().getCompanyName(), getValue().getCompanyType(), vertexInfo.getNotHoldKeyno());
                 boolean flag = entGroupMsg.routeLog(destVertexId);
                 if (!flag) {
 //                    getValue().setOutput();
@@ -98,7 +98,7 @@ public class EnterpriseGroupVertex extends
             if (vertexInfo.getHoldCompanyId().isEmpty()) {
                 //如果没有控股企业,则本节点为集团,需将本节点的参股股东,添加至集团股东
                 List<String> groupHolderCompanyIds = getValue().getGroupHolderCompanyIds().tuple2List();
-                groupHolderCompanyIds.addAll(vertexInfo.getNotHoldCompanyId());
+                groupHolderCompanyIds.addAll(vertexInfo.getNotHoldKeyno());
                 getValue().setGroupHolderCompanyIds(groupHolderCompanyIds);
             }
 
@@ -298,13 +298,23 @@ public class EnterpriseGroupVertex extends
         }
 
         for (String e : groupHolderCompanyId) {
-            context.write(
-                    "relation"
-                    , new Text(enterprise_group_hold_company_id + "_3_" + e)
-                    , enterprise_group_hold_company_id
-                    , new Text("3")
-                    , new Text(e)
-            );
+            if(e.length()==32){
+                context.write(
+                        "relation"
+                        , new Text(enterprise_group_hold_company_id + "_3_" + e)
+                        , enterprise_group_hold_company_id
+                        , new Text("3")
+                        , new Text(e)
+                );
+            }else{
+                context.write(
+                        "relation"
+                        , new Text(enterprise_group_hold_company_id + "_4_" + e)
+                        , enterprise_group_hold_company_id
+                        , new Text("4")
+                        , new Text(e)
+                );
+            }
         }
 
     }

+ 1 - 0
src/main/java/com/winhc/max/compute/graph/job/enterprise_group/entity/EnterpriseGroupVertexValue.java

@@ -62,6 +62,7 @@ public class EnterpriseGroupVertexValue implements Writable {
 
     /**
      * 集团股东id
+     * todo:目前该部分包括人
      */
     private Tuple groupHolderCompanyIds;
 

+ 24 - 0
src/main/java/com/winhc/max/compute/graph/job/enterprise_group/entity/VertexComputeInfo.java

@@ -41,6 +41,13 @@ public class VertexComputeInfo {
      */
     private List<String> notHoldCompanyId = new ArrayList<>();
 
+
+    /**
+     * 非控股的人
+     * 用于集团股东
+     */
+    private List<String> notHoldPersonId = new ArrayList<>();
+
     /**
      * 手动拆分集团标志位,true为手动拆分
      */
@@ -95,6 +102,11 @@ public class VertexComputeInfo {
                 .stream().filter(e -> e.length() == 32)
                 .collect(Collectors.toList());
 
+        //参股公司id,不包含个人
+        List<String> thisVertexOtherHolderPersonId = edges.getOtherHolder(majorityShareholder.keySet())
+                .stream().filter(e -> e.length() == 33)
+                .collect(Collectors.toList());
+
         String controllerKeyno = String.join(",", majorityShareholder.keySet());
 
         VertexComputeInfo vertexComputeInfo = new VertexComputeInfo();
@@ -102,6 +114,7 @@ public class VertexComputeInfo {
 
         vertexComputeInfo.holdCompanyId = thisVertexHoldCompanyId;
         vertexComputeInfo.notHoldCompanyId = thisVertexOtherHolderCompanyId;
+        vertexComputeInfo.notHoldPersonId = thisVertexOtherHolderPersonId;
         vertexComputeInfo.majorityShareholder = majorityShareholder;
         vertexComputeInfo.controllerKeyno = controllerKeyno;
 
@@ -109,6 +122,17 @@ public class VertexComputeInfo {
     }
 
 
+    public List<String> getNotHoldPersonId() {
+        return notHoldPersonId;
+    }
+
+    public List<String> getNotHoldKeyno(){
+        List<String> result = new ArrayList<String>();
+        result.addAll(notHoldPersonId);
+        result.addAll(notHoldCompanyId);
+        return result;
+    }
+
     public String getControllerKeyno() {
         return controllerKeyno;
     }