labour_repository.dart 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237
  1. import 'package:domain/entity/response/labour_request_edit_index_entity.dart';
  2. import 'package:domain/entity/response/labour_request_index_entity.dart';
  3. import 'package:domain/entity/response/labour_request_list_entity.dart';
  4. import 'package:get/get.dart';
  5. import 'package:plugin_platform/dio_export.dart';
  6. import 'package:plugin_platform/http/http_provider.dart';
  7. import 'package:plugin_platform/http/http_result.dart';
  8. import 'package:shared/utils/util.dart';
  9. import '../constants/api_constants.dart';
  10. /// 用工请求相关
  11. class LabourRepository extends GetxService {
  12. HttpProvider httpProvider;
  13. LabourRepository({required this.httpProvider});
  14. /// 获取用工请求的筛选选项
  15. Future<HttpResult<LabourRequestIndexEntity>> fetchLabourRequestIndex({
  16. CancelToken? cancelToken,
  17. }) async {
  18. final result = await httpProvider.requestNetResult(
  19. ApiConstants.apiLabourRequestIndex,
  20. cancelToken: cancelToken,
  21. );
  22. //根据返回的结果,封装原始数据为Bean/Entity对象
  23. if (result.isSuccess) {
  24. //重新赋值data或list
  25. final json = result.getDataJson();
  26. var data = LabourRequestIndexEntity.fromJson(json!);
  27. //重新赋值data或list
  28. return result.convert<LabourRequestIndexEntity>(data: data);
  29. }
  30. return result.convert();
  31. }
  32. /// 获取用工请求的主列表
  33. Future<HttpResult<LabourRequestListEntity>> fetchLabourRequestList(
  34. String? keyword,
  35. String? startDate,
  36. String? endDate,
  37. String? statusId,
  38. String? departmentId, {
  39. required int curPage,
  40. CancelToken? cancelToken,
  41. }) async {
  42. //参数
  43. Map<String, String> params = {};
  44. params["cur_page"] = curPage.toString();
  45. params["page_size"] = "20";
  46. if (!Utils.isEmpty(keyword)) {
  47. params["job_title"] = keyword!;
  48. }
  49. if (!Utils.isEmpty(startDate)) {
  50. params["job_start"] = startDate!;
  51. }
  52. if (!Utils.isEmpty(endDate)) {
  53. params["job_end"] = endDate!;
  54. }
  55. if (!Utils.isEmpty(statusId)) {
  56. params["co_status"] = statusId!;
  57. }
  58. if (!Utils.isEmpty(departmentId)) {
  59. params["co_department_id"] = departmentId!;
  60. }
  61. final result = await httpProvider.requestNetResult(
  62. ApiConstants.apiLabourRequestList,
  63. params: params,
  64. cancelToken: cancelToken,
  65. );
  66. //根据返回的结果,封装原始数据为Bean/Entity对象
  67. if (result.isSuccess) {
  68. //重新赋值data或list
  69. final json = result.getDataJson();
  70. var data = LabourRequestListEntity.fromJson(json!);
  71. //重新赋值data或list
  72. return result.convert<LabourRequestListEntity>(data: data);
  73. }
  74. return result.convert();
  75. }
  76. /// 添加用工的选项
  77. Future<HttpResult<LabourRequestEditIndexEntity>> fetchLabourRequestAddOption({
  78. CancelToken? cancelToken,
  79. }) async {
  80. final result = await httpProvider.requestNetResult(
  81. ApiConstants.apiLabourRequestAddOption,
  82. isShowLoadingDialog:true,
  83. cancelToken: cancelToken,
  84. );
  85. //根据返回的结果,封装原始数据为Bean/Entity对象
  86. if (result.isSuccess) {
  87. //重新赋值data或list
  88. final json = result.getDataJson();
  89. var data = LabourRequestEditIndexEntity.fromJson(json!);
  90. //重新赋值data或list
  91. return result.convert<LabourRequestEditIndexEntity>(data: data);
  92. }
  93. return result.convert();
  94. }
  95. /// 添加用工请求发布
  96. Future<HttpResult> addLabourRequestSubmit(
  97. String? templateId,
  98. String? jobStart,
  99. String? jobEnd,
  100. String? departmentId,
  101. String? needNum, {
  102. CancelToken? cancelToken,
  103. }) async {
  104. //参数
  105. Map<String, String> params = {};
  106. params['template_id'] = templateId ?? "";
  107. params['job_start'] = jobStart ?? "";
  108. params['job_end'] = jobEnd ?? "";
  109. params['need_num'] = needNum ?? "";
  110. if (!Utils.isEmpty(departmentId)) {
  111. params["co_department_id"] = departmentId!;
  112. }
  113. final result = await httpProvider.requestNetResult(
  114. ApiConstants.apiLabourRequestAddSubmit,
  115. method: HttpMethod.POST,
  116. params: params,
  117. networkDebounce: true,
  118. isShowLoadingDialog: true,
  119. cancelToken: cancelToken,
  120. );
  121. //根据返回的结果,封装原始数据为Bean/Entity对象
  122. if (result.isSuccess) {
  123. //重新赋值data或list
  124. return result.convert();
  125. }
  126. return result.convert();
  127. }
  128. /// 用工的编辑详情
  129. Future<HttpResult<LabourRequestEditIndexEntity>> fetchLabourRequestEditDetail(
  130. String? requestId, {
  131. CancelToken? cancelToken,
  132. }) async {
  133. //参数
  134. Map<String, String> params = {};
  135. params['request_id'] = requestId ?? "";
  136. final result = await httpProvider.requestNetResult(
  137. ApiConstants.apiLabourRequestEditDetail,
  138. params: params,
  139. isShowLoadingDialog:true,
  140. cancelToken: cancelToken,
  141. );
  142. //根据返回的结果,封装原始数据为Bean/Entity对象
  143. if (result.isSuccess) {
  144. //重新赋值data或list
  145. final json = result.getDataJson();
  146. var data = LabourRequestEditIndexEntity.fromJson(json!);
  147. //重新赋值data或list
  148. return result.convert<LabourRequestEditIndexEntity>(data: data);
  149. }
  150. return result.convert();
  151. }
  152. /// 编辑用工请求发布
  153. Future<HttpResult> editLabourRequestSubmit(
  154. String? requestId,
  155. String? templateId,
  156. String? jobStart,
  157. String? jobEnd,
  158. String? departmentId,
  159. String? needNum, {
  160. CancelToken? cancelToken,
  161. }) async {
  162. //参数
  163. Map<String, String> params = {};
  164. params['request_id'] = requestId ?? "";
  165. params['template_id'] = templateId ?? "";
  166. params['job_start'] = jobStart ?? "";
  167. params['job_end'] = jobEnd ?? "";
  168. params['need_num'] = needNum ?? "";
  169. if (!Utils.isEmpty(departmentId)) {
  170. params["co_department_id"] = departmentId!;
  171. }
  172. final result = await httpProvider.requestNetResult(
  173. ApiConstants.apiLabourRequestEditSubmit,
  174. method: HttpMethod.POST,
  175. params: params,
  176. networkDebounce: true,
  177. isShowLoadingDialog: true,
  178. cancelToken: cancelToken,
  179. );
  180. //根据返回的结果,封装原始数据为Bean/Entity对象
  181. if (result.isSuccess) {
  182. //重新赋值data或list
  183. return result.convert();
  184. }
  185. return result.convert();
  186. }
  187. /// 撤回用工请求
  188. Future<HttpResult> recallLabourRequest(
  189. String? requestId, {
  190. CancelToken? cancelToken,
  191. }) async {
  192. //参数
  193. Map<String, String> params = {};
  194. params['request_id'] = requestId ?? "";
  195. final result = await httpProvider.requestNetResult(
  196. ApiConstants.apiLabourRequestRecall,
  197. method: HttpMethod.POST,
  198. params: params,
  199. networkDebounce: true,
  200. isShowLoadingDialog: true,
  201. cancelToken: cancelToken,
  202. );
  203. //根据返回的结果,封装原始数据为Bean/Entity对象
  204. if (result.isSuccess) {
  205. //重新赋值data或list
  206. return result.convert();
  207. }
  208. return result.convert();
  209. }
  210. /// 用工的审核详情工作流列表
  211. }