th_er_repository.dart 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316
  1. import 'package:domain/entity/response/hotel_info_entity.dart';
  2. import 'package:domain/entity/response/job_list_e_r_detail_entity.dart';
  3. import 'package:domain/entity/response/job_list_e_r_option_entity.dart';
  4. import 'package:domain/entity/response/labour_request_e_r_entity.dart';
  5. import 'package:domain/entity/response/sign_in_sign_out_entity.dart';
  6. import 'package:domain/entity/response/switch_project_entity.dart';
  7. import 'package:get/get.dart';
  8. import 'package:plugin_platform/http/http_provider.dart';
  9. import 'package:plugin_platform/http/http_result.dart';
  10. import 'package:plugin_platform/platform_export.dart';
  11. import 'package:shared/utils/util.dart';
  12. import '../constants/api_constants.dart';
  13. import '../entity/response/labour_list_e_r_entity.dart';
  14. import '../entity/response/labour_request_e_r_option_entity.dart';
  15. /// 泰国的 ER 的数据仓库
  16. class THERRepository extends GetxService {
  17. HttpProvider httpProvider;
  18. THERRepository({required this.httpProvider});
  19. /// 获取 ER 用工请求列表
  20. Future<HttpResult<LabourRequestEREntity>> fetchERLabourRequest(
  21. String? date, {
  22. CancelToken? cancelToken,
  23. }) async {
  24. Map<String, String> params = {};
  25. if (!Utils.isEmpty(date)) {
  26. params["day"] = date!;
  27. }
  28. final result = await httpProvider.requestNetResult(
  29. ApiConstants.apiERLabourRequestTH,
  30. params: params,
  31. cancelToken: cancelToken,
  32. );
  33. if (result.isSuccess) {
  34. final json = result.getDataJson();
  35. var data = LabourRequestEREntity.fromJson(json!);
  36. return result.convert<LabourRequestEREntity>(data: data);
  37. }
  38. return result.convert();
  39. }
  40. /// 获取 ER 用工请求选项
  41. Future<HttpResult<JobListERDetailEntity>> fetchERLabourRequestAddOption({
  42. CancelToken? cancelToken,
  43. }) async {
  44. final result = await httpProvider.requestNetResult(
  45. ApiConstants.apiERLabourRequestAddOptionTH,
  46. networkDebounce: true,
  47. isShowLoadingDialog: true,
  48. cancelToken: cancelToken,
  49. );
  50. if (result.isSuccess) {
  51. final json = result.getDataJson();
  52. var data = JobListERDetailEntity.fromJson(json!);
  53. return result.convert<JobListERDetailEntity>(data: data);
  54. }
  55. return result.convert();
  56. }
  57. /// 新增 ER 的用工请求
  58. Future<HttpResult> addLabourRequestERSubmit({
  59. required String jobTitleId,
  60. required String startTime,
  61. required String endTime,
  62. required String outletId,
  63. String? repeatStart,
  64. String? repeatEnd,
  65. String? sexLimit,
  66. String? needNum,
  67. String? maleLimit,
  68. String? femaleLimit,
  69. String? eventName,
  70. String? eventType,
  71. String? remark,
  72. CancelToken? cancelToken,
  73. }) async {
  74. Map<String, String> params = {};
  75. params["job_title_id"] = jobTitleId;
  76. params["start_time"] = startTime;
  77. params["end_time"] = endTime;
  78. params["outlet_id"] = outletId;
  79. if (!Utils.isEmpty(repeatStart)) {
  80. params["repeat_start"] = repeatStart!;
  81. }
  82. if (!Utils.isEmpty(repeatEnd)) {
  83. params["repeat_end"] = repeatEnd!;
  84. }
  85. if (!Utils.isEmpty(sexLimit)) {
  86. params["sex_limit"] = sexLimit!;
  87. }
  88. if (!Utils.isEmpty(needNum)) {
  89. params["need_num"] = needNum!;
  90. }
  91. if (!Utils.isEmpty(maleLimit)) {
  92. params["male_limit"] = maleLimit!;
  93. }
  94. if (!Utils.isEmpty(femaleLimit)) {
  95. params["female_limit"] = femaleLimit!;
  96. }
  97. if (!Utils.isEmpty(eventName)) {
  98. params["event_name"] = eventName!;
  99. }
  100. if (!Utils.isEmpty(eventType)) {
  101. params["event_type"] = eventType!;
  102. }
  103. if (!Utils.isEmpty(remark)) {
  104. params["remark"] = remark!;
  105. }
  106. final result = await httpProvider.requestNetResult(
  107. ApiConstants.apiERLabourRequestAddSubmitTH,
  108. method: HttpMethod.POST,
  109. params: params,
  110. networkDebounce: true,
  111. isShowLoadingDialog: true,
  112. cancelToken: cancelToken,
  113. );
  114. if (result.isSuccess) {
  115. return result.convert();
  116. }
  117. return result.convert();
  118. }
  119. /// 获取 ER 工作列表选项
  120. Future<HttpResult<JobListEROptionEntity>> fetchERJobListOption({
  121. String? date,
  122. CancelToken? cancelToken,
  123. }) async {
  124. Map<String, String> params = {};
  125. if (!Utils.isEmpty(date)) {
  126. params["daily"] = date!;
  127. }
  128. final result = await httpProvider.requestNetResult(
  129. ApiConstants.apiERJobListOptionTH,
  130. params: params,
  131. cancelToken: cancelToken,
  132. );
  133. if (result.isSuccess) {
  134. final json = result.getDataJson();
  135. var data = JobListEROptionEntity.fromJson(json!);
  136. return result.convert<JobListEROptionEntity>(data: data);
  137. }
  138. return result.convert();
  139. }
  140. /// 获取 ER 工作列表
  141. Future<HttpResult<LabourListEREntity>> fetchERJobListTable({
  142. required int curPage,
  143. String? keyword,
  144. String? divisionId,
  145. String? outletId,
  146. String? status,
  147. String? startDate,
  148. String? endDate,
  149. String? trending,
  150. CancelToken? cancelToken,
  151. }) async {
  152. //参数
  153. Map<String, String> params = {};
  154. params["cur_page"] = curPage.toString();
  155. params["page_size"] = "10";
  156. if (!Utils.isEmpty(keyword)) {
  157. params["job_title"] = keyword!;
  158. }
  159. if (!Utils.isEmpty(divisionId)) {
  160. params["division_id"] = divisionId!;
  161. }
  162. if (!Utils.isEmpty(outletId)) {
  163. params["outlet_id"] = outletId!;
  164. }
  165. if (!Utils.isEmpty(status)) {
  166. params["status"] = status!;
  167. }
  168. if (!Utils.isEmpty(startDate)) {
  169. params["start_date"] = startDate!;
  170. }
  171. if (!Utils.isEmpty(endDate)) {
  172. params["end_date"] = endDate!;
  173. }
  174. if (!Utils.isEmpty(trending)) {
  175. params["trending"] = trending!;
  176. }
  177. final result = await httpProvider.requestNetResult(
  178. ApiConstants.apiERJobListTableTH,
  179. params: params,
  180. cancelToken: cancelToken,
  181. );
  182. if (result.isSuccess) {
  183. final json = result.getDataJson();
  184. var data = LabourListEREntity.fromJson(json!);
  185. return result.convert<LabourListEREntity>(data: data);
  186. }
  187. return result.convert();
  188. }
  189. /// ER 工作列表的删除
  190. Future<HttpResult> deleteJobListERSubmit({
  191. required String jobId,
  192. required String type,
  193. CancelToken? cancelToken,
  194. }) async {
  195. Map<String, String> params = {};
  196. params["job_id"] = jobId;
  197. params["type"] = type;
  198. final result = await httpProvider.requestNetResult(
  199. ApiConstants.apiERJobListDeleteTH,
  200. method: HttpMethod.POST,
  201. params: params,
  202. networkDebounce: true,
  203. isShowLoadingDialog: true,
  204. cancelToken: cancelToken,
  205. );
  206. if (result.isSuccess) {
  207. return result.convert();
  208. }
  209. return result.convert();
  210. }
  211. /// 获取 ER 工作列表详情
  212. Future<HttpResult<JobListERDetailEntity>> fetchERJobListDetail({
  213. required String jobId,
  214. CancelToken? cancelToken,
  215. }) async {
  216. //参数
  217. Map<String, String> params = {};
  218. params["job_id"] = jobId;
  219. final result = await httpProvider.requestNetResult(
  220. ApiConstants.apiERJobListDetailTH,
  221. params: params,
  222. networkDebounce: true,
  223. isShowLoadingDialog: true,
  224. cancelToken: cancelToken,
  225. );
  226. if (result.isSuccess) {
  227. final json = result.getDataJson();
  228. var data = JobListERDetailEntity.fromJson(json!);
  229. return result.convert<JobListERDetailEntity>(data: data);
  230. }
  231. return result.convert();
  232. }
  233. /// 编辑 ER 的用工请求
  234. Future<HttpResult> editLabourRequestERSubmit({
  235. required String jobId,
  236. required String jobTitleId,
  237. required String startTime,
  238. required String endTime,
  239. required String outletId,
  240. String? sexLimit,
  241. String? needNum,
  242. String? maleLimit,
  243. String? femaleLimit,
  244. String? eventName,
  245. String? eventType,
  246. String? remark,
  247. CancelToken? cancelToken,
  248. }) async {
  249. Map<String, String> params = {};
  250. params["job_id"] = jobId;
  251. params["job_title_id"] = jobTitleId;
  252. params["start_time"] = startTime;
  253. params["end_time"] = endTime;
  254. params["outlet_id"] = outletId;
  255. if (!Utils.isEmpty(sexLimit)) {
  256. params["sex_limit"] = sexLimit!;
  257. }
  258. if (!Utils.isEmpty(needNum)) {
  259. params["need_num"] = needNum!;
  260. }
  261. if (!Utils.isEmpty(maleLimit)) {
  262. params["male_limit"] = maleLimit!;
  263. }
  264. if (!Utils.isEmpty(femaleLimit)) {
  265. params["female_limit"] = femaleLimit!;
  266. }
  267. if (!Utils.isEmpty(eventName)) {
  268. params["event_name"] = eventName!;
  269. }
  270. if (!Utils.isEmpty(eventType)) {
  271. params["event_type"] = eventType!;
  272. }
  273. if (!Utils.isEmpty(remark)) {
  274. params["remark"] = remark!;
  275. }
  276. final result = await httpProvider.requestNetResult(
  277. ApiConstants.apiERLabourRequestEditSubmitTH,
  278. method: HttpMethod.POST,
  279. params: params,
  280. networkDebounce: true,
  281. isShowLoadingDialog: true,
  282. cancelToken: cancelToken,
  283. );
  284. if (result.isSuccess) {
  285. return result.convert();
  286. }
  287. return result.convert();
  288. }
  289. }