IRelationReportService.java 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219
  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.alibaba.fastjson.JSONObject;
  6. import com.fasterxml.jackson.core.JsonProcessingException;
  7. import com.fasterxml.jackson.databind.node.ObjectNode;
  8. import com.persagy.dmp.basic.model.QueryCriteria;
  9. import com.persagy.dmp.define.entity.GraphDefine;
  10. import com.persagy.dmp.define.entity.ObjectInfoDefine;
  11. import com.persagy.dmp.define.entity.ObjectTypeDefine;
  12. import com.persagy.dmp.define.entity.RelationDefine;
  13. import com.persagy.dmp.digital.entity.ObjectRelation;
  14. /**
  15. * 报表/模板下载
  16. *
  17. * @version 1.0.0
  18. * @company persagy
  19. * @author zhangqiankun
  20. * @date 2021年8月31日 下午4:42:51
  21. */
  22. public interface IRelationReportService {
  23. /**
  24. * 获取class类型定义数据
  25. *
  26. * @param groupCode
  27. * @param projectId
  28. * @param classCode
  29. * @param objTypes
  30. * @param ascOrder
  31. * @return
  32. */
  33. List<ObjectTypeDefine> queryClassList(String groupCode, String projectId, String classCode, Set<String> objTypes, String ascOrder);
  34. /**
  35. * 根据信息点统计对象个数
  36. *
  37. * @param groupCode
  38. * @param classCodes
  39. * @param objTypes
  40. * @param groups
  41. * @return
  42. */
  43. List<Map<String,Object>> queryObjectCountByObjInfos(String groupCode, Set<String> classCodes, Set<String> objTypes, List<String> groups);
  44. /**
  45. * 根据条件查询对应的图类型数据
  46. *
  47. * @param groupCode
  48. * @param projectId
  49. * @param graphCode
  50. */
  51. List<GraphDefine> getGraphDefine(String groupCode, String projectId, String graphCode);
  52. /**
  53. * 根据条件查询对应的边类型数据
  54. *
  55. * @param groupCode
  56. * @param projectId
  57. * @param graphCode
  58. * @param relCode
  59. */
  60. List<RelationDefine> getRelationDefine(String groupCode, String projectId, String graphCode, String relCode);
  61. /**
  62. * 获取所有的项目计算二级树数据
  63. *
  64. * @param groupCode
  65. * @param projectId
  66. * @return
  67. */
  68. List<JSONObject> getAllRelationProjectCalTree(String groupCode, String projectId);
  69. /**
  70. * 获取所有的项目计算数据
  71. *
  72. * @param queryCriteria
  73. * @param groupCode
  74. * @param projectId
  75. * @return
  76. */
  77. List<JSONObject> getAllRelationProjectCal(QueryCriteria queryCriteria, String groupCode, String projectId);
  78. /**
  79. * 获取项目计算关系
  80. *
  81. * @param groupCode
  82. * @param projectId
  83. * @param relType ADM-类型
  84. * @return
  85. */
  86. JSONObject getRelationProjectCal(String groupCode, String projectId, String relType);
  87. /**
  88. * 获取项目计算关系
  89. *
  90. * @param groupCode
  91. * @param projectId
  92. * @param graphCode
  93. * @param relCode
  94. * @param zoneType
  95. * @return
  96. */
  97. ObjectNode getRelationProjectCal(String groupCode, String projectId, String graphCode, String relCode, String zoneType);
  98. /**
  99. * 统计某类型下的关系数量
  100. *
  101. * @param groupCode
  102. * @param projectId
  103. * @param graphCode
  104. * @param relCode
  105. * @param zoneType 业务分区类型
  106. */
  107. long countRelationObject(String groupCode, String projectId, String graphCode, String relCode, String zoneType);
  108. /**
  109. * 统计某类型下的对象数量
  110. *
  111. * @param groupCode
  112. * @param projectId
  113. * @param classCode
  114. * @param objType
  115. * @return
  116. */
  117. long countObject(String groupCode, String projectId, String classCode, String objType);
  118. /**
  119. * 获取指定对象信息
  120. *
  121. * @param groupCode
  122. * @param projectId
  123. * @param id
  124. * @return 不会返回null
  125. */
  126. ObjectNode getObjectNode(String groupCode, String projectId, String id);
  127. /**
  128. * 获取指定对象信息
  129. * <p>定制接口,不建议兼容额外的处理方案</p>
  130. *
  131. * @param groupCode
  132. * @param projectId
  133. * @param objType
  134. * @param code ADM-中的code类型,请参考{@link com.persagy.proxy.adm.strategy.relationdata.QueryRelationObjectStrategy#OBJNAME_2_TYPE}
  135. * @param value 属性值
  136. * @return
  137. */
  138. List<ObjectNode> findObjectNodes(String groupCode, String projectId, String objType, String code, String value);
  139. /**
  140. * 获取对象,通过关系对象的id和rel_code
  141. *
  142. * @param groupCode
  143. * @param projectId
  144. * @param graphCode
  145. * @param relCode
  146. * @param objFrom 与objTo不可同时存在
  147. * @param objTo 与objFrom不可同时存在
  148. * @return 不会返回null
  149. */
  150. ObjectNode getObjectByCodeAndId(String groupCode, String projectId, String graphCode, String relCode, String objFrom, String objTo);
  151. /**
  152. * 获取原始的对象数据
  153. *
  154. * @param groupCode
  155. * @param projectId
  156. * @param id
  157. * @param classCode
  158. * @param objType
  159. * @param ascOrder
  160. * @return
  161. */
  162. List<ObjectNode> queryObjects(String groupCode, String projectId, String id, String classCode, String objType, String ascOrder);
  163. /**
  164. * 获取原始的对象关系数据
  165. *
  166. * @param groupCode
  167. * @param projectId
  168. * @param graphCode
  169. * @param relCode
  170. * @return
  171. */
  172. List<ObjectRelation> findRelationObjects(String groupCode, String projectId, String graphCode, String relCode);
  173. /**
  174. * 查询信息点定义
  175. *
  176. * @param groupCode
  177. * @param projectId
  178. * @param classCodes
  179. * @param code
  180. * @param category
  181. * @return
  182. */
  183. List<ObjectInfoDefine> queryFunidList(String groupCode, String projectId, Set<String> classCodes, String code, String category);
  184. /**
  185. * 查询关系总览(空表,先插入)
  186. * @param content: 模糊查询卡片名称关键字
  187. */
  188. JSONObject overview(String content) throws JsonProcessingException;
  189. /**
  190. * 初始化项目关系计算数据
  191. *
  192. * @param groupCode: 集团编码
  193. * @param projectId: 项目id
  194. * @return
  195. */
  196. boolean createRelationProjectCal(String groupCode, String projectId) throws JsonProcessingException;
  197. }