import 'package:domain/entity/response/labour_request_edit_index_entity.dart'; import 'package:domain/entity/response/labour_request_index_entity.dart'; import 'package:domain/entity/response/labour_request_list_entity.dart'; import 'package:domain/entity/response/labour_request_work_flow_entity.dart'; import 'package:get/get.dart'; import 'package:plugin_platform/dio_export.dart'; import 'package:plugin_platform/http/http_provider.dart'; import 'package:plugin_platform/http/http_result.dart'; import 'package:shared/utils/util.dart'; import '../constants/api_constants.dart'; import '../entity/response/job_template_edit_index_entity.dart'; import '../entity/response/labour_review_list_entity.dart'; import '../entity/response/labour_review_status_entity.dart'; /// 用工请求相关 class LabourRepository extends GetxService { HttpProvider httpProvider; LabourRepository({required this.httpProvider}); /// 获取用工请求的筛选选项 Future> fetchLabourRequestIndex({ CancelToken? cancelToken, }) async { final result = await httpProvider.requestNetResult( ApiConstants.apiLabourRequestIndex, cancelToken: cancelToken, ); //根据返回的结果,封装原始数据为Bean/Entity对象 if (result.isSuccess) { //重新赋值data或list final json = result.getDataJson(); var data = LabourRequestIndexEntity.fromJson(json!); //重新赋值data或list return result.convert(data: data); } return result.convert(); } /// 获取用工请求的主列表 Future> fetchLabourRequestList( String? keyword, String? startDate, String? endDate, String? statusId, String? departmentId, { required int curPage, CancelToken? cancelToken, }) async { //参数 Map params = {}; params["cur_page"] = curPage.toString(); params["page_size"] = "20"; if (!Utils.isEmpty(keyword)) { params["job_title"] = keyword!; } if (!Utils.isEmpty(startDate)) { params["job_start"] = startDate!; } if (!Utils.isEmpty(endDate)) { params["job_end"] = endDate!; } if (!Utils.isEmpty(statusId)) { params["co_status"] = statusId!; } if (!Utils.isEmpty(departmentId)) { params["co_department_id"] = departmentId!; } final result = await httpProvider.requestNetResult( ApiConstants.apiLabourRequestList, params: params, cancelToken: cancelToken, ); //根据返回的结果,封装原始数据为Bean/Entity对象 if (result.isSuccess) { //重新赋值data或list final json = result.getDataJson(); var data = LabourRequestListEntity.fromJson(json!); //重新赋值data或list return result.convert(data: data); } return result.convert(); } /// 根据ID获取主列表的Item数据,用于刷新Item Future> fetchItemByRequestId( String? requestId, { CancelToken? cancelToken, }) async { //参数 Map params = {}; params["cur_page"] = "1"; params["page_size"] = "1"; if (!Utils.isEmpty(requestId)) { params["request_id"] = requestId!; } final result = await httpProvider.requestNetResult( ApiConstants.apiLabourRequestList, params: params, isShowLoadingDialog: true, cancelToken: cancelToken, ); //根据返回的结果,封装原始数据为Bean/Entity对象 if (result.isSuccess) { //重新赋值data或list final json = result.getDataJson(); var data = LabourRequestListEntity.fromJson(json!); //重新赋值data或list return result.convert(data: data); } return result.convert(); } /// 添加用工的选项 Future> fetchLabourRequestAddOption({ CancelToken? cancelToken, }) async { final result = await httpProvider.requestNetResult( ApiConstants.apiLabourRequestAddOption, isShowLoadingDialog: true, cancelToken: cancelToken, ); //根据返回的结果,封装原始数据为Bean/Entity对象 if (result.isSuccess) { //重新赋值data或list final json = result.getDataJson(); var data = LabourRequestEditIndexEntity.fromJson(json!); //重新赋值data或list return result.convert(data: data); } return result.convert(); } /// 添加用工请求发布 Future addLabourRequestSubmit( String? templateId, String? jobStart, String? jobEnd, String? departmentId, String? needNum, String? salaryBy, String? amount, { CancelToken? cancelToken, }) async { //参数 Map params = {}; params['template_id'] = templateId ?? ""; params['job_start'] = jobStart ?? ""; params['job_end'] = jobEnd ?? ""; params['need_num'] = needNum ?? ""; if (!Utils.isEmpty(departmentId)) { params["co_department_id"] = departmentId!; } params['salary_by'] = salaryBy ?? ""; if (!Utils.isEmpty(amount)) { params["amount"] = amount!; } final result = await httpProvider.requestNetResult( ApiConstants.apiLabourRequestAddSubmit, method: HttpMethod.POST, params: params, networkDebounce: true, isShowLoadingDialog: true, cancelToken: cancelToken, ); //根据返回的结果,封装原始数据为Bean/Entity对象 if (result.isSuccess) { //重新赋值data或list return result.convert(); } return result.convert(); } /// 用工的编辑详情 Future> fetchLabourRequestEditDetail( String? requestId, { CancelToken? cancelToken, }) async { //参数 Map params = {}; params['request_id'] = requestId ?? ""; final result = await httpProvider.requestNetResult( ApiConstants.apiLabourRequestEditDetail, params: params, isShowLoadingDialog: true, cancelToken: cancelToken, ); //根据返回的结果,封装原始数据为Bean/Entity对象 if (result.isSuccess) { //重新赋值data或list final json = result.getDataJson(); var data = LabourRequestEditIndexEntity.fromJson(json!); //重新赋值data或list return result.convert(data: data); } return result.convert(); } /// 编辑用工请求发布 Future editLabourRequestSubmit( String? requestId, String? templateId, String? jobStart, String? jobEnd, String? departmentId, String? needNum, String? salaryBy, String? amount, { CancelToken? cancelToken, }) async { //参数 Map params = {}; params['request_id'] = requestId ?? ""; params['template_id'] = templateId ?? ""; params['job_start'] = jobStart ?? ""; params['job_end'] = jobEnd ?? ""; params['need_num'] = needNum ?? ""; if (!Utils.isEmpty(departmentId)) { params["co_department_id"] = departmentId!; } params['salary_by'] = salaryBy ?? ""; if (!Utils.isEmpty(amount)) { params["amount"] = amount!; } final result = await httpProvider.requestNetResult( ApiConstants.apiLabourRequestEditSubmit, method: HttpMethod.POST, params: params, networkDebounce: true, isShowLoadingDialog: true, cancelToken: cancelToken, ); //根据返回的结果,封装原始数据为Bean/Entity对象 if (result.isSuccess) { //重新赋值data或list return result.convert(); } return result.convert(); } /// 撤回用工请求 Future recallLabourRequest( String? requestId, { CancelToken? cancelToken, }) async { //参数 Map params = {}; params['request_id'] = requestId ?? ""; final result = await httpProvider.requestNetResult( ApiConstants.apiLabourRequestRecall, method: HttpMethod.POST, params: params, networkDebounce: true, isShowLoadingDialog: true, cancelToken: cancelToken, ); //根据返回的结果,封装原始数据为Bean/Entity对象 if (result.isSuccess) { //重新赋值data或list return result.convert(); } return result.convert(); } /// 用工的审核详情工作流列表 Future> fetchLabourRequestWorkFlow( String? requestId, { CancelToken? cancelToken, }) async { //参数 Map params = {}; if (!Utils.isEmpty(requestId)) { params["request_id"] = requestId!; } final result = await httpProvider.requestNetResult( ApiConstants.apiLabourRequestStateWorkFlow, params: params, cancelToken: cancelToken, ); //根据返回的结果,封装原始数据为Bean/Entity对象 if (result.isSuccess) { //重新赋值data或list final json = result.getDataJson(); var data = LabourRequestWorkFlowEntity.fromJson(json!); //重新赋值data或list return result.convert(data: data); } return result.convert(); } /// 添加工作模板的详情或选项数据 Future> fetchJobTemplateAddIndex({ CancelToken? cancelToken, }) async { final result = await httpProvider.requestNetResult( ApiConstants.apiJobTemplateAddIndexSG, isShowLoadingDialog: true, cancelToken: cancelToken, ); //根据返回的结果,封装原始数据为Bean/Entity对象 if (result.isSuccess) { //重新赋值data或list final json = result.getDataJson(); var data = JobTemplateEditIndexEntity.fromJson(json!); //重新赋值data或list return result.convert(data: data); } return result.convert(); } /// 编辑工作模板的详情或选项数据 Future> fetchJobTemplateEditIndex( String? templateId, { CancelToken? cancelToken, }) async { Map params = {}; params["template_id"] = templateId ?? ""; final result = await httpProvider.requestNetResult( ApiConstants.apiJobTemplateEditIndexSG, params: params, isShowLoadingDialog: true, cancelToken: cancelToken, ); //根据返回的结果,封装原始数据为Bean/Entity对象 if (result.isSuccess) { //重新赋值data或list final json = result.getDataJson(); var data = JobTemplateEditIndexEntity.fromJson(json!); //重新赋值data或list return result.convert(data: data); } return result.convert(); } /// 添加工作模板的提交 Future addLabourTemplateSubmit( String? name, String? description, String? note, String? age, String? sex, String? language, { CancelToken? cancelToken, }) async { //参数 Map params = {}; params['job_title'] = name ?? ""; if (!Utils.isEmpty(description)) { params["description"] = description!; } if (!Utils.isEmpty(note)) { params["note"] = note!; } if (!Utils.isEmpty(age)) { params["age"] = age!; } if (!Utils.isEmpty(sex)) { params["gender"] = sex!; } if (!Utils.isEmpty(language)) { params["language"] = language!; } final result = await httpProvider.requestNetResult( ApiConstants.apiJobTemplateAddSubmitSG, method: HttpMethod.POST, params: params, networkDebounce: true, isShowLoadingDialog: true, cancelToken: cancelToken, ); //根据返回的结果,封装原始数据为Bean/Entity对象 if (result.isSuccess) { //重新赋值data或list return result.convert(); } return result.convert(); } /// 编辑工作模板的提交 Future editLabourTemplateSubmit( String? templateId, String? name, String? description, String? note, String? age, String? sex, String? language, { CancelToken? cancelToken, }) async { //参数 Map params = {}; params['job_title'] = name ?? ""; params['template_id'] = templateId ?? ""; if (!Utils.isEmpty(description)) { params["description"] = description!; } if (!Utils.isEmpty(note)) { params["note"] = note!; } if (!Utils.isEmpty(age)) { params["age"] = age!; } if (!Utils.isEmpty(sex)) { params["gender"] = sex!; } if (!Utils.isEmpty(language)) { params["language"] = language!; } final result = await httpProvider.requestNetResult( ApiConstants.apiJobTemplateEditSubmitSG, method: HttpMethod.POST, params: params, networkDebounce: true, isShowLoadingDialog: true, cancelToken: cancelToken, ); //根据返回的结果,封装原始数据为Bean/Entity对象 if (result.isSuccess) { //重新赋值data或list return result.convert(); } return result.convert(); } /// 用工审核选项 Future> fetchLabourReviewIndex({ CancelToken? cancelToken, }) async { final result = await httpProvider.requestNetResult( ApiConstants.apiLabourReviewIndex, cancelToken: cancelToken, ); //根据返回的结果,封装原始数据为Bean/Entity对象 if (result.isSuccess) { //重新赋值data或list final json = result.getDataJson(); var data = LabourRequestIndexEntity.fromJson(json!); //重新赋值data或list return result.convert(data: data); } return result.convert(); } /// 用工审核列表 Future> fetchLabourReviewList( String? keyword, String? startDate, String? endDate, String? departmentId, { required int curPage, CancelToken? cancelToken, }) async { //参数 Map params = {}; params["cur_page"] = curPage.toString(); params["page_size"] = "20"; if (!Utils.isEmpty(keyword)) { params["job_title"] = keyword!; } if (!Utils.isEmpty(startDate)) { params["job_start"] = startDate!; } if (!Utils.isEmpty(endDate)) { params["job_end"] = endDate!; } if (!Utils.isEmpty(departmentId)) { params["department_id"] = departmentId!; } final result = await httpProvider.requestNetResult( ApiConstants.apiLabourReviewTable, params: params, cancelToken: cancelToken, ); //根据返回的结果,封装原始数据为Bean/Entity对象 if (result.isSuccess) { //重新赋值data或list final json = result.getDataJson(); var data = LabourReviewListEntity.fromJson(json!); //重新赋值data或list return result.convert(data: data); } return result.convert(); } /// 根据ID获取主列表的Item数据,用于刷新审核列表Item Future> fetchItemByRecordId( String? recordId, { CancelToken? cancelToken, }) async { //参数 Map params = {}; params["cur_page"] = "1"; params["page_size"] = "1"; if (!Utils.isEmpty(recordId)) { params["record_id"] = recordId!; } final result = await httpProvider.requestNetResult( ApiConstants.apiLabourReviewTable, params: params, isShowLoadingDialog: true, cancelToken: cancelToken, ); //根据返回的结果,封装原始数据为Bean/Entity对象 if (result.isSuccess) { //重新赋值data或list final json = result.getDataJson(); var data = LabourReviewListEntity.fromJson(json!); //重新赋值data或list return result.convert(data: data); } return result.convert(); } /// 用工审核的编辑详情 Future> fetchLabourReviewDetail( String? requestId, { CancelToken? cancelToken, }) async { //参数 Map params = {}; params['request_id'] = requestId ?? ""; final result = await httpProvider.requestNetResult( ApiConstants.apiLabourReviewDetail, params: params, isShowLoadingDialog: true, cancelToken: cancelToken, ); //根据返回的结果,封装原始数据为Bean/Entity对象 if (result.isSuccess) { //重新赋值data或list final json = result.getDataJson(); var data = LabourRequestEditIndexEntity.fromJson(json!); //重新赋值data或list return result.convert(data: data); } return result.convert(); } /// 用工审核的编辑提交 Future editLabourReviewSubmit( String? requestId, String? templateId, String? jobStart, String? jobEnd, String? departmentId, String? needNum, String? salaryBy, String? amount, { CancelToken? cancelToken, }) async { //参数 Map params = {}; params['request_id'] = requestId ?? ""; params['template_id'] = templateId ?? ""; params['job_start'] = jobStart ?? ""; params['job_end'] = jobEnd ?? ""; params['need_num'] = needNum ?? ""; if (!Utils.isEmpty(departmentId)) { params["co_department_id"] = departmentId!; } params['salary_by'] = salaryBy ?? ""; if (!Utils.isEmpty(amount)) { params["amount"] = amount!; } final result = await httpProvider.requestNetResult( ApiConstants.apiLabourReviewEdit, method: HttpMethod.POST, params: params, networkDebounce: true, isShowLoadingDialog: true, cancelToken: cancelToken, ); //根据返回的结果,封装原始数据为Bean/Entity对象 if (result.isSuccess) { //重新赋值data或list return result.convert(); } return result.convert(); } /// 用工审核的审核流程列表 Future> fetchLabourReviewStatusView( String? requestId, { CancelToken? cancelToken, }) async { //参数 Map params = {}; params['request_id'] = requestId ?? ""; final result = await httpProvider.requestNetResult( ApiConstants.apiLabourReviewStatusView, params: params, cancelToken: cancelToken, ); //根据返回的结果,封装原始数据为Bean/Entity对象 if (result.isSuccess) { //重新赋值data或list final json = result.getDataJson(); var data = LabourReviewStatusEntity.fromJson(json!); //重新赋值data或list return result.convert(data: data); } return result.convert(); } /// 用工审核的批量同意 Future approveLabourReviews( String? recordIds, { CancelToken? cancelToken, }) async { //参数 Map params = {}; params['record_ids'] = recordIds ?? ""; final result = await httpProvider.requestNetResult( ApiConstants.apiLabourReviewApprove, method: HttpMethod.POST, params: params, networkDebounce: true, isShowLoadingDialog: true, cancelToken: cancelToken, ); //根据返回的结果,封装原始数据为Bean/Entity对象 if (result.isSuccess) { //重新赋值data或list return result.convert(); } return result.convert(); } /// 用工审核的批量拒绝 Future rejectLabourReviews( String? recordIds, String? reason, { CancelToken? cancelToken, }) async { //参数 Map params = {}; params['record_ids'] = recordIds ?? ""; if (Utils.isNotEmpty(reason)) { params['audit_mark'] = reason ?? ""; } final result = await httpProvider.requestNetResult( ApiConstants.apiLabourReviewReject, method: HttpMethod.POST, params: params, networkDebounce: true, isShowLoadingDialog: true, cancelToken: cancelToken, ); //根据返回的结果,封装原始数据为Bean/Entity对象 if (result.isSuccess) { //重新赋值data或list return result.convert(); } return result.convert(); } }