소스 검색

feature(数据授数据资源数据字段添加): 数据授数据资源数据字段添加

数据授数据资源数据字段添加
mazq 4 년 전
부모
커밋
a8f4271254

+ 2 - 0
dcuc-app-model/src/main/java/com/dragoninfo/dcuc/app/dto/dataresource/ChildResourceClassify.java

@@ -15,4 +15,6 @@ public class ChildResourceClassify {
     private String codeValue;
     private String catalogNum;
     private List<ResourceClassify> childrenType;
+    //父类的typeCode
+    private String typeCode;
 }

+ 5 - 8
dcuc-app-model/src/main/java/com/dragoninfo/dcuc/app/vo/DataResourceClassifyVo.java

@@ -14,7 +14,7 @@ import java.util.List;
  */
 @Data
 @Builder
-@ApiModel(value = "数据分级分类Vo")
+@ApiModel(value = "数据资源分级分类Vo")
 public class DataResourceClassifyVo {
     @ApiModelProperty(value = "id,分级分类唯一标识")
     private String id;
@@ -22,17 +22,14 @@ public class DataResourceClassifyVo {
     @ApiModelProperty(value = "分级分类名称")
     private String label;
 
-//    @ApiModelProperty(value = "分级分类code值")
-//    private String code;
     @ApiModelProperty(value = "分级分类下数据资源-树结构")
-    private DataResourceTreeVo nodes;
-//    @ApiModelProperty(value = "最后一级节点总数量")
-//    private Integer total;
+    private List<DataResourceTreeVo> nodes;
+
     @ApiModelProperty(value = "数据属性类型 TABLE:表 COLUMN:列")
     private String attrType;
-//    @ApiModelProperty(value = "分级分下被勾选的叶子节点id集合")
-//    private List<String> tickIds;
 
+    @ApiModelProperty(value = "最后一级节点总数量")
+    private Integer total;
     /**
      * 添加无参构造器,便于调用端序列化
      */

+ 6 - 8
dcuc-app-model/src/main/java/com/dragoninfo/dcuc/app/vo/DataResourceTreeVo.java

@@ -23,14 +23,12 @@ public class DataResourceTreeVo {
     private String code;
     @ApiModelProperty(value = "节点名称")
     private String label;
-//    @ApiModelProperty(value = "节点详细说明")
-//    private String desc;
-//    @ApiModelProperty(value = "数据资源类型" +
-//            "数据安全级别:DATA_SECURITY_LEVEL " +
-//            "字段一级分类:LEVEL_1_COLUMN_CLASSIFY" +
-//            "字段二级分类:LEVEL_2_COLUMN_CLASSIFY" +
-//            "数据分级:DATA_CLASSIFY")
-//    private String dataType;
+    @ApiModelProperty(value = "数据资源类型" +
+            "数据安全级别:DATA_SECURITY_LEVEL " +
+            "字段一级分类:LEVEL_1_COLUMN_CLASSIFY" +
+            "字段二级分类:LEVEL_2_COLUMN_CLASSIFY" +
+            "数据分级:DATA_CLASSIFY")
+    private String dataType;
     @ApiModelProperty(value = "子节点集合")
     private List<DataResourceTreeVo> child;
     @ApiModelProperty(value = "是否是树节点 true:是树节点,child不为空。false:非树节点,child为空。")

+ 60 - 14
dcuc-app-service/src/main/java/com/dragoninfo/dcuc/app/facade/DataResourceFacade.java

@@ -12,6 +12,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Optional;
 import java.util.stream.Collectors;
@@ -70,13 +71,15 @@ public class DataResourceFacade implements IDataResourceFacade {
                         .id(Joiner.on(ID_SEPARATOR).join(dataLevelTreeVo.getId(), childResourceClassify.getCodeValue()))
                         .code(childResourceClassify.getCodeValue())
                         .label(childResourceClassify.getCodeName())
+                        .dataType(childResourceClassify.getTypeCode())
                         .treeNode(false)
                         .pId(dataLevelTreeVo.getId()).build()
                 ).collect(Collectors.toList())
         );
 
-        dataResourceClassifyVo.setNodes(dataLevelTreeVo);
-
+        dataResourceClassifyVo.setNodes(new ArrayList<DataResourceTreeVo>(){{add(dataLevelTreeVo);}});
+        //设置总数量
+        dataResourceClassifyVo.setTotal(dataLevelTreeVo.getChild().size());
         return dataResourceClassifyVo;
     }
 
@@ -107,16 +110,19 @@ public class DataResourceFacade implements IDataResourceFacade {
                         .id(Joiner.on(ID_SEPARATOR).join(securityLevelTree.getId(), childResourceClassify.getCodeValue()))
                         .code(childResourceClassify.getCodeValue())
                         .label(childResourceClassify.getCodeName())
+                        .dataType(childResourceClassify.getTypeCode())
                         .treeNode(false)
                         .pId(securityLevelTree.getId()).build()
                 ).collect(Collectors.toList())
         );
