IRelationReportService.java 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. package com.persagy.proxy.adm.service;
  2. import java.util.List;
  3. import java.util.Map;
  4. import java.util.Set;
  5. import com.fasterxml.jackson.databind.node.ObjectNode;
  6. import com.persagy.dmp.define.entity.GraphDefine;
  7. import com.persagy.dmp.define.entity.RelationDefine;
  8. import com.persagy.dmp.digital.entity.ObjectRelation;
  9. import com.persagy.proxy.adm.model.AdmRelationObject;
  10. /**
  11. * 报表/模板下载
  12. *
  13. * @version 1.0.0
  14. * @company persagy
  15. * @author zhangqiankun
  16. * @date 2021年8月31日 下午4:42:51
  17. */
  18. public interface IRelationReportService {
  19. /**
  20. * 根据信息点统计对象个数
  21. *
  22. * @param groupCode
  23. * @param classCodes
  24. * @param objTypes
  25. * @param groups
  26. * @return
  27. */
  28. List<Map<String,Object>> queryObjectCountByObjInfos(String groupCode, Set<String> classCodes, Set<String> objTypes, List<String> groups);
  29. /**
  30. * 根据条件查询对应的边类型数据
  31. *
  32. * @param groupCode
  33. * @param projectId
  34. * @param graphCode
  35. */
  36. List<GraphDefine> getGraphDefine(String groupCode, String projectId, String graphCode);
  37. /**
  38. * 根据条件查询对应的边类型数据
  39. *
  40. * @param groupCode
  41. * @param projectId
  42. * @param graphCode
  43. * @param relCode
  44. */
  45. List<RelationDefine> getRelationDefine(String groupCode, String projectId, String graphCode, String relCode);
  46. /**
  47. * 获取项目计算关系
  48. *
  49. * @param groupCode
  50. * @param projectId
  51. * @param relType ADM-类型
  52. * @return
  53. */
  54. ObjectNode getRelationProjectCal(String groupCode, String projectId, String relType);
  55. /**
  56. * 获取项目计算关系
  57. *
  58. * @param groupCode
  59. * @param projectId
  60. * @param graphCode
  61. * @param relCode
  62. * @param zoneType
  63. * @return
  64. */
  65. ObjectNode getRelationProjectCal(String groupCode, String projectId, String graphCode, String relCode, String zoneType);
  66. /**
  67. * 统计某类型下的关系数量
  68. *
  69. * @param groupCode
  70. * @param projectId
  71. * @param graphCode
  72. * @param relCode
  73. * @param zoneType 业务分区类型
  74. */
  75. long countRelationObject(String groupCode, String projectId, String graphCode, String relCode, String zoneType);
  76. /**
  77. * 统计某类型下的对象数量
  78. *
  79. * @param groupCode
  80. * @param projectId
  81. * @param classCode
  82. * @param objType
  83. * @return
  84. */
  85. long countObject(String groupCode, String projectId, String classCode, String objType);
  86. /**
  87. * 获取指定对象信息
  88. *
  89. * @param groupCode
  90. * @param projectId
  91. * @param id
  92. * @return 不会返回null
  93. */
  94. ObjectNode getObjectNode(String groupCode, String projectId, String id);
  95. /**
  96. * 获取指定对象信息
  97. * <p>定制接口,不建议兼容额外的处理方案</p>
  98. *
  99. * @param groupCode
  100. * @param projectId
  101. * @param objType
  102. * @param code ADM-中的code类型,请参考{@link com.persagy.proxy.adm.strategy.relationdata.QueryRelationObjectStrategy#OBJNAME_2_TYPE}
  103. * @param value 属性值
  104. * @return
  105. */
  106. List<ObjectNode> findObjectNodes(String groupCode, String projectId, String objType, String code, String value);
  107. /**
  108. * 获取对象,通过关系对象的id和rel_code
  109. *
  110. * @param groupCode
  111. * @param projectId
  112. * @param graphCode
  113. * @param relCode
  114. * @param objFrom 与objTo不可同时存在
  115. * @param objTo 与objFrom不可同时存在
  116. * @return 不会返回null
  117. */
  118. ObjectNode getObjectByCodeAndId(String groupCode, String projectId, String graphCode, String relCode, String objFrom, String objTo);
  119. /**
  120. * 获取对象关系数据
  121. *
  122. * @param groupCode
  123. * @param projectId
  124. * @param graphCode
  125. * @param relCode
  126. * @return
  127. */
  128. List<ObjectRelation> findObjectRelationList(String groupCode, String projectId, String graphCode, String relCode);
  129. /**
  130. * 查询出所有的关系信息
  131. * <p>因原代码中,不存在zoneType类型不为空时对应的方法,所以此处不再进行此数据的判断</p>
  132. *
  133. * @param groupCode
  134. * @param projectId
  135. * @param relType
  136. * @param code
  137. * @param zoneType
  138. * @return 可以被直接导出的数据集
  139. */
  140. List<AdmRelationObject> reportRelationObject(String groupCode, String projectId, String relType, String code, String zoneType);
  141. }