import 'dart:typed_data'; import 'package:domain/entity/response/job_list_edit_index_s_g_entity.dart'; import 'package:domain/entity/response/job_list_index_s_g_entity.dart'; import 'package:domain/entity/response/job_template_edit_index_entity.dart'; import 'package:domain/entity/response/job_template_s_g_entity.dart'; import 'package:domain/entity/response/job_title_edit_index_entity.dart'; import 'package:domain/entity/response/job_title_s_g_entity.dart'; import 'package:domain/entity/response/labour_request_s_g_add_index_entity.dart'; import 'package:domain/entity/response/labour_request_s_g_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_list_s_g_entity.dart'; /// 用工相关(新加坡) class LabourSGRepository extends GetxService { HttpProvider httpProvider; LabourSGRepository({required this.httpProvider}); /// 用工模版中的工作标题列表 Future> fetchJobTitleList( String? keyword, { required int curPage, CancelToken? cancelToken, }) async { //参数 Map params = {}; params["cur_page"] = curPage.toString(); params["page_size"] = "10"; if (Utils.isNotEmpty(keyword)) { params["keyword"] = keyword!; } final result = await httpProvider.requestNetResult( ApiConstants.apiJobTitleListSG, params: params, cancelToken: cancelToken, ); //根据返回的结果,封装原始数据为Bean/Entity对象 if (result.isSuccess) { //重新赋值data或list final json = result.getDataJson(); var data = JobTitleSGEntity.fromJson(json!); //重新赋值data或list return result.convert(data: data); } return result.convert(); } /// 根据ID获取主列表的Item数据,用于刷新Item Future> fetchJobTitleListByIds( String? ids, { CancelToken? cancelToken, }) async { //参数 Map params = {}; params["cur_page"] = "1"; params["page_size"] = "9999"; if (!Utils.isEmpty(ids)) { params["job_title_id"] = ids!; } final result = await httpProvider.requestNetResult( ApiConstants.apiJobTitleListSG, params: params, isShowLoadingDialog: true, cancelToken: cancelToken, ); //根据返回的结果,封装原始数据为Bean/Entity对象 if (result.isSuccess) { //重新赋值data或list final json = result.getDataJson(); var data = JobTitleSGEntity.fromJson(json!); //重新赋值data或list return result.convert(data: data); } return result.convert(); } /// 添加工作标题的详情或选项数据 Future> fetchJobTitleAddIndex({ CancelToken? cancelToken, }) async { final result = await httpProvider.requestNetResult( ApiConstants.apiJobTitleAddIndexSG, isShowLoadingDialog: true, cancelToken: cancelToken, ); //根据返回的结果,封装原始数据为Bean/Entity对象 if (result.isSuccess) { //重新赋值data或list final json = result.getDataJson(); var data = JobTitleEditIndexEntity.fromJson(json!); //重新赋值data或list return result.convert(data: data); } return result.convert(); } /// 编辑工作标题的详情或选项数据 Future> fetchJobTitleEditIndex( String? titleId, { CancelToken? cancelToken, }) async { Map params = {}; params["title_id"] = titleId ?? ""; final result = await httpProvider.requestNetResult( ApiConstants.apiJobTitleEditIndexSG, params: params, isShowLoadingDialog: true, cancelToken: cancelToken, ); //根据返回的结果,封装原始数据为Bean/Entity对象 if (result.isSuccess) { //重新赋值data或list final json = result.getDataJson(); var data = JobTitleEditIndexEntity.fromJson(json!); //重新赋值data或list return result.convert(data: data); } return result.convert(); } /// 添加工作标题的提交 Future addJobTitleSubmit( String? jobTitle, String? sort, String? templateId, { CancelToken? cancelToken, }) async { //参数 Map params = {}; params['job_title'] = jobTitle ?? ""; if (!Utils.isEmpty(templateId)) { params["template_id"] = templateId!; } if (!Utils.isEmpty(sort)) { params["sort"] = sort!; } final result = await httpProvider.requestNetResult( ApiConstants.apiJobTitleAddSubmitSG, 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 editJobTitleSubmit( String? titleId, String? jobTitle, String? sort, String? templateId, { CancelToken? cancelToken, }) async { //参数 Map params = {}; params['job_title'] = jobTitle ?? ""; params['title_id'] = titleId ?? ""; if (!Utils.isEmpty(templateId)) { params["template_id"] = templateId!; } if (!Utils.isEmpty(sort)) { params["sort"] = sort!; } final result = await httpProvider.requestNetResult( ApiConstants.apiJobTitleEditSubmitSG, 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 deleteJobTitleSubmit( String? titleId, { CancelToken? cancelToken, }) async { //参数 Map params = {}; params['title_id'] = titleId ?? ""; final result = await httpProvider.requestNetResult( ApiConstants.apiJobTitleDeleteSG, method: HttpMethod.POST, params: params, networkDebounce: true, isShowLoadingDialog: true, cancelToken: cancelToken, ); //根据返回的结果,封装原始数据为Bean/Entity对象 if (result.isSuccess) { //重新赋值data或list return result.convert(); } return result.convert(); } // =================================== Template ↓ =================================== /// 用工模版中的工作标题列表 Future> fetchJobTemplateList( String? keyword, { required int curPage, CancelToken? cancelToken, }) async { //参数 Map params = {}; params["cur_page"] = curPage.toString(); params["page_size"] = "10"; if (!Utils.isEmpty(keyword)) { params["keyword"] = keyword!; } final result = await httpProvider.requestNetResult( ApiConstants.apiJobTemplateListSG, params: params, cancelToken: cancelToken, ); //根据返回的结果,封装原始数据为Bean/Entity对象 if (result.isSuccess) { //重新赋值data或list final json = result.getDataJson(); var data = JobTemplateSGEntity.fromJson(json!); //重新赋值data或list return result.convert(data: data); } return result.convert(); } /// 根据ID获取主列表的Item数据,用于刷新Item Future> fetchJobTemplateListByIds( String? ids, { CancelToken? cancelToken, }) async { //参数 Map params = {}; params["cur_page"] = "1"; params["page_size"] = "9999"; if (!Utils.isEmpty(ids)) { params["job_temp_id"] = ids!; } final result = await httpProvider.requestNetResult( ApiConstants.apiJobTemplateListSG, params: params, isShowLoadingDialog: true, cancelToken: cancelToken, ); //根据返回的结果,封装原始数据为Bean/Entity对象 if (result.isSuccess) { //重新赋值data或list final json = result.getDataJson(); var data = JobTemplateSGEntity.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 addJobTemplateSubmit( String? name, String? contact, String? contactNo, String? description, String? note, String? age, String? sex, String? withFoodCert, String? language, { CancelToken? cancelToken, }) async { //参数 Map params = {}; params['name'] = name ?? ""; if (!Utils.isEmpty(contact)) { params["contact"] = contact!; } if (!Utils.isEmpty(contactNo)) { params["contact_no"] = contactNo!; } 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["sex"] = sex!; } if (!Utils.isEmpty(withFoodCert)) { params["with_food_cert"] = withFoodCert!; } 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 editJobTemplateSubmit( String? templateId, String? name, String? contact, String? contactNo, String? description, String? note, String? age, String? sex, String? withFoodCert, String? language, { CancelToken? cancelToken, }) async { //参数 Map params = {}; params['name'] = name ?? ""; params['template_id'] = templateId ?? ""; if (!Utils.isEmpty(contact)) { params["contact"] = contact!; } if (!Utils.isEmpty(contactNo)) { params["contact_no"] = contactNo!; } 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["sex"] = sex!; } if (!Utils.isEmpty(withFoodCert)) { params["with_food_cert"] = withFoodCert!; } 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 deleteJobTemplateSubmit( String? templateId, { CancelToken? cancelToken, }) async { //参数 Map params = {}; params['template_id'] = templateId ?? ""; final result = await httpProvider.requestNetResult( ApiConstants.apiJobTemplateDeleteSG, 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> fetchLabourRequestMain( String? date, { CancelToken? cancelToken, }) async { Map params = {}; if (Utils.isNotEmpty(date)) { params["date"] = date ?? ""; } final result = await httpProvider.requestNetResult( ApiConstants.apiLabourRequestMainSG, params: params, cancelToken: cancelToken, ); //根据返回的结果,封装原始数据为Bean/Entity对象 if (result.isSuccess) { //重新赋值data或list final json = result.getDataJson(); var data = LabourRequestSGEntity.fromJson(json!); //重新赋值data或list return result.convert(data: data); } return result.convert(); } /// 添加用工请求的选项数据 Future> fetchLabourRequestAddIndex({ CancelToken? cancelToken, }) async { final result = await httpProvider.requestNetResult( ApiConstants.apiLabourRequestAddIndexSG, isShowLoadingDialog: true, cancelToken: cancelToken, ); //根据返回的结果,封装原始数据为Bean/Entity对象 if (result.isSuccess) { //重新赋值data或list final json = result.getDataJson(); var data = LabourRequestSGAddIndexEntity.fromJson(json!); //重新赋值data或list return result.convert(data: data); } return result.convert(); } /// 删除工作标题的提交 Future submitLabourRequestAdd( String? jobTitleId, String? startTime, String? endTime, String? repeatStart, String? repeatEnd, String? outletId, int sexLimit, String? maleLimit, String? femaleLimit, String? needNum, String? requestType, String? remark, { CancelToken? cancelToken, }) async { //参数 Map params = {}; params['job_title_id'] = jobTitleId ?? ""; params['start_time'] = startTime ?? ""; params['end_time'] = endTime ?? ""; params['outlet_id'] = outletId ?? ""; params['sex_limit'] = sexLimit.toString(); if (sexLimit == 1) { params['male_limit'] = maleLimit ?? "0"; params['female_limit'] = femaleLimit ?? "0"; // params['need_num'] = (int.parse(maleLimit ?? "0") + int.parse(femaleLimit ?? "0")).toString(); //不传 need_num 字段 } else { params['need_num'] = needNum ?? "0"; } if (Utils.isNotEmpty(repeatStart)) { params['repeat_start'] = repeatStart ?? ""; } if (Utils.isNotEmpty(repeatEnd)) { params['repeat_end'] = repeatEnd ?? ""; } if (Utils.isNotEmpty(requestType)) { params['request_type'] = requestType ?? ""; } if (Utils.isNotEmpty(remark)) { params['remark'] = remark ?? ""; } final result = await httpProvider.requestNetResult( ApiConstants.apiLabourRequestAddSubmitSG, method: HttpMethod.POST, params: params, networkDebounce: true, isShowLoadingDialog: true, cancelToken: cancelToken, ); //根据返回的结果,封装原始数据为Bean/Entity对象 if (result.isSuccess) { //重新赋值data或list return result.convert(); } return result.convert(); } //用工请求的查询选项(Job List) Future> fetchJobListIndex({ CancelToken? cancelToken, }) async { final result = await httpProvider.requestNetResult( ApiConstants.apiJobListIndexSG, cancelToken: cancelToken, ); //根据返回的结果,封装原始数据为Bean/Entity对象 if (result.isSuccess) { //重新赋值data或list final json = result.getDataJson(); var data = JobListIndexSGEntity.fromJson(json!); //重新赋值data或list return result.convert(data: data); } return result.convert(); } //用工请求的查询列表(Job List) Future> fetchJobListTable( String? startDate, String? endDate, String? status, String? outletId, { required int curPage, CancelToken? cancelToken, }) async { Map params = {}; if (Utils.isNotEmpty(startDate)) { params['start_date'] = startDate ?? ""; } if (Utils.isNotEmpty(endDate)) { params['end_date'] = endDate ?? ""; } if (Utils.isNotEmpty(status)) { params['status'] = status ?? ""; } if (Utils.isNotEmpty(outletId)) { params['outlet_id'] = outletId ?? ""; } params['cur_page'] = curPage.toString(); params['page_size'] = "10"; final result = await httpProvider.requestNetResult( ApiConstants.apiJobListTableSG, params: params, cancelToken: cancelToken, ); //根据返回的结果,封装原始数据为Bean/Entity对象 if (result.isSuccess) { //重新赋值data或list final json = result.getDataJson(); var data = JobListSGEntity.fromJson(json!); //重新赋值data或list return result.convert(data: data); } return result.convert(); } /// 根据ID获取主列表的Item数据,用于刷新Item Future> fetchJobListByIds( String? jobId, { CancelToken? cancelToken, }) async { //参数 Map params = {}; params["cur_page"] = "1"; params["page_size"] = "9999"; if (!Utils.isEmpty(jobId)) { params["job_id"] = jobId!; } final result = await httpProvider.requestNetResult( ApiConstants.apiJobListTableSG, params: params, cancelToken: cancelToken, ); //根据返回的结果,封装原始数据为Bean/Entity对象 if (result.isSuccess) { //重新赋值data或list final json = result.getDataJson(); var data = JobListSGEntity.fromJson(json!); //重新赋值data或list return result.convert(data: data); } return result.convert(); } //用工请求的编辑详情(Job List) Future> fetchJobListEditIndex( String? jobId, { CancelToken? cancelToken, }) async { Map params = {}; params['job_id'] = jobId ?? ""; final result = await httpProvider.requestNetResult( ApiConstants.apiJobListEditIndexSG, params: params, isShowLoadingDialog: true, cancelToken: cancelToken, ); //根据返回的结果,封装原始数据为Bean/Entity对象 if (result.isSuccess) { //重新赋值data或list final json = result.getDataJson(); var data = JobListEditIndexSGEntity.fromJson(json!); //重新赋值data或list return result.convert(data: data); } return result.convert(); } //用工请求的编辑提交(Job List) Future editJobListSubmit( String? jobId, String? startTime, String? endTime, String? outletId, int sexLimit, String? maleLimit, String? femaleLimit, String? needNum, String? requestType, String? remark, { CancelToken? cancelToken, }) async { //参数 Map params = {}; params['job_id'] = jobId ?? ""; params['start_time'] = startTime ?? ""; params['end_time'] = endTime ?? ""; params['outlet_id'] = outletId ?? ""; params['sex_limit'] = sexLimit.toString(); if (sexLimit == 1) { params['male_limit'] = maleLimit ?? "0"; params['female_limit'] = femaleLimit ?? "0"; // params['need_num'] = (int.parse(maleLimit ?? "0") + int.parse(femaleLimit ?? "0")).toString(); } else { params['need_num'] = needNum ?? "0"; } if (Utils.isNotEmpty(requestType)) { params['request_type'] = requestType ?? ""; } if (Utils.isNotEmpty(remark)) { params['remark'] = remark ?? ""; } final result = await httpProvider.requestNetResult( ApiConstants.apiJobListEditSubmitSG, method: HttpMethod.POST, params: params, networkDebounce: true, isShowLoadingDialog: true, cancelToken: cancelToken, ); //根据返回的结果,封装原始数据为Bean/Entity对象 if (result.isSuccess) { //重新赋值data或list return result.convert(); } return result.convert(); } //用工请求的取消(Job List) Future cancelJobList( String? jobId, { CancelToken? cancelToken, }) async { //参数 Map params = {}; params['job_id'] = jobId ?? ""; final result = await httpProvider.requestNetResult( ApiConstants.apiJobListCancelSG, method: HttpMethod.POST, params: params, networkDebounce: true, isShowLoadingDialog: true, cancelToken: cancelToken, ); //根据返回的结果,封装原始数据为Bean/Entity对象 if (result.isSuccess) { //重新赋值data或list return result.convert(); } return result.convert(); } //用工请求的删除(Job List) Future deleteJobList( String? jobId, { CancelToken? cancelToken, }) async { //参数 Map params = {}; params['job_id'] = jobId ?? ""; final result = await httpProvider.requestNetResult( ApiConstants.apiJobListDeleteSG, method: HttpMethod.POST, params: params, networkDebounce: true, isShowLoadingDialog: true, cancelToken: cancelToken, ); //根据返回的结果,封装原始数据为Bean/Entity对象 if (result.isSuccess) { //重新赋值data或list return result.convert(); } return result.convert(); } //用工请求的考勤确认(Job List) Future confirmJobList( String? jobId, { CancelToken? cancelToken, }) async { //参数 Map params = {}; params['job_id'] = jobId ?? ""; final result = await httpProvider.requestNetResult( ApiConstants.apiJobListConfirmSG, method: HttpMethod.POST, params: params, networkDebounce: true, isShowLoadingDialog: true, cancelToken: cancelToken, ); //根据返回的结果,封装原始数据为Bean/Entity对象 if (result.isSuccess) { //重新赋值data或list return result.convert(); } return result.convert(); } }