other_repository.dart 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  1. import 'package:domain/entity/response/device_list_entity.dart';
  2. import 'package:domain/entity/response/fiance_report_entity.dart';
  3. import 'package:domain/entity/response/labour_report_entity.dart';
  4. import 'package:domain/entity/response/staff_request_report_entity.dart';
  5. import 'package:get/get.dart';
  6. import 'package:plugin_platform/dio_export.dart';
  7. import 'package:plugin_platform/http/http_provider.dart';
  8. import 'package:plugin_platform/http/http_result.dart';
  9. import 'package:shared/utils/log_utils.dart';
  10. import 'package:shared/utils/util.dart';
  11. import '../constants/api_constants.dart';
  12. import '../entity/response/staff_report_v_n_entity.dart';
  13. /// 报表与其他的相关数据
  14. class OtherRepository extends GetxService {
  15. HttpProvider httpProvider;
  16. OtherRepository({required this.httpProvider});
  17. // 雇主的设备列表
  18. Future<HttpResult<DeviceListEntity>> fetchDeviceList({
  19. required int curPage,
  20. CancelToken? cancelToken,
  21. }) async {
  22. //参数
  23. Map<String, String> params = {};
  24. params["cur_page"] = curPage.toString();
  25. params["page_size"] = "10";
  26. final result = await httpProvider.requestNetResult(
  27. ApiConstants.apiDeviceList,
  28. params: params,
  29. cancelToken: cancelToken,
  30. );
  31. //根据返回的结果,封装原始数据为Bean/Entity对象
  32. if (result.isSuccess) {
  33. //重新赋值data或list
  34. final json = result.getDataJson();
  35. var data = DeviceListEntity.fromJson(json!);
  36. //重新赋值data或list
  37. return result.convert<DeviceListEntity>(data: data);
  38. }
  39. return result.convert();
  40. }
  41. //财务报表
  42. Future<HttpResult<FianceReportEntity>> fetchReportFiance(
  43. String? startDate,
  44. String? endDate, {
  45. CancelToken? cancelToken,
  46. }) async {
  47. //参数
  48. Map<String, String> params = {};
  49. if (Utils.isNotEmpty(startDate)) {
  50. params["start_date"] = startDate!;
  51. }
  52. if (Utils.isNotEmpty(endDate)) {
  53. params["end_date"] = endDate!;
  54. }
  55. final result = await httpProvider.requestNetResult(
  56. ApiConstants.apiReportFiance,
  57. params: params,
  58. cancelToken: cancelToken,
  59. );
  60. //根据返回的结果,封装原始数据为Bean/Entity对象
  61. if (result.isSuccess) {
  62. //重新赋值data或list
  63. final json = result.getDataJson();
  64. var data = FianceReportEntity.fromJson(json!);
  65. //重新赋值data或list
  66. return result.convert<FianceReportEntity>(data: data);
  67. }
  68. return result.convert();
  69. }
  70. //用工报表
  71. Future<HttpResult<LabourReportEntity>> fetchReportLabour(
  72. String? startDate,
  73. String? endDate, {
  74. CancelToken? cancelToken,
  75. }) async {
  76. //参数
  77. Map<String, String> params = {};
  78. if (Utils.isNotEmpty(startDate)) {
  79. params["start_date"] = startDate!;
  80. }
  81. if (Utils.isNotEmpty(endDate)) {
  82. params["end_date"] = endDate!;
  83. }
  84. final result = await httpProvider.requestNetResult(
  85. ApiConstants.apiReportLabour,
  86. params: params,
  87. cancelToken: cancelToken,
  88. );
  89. //根据返回的结果,封装原始数据为Bean/Entity对象
  90. if (result.isSuccess) {
  91. //重新赋值data或list
  92. final json = result.getDataJson();
  93. var data = LabourReportEntity.fromJson(json!);
  94. //重新赋值data或list
  95. return result.convert<LabourReportEntity>(data: data);
  96. }
  97. return result.convert();
  98. }
  99. //员工请求报表
  100. Future<HttpResult<StaffRequestReportEntity?>> fetchReportStaffRequest(
  101. String? startDate,
  102. String? endDate, {
  103. CancelToken? cancelToken,
  104. }) async {
  105. //参数
  106. Map<String, String> params = {};
  107. if (Utils.isNotEmpty(startDate)) {
  108. params["start_date"] = startDate!;
  109. }
  110. if (Utils.isNotEmpty(endDate)) {
  111. params["end_date"] = endDate!;
  112. }
  113. final result = await httpProvider.requestNetResult(
  114. ApiConstants.apiReportStaffRequest,
  115. params: params,
  116. cancelToken: cancelToken,
  117. );
  118. if (result.isSuccess) {
  119. var jsonList = result.getListJson();
  120. var list = jsonList?.map((e) {
  121. if (e is Map<String, dynamic>) {
  122. return StaffRequestReportEntity.fromJson(e);
  123. } else {
  124. return null;
  125. }
  126. }).toList();
  127. return result.convert<StaffRequestReportEntity?>(list: list);
  128. }
  129. return result.convert<StaffRequestReportEntity>();
  130. }
  131. /// 越南的员工报表
  132. Future<HttpResult<StaffReportVNEntity>> fetchStaffReportVN(
  133. String? startDate,
  134. String? endDate, {
  135. CancelToken? cancelToken,
  136. }) async {
  137. //参数
  138. Map<String, String> params = {};
  139. if (Utils.isNotEmpty(startDate)) {
  140. params["start_date"] = startDate!;
  141. }
  142. if (Utils.isNotEmpty(endDate)) {
  143. params["end_date"] = endDate!;
  144. }
  145. final result = await httpProvider.requestNetResult(
  146. ApiConstants.apiReportStaffRequest,
  147. params: params,
  148. cancelToken: cancelToken,
  149. );
  150. //根据返回的结果,封装原始数据为Bean/Entity对象
  151. if (result.isSuccess) {
  152. //重新赋值data或list
  153. final json = result.getDataJson();
  154. var data = StaffReportVNEntity.fromJson(json!);
  155. //重新赋值data或list
  156. return result.convert<StaffReportVNEntity>(data: data);
  157. }
  158. return result.convert();
  159. }
  160. }