SynThirdDingTalkService.java 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180
  1. package jnpf.message.service;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.dingtalk.api.response.OapiV2UserListResponse;
  4. import jnpf.message.model.message.DingTalkDeptModel;
  5. import jnpf.permission.entity.OrganizeEntity;
  6. import jnpf.permission.entity.UserEntity;
  7. import java.text.ParseException;
  8. import java.util.List;
  9. /**
  10. * 钉钉组织-部门-用户的同步业务
  11. *
  12. * @版本: V3.1.0
  13. * @版权: 引迈信息技术有限公司(https://www.jnpfsoft.com)
  14. * @作者: JNPF开发平台组
  15. * @日期: 2021/5/7 8:42
  16. */
  17. public interface SynThirdDingTalkService {
  18. //------------------------------------本系统同步公司、部门到钉钉-------------------------------------
  19. /**
  20. * 本地同步单个公司或部门到钉钉(供调用)
  21. * 不带错误定位判断的功能代码,只获取调用接口的返回信息 20210604
  22. *
  23. * @param isBatch 是否批量(批量不受开关限制)
  24. * @param deptEntity
  25. * @param accessToken (单条调用时为空)
  26. * @return
  27. */
  28. JSONObject createDepartmentSysToDing(boolean isBatch, OrganizeEntity deptEntity, String accessToken);
  29. /**
  30. * 本地更新单个公司或部门到钉钉(供调用)
  31. * 不带错误定位判断的功能代码,只获取调用接口的返回信息 20210604
  32. *
  33. * @param isBatch 是否批量(批量不受开关限制)
  34. * @param deptEntity
  35. * @param accessToken (单条调用时为空)
  36. * @return
  37. */
  38. JSONObject updateDepartmentSysToDing(boolean isBatch, OrganizeEntity deptEntity, String accessToken);
  39. /**
  40. * 单条同步统一处理
  41. * @param isBatch 是否批量
  42. * @param deptEntity 组织
  43. * @param accessToken token
  44. * @param choice 处理选择
  45. */
  46. JSONObject unifyDepartmentSysToDing(boolean isBatch, OrganizeEntity deptEntity, String accessToken, String choice);
  47. JSONObject unifyDepartmentSysToDing(boolean isBatch, List<OrganizeEntity> organizeEntities, String accessToken, String choice);
  48. /**
  49. * 本地删除单个公司或部门,同步到钉钉(供调用)
  50. * 不带错误定位判断的功能代码,只获取调用接口的返回信息 20210604
  51. *
  52. * @param isBatch 是否批量(批量不受开关限制)
  53. * @param id 本系统的公司或部门ID
  54. * @param accessToken (单条调用时为空)
  55. * @return
  56. */
  57. JSONObject deleteDepartmentSysToDing(boolean isBatch, String id, String accessToken);
  58. //------------------------------------本系统同步用户到钉钉-------------------------------------
  59. /**
  60. * 本地用户创建同步到钉钉的用户(单个)
  61. * 不带第三方错误定位判断的功能代码,只获取调用接口的返回信息 20210604
  62. *
  63. * @param isBatch 是否批量(批量不受开关限制)
  64. * @param userEntity
  65. * @param accessToken (单条调用时为空)
  66. * @return
  67. */
  68. JSONObject createUserSysToDing(boolean isBatch, UserEntity userEntity, String accessToken) throws ParseException;
  69. JSONObject createUserSysToDing(boolean isBatch, List<UserEntity> userEntities, String accessToken,String positionId) throws ParseException;
  70. JSONObject createUserSysToDing(boolean isBatch, UserEntity userEntity, String accessToken,List<String> ids) throws ParseException;
  71. /**
  72. * 本地更新用户信息或部门到钉钉的成员用户(单个)
  73. * 不带第三方错误定位判断的功能代码,只获取调用接口的返回信息 20210604
  74. *
  75. * @param isBatch 是否批量(批量不受开关限制)
  76. * @param userEntity
  77. * @param accessToken (单条调用时为空)
  78. * @return
  79. */
  80. JSONObject updateUserSysToDing(boolean isBatch, UserEntity userEntity, String accessToken) throws ParseException;
  81. JSONObject updateUserSysToDing(boolean isBatch, UserEntity userEntity, String accessToken,Integer single) throws ParseException;
  82. /**
  83. * 本地删除单个用户,同步到钉钉用户
  84. * 不带第三方错误定位判断的功能代码,只获取调用接口的返回信息 20210604
  85. *
  86. * @param isBatch 是否批量(批量不受开关限制)
  87. * @param id 本系统的公司或部门ID
  88. * @param accessToken (单条调用时为空)
  89. * @return
  90. */
  91. JSONObject deleteUserSysToDing(boolean isBatch, String id, String accessToken);
  92. /**
  93. * 给岗位删除用户可能会涉及到删除绑定,判断是否在绑定组织的岗位上
  94. * @param isBatch
  95. * @param ids
  96. * @param accessToken
  97. * @return
  98. * @throws ParseException
  99. */
  100. JSONObject deleteUserSysToDing(boolean isBatch, List<String> ids, String accessToken,String orgIds) throws ParseException;
  101. JSONObject deleteUserSysToDing(boolean isBatch, UserEntity userEntity, String accessToken,List<String> orgIds) throws ParseException;
  102. //------------------------------------钉钉同步公司、部门到本系统20220330-------------------------------------
  103. /**
  104. * 钉钉同步单个公司或部门到本地(供调用)
  105. * 不带错误定位判断的功能代码,只获取调用接口的返回信息 20220331
  106. *
  107. * @param isBatch 是否批量(批量不受开关限制)
  108. * @param deptEntity
  109. * @param accessToken (单条调用时为空)
  110. * @return
  111. */
  112. JSONObject createDepartmentDingToSys(boolean isBatch, DingTalkDeptModel deptEntity, String accessToken);
  113. /**
  114. * 本地更新单个公司或部门到钉钉(供调用)
  115. * 不带错误定位判断的功能代码,只获取调用接口的返回信息 20220331
  116. *
  117. * @param isBatch 是否批量(批量不受开关限制)
  118. * @param deptEntity
  119. * @param accessToken (单条调用时为空)
  120. * @return
  121. */
  122. JSONObject updateDepartmentDingToSys(boolean isBatch, DingTalkDeptModel deptEntity, String accessToken);
  123. /**
  124. * 本地删除单个公司或部门,同步到钉钉(供调用)
  125. * 不带错误定位判断的功能代码,只获取调用接口的返回信息 20220331
  126. *
  127. * @param isBatch 是否批量(批量不受开关限制)
  128. * @param id 第三方的公司或部门ID
  129. * @return
  130. */
  131. JSONObject deleteDepartmentDingToSys(boolean isBatch, String id);
  132. //------------------------------------钉钉同步用户到本系统20220331-------------------------------------
  133. /**
  134. * 本地用户创建同步到钉钉的用户(单个)
  135. * 不带第三方错误定位判断的功能代码,只获取调用接口的返回信息 20220331
  136. *
  137. * @param isBatch 是否批量(批量不受开关限制)
  138. * @param dingUserModel
  139. * @param accessToken (单条调用时为空)
  140. * @return
  141. */
  142. JSONObject createUserDingToSys(boolean isBatch, OapiV2UserListResponse.ListUserResponse dingUserModel, String accessToken) throws Exception;
  143. /**
  144. * 本地删除用户、中间表
  145. * 不带第三方错误定位判断的功能代码,只获取调用接口的返回信息 20220331
  146. *
  147. * @param isBatch 是否批量(批量不受开关限制)
  148. * @param id 钉钉的用户ID
  149. * @return
  150. */
  151. JSONObject deleteUserDingToSys(boolean isBatch, String id) throws Exception;
  152. JSONObject updateUserDingToSystem(boolean isBatch, OapiV2UserListResponse.ListUserResponse dingUserModel) throws Exception;
  153. }