labour_repository.dart 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464
  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:domain/entity/response/labour_request_work_flow_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. import '../entity/response/job_template_edit_index_entity.dart';
  12. /// 用工请求相关
  13. class LabourRepository extends GetxService {
  14. HttpProvider httpProvider;
  15. LabourRepository({required this.httpProvider});
  16. /// 获取用工请求的筛选选项
  17. Future<HttpResult<LabourRequestIndexEntity>> fetchLabourRequestIndex({
  18. CancelToken? cancelToken,
  19. }) async {
  20. final result = await httpProvider.requestNetResult(
  21. ApiConstants.apiLabourRequestIndex,
  22. cancelToken: cancelToken,
  23. );
  24. //根据返回的结果,封装原始数据为Bean/Entity对象
  25. if (result.isSuccess) {
  26. //重新赋值data或list
  27. final json = result.getDataJson();
  28. var data = LabourRequestIndexEntity.fromJson(json!);
  29. //重新赋值data或list
  30. return result.convert<LabourRequestIndexEntity>(data: data);
  31. }
  32. return result.convert();
  33. }
  34. /// 获取用工请求的主列表
  35. Future<HttpResult<LabourRequestListEntity>> fetchLabourRequestList(
  36. String? keyword,
  37. String? startDate,
  38. String? endDate,
  39. String? statusId,
  40. String? departmentId, {
  41. required int curPage,
  42. CancelToken? cancelToken,
  43. }) async {
  44. //参数
  45. Map<String, String> params = {};
  46. params["cur_page"] = curPage.toString();
  47. params["page_size"] = "20";
  48. if (!Utils.isEmpty(keyword)) {
  49. params["job_title"] = keyword!;
  50. }
  51. if (!Utils.isEmpty(startDate)) {
  52. params["job_start"] = startDate!;
  53. }
  54. if (!Utils.isEmpty(endDate)) {
  55. params["job_end"] = endDate!;
  56. }
  57. if (!Utils.isEmpty(statusId)) {
  58. params["co_status"] = statusId!;
  59. }
  60. if (!Utils.isEmpty(departmentId)) {
  61. params["co_department_id"] = departmentId!;
  62. }
  63. final result = await httpProvider.requestNetResult(
  64. ApiConstants.apiLabourRequestList,
  65. params: params,
  66. cancelToken: cancelToken,
  67. );
  68. //根据返回的结果,封装原始数据为Bean/Entity对象
  69. if (result.isSuccess) {
  70. //重新赋值data或list
  71. final json = result.getDataJson();
  72. var data = LabourRequestListEntity.fromJson(json!);
  73. //重新赋值data或list
  74. return result.convert<LabourRequestListEntity>(data: data);
  75. }
  76. return result.convert();
  77. }
  78. /// 根据ID获取主列表的Item数据,用于刷新Item
  79. Future<HttpResult<LabourRequestListEntity>> fetchItemByRequestId(
  80. String? requestId, {
  81. CancelToken? cancelToken,
  82. }) async {
  83. //参数
  84. Map<String, String> params = {};
  85. params["cur_page"] = "1";
  86. params["page_size"] = "1";
  87. if (!Utils.isEmpty(requestId)) {
  88. params["request_id"] = requestId!;
  89. }
  90. final result = await httpProvider.requestNetResult(
  91. ApiConstants.apiLabourRequestList,
  92. params: params,
  93. isShowLoadingDialog: true,
  94. cancelToken: cancelToken,
  95. );
  96. //根据返回的结果,封装原始数据为Bean/Entity对象
  97. if (result.isSuccess) {
  98. //重新赋值data或list
  99. final json = result.getDataJson();
  100. var data = LabourRequestListEntity.fromJson(json!);
  101. //重新赋值data或list
  102. return result.convert<LabourRequestListEntity>(data: data);
  103. }
  104. return result.convert();
  105. }
  106. /// 添加用工的选项
  107. Future<HttpResult<LabourRequestEditIndexEntity>> fetchLabourRequestAddOption({
  108. CancelToken? cancelToken,
  109. }) async {
  110. final result = await httpProvider.requestNetResult(
  111. ApiConstants.apiLabourRequestAddOption,
  112. isShowLoadingDialog: true,
  113. cancelToken: cancelToken,
  114. );
  115. //根据返回的结果,封装原始数据为Bean/Entity对象
  116. if (result.isSuccess) {
  117. //重新赋值data或list
  118. final json = result.getDataJson();
  119. var data = LabourRequestEditIndexEntity.fromJson(json!);
  120. //重新赋值data或list
  121. return result.convert<LabourRequestEditIndexEntity>(data: data);
  122. }
  123. return result.convert();
  124. }
  125. /// 添加用工请求发布
  126. Future<HttpResult> addLabourRequestSubmit(
  127. String? templateId,
  128. String? jobStart,
  129. String? jobEnd,
  130. String? departmentId,
  131. String? needNum,
  132. String? salaryBy,
  133. String? amount, {
  134. CancelToken? cancelToken,
  135. }) async {
  136. //参数
  137. Map<String, String> params = {};
  138. params['template_id'] = templateId ?? "";
  139. params['job_start'] = jobStart ?? "";
  140. params['job_end'] = jobEnd ?? "";
  141. params['need_num'] = needNum ?? "";
  142. if (!Utils.isEmpty(departmentId)) {
  143. params["co_department_id"] = departmentId!;
  144. }
  145. params['salary_by'] = salaryBy ?? "";
  146. if (!Utils.isEmpty(amount)) {
  147. params["amount"] = amount!;
  148. }
  149. final result = await httpProvider.requestNetResult(
  150. ApiConstants.apiLabourRequestAddSubmit,
  151. method: HttpMethod.POST,
  152. params: params,
  153. networkDebounce: true,
  154. isShowLoadingDialog: true,
  155. cancelToken: cancelToken,
  156. );
  157. //根据返回的结果,封装原始数据为Bean/Entity对象
  158. if (result.isSuccess) {
  159. //重新赋值data或list
  160. return result.convert();
  161. }
  162. return result.convert();
  163. }
  164. /// 用工的编辑详情
  165. Future<HttpResult<LabourRequestEditIndexEntity>> fetchLabourRequestEditDetail(
  166. String? requestId, {
  167. CancelToken? cancelToken,
  168. }) async {
  169. //参数
  170. Map<String, String> params = {};
  171. params['request_id'] = requestId ?? "";
  172. final result = await httpProvider.requestNetResult(
  173. ApiConstants.apiLabourRequestEditDetail,
  174. params: params,
  175. isShowLoadingDialog: true,
  176. cancelToken: cancelToken,
  177. );
  178. //根据返回的结果,封装原始数据为Bean/Entity对象
  179. if (result.isSuccess) {
  180. //重新赋值data或list
  181. final json = result.getDataJson();
  182. var data = LabourRequestEditIndexEntity.fromJson(json!);
  183. //重新赋值data或list
  184. return result.convert<LabourRequestEditIndexEntity>(data: data);
  185. }
  186. return result.convert();
  187. }
  188. /// 编辑用工请求发布
  189. Future<HttpResult> editLabourRequestSubmit(
  190. String? requestId,
  191. String? templateId,
  192. String? jobStart,
  193. String? jobEnd,
  194. String? departmentId,
  195. String? needNum,
  196. String? salaryBy,
  197. String? amount, {
  198. CancelToken? cancelToken,
  199. }) async {
  200. //参数
  201. Map<String, String> params = {};
  202. params['request_id'] = requestId ?? "";
  203. params['template_id'] = templateId ?? "";
  204. params['job_start'] = jobStart ?? "";
  205. params['job_end'] = jobEnd ?? "";
  206. params['need_num'] = needNum ?? "";
  207. if (!Utils.isEmpty(departmentId)) {
  208. params["co_department_id"] = departmentId!;
  209. }
  210. params['salary_by'] = salaryBy ?? "";
  211. if (!Utils.isEmpty(amount)) {
  212. params["amount"] = amount!;
  213. }
  214. final result = await httpProvider.requestNetResult(
  215. ApiConstants.apiLabourRequestEditSubmit,
  216. method: HttpMethod.POST,
  217. params: params,
  218. networkDebounce: true,
  219. isShowLoadingDialog: true,
  220. cancelToken: cancelToken,
  221. );
  222. //根据返回的结果,封装原始数据为Bean/Entity对象
  223. if (result.isSuccess) {
  224. //重新赋值data或list
  225. return result.convert();
  226. }
  227. return result.convert();
  228. }
  229. /// 撤回用工请求
  230. Future<HttpResult> recallLabourRequest(
  231. String? requestId, {
  232. CancelToken? cancelToken,
  233. }) async {
  234. //参数
  235. Map<String, String> params = {};
  236. params['request_id'] = requestId ?? "";
  237. final result = await httpProvider.requestNetResult(
  238. ApiConstants.apiLabourRequestRecall,
  239. method: HttpMethod.POST,
  240. params: params,
  241. networkDebounce: true,
  242. isShowLoadingDialog: true,
  243. cancelToken: cancelToken,
  244. );
  245. //根据返回的结果,封装原始数据为Bean/Entity对象
  246. if (result.isSuccess) {
  247. //重新赋值data或list
  248. return result.convert();
  249. }
  250. return result.convert();
  251. }
  252. /// 用工的审核详情工作流列表
  253. Future<HttpResult<LabourRequestWorkFlowEntity>> fetchLabourRequestWorkFlow(
  254. String? requestId, {
  255. CancelToken? cancelToken,
  256. }) async {
  257. //参数
  258. Map<String, String> params = {};
  259. if (!Utils.isEmpty(requestId)) {
  260. params["request_id"] = requestId!;
  261. }
  262. final result = await httpProvider.requestNetResult(
  263. ApiConstants.apiLabourRequestStateWorkFlow,
  264. params: params,
  265. cancelToken: cancelToken,
  266. );
  267. //根据返回的结果,封装原始数据为Bean/Entity对象
  268. if (result.isSuccess) {
  269. //重新赋值data或list
  270. final json = result.getDataJson();
  271. var data = LabourRequestWorkFlowEntity.fromJson(json!);
  272. //重新赋值data或list
  273. return result.convert<LabourRequestWorkFlowEntity>(data: data);
  274. }
  275. return result.convert();
  276. }
  277. /// 添加工作模板的详情或选项数据
  278. Future<HttpResult<JobTemplateEditIndexEntity>> fetchJobTemplateAddIndex({
  279. CancelToken? cancelToken,
  280. }) async {
  281. final result = await httpProvider.requestNetResult(
  282. ApiConstants.apiJobTemplateAddIndexSG,
  283. isShowLoadingDialog: true,
  284. cancelToken: cancelToken,
  285. );
  286. //根据返回的结果,封装原始数据为Bean/Entity对象
  287. if (result.isSuccess) {
  288. //重新赋值data或list
  289. final json = result.getDataJson();
  290. var data = JobTemplateEditIndexEntity.fromJson(json!);
  291. //重新赋值data或list
  292. return result.convert<JobTemplateEditIndexEntity>(data: data);
  293. }
  294. return result.convert();
  295. }
  296. /// 编辑工作模板的详情或选项数据
  297. Future<HttpResult<JobTemplateEditIndexEntity>> fetchJobTemplateEditIndex(
  298. String? templateId, {
  299. CancelToken? cancelToken,
  300. }) async {
  301. Map<String, String> params = {};
  302. params["template_id"] = templateId ?? "";
  303. final result = await httpProvider.requestNetResult(
  304. ApiConstants.apiJobTemplateEditIndexSG,
  305. params: params,
  306. isShowLoadingDialog: true,
  307. cancelToken: cancelToken,
  308. );
  309. //根据返回的结果,封装原始数据为Bean/Entity对象
  310. if (result.isSuccess) {
  311. //重新赋值data或list
  312. final json = result.getDataJson();
  313. var data = JobTemplateEditIndexEntity.fromJson(json!);
  314. //重新赋值data或list
  315. return result.convert<JobTemplateEditIndexEntity>(data: data);
  316. }
  317. return result.convert();
  318. }
  319. /// 添加工作模板的提交
  320. Future<HttpResult> addLabourTemplateSubmit(
  321. String? name,
  322. String? description,
  323. String? note,
  324. String? age,
  325. String? sex,
  326. String? language, {
  327. CancelToken? cancelToken,
  328. }) async {
  329. //参数
  330. Map<String, String> params = {};
  331. params['job_title'] = name ?? "";
  332. if (!Utils.isEmpty(description)) {
  333. params["description"] = description!;
  334. }
  335. if (!Utils.isEmpty(note)) {
  336. params["note"] = note!;
  337. }
  338. if (!Utils.isEmpty(age)) {
  339. params["age"] = age!;
  340. }
  341. if (!Utils.isEmpty(sex)) {
  342. params["gender"] = sex!;
  343. }
  344. if (!Utils.isEmpty(language)) {
  345. params["language"] = language!;
  346. }
  347. final result = await httpProvider.requestNetResult(
  348. ApiConstants.apiJobTemplateAddSubmitSG,
  349. method: HttpMethod.POST,
  350. params: params,
  351. networkDebounce: true,
  352. isShowLoadingDialog: true,
  353. cancelToken: cancelToken,
  354. );
  355. //根据返回的结果,封装原始数据为Bean/Entity对象
  356. if (result.isSuccess) {
  357. //重新赋值data或list
  358. return result.convert();
  359. }
  360. return result.convert();
  361. }
  362. /// 编辑工作模板的提交
  363. Future<HttpResult> editLabourTemplateSubmit(
  364. String? templateId,
  365. String? name,
  366. String? description,
  367. String? note,
  368. String? age,
  369. String? sex,
  370. String? language, {
  371. CancelToken? cancelToken,
  372. }) async {
  373. //参数
  374. Map<String, String> params = {};
  375. params['job_title'] = name ?? "";
  376. params['template_id'] = templateId ?? "";
  377. if (!Utils.isEmpty(description)) {
  378. params["description"] = description!;
  379. }
  380. if (!Utils.isEmpty(note)) {
  381. params["note"] = note!;
  382. }
  383. if (!Utils.isEmpty(age)) {
  384. params["age"] = age!;
  385. }
  386. if (!Utils.isEmpty(sex)) {
  387. params["gender"] = sex!;
  388. }
  389. if (!Utils.isEmpty(language)) {
  390. params["language"] = language!;
  391. }
  392. final result = await httpProvider.requestNetResult(
  393. ApiConstants.apiJobTemplateEditSubmitSG,
  394. method: HttpMethod.POST,
  395. params: params,
  396. networkDebounce: true,
  397. isShowLoadingDialog: true,
  398. cancelToken: cancelToken,
  399. );
  400. //根据返回的结果,封装原始数据为Bean/Entity对象
  401. if (result.isSuccess) {
  402. //重新赋值data或list
  403. return result.convert();
  404. }
  405. return result.convert();
  406. }
  407. }