-        dataResourceClassifyVo.setNodes(securityLevelTree);
+        dataResourceClassifyVo.setNodes(new ArrayList<DataResourceTreeVo>(){{add(securityLevelTree);}} );
+        //设置总数量
+        dataResourceClassifyVo.setTotal(securityLevelTree.getChild().size());
         return dataResourceClassifyVo;
     }
 
     /**
-     * 数据安全级别树
+     * 数据资源分类
      *
      * @return
      */
@@ -126,36 +132,52 @@ public class DataResourceFacade implements IDataResourceFacade {
         DataResourceClassifyVo dataResourceClassifyVo = DataResourceClassifyVo.builder().id(dataResourceEnum.getCode())
                 .attrType(dataResourceEnum.getAttrType().getValue()).label(dataResourceEnum.getLabel()).build();
 
-        DataResourceTreeVo securityLevelTree = DataResourceTreeVo.builder().id(dataResourceEnum.getCode()).label("全部")
+        DataResourceTreeVo dataClassifyTree = DataResourceTreeVo.builder().id(dataResourceEnum.getCode()).label("全部")
                 .code(dataResourceEnum.getCode()).treeNode(true).build();
 
-        securityLevelTree.setChild(getFirstChildResourceClassifies(dataResourceService.getDataClassifyList())
+        dataClassifyTree.setChild(getFirstChildResourceClassifies(dataResourceService.getDataClassifyList())
                 .stream()
                 .map(firstClassify -> {
                     DataResourceTreeVo firstTreeVo = DataResourceTreeVo.builder()
-                            .id(Joiner.on(ID_SEPARATOR).join(securityLevelTree.getId(), firstClassify.getCodeValue()))
-                            .code(firstClassify.getCodeValue()).label(firstClassify.getCodeName()).treeNode(true).pId(securityLevelTree.getId())
+                            .id(Joiner.on(ID_SEPARATOR).join(dataClassifyTree.getId(), firstClassify.getCodeValue()))
+                            .code(firstClassify.getCodeValue())
+                            .label(firstClassify.getCodeName())
+                            .treeNode(true)
+                            .pId(dataClassifyTree.getId())
+                            .dataType(firstClassify.getTypeCode())
                             .build();
 
                     firstTreeVo.setChild(getFirstChildResourceClassifies(firstClassify.getChildrenType()).stream()
                             .map(secondClassify -> {
                                 DataResourceTreeVo secondTreeVo = DataResourceTreeVo.builder()
                                         .id(Joiner.on(ID_SEPARATOR).join(firstTreeVo.getId(), secondClassify.getCodeValue()))
-                                        .code(secondClassify.getCodeValue()).label(secondClassify.getCodeName()).treeNode(true).pId(firstTreeVo.getId())
+                                        .code(secondClassify.getCodeValue())
+                                        .label(secondClassify.getCodeName())
+                                        .treeNode(true)
+                                        .pId(firstTreeVo.getId())
+                                        .dataType(secondClassify.getTypeCode())
                                         .build();
 
                                 secondTreeVo.setChild(getChildrenTypeList(secondClassify.getChildrenType()).stream()
                                         .map(thirdClassify -> {
                                             DataResourceTreeVo thirdTreeVo = DataResourceTreeVo.builder()
                                                     .id(Joiner.on(ID_SEPARATOR).join(secondTreeVo.getId(), thirdClassify.getTypeCode()))
-                                                    .code(thirdClassify.getTypeCode()).label(thirdClassify.getTypeName()).treeNode(true).pId(secondTreeVo.getId())
+                                                    .code(thirdClassify.getTypeCode())
+                                                    .label(thirdClassify.getTypeName())
+                                                    .treeNode(true)
+                                                    .pId(secondTreeVo.getId())
+                                                    .dataType(thirdClassify.getTypeCode())
                                                     .build();
 
                                             thirdTreeVo.setChild(thirdClassify.getDataList().stream()
                                                     .map(fourClassify -> {
                                                         DataResourceTreeVo fourTreeVo = DataResourceTreeVo.builder()
                                                                 .id(Joiner.on(ID_SEPARATOR).join(thirdTreeVo.getId(), fourClassify.getCodeValue()))
-                                                                .code(fourClassify.getCodeValue()).label(fourClassify.getCodeName()).treeNode(false).child(null).pId(thirdTreeVo.getId())
+                                                                .code(fourClassify.getCodeValue())
+                                                                .label(fourClassify.getCodeName())
+                                                                .treeNode(false).child(null)
+                                                                .pId(thirdTreeVo.getId())
+                                                                .dataType(thirdClassify.getTypeCode())
                                                                 .build();
                                                         return fourTreeVo;
                                                     }).collect(Collectors.toList()));
@@ -166,7 +188,8 @@ public class DataResourceFacade implements IDataResourceFacade {
                     return firstTreeVo;
                 }).collect(Collectors.toList()));
 
-        dataResourceClassifyVo.setNodes(securityLevelTree);
+        dataResourceClassifyVo.setNodes(new ArrayList<DataResourceTreeVo>(){{add(dataClassifyTree);}} );
+        dataResourceClassifyVo.setTotal(getTotalCount(dataClassifyTree));
         return dataResourceClassifyVo;
     }
 
@@ -198,6 +221,7 @@ public class DataResourceFacade implements IDataResourceFacade {
                             .id(Joiner.on(ID_SEPARATOR).join(fieldClassifyTree.getId(), firstClassify.getCodeValue()))
                             .code(firstClassify.getCodeValue())
                             .label(firstClassify.getCodeName())
+                            .dataType(firstClassify.getTypeCode())
                             .treeNode(true)
                             .pId(fieldClassifyTree.getId())
                             .build();
@@ -210,6 +234,7 @@ public class DataResourceFacade implements IDataResourceFacade {
                                                 .code(secondClassify.getCodeValue())
                                                 .label(secondClassify.getCodeName())
                                                 .treeNode(false)
+                                                .dataType(secondClassify.getTypeCode())
                                                 .pId(firstTreeVo.getId())
                                                 .build();
                                         return secondTreeVo;
@@ -219,10 +244,26 @@ public class DataResourceFacade implements IDataResourceFacade {
                 }).collect(Collectors.toList())
         );
 
-        dataResourceClassifyVo.setNodes(fieldClassifyTree);
+        dataResourceClassifyVo.setNodes(new ArrayList<DataResourceTreeVo>(){{add(fieldClassifyTree);}} );
+        //设置总数
+        dataResourceClassifyVo.setTotal(getTotalCount(fieldClassifyTree));
         return dataResourceClassifyVo;
     }
 
+    private int getTotalCount(DataResourceTreeVo treeVo) {
+        int count = 0;
+        List<DataResourceTreeVo> child = treeVo.getChild();
+        for (DataResourceTreeVo childVo : child) {
+            Boolean treeNode = childVo.getTreeNode();
+            if(treeNode){
+                count += getTotalCount(childVo);
+            }else {
+                count += 1;
+            }
+        }
+        return count;
+    }
+
     @Override
     public List<DataLevelVo> getDataLevelList() {
         return getFirstChildResourceClassifies(dataResourceService.getDataLevelList())
@@ -283,7 +324,12 @@ public class DataResourceFacade implements IDataResourceFacade {
     private List<ChildResourceClassify> getFirstChildResourceClassifies(List<ResourceClassify> fieldClassifyList) {
         return Optional.ofNullable(fieldClassifyList)
                 .map(resourceClassifies -> resourceClassifies.get(0))
-                .map(resourceClassify -> resourceClassify.getDataList())
+                .map(resourceClassify -> {
+                    List<ChildResourceClassify> dataList = resourceClassify.getDataList();
+                    //设置节点的dataType,dataType为上级的typeCode字段
+                    dataList.stream().forEach(item-> item.setTypeCode(resourceClassify.getTypeCode()));
+                    return dataList;
+                })
                 .orElse(Lists.newArrayList());
     }