labour_sg_repository.dart 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507
  1. import 'dart:typed_data';
  2. import 'package:domain/entity/response/job_template_edit_index_entity.dart';
  3. import 'package:domain/entity/response/job_template_s_g_entity.dart';
  4. import 'package:domain/entity/response/job_title_edit_index_entity.dart';
  5. import 'package:domain/entity/response/job_title_s_g_entity.dart';
  6. import 'package:get/get.dart';
  7. import 'package:plugin_platform/dio_export.dart';
  8. import 'package:plugin_platform/http/http_provider.dart';
  9. import 'package:plugin_platform/http/http_result.dart';
  10. import 'package:shared/utils/util.dart';
  11. import '../constants/api_constants.dart';
  12. /// 用工相关(新加坡)
  13. class LabourSGRepository extends GetxService {
  14. HttpProvider httpProvider;
  15. LabourSGRepository({required this.httpProvider});
  16. /// 用工模版中的工作标题列表
  17. Future<HttpResult<JobTitleSGEntity>> fetchJobTitleList(
  18. String? keyword, {
  19. required int curPage,
  20. CancelToken? cancelToken,
  21. }) async {
  22. //参数
  23. Map<String, String> params = {};
  24. params["cur_page"] = curPage.toString();
  25. params["page_size"] = "10";
  26. if (!Utils.isEmpty(keyword)) {
  27. params["keyword"] = keyword!;
  28. }
  29. final result = await httpProvider.requestNetResult(
  30. ApiConstants.apiJobTitleListSG,
  31. params: params,
  32. cancelToken: cancelToken,
  33. );
  34. //根据返回的结果,封装原始数据为Bean/Entity对象
  35. if (result.isSuccess) {
  36. //重新赋值data或list
  37. final json = result.getDataJson();
  38. var data = JobTitleSGEntity.fromJson(json!);
  39. //重新赋值data或list
  40. return result.convert<JobTitleSGEntity>(data: data);
  41. }
  42. return result.convert();
  43. }
  44. /// 根据ID获取主列表的Item数据,用于刷新Item
  45. Future<HttpResult<JobTitleSGEntity>> fetchJobTitleListByIds(
  46. String? ids, {
  47. CancelToken? cancelToken,
  48. }) async {
  49. //参数
  50. Map<String, String> params = {};
  51. params["cur_page"] = "1";
  52. params["page_size"] = "9999";
  53. if (!Utils.isEmpty(ids)) {
  54. params["job_title_id"] = ids!;
  55. }
  56. final result = await httpProvider.requestNetResult(
  57. ApiConstants.apiJobTitleListSG,
  58. params: params,
  59. isShowLoadingDialog: true,
  60. cancelToken: cancelToken,
  61. );
  62. //根据返回的结果,封装原始数据为Bean/Entity对象
  63. if (result.isSuccess) {
  64. //重新赋值data或list
  65. final json = result.getDataJson();
  66. var data = JobTitleSGEntity.fromJson(json!);
  67. //重新赋值data或list
  68. return result.convert<JobTitleSGEntity>(data: data);
  69. }
  70. return result.convert();
  71. }
  72. /// 添加工作标题的详情或选项数据
  73. Future<HttpResult<JobTitleEditIndexEntity>> fetchJobTitleAddIndex({
  74. CancelToken? cancelToken,
  75. }) async {
  76. final result = await httpProvider.requestNetResult(
  77. ApiConstants.apiJobTitleAddIndexSG,
  78. isShowLoadingDialog: true,
  79. cancelToken: cancelToken,
  80. );
  81. //根据返回的结果,封装原始数据为Bean/Entity对象
  82. if (result.isSuccess) {
  83. //重新赋值data或list
  84. final json = result.getDataJson();
  85. var data = JobTitleEditIndexEntity.fromJson(json!);
  86. //重新赋值data或list
  87. return result.convert<JobTitleEditIndexEntity>(data: data);
  88. }
  89. return result.convert();
  90. }
  91. /// 编辑工作标题的详情或选项数据
  92. Future<HttpResult<JobTitleEditIndexEntity>> fetchJobTitleEditIndex(
  93. String? titleId, {
  94. CancelToken? cancelToken,
  95. }) async {
  96. Map<String, String> params = {};
  97. params["title_id"] = titleId ?? "";
  98. final result = await httpProvider.requestNetResult(
  99. ApiConstants.apiJobTitleEditIndexSG,
  100. params: params,
  101. isShowLoadingDialog: true,
  102. cancelToken: cancelToken,
  103. );
  104. //根据返回的结果,封装原始数据为Bean/Entity对象
  105. if (result.isSuccess) {
  106. //重新赋值data或list
  107. final json = result.getDataJson();
  108. var data = JobTitleEditIndexEntity.fromJson(json!);
  109. //重新赋值data或list
  110. return result.convert<JobTitleEditIndexEntity>(data: data);
  111. }
  112. return result.convert();
  113. }
  114. /// 添加工作标题的提交
  115. Future<HttpResult> addJobTitleSubmit(
  116. String? jobTitle,
  117. String? sort,
  118. String? templateId, {
  119. CancelToken? cancelToken,
  120. }) async {
  121. //参数
  122. Map<String, String> params = {};
  123. params['job_title'] = jobTitle ?? "";
  124. if (!Utils.isEmpty(templateId)) {
  125. params["template_id"] = templateId!;
  126. }
  127. if (!Utils.isEmpty(sort)) {
  128. params["sort"] = sort!;
  129. }
  130. final result = await httpProvider.requestNetResult(
  131. ApiConstants.apiJobTitleAddSubmitSG,
  132. method: HttpMethod.POST,
  133. params: params,
  134. networkDebounce: true,
  135. isShowLoadingDialog: true,
  136. cancelToken: cancelToken,
  137. );
  138. //根据返回的结果,封装原始数据为Bean/Entity对象
  139. if (result.isSuccess) {
  140. //重新赋值data或list
  141. return result.convert();
  142. }
  143. return result.convert();
  144. }
  145. /// 编辑工作标题的提交
  146. Future<HttpResult> editJobTitleSubmit(
  147. String? titleId,
  148. String? jobTitle,
  149. String? sort,
  150. String? templateId, {
  151. CancelToken? cancelToken,
  152. }) async {
  153. //参数
  154. Map<String, String> params = {};
  155. params['job_title'] = jobTitle ?? "";
  156. params['title_id'] = titleId ?? "";
  157. if (!Utils.isEmpty(templateId)) {
  158. params["template_id"] = templateId!;
  159. }
  160. if (!Utils.isEmpty(sort)) {
  161. params["sort"] = sort!;
  162. }
  163. final result = await httpProvider.requestNetResult(
  164. ApiConstants.apiJobTitleEditSubmitSG,
  165. method: HttpMethod.POST,
  166. params: params,
  167. networkDebounce: true,
  168. isShowLoadingDialog: true,
  169. cancelToken: cancelToken,
  170. );
  171. //根据返回的结果,封装原始数据为Bean/Entity对象
  172. if (result.isSuccess) {
  173. //重新赋值data或list
  174. return result.convert();
  175. }
  176. return result.convert();
  177. }
  178. /// 删除工作标题的提交
  179. Future<HttpResult> deleteJobTitleSubmit(
  180. String? titleId, {
  181. CancelToken? cancelToken,
  182. }) async {
  183. //参数
  184. Map<String, String> params = {};
  185. params['title_id'] = titleId ?? "";
  186. final result = await httpProvider.requestNetResult(
  187. ApiConstants.apiJobTitleDeleteSG,
  188. method: HttpMethod.POST,
  189. params: params,
  190. networkDebounce: true,
  191. isShowLoadingDialog: true,
  192. cancelToken: cancelToken,
  193. );
  194. //根据返回的结果,封装原始数据为Bean/Entity对象
  195. if (result.isSuccess) {
  196. //重新赋值data或list
  197. return result.convert();
  198. }
  199. return result.convert();
  200. }
  201. // =================================== Template ↓ ===================================
  202. /// 用工模版中的工作标题列表
  203. Future<HttpResult<JobTemplateSGEntity>> fetchJobTemplateList(
  204. String? keyword, {
  205. required int curPage,
  206. CancelToken? cancelToken,
  207. }) async {
  208. //参数
  209. Map<String, String> params = {};
  210. params["cur_page"] = curPage.toString();
  211. params["page_size"] = "10";
  212. if (!Utils.isEmpty(keyword)) {
  213. params["keyword"] = keyword!;
  214. }
  215. final result = await httpProvider.requestNetResult(
  216. ApiConstants.apiJobTemplateListSG,
  217. params: params,
  218. cancelToken: cancelToken,
  219. );
  220. //根据返回的结果,封装原始数据为Bean/Entity对象
  221. if (result.isSuccess) {
  222. //重新赋值data或list
  223. final json = result.getDataJson();
  224. var data = JobTemplateSGEntity.fromJson(json!);
  225. //重新赋值data或list
  226. return result.convert<JobTemplateSGEntity>(data: data);
  227. }
  228. return result.convert();
  229. }
  230. /// 根据ID获取主列表的Item数据,用于刷新Item
  231. Future<HttpResult<JobTemplateSGEntity>> fetchJobTemplateListByIds(
  232. String? ids, {
  233. CancelToken? cancelToken,
  234. }) async {
  235. //参数
  236. Map<String, String> params = {};
  237. params["cur_page"] = "1";
  238. params["page_size"] = "9999";
  239. if (!Utils.isEmpty(ids)) {
  240. params["job_temp_id"] = ids!;
  241. }
  242. final result = await httpProvider.requestNetResult(
  243. ApiConstants.apiJobTemplateListSG,
  244. params: params,
  245. isShowLoadingDialog: true,
  246. cancelToken: cancelToken,
  247. );
  248. //根据返回的结果,封装原始数据为Bean/Entity对象
  249. if (result.isSuccess) {
  250. //重新赋值data或list
  251. final json = result.getDataJson();
  252. var data = JobTemplateSGEntity.fromJson(json!);
  253. //重新赋值data或list
  254. return result.convert<JobTemplateSGEntity>(data: data);
  255. }
  256. return result.convert();
  257. }
  258. /// 添加工作模板的详情或选项数据
  259. Future<HttpResult<JobTemplateEditIndexEntity>> fetchJobTemplateAddIndex({
  260. CancelToken? cancelToken,
  261. }) async {
  262. final result = await httpProvider.requestNetResult(
  263. ApiConstants.apiJobTemplateAddIndexSG,
  264. isShowLoadingDialog: true,
  265. cancelToken: cancelToken,
  266. );
  267. //根据返回的结果,封装原始数据为Bean/Entity对象
  268. if (result.isSuccess) {
  269. //重新赋值data或list
  270. final json = result.getDataJson();
  271. var data = JobTemplateEditIndexEntity.fromJson(json!);
  272. //重新赋值data或list
  273. return result.convert<JobTemplateEditIndexEntity>(data: data);
  274. }
  275. return result.convert();
  276. }
  277. /// 编辑工作模板的详情或选项数据
  278. Future<HttpResult<JobTemplateEditIndexEntity>> fetchJobTemplateEditIndex(
  279. String? templateId, {
  280. CancelToken? cancelToken,
  281. }) async {
  282. Map<String, String> params = {};
  283. params["template_id"] = templateId ?? "";
  284. final result = await httpProvider.requestNetResult(
  285. ApiConstants.apiJobTemplateEditIndexSG,
  286. params: params,
  287. isShowLoadingDialog: true,
  288. cancelToken: cancelToken,
  289. );
  290. //根据返回的结果,封装原始数据为Bean/Entity对象
  291. if (result.isSuccess) {
  292. //重新赋值data或list
  293. final json = result.getDataJson();
  294. var data = JobTemplateEditIndexEntity.fromJson(json!);
  295. //重新赋值data或list
  296. return result.convert<JobTemplateEditIndexEntity>(data: data);
  297. }
  298. return result.convert();
  299. }
  300. /// 添加工作模板的提交
  301. Future<HttpResult> addJobTemplateSubmit(
  302. String? name,
  303. String? contact,
  304. String? contact_no,
  305. String? description,
  306. String? note,
  307. String? age,
  308. String? sex,
  309. String? with_food_cert,
  310. String? language, {
  311. CancelToken? cancelToken,
  312. }) async {
  313. //参数
  314. Map<String, String> params = {};
  315. params['name'] = name ?? "";
  316. if (!Utils.isEmpty(contact)) {
  317. params["contact"] = contact!;
  318. }
  319. if (!Utils.isEmpty(contact_no)) {
  320. params["contact_no"] = contact_no!;
  321. }
  322. if (!Utils.isEmpty(description)) {
  323. params["description"] = description!;
  324. }
  325. if (!Utils.isEmpty(note)) {
  326. params["note"] = note!;
  327. }
  328. if (!Utils.isEmpty(age)) {
  329. params["age"] = age!;
  330. }
  331. if (!Utils.isEmpty(sex)) {
  332. params["sex"] = sex!;
  333. }
  334. if (!Utils.isEmpty(with_food_cert)) {
  335. params["with_food_cert"] = with_food_cert!;
  336. }
  337. if (!Utils.isEmpty(language)) {
  338. params["language"] = language!;
  339. }
  340. final result = await httpProvider.requestNetResult(
  341. ApiConstants.apiJobTemplateAddSubmitSG,
  342. method: HttpMethod.POST,
  343. params: params,
  344. networkDebounce: true,
  345. isShowLoadingDialog: true,
  346. cancelToken: cancelToken,
  347. );
  348. //根据返回的结果,封装原始数据为Bean/Entity对象
  349. if (result.isSuccess) {
  350. //重新赋值data或list
  351. return result.convert();
  352. }
  353. return result.convert();
  354. }
  355. /// 编辑工作模板的提交
  356. Future<HttpResult> editJobTemplateSubmit(
  357. String? templateId,
  358. String? name,
  359. String? contact,
  360. String? contact_no,
  361. String? description,
  362. String? note,
  363. String? age,
  364. String? sex,
  365. String? with_food_cert,
  366. String? language, {
  367. CancelToken? cancelToken,
  368. }) async {
  369. //参数
  370. Map<String, String> params = {};
  371. params['name'] = name ?? "";
  372. params['template_id'] = templateId ?? "";
  373. if (!Utils.isEmpty(contact)) {
  374. params["contact"] = contact!;
  375. }
  376. if (!Utils.isEmpty(contact_no)) {
  377. params["contact_no"] = contact_no!;
  378. }
  379. if (!Utils.isEmpty(description)) {
  380. params["description"] = description!;
  381. }
  382. if (!Utils.isEmpty(note)) {
  383. params["note"] = note!;
  384. }
  385. if (!Utils.isEmpty(age)) {
  386. params["age"] = age!;
  387. }
  388. if (!Utils.isEmpty(sex)) {
  389. params["sex"] = sex!;
  390. }
  391. if (!Utils.isEmpty(with_food_cert)) {
  392. params["with_food_cert"] = with_food_cert!;
  393. }
  394. if (!Utils.isEmpty(language)) {
  395. params["language"] = language!;
  396. }
  397. final result = await httpProvider.requestNetResult(
  398. ApiConstants.apiJobTemplateEditSubmitSG,
  399. method: HttpMethod.POST,
  400. params: params,
  401. networkDebounce: true,
  402. isShowLoadingDialog: true,
  403. cancelToken: cancelToken,
  404. );
  405. //根据返回的结果,封装原始数据为Bean/Entity对象
  406. if (result.isSuccess) {
  407. //重新赋值data或list
  408. return result.convert();
  409. }
  410. return result.convert();
  411. }
  412. /// 删除工作标题的提交
  413. Future<HttpResult> deleteJobTemplateSubmit(
  414. String? templateId, {
  415. CancelToken? cancelToken,
  416. }) async {
  417. //参数
  418. Map<String, String> params = {};
  419. params['template_id'] = templateId ?? "";
  420. final result = await httpProvider.requestNetResult(
  421. ApiConstants.apiJobTemplateDeleteSG,
  422. method: HttpMethod.POST,
  423. params: params,
  424. networkDebounce: true,
  425. isShowLoadingDialog: true,
  426. cancelToken: cancelToken,
  427. );
  428. //根据返回的结果,封装原始数据为Bean/Entity对象
  429. if (result.isSuccess) {
  430. //重新赋值data或list
  431. return result.convert();
  432. }
  433. return result.convert();
  434. }
  435. }