IQiYeWeChatApiService.cs 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269
  1. using OASystem.Domain.Dtos.QiYeWeChat;
  2. using OASystem.Domain.ViewModels.QiYeWeChat;
  3. namespace OASystem.API.OAMethodLib.QiYeWeChatAPI
  4. {
  5. /// <summary>
  6. /// 企业微信Api 服务
  7. /// </summary>
  8. public interface IQiYeWeChatApiService
  9. {
  10. ///// <summary>
  11. ///// 获取access_token
  12. ///// </summary>
  13. ///// <param name="applicationType">
  14. ///// 1:人事助手
  15. ///// 2:打卡
  16. ///// 3:邮件
  17. ///// 6:团组状态通知
  18. ///// </param>
  19. ///// <returns></returns>
  20. //Task<Access_TokenView> GetToken(int applicationType);
  21. /// <summary>
  22. /// 创建员工
  23. /// </summary>
  24. /// <param name="create_Request"></param>
  25. /// <returns></returns>
  26. Task<ResponseBase> CreateAsync(Create_Request create_Request);
  27. /// <summary>
  28. /// 获取成员ID列表
  29. /// </summary>
  30. /// <returns></returns>
  31. Task<UserIdListView> GetUserIdListAsync();
  32. /// <summary>
  33. /// 获取成员信息
  34. /// </summary>
  35. /// <returns></returns>
  36. Task<QYWX_UserInfosView> GetUserInfosAsync();
  37. /// <summary>
  38. /// 发送邮件
  39. /// </summary>
  40. /// <param name="dto">发送邮件的请求对象</param>
  41. /// <returns></returns>
  42. Task<EmailResult> EmailSendAsync(EmailRequestDto dto);
  43. /// <summary>
  44. /// 获取企业所有打卡规则
  45. /// </summary>
  46. /// <returns></returns>
  47. Task<CorpCheckInRuleView> GetCheckIn_CorpCheckInOptionAsync();
  48. /// <summary>
  49. /// 获取月打卡数据
  50. /// </summary>
  51. /// <param name="startDt"></param>
  52. /// <param name="endDt"></param>
  53. /// <returns></returns>
  54. Task<CheckInView> GetCheckin_MonthDataAsync(DateTime startDt, DateTime endDt);
  55. /// 获取月打卡数据
  56. /// </summary>
  57. /// <param name="startDt"></param>
  58. /// <param name="endDt"></param>
  59. /// <returns></returns>
  60. Task<CheckInView> GetCheckin_MonthDataAsync1(DateTime startDt, DateTime endDt);
  61. /// <summary>
  62. /// 获取用户考核打卡记录
  63. /// </summary>
  64. /// <param name="startDt"></param>
  65. /// <param name="endDt"></param>
  66. /// <param name="qiyeUidList"></param>
  67. /// <returns></returns>
  68. Task<object> QueryAssessmentByUser(DateTime startDt, DateTime endDt, List<string> qiyeUidList);
  69. /// <summary>
  70. /// 获取月打卡数据 Redis
  71. /// </summary>
  72. /// <param name="startDt"></param>
  73. /// <param name="endDt"></param>
  74. /// <returns></returns>
  75. Task<CheckInView> GetCheckin_MonthDataRedisAsync(DateTime startDt, DateTime endDt);
  76. /// <summary>
  77. /// 获取打卡记录数据
  78. /// </summary>
  79. /// <param name="useridlist">需要获取打卡记录的用户列表</param>
  80. /// <param name="opencheckindatatype">打卡类型。1:上下班打卡;2:外出打卡;3:全部打卡</param>
  81. /// <param name="startDt">获取打卡记录的开始时间。Unix时间戳</param>
  82. /// <param name="endDt">获取打卡记录的结束时间。Unix时间戳</param>
  83. /// <returns></returns>
  84. Task<CheckInDataView> GetCheckinDataAsync(List<string> useridlist, int opencheckindatatype, DateTime startDt, DateTime endDt);
  85. /// <summary>
  86. /// 获取打卡日报数据
  87. /// </summary>
  88. /// <param name="useridlist"></param>
  89. /// <param name="startDt"></param>
  90. /// <param name="endDt"></param>
  91. /// <returns></returns>
  92. Task<CheckInDayDataView> GetCheckInDayDataAsync(List<string> useridlist, DateTime startDt, DateTime endDt);
  93. /// <summary>
  94. /// 获取审批数据(旧)
  95. /// </summary>
  96. /// <param name="startDt"></param>
  97. /// <param name="endDt"></param>
  98. /// <returns></returns>
  99. Task<ApprovalDataView> GetApprovalDataAsync(DateTime startDt, DateTime endDt);
  100. /// <summary>
  101. /// 获取审批数据(旧)
  102. /// </summary>
  103. /// <param name="startDt"></param>
  104. /// <param name="endDt"></param>
  105. /// <returns></returns>
  106. Task<List<Sp_Info>> GetApprovalDatasAsync(DateTime startDt, DateTime endDt);
  107. /// <summary>
  108. /// 获取审批数据(旧)(redis缓存)
  109. /// </summary>
  110. /// <param name="startDt"></param>
  111. /// <param name="endDt"></param>
  112. /// <returns></returns>
  113. Task<List<Sp_Info>> GetApprovalDatasRedisAsync(DateTime startDt, DateTime endDt);
  114. ///// <summary>
  115. ///// 批量获取审批单号
  116. ///// </summary>
  117. ///// <param name="startDt"></param>
  118. ///// <param name="endDt"></param>
  119. ///// <param name="record_type">
  120. ///// sp_status-审批单状态(1-审批中;2-已通过;3-已驳回;4-已撤销;6-通过后撤销;7-已删除;10-已支付)
  121. ///// </param>
  122. ///// <returns></returns>
  123. //Task<ApprovalInfoView> GetApprovalInfoAsync(DateTime startDt, DateTime endDt, int record_type);
  124. Task<ApprovalInfoView> GetApprovalInfoUpdateAsync(
  125. DateTime startTime,
  126. DateTime endTime,
  127. string newCursor,
  128. int size,
  129. List<FilterCondition> filters);
  130. //// <summary>
  131. /// 批量获取审批详情
  132. /// <param name="startDt"></param>
  133. /// <param name="endDt"></param>
  134. /// <param name="creator">
  135. /// 申请人
  136. /// </param>
  137. /// <param name="sp_status">
  138. /// sp_status-审批单状态(1-审批中;2-已通过;3-已驳回;4-已撤销;6-通过后撤销;7-已删除;10-已支付)
  139. /// </param>
  140. /// <param name="record_type">
  141. /// record_type - 审批单类型属性,1-请假;2-打卡补卡;3-出差;4-外出;5-加班; 6- 调班;7-会议室预定;8-退款审批;9-红包报销审批
  142. /// </param>
  143. /// <returns></returns>
  144. Task<List<Sp_Detail>> GetApprovalDetailsAsync(DateTime startDt, DateTime endDt, string creator, int sp_status, int record_type);
  145. /// <summary>
  146. /// 获取审批模板详情
  147. /// </summary>
  148. /// <param name="template_id">模板Id</param>
  149. /// <returns></returns>
  150. Task<TemplateDetailView> GetTemplateDetailAsync(string template_id);
  151. /// <summary>
  152. /// 获取审批详情
  153. /// </summary>
  154. /// <param name="spNo">审批No</param>
  155. /// <returns></returns>
  156. Task<ApprovalDetailView> GetApprovalDetailAsync(string spNo);
  157. /// <summary>
  158. /// 批量获取汇报记录单号
  159. /// </summary>
  160. /// <param name="startTime">开始时间</param>
  161. /// <param name="endTime">结束时间</param>
  162. /// <param name="cursor">游标</param>
  163. /// <param name="limit">拉取条数</param>
  164. /// <param name="filters">过滤条件</param>
  165. /// <returns></returns>
  166. Task<JournalRecordListView> GetJournalRecordListAsync(DateTime startTime, DateTime endTime, int cursor = 0, int limit = 10, List<JournalFilter> filters = null);
  167. /// <summary>
  168. /// 获取汇报记录详情
  169. /// </summary>
  170. /// <param name="journaluuid">汇报记录单号</param>
  171. /// <returns></returns>
  172. Task<JournalDetailView> GetJournalRecordDetailAsync(string journaluuid);
  173. /// <summary>
  174. /// hook 发送团组出发信息给财务群
  175. /// </summary>
  176. /// <param name="msg"></param>
  177. /// <returns></returns>
  178. Task<ResponseBase> RobotSendMsg_GroupInfo(string msg);
  179. #region 团组状态通知
  180. /// <summary>
  181. /// 获取部门成员
  182. /// </summary>
  183. /// <param name="departmentId"></param>
  184. /// <returns></returns>
  185. Task<GroupStatus_UserSimplelistView> GroupStatus_GetUserList(int departmentId = 8402038);
  186. /// <summary>
  187. /// 创建群聊
  188. /// </summary>
  189. /// <param name="chatName"></param>
  190. /// <param name="owner"></param>
  191. /// <param name="userList"></param>
  192. /// <param name="chatId"></param>
  193. /// <returns></returns>
  194. Task<GroupStatus_CreateChatView> GroupStatus_CreateChat(string chatName, string owner, List<string> userList, string chatId);
  195. /// <summary>
  196. /// 向群聊发送消息
  197. /// </summary>
  198. /// <param name="chatId"></param>
  199. /// <param name="msgContent"></param>
  200. /// <param name="msgType"></param>
  201. /// <returns></returns>
  202. Task<ResponseBase> GroupStatus_SendChatMsg_Markdown(string chatId, string msgContent, string msgType = "markdown");
  203. /// <summary>
  204. /// 向用户发送信息
  205. /// </summary>
  206. /// <param name="toUser"></param>
  207. /// <param name="msgContent"></param>
  208. /// <param name="msgType"></param>
  209. /// <returns></returns>
  210. Task<GroupStatus_SendMessageView> GroupStatus_SendMessage_ToUser_Markdown(List<string> toUser, string msgContent, string msgType = "markdown");
  211. #endregion
  212. /// <summary>
  213. /// 筛选条件
  214. /// </summary>
  215. public class FilterCondition
  216. {
  217. /// <summary>
  218. /// 筛选类型
  219. /// template_id - 模板类型/模板id
  220. /// creator - 申请人
  221. /// department - 审批单提单者所在部门
  222. /// sp_status - 审批状态
  223. /// record_type - 审批单类型属性
  224. /// </summary>
  225. public string key { get; set; }
  226. /// <summary>
  227. /// 筛选值
  228. /// </summary>
  229. public string value { get; set; }
  230. }
  231. }
  232. }