OrganizeService.java 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436
  1. package jnpf.permission.service;
  2. import com.baomidou.mybatisplus.core.toolkit.support.SFunction;
  3. import jnpf.base.ActionResult;
  4. import jnpf.base.service.SuperService;
  5. import jnpf.permission.entity.OrganizeEntity;
  6. import jnpf.permission.model.organize.OrganizeConditionModel;
  7. import jnpf.permission.model.organize.OrganizeListVO;
  8. import jnpf.permission.model.organize.OrganizeModel;
  9. import jnpf.permission.model.organize.OrganizePagination;
  10. import java.util.List;
  11. import java.util.Map;
  12. /**
  13. * 组织机构
  14. *
  15. * @author JNPF开发平台组
  16. * @version V3.1.0
  17. * @copyright 引迈信息技术有限公司
  18. * @date 2019年9月26日 上午9:18
  19. */
  20. public interface OrganizeService extends SuperService<OrganizeEntity> {
  21. /**
  22. * 组织异步列表
  23. *
  24. * @return
  25. */
  26. List<OrganizeEntity> getList(OrganizePagination pagination);
  27. /**
  28. * 验证名称
  29. * 原来是,同级下不同类型可以重名,改成同级下所有类型都不能重名
  30. *
  31. * @param entity
  32. * @param isCheck 组织名称是否不分级判断
  33. * @param isFilter 是否需要过滤id
  34. * @return
  35. */
  36. boolean isExistByFullName(OrganizeEntity entity, boolean isCheck, boolean isFilter);
  37. /**
  38. * 验证编码
  39. *
  40. * @param enCode
  41. * @param id
  42. * @return
  43. */
  44. boolean isExistByEnCode(String enCode, String id);
  45. /**
  46. * 创建
  47. *
  48. * @param entity 实体对象
  49. */
  50. void create(OrganizeEntity entity);
  51. /**
  52. * 更新
  53. *
  54. * @param id 主键值
  55. * @param entity 实体对象
  56. */
  57. boolean update(String id, OrganizeEntity entity);
  58. /**
  59. * 信息
  60. *
  61. * @param id 主键值
  62. * @return
  63. */
  64. OrganizeEntity getInfo(String id);
  65. /**
  66. * 删除
  67. *
  68. * @param orgId 实体对象
  69. */
  70. ActionResult<String> delete(String orgId, Boolean isSyn);
  71. /**
  72. * 验证层级
  73. *
  74. * @param entity 实体对象
  75. */
  76. boolean checkLevel(OrganizeEntity entity);
  77. /**
  78. * 验证下级组织类型
  79. *
  80. * @param entity 实体对象
  81. */
  82. boolean checkOrgType(OrganizeEntity entity);
  83. /**
  84. * 获取所有组织全路径名称
  85. *
  86. * @return
  87. */
  88. Map<String, Object> getAllOrgsTreeName();
  89. Map<String, String> getAllOrgsTreeName(boolean enabledMark);
  90. /**
  91. * 根据id获取列表
  92. *
  93. * @return
  94. */
  95. List<OrganizeEntity> getListAll(List<String> idAll, String keyWord);
  96. /**
  97. * 根据id获取列表
  98. *
  99. * @return
  100. */
  101. List<OrganizeEntity> getListByIds(List<String> idList);
  102. /**
  103. * 获取全部父级组织
  104. *
  105. * @param parentId
  106. * @return
  107. */
  108. List<OrganizeEntity> getParentList(String parentId);
  109. /**
  110. * @param idList
  111. * @return
  112. */
  113. List<OrganizeEntity> getListByParentIds(List<String> idList);
  114. /**
  115. * 设置组织的树形id和名称
  116. *
  117. * @param entity
  118. */
  119. void setOrgTreeIdAndName(OrganizeEntity entity);
  120. /**
  121. * 列表
  122. *
  123. * @return
  124. */
  125. List<OrganizeEntity> getDepsByParentId(String id);
  126. /**
  127. * 列表
  128. *
  129. * @param filterEnabledMark
  130. * @return
  131. */
  132. List<OrganizeEntity> getList(boolean filterEnabledMark);
  133. /**
  134. * 列表
  135. *
  136. * @return
  137. */
  138. List<OrganizeEntity> getList(String keyword, boolean filterEnabledMark);
  139. /**
  140. * 获取组织信息
  141. *
  142. * @param keyword
  143. * @param filterEnabledMark
  144. * @param category
  145. * @return OrgId, OrgEntity
  146. */
  147. Map<String, OrganizeEntity> getOrgMaps(String keyword, boolean filterEnabledMark, String category, SFunction<OrganizeEntity, ?>... columns);
  148. /**
  149. * 获取组织信息
  150. *
  151. * @return OrgId, OrgEntity
  152. */
  153. Map<String, OrganizeEntity> getOrgMapsAll(SFunction<OrganizeEntity, ?>... columns);
  154. /**
  155. * 列表
  156. *
  157. * @param fullName 组织名称
  158. * @return
  159. */
  160. OrganizeEntity getInfoByFullName(String fullName);
  161. /**
  162. * 获取部门名列表
  163. *
  164. * @return
  165. */
  166. List<OrganizeEntity> getOrgEntityList(List<String> idList, Boolean enable);
  167. /**
  168. * 全部组织(id : name)
  169. *
  170. * @return
  171. */
  172. Map<String, Object> getOrgMap();
  173. /**
  174. * 全部组织(Encode/name : id)
  175. *
  176. * @param category
  177. * @return
  178. */
  179. Map<String, Object> getOrgEncodeAndName(String category);
  180. /**
  181. * 全部组织(name : id)
  182. *
  183. * @param category
  184. * @return
  185. */
  186. Map<String, Object> getOrgNameAndId(String category);
  187. /**
  188. * 通过名称查询id
  189. *
  190. * @param fullName 名称
  191. * @return
  192. */
  193. OrganizeEntity getByFullName(String fullName);
  194. /**
  195. * 获取父级id
  196. *
  197. * @param organizeId 组织id
  198. * @param organizeParentIdList 父级id集合
  199. */
  200. void getOrganizeIdTree(String organizeId, List<String> organizeParentIdList);
  201. /**
  202. * 获取父级id
  203. *
  204. * @param organizeId 组织id
  205. * @param organizeParentIdList 父级id集合
  206. */
  207. void getOrganizeId(String organizeId, List<OrganizeEntity> organizeParentIdList);
  208. /**
  209. * 上移
  210. *
  211. * @param id 主键值
  212. */
  213. boolean first(String id);
  214. /**
  215. * 下移
  216. *
  217. * @param id 主键值
  218. */
  219. boolean next(String id);
  220. /**
  221. * 判断是否允许删除
  222. *
  223. * @param orgId 主键值
  224. * @return
  225. */
  226. String allowDelete(String orgId);
  227. /**
  228. * 获取名称
  229. *
  230. * @return
  231. */
  232. List<OrganizeEntity> getOrganizeName(List<String> id);
  233. /**
  234. * 获取名称
  235. *
  236. * @return
  237. */
  238. Map<String, OrganizeEntity> getOrganizeName(List<String> id, String keyword, boolean filterEnabledMark, String category);
  239. /**
  240. * 获取所有当前用户的组织及子组织
  241. *
  242. * @param organizeId
  243. * @param filterEnabledMark
  244. * @return
  245. */
  246. List<String> getUnderOrganizations(String organizeId, boolean filterEnabledMark);
  247. /**
  248. * 获取所有当前用户的组织及子组织 (有分级权限验证)
  249. *
  250. * @param organizeId
  251. * @return
  252. */
  253. List<String> getUnderOrganizationss(String organizeId);
  254. /**
  255. * 通过id判断是否有子集
  256. *
  257. * @param id 主键
  258. * @return
  259. */
  260. List<OrganizeEntity> getListByParentId(String id);
  261. /**
  262. * 获取用户所有所在组织
  263. *
  264. * @return 组织对象集合
  265. */
  266. List<OrganizeEntity> getAllOrgByUserId(String userId);
  267. /**
  268. * 通过组织id树获取名称
  269. *
  270. * @param idNameMaps 预先获取的组织ID名称映射
  271. * @param orgIdTree 组织id树
  272. * @param regex 分隔符
  273. * @return 组织对象集合
  274. */
  275. String getFullNameByOrgIdTree(Map<String, String> idNameMaps, String orgIdTree, String regex);
  276. /**
  277. * 获取父级组织id
  278. *
  279. * @param entity
  280. * @return
  281. */
  282. String getOrganizeIdTree(OrganizeEntity entity);
  283. /**
  284. * 获取顶级组织
  285. *
  286. * @param parentId
  287. * @return
  288. */
  289. List<OrganizeEntity> getOrganizeByParentId(String parentId);
  290. /**
  291. * 获取子级
  292. *
  293. * @param id 组织id
  294. */
  295. List<OrganizeEntity> getAllChild(String id);
  296. /**
  297. * 查询用户的所属公司下的部门
  298. *
  299. * @return
  300. */
  301. List<OrganizeEntity> getDepartmentAll(String organizeId);
  302. /**
  303. * 获取所在公司
  304. *
  305. * @param organizeId
  306. * @return
  307. */
  308. OrganizeEntity getOrganizeCompany(String organizeId);
  309. /**
  310. * 获取所在公司下部门
  311. *
  312. * @return
  313. */
  314. void getOrganizeDepartmentAll(String organize, List<OrganizeEntity> list);
  315. /**
  316. * 获取组织id树
  317. *
  318. * @param entity
  319. * @return
  320. */
  321. List<String> getOrgIdTree(OrganizeEntity entity);
  322. /**
  323. * 向上递归取组织id
  324. *
  325. * @param orgID
  326. * @return
  327. */
  328. List<String> upWardRecursion(List<String> orgIDs, String orgID);
  329. /**
  330. * 获取名称及id组成map
  331. *
  332. * @return
  333. */
  334. Map<String, String> getInfoList();
  335. /**
  336. * 通过组织id获取组织关系
  337. *
  338. * @param departIds
  339. * @param type
  340. * @return
  341. */
  342. List<String> getOrgIds(List<String> departIds, String type);
  343. /**
  344. * 通过组织id获取组织关系
  345. *
  346. * @return
  347. */
  348. List<OrganizeModel> getOrgIdsList(OrganizeConditionModel organizeConditionModel);
  349. /**
  350. * 组织自定义范围回显
  351. *
  352. * @return
  353. */
  354. List<OrganizeListVO> selectedList(List<String> idStrList);
  355. /**
  356. * 组织范围下拉
  357. *
  358. * @return
  359. */
  360. List<OrganizeEntity> OrganizeCondition(List<String> idStrList);
  361. /**
  362. * ids列表字符串获取名称(当前组织)
  363. *
  364. * @param idStr
  365. * @return
  366. */
  367. String getNameByIdStr(String idStr);
  368. /**
  369. * 获取子孙组织
  370. *
  371. * @param idList
  372. * @return
  373. */
  374. List<OrganizeEntity> getProgeny(List<String> idList, Integer enabledMark);
  375. }