labour_repository.dart 6.9 KB

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