uk_attendance_repository.dart 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. import 'package:domain/entity/response/u_k_security_attendance_entity.dart';
  2. import 'package:domain/entity/response/u_k_security_attendance_option_entity.dart';
  3. import 'package:get/get.dart';
  4. import 'package:plugin_platform/http/http_provider.dart';
  5. import 'package:plugin_platform/http/http_result.dart';
  6. import 'package:plugin_platform/platform_export.dart';
  7. import 'package:shared/utils/util.dart';
  8. import '../constants/api_constants.dart';
  9. /// UK设备与考勤相关的数据仓库
  10. class UKAttendanceRepository extends GetxService {
  11. HttpProvider httpProvider;
  12. UKAttendanceRepository({required this.httpProvider});
  13. /// 获取当前门卫的考勤筛选选项
  14. Future<HttpResult<UKSecurityAttendanceOptionEntity>> fetchSecurityAttendanceOptions({
  15. CancelToken? cancelToken,
  16. }) async {
  17. final result = await httpProvider.requestNetResult(
  18. ApiConstants.apiSecurityAttendanceOptionUK,
  19. cancelToken: cancelToken,
  20. );
  21. //根据返回的结果,封装原始数据为Bean/Entity对象
  22. if (result.isSuccess) {
  23. final json = result.getDataJson();
  24. var data = UKSecurityAttendanceOptionEntity.fromJson(json!);
  25. return result.convert<UKSecurityAttendanceOptionEntity>(data: data);
  26. }
  27. return result.convert();
  28. }
  29. /// 获取当前门卫的考勤成员列表
  30. Future<HttpResult<UKSecurityAttendanceEntity>> fetchSecurityAttendanceList({
  31. String? keyword,
  32. String? startDate,
  33. String? endDate,
  34. String? departmentId,
  35. int curPage = 1,
  36. int pageSize = 10,
  37. CancelToken? cancelToken,
  38. }) async {
  39. Map<String, String> params = {};
  40. params["cur_page"] = curPage.toString();
  41. params["page_size"] = pageSize.toString();
  42. if (!Utils.isEmpty(keyword)) {
  43. params["staff_name"] = keyword!;
  44. }
  45. if (!Utils.isEmpty(departmentId)) {
  46. params["co_department_id"] = departmentId!;
  47. }
  48. if (!Utils.isEmpty(startDate)) {
  49. params["start_date"] = startDate!;
  50. }
  51. if (!Utils.isEmpty(endDate)) {
  52. params["end_date"] = endDate!;
  53. }
  54. final result = await httpProvider.requestNetResult(
  55. ApiConstants.apiSecurityAttendanceListUK,
  56. params: params,
  57. cancelToken: cancelToken,
  58. );
  59. if (result.isSuccess) {
  60. final json = result.getDataJson();
  61. var data = UKSecurityAttendanceEntity.fromJson(json!);
  62. return result.convert<UKSecurityAttendanceEntity>(data: data);
  63. }
  64. return result.convert();
  65. }
  66. /// 门卫的考勤的编辑提交
  67. Future<HttpResult> submitSecurityAttendanceEdit({
  68. required String? appliedId,
  69. required String? formView,
  70. required String? securityIn,
  71. required String? securityOut,
  72. String? reason,
  73. CancelToken? cancelToken,
  74. }) async {
  75. //参数
  76. Map<String, String> params = {};
  77. params['applied_id'] = appliedId ?? "";
  78. params['from_view'] = formView ?? "";
  79. params['security_in'] = securityIn ?? "";
  80. params['security_out'] = securityOut ?? "";
  81. final result = await httpProvider.requestNetResult(
  82. ApiConstants.apiSecurityAttendanceEditUK,
  83. method: HttpMethod.POST,
  84. params: params,
  85. networkDebounce: true,
  86. isShowLoadingDialog: true,
  87. cancelToken: cancelToken,
  88. );
  89. //根据返回的结果,封装原始数据为Bean/Entity对象
  90. if (result.isSuccess) {
  91. //重新赋值data或list
  92. return result.convert();
  93. }
  94. return result.convert();
  95. }
  96. }