job_sg_repository.dart 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417
  1. import 'dart:typed_data';
  2. import 'package:domain/entity/response/job_applied_index_s_g_entity.dart';
  3. import 'package:domain/entity/response/job_applied_list_s_g_entity.dart';
  4. import 'package:domain/entity/response/job_list_add_staff_entity.dart';
  5. import 'package:domain/entity/response/job_list_applied_edit_entity.dart';
  6. import 'package:domain/entity/response/job_list_applied_info_entity.dart';
  7. import 'package:domain/entity/response/job_list_applied_staff_list_entity.dart';
  8. import 'package:domain/entity/response/job_list_applied_staff_search_entity.dart';
  9. import 'package:domain/entity/response/job_list_detail_entity.dart';
  10. import 'package:domain/entity/response/job_list_entity.dart';
  11. import 'package:domain/entity/response/job_list_index_entity.dart';
  12. import 'package:domain/entity/response/job_list_remark_view_entity.dart';
  13. import 'package:domain/entity/response/staff_detail_entity.dart';
  14. import 'package:domain/entity/response/staff_labour_history_entity.dart';
  15. import 'package:domain/entity/response/staff_remark_history_entity.dart';
  16. import 'package:get/get.dart';
  17. import 'package:plugin_platform/dio_export.dart';
  18. import 'package:plugin_platform/http/http_provider.dart';
  19. import 'package:plugin_platform/http/http_result.dart';
  20. import 'package:shared/utils/util.dart';
  21. import '../constants/api_constants.dart';
  22. import '../entity/response/attendance_entity.dart';
  23. import '../entity/response/check_success_entity.dart';
  24. import '../entity/response/job_applied_edit_index_s_g_entity.dart';
  25. import '../entity/response/job_applied_staff_s_g_entity.dart';
  26. import '../entity/response/job_list_applied_work_flow_entity.dart';
  27. /// 工作相关(新加坡)
  28. class JobSGRepository extends GetxService {
  29. HttpProvider httpProvider;
  30. JobSGRepository({required this.httpProvider});
  31. /// 获取工作已申请的选项
  32. Future<HttpResult<JobAppliedIndexSGEntity>> fetchJobAppliedIndex(
  33. String? jobId, {
  34. CancelToken? cancelToken,
  35. }) async {
  36. //参数
  37. Map<String, String> params = {};
  38. params["job_id"] = jobId ?? "";
  39. final result = await httpProvider.requestNetResult(
  40. ApiConstants.apiJobAppliedIndexSG,
  41. params: params,
  42. cancelToken: cancelToken,
  43. );
  44. //根据返回的结果,封装原始数据为Bean/Entity对象
  45. if (result.isSuccess) {
  46. //重新赋值data或list
  47. final json = result.getDataJson();
  48. var data = JobAppliedIndexSGEntity.fromJson(json!);
  49. //重新赋值data或list
  50. return result.convert<JobAppliedIndexSGEntity>(data: data);
  51. }
  52. return result.convert();
  53. }
  54. /// 获取工作已申请的列表
  55. Future<HttpResult<JobAppliedListSGEntity>> fetchJobAppliedList(
  56. String? jobId,
  57. String? status,
  58. String? keyword, {
  59. required int curPage,
  60. CancelToken? cancelToken,
  61. }) async {
  62. //参数
  63. Map<String, String> params = {};
  64. params["cur_page"] = curPage.toString();
  65. params["page_size"] = "10";
  66. params["job_id"] = jobId ?? "";
  67. if (!Utils.isEmpty(keyword)) {
  68. params["keyword"] = keyword!;
  69. }
  70. if (!Utils.isEmpty(status)) {
  71. params["status"] = status!;
  72. }
  73. final result = await httpProvider.requestNetResult(
  74. ApiConstants.apiJobAppliedListSG,
  75. params: params,
  76. cancelToken: cancelToken,
  77. );
  78. //根据返回的结果,封装原始数据为Bean/Entity对象
  79. if (result.isSuccess) {
  80. //重新赋值data或list
  81. final json = result.getDataJson();
  82. var data = JobAppliedListSGEntity.fromJson(json!);
  83. //重新赋值data或list
  84. return result.convert<JobAppliedListSGEntity>(data: data);
  85. }
  86. return result.convert();
  87. }
  88. /// 根据ID获取主列表的Item数据,用于刷新Item
  89. Future<HttpResult<JobAppliedListSGEntity>> fetchItemByAppliedIds(
  90. String? jobId,
  91. String? appliedIds, {
  92. CancelToken? cancelToken,
  93. }) async {
  94. //参数
  95. Map<String, String> params = {};
  96. params["cur_page"] = "1";
  97. params["page_size"] = "9999";
  98. if (!Utils.isEmpty(appliedIds)) {
  99. params["applied_ids"] = appliedIds!;
  100. }
  101. if (!Utils.isEmpty(jobId)) {
  102. params["job_id"] = jobId!;
  103. }
  104. final result = await httpProvider.requestNetResult(
  105. ApiConstants.apiJobAppliedListSG,
  106. params: params,
  107. isShowLoadingDialog: true,
  108. cancelToken: cancelToken,
  109. );
  110. //根据返回的结果,封装原始数据为Bean/Entity对象
  111. if (result.isSuccess) {
  112. //重新赋值data或list
  113. final json = result.getDataJson();
  114. var data = JobAppliedListSGEntity.fromJson(json!);
  115. //重新赋值data或list
  116. return result.convert<JobAppliedListSGEntity>(data: data);
  117. }
  118. return result.convert();
  119. }
  120. /// 获取工作已申请的列表中添加的员工搜索
  121. Future<HttpResult<JobAppliedStaffSGEntity>> searchJobAppliedStaff(
  122. String? jobId,
  123. String? keyword, {
  124. required int curPage,
  125. CancelToken? cancelToken,
  126. }) async {
  127. //参数
  128. Map<String, String> params = {};
  129. params["cur_page"] = curPage.toString();
  130. params["page_size"] = "10";
  131. params["job_id"] = jobId ?? "";
  132. if (!Utils.isEmpty(keyword)) {
  133. params["keyword"] = keyword!;
  134. }
  135. final result = await httpProvider.requestNetResult(
  136. ApiConstants.apiJobAppliedSearchStaffSG,
  137. params: params,
  138. cancelToken: cancelToken,
  139. );
  140. //根据返回的结果,封装原始数据为Bean/Entity对象
  141. if (result.isSuccess) {
  142. //重新赋值data或list
  143. final json = result.getDataJson();
  144. var data = JobAppliedStaffSGEntity.fromJson(json!);
  145. //重新赋值data或list
  146. return result.convert<JobAppliedStaffSGEntity>(data: data);
  147. }
  148. return result.convert();
  149. }
  150. /// 添加员工到申请列表
  151. Future<HttpResult> addStaff2AppliedJob(
  152. String? jobId,
  153. String? staffIds, {
  154. CancelToken? cancelToken,
  155. }) async {
  156. //参数
  157. Map<String, String> params = {};
  158. params['job_id'] = jobId ?? "";
  159. params['staff_ids'] = staffIds ?? "";
  160. final result = await httpProvider.requestNetResult(
  161. ApiConstants.apiJobListConfirmSG,
  162. method: HttpMethod.POST,
  163. params: params,
  164. networkDebounce: true,
  165. isShowLoadingDialog: true,
  166. cancelToken: cancelToken,
  167. );
  168. //根据返回的结果,封装原始数据为Bean/Entity对象
  169. if (result.isSuccess) {
  170. //重新赋值data或list
  171. return result.convert();
  172. }
  173. return result.convert();
  174. }
  175. /// 批量修改员工信息或考勤
  176. Future<HttpResult> batchEditJobApplied(
  177. String? appliedIds,
  178. String? startTime,
  179. String? endTime,
  180. String? subtractHours,
  181. String? status, {
  182. CancelToken? cancelToken,
  183. }) async {
  184. //参数
  185. Map<String, String> params = {};
  186. params['applied_ids'] = appliedIds ?? "";
  187. if (!Utils.isEmpty(startTime)) {
  188. params['start_time'] = startTime ?? "";
  189. }
  190. if (!Utils.isEmpty(endTime)) {
  191. params['end_time'] = endTime ?? "";
  192. }
  193. if (!Utils.isEmpty(subtractHours)) {
  194. params['subtract_hours'] = subtractHours ?? "";
  195. }
  196. if (!Utils.isEmpty(status)) {
  197. params['status'] = status ?? "";
  198. }
  199. final result = await httpProvider.requestNetResult(
  200. ApiConstants.apiJobAppliedBatchEditSG,
  201. method: HttpMethod.POST,
  202. params: params,
  203. networkDebounce: true,
  204. isShowLoadingDialog: true,
  205. cancelToken: cancelToken,
  206. );
  207. //根据返回的结果,封装原始数据为Bean/Entity对象
  208. if (result.isSuccess) {
  209. //重新赋值data或list
  210. return result.convert();
  211. }
  212. return result.convert();
  213. }
  214. /// 编辑员工信息或考勤的选项详情
  215. Future<HttpResult<JobAppliedEditIndexSGEntity>> fetchEditJobAppliedIndex(
  216. String? appliedId, {
  217. CancelToken? cancelToken,
  218. }) async {
  219. //参数
  220. Map<String, String> params = {};
  221. params['applied_id'] = appliedId ?? "";
  222. final result = await httpProvider.requestNetResult(
  223. ApiConstants.apiJobAppliedEditViewSG,
  224. params: params,
  225. cancelToken: cancelToken,
  226. );
  227. //根据返回的结果,封装原始数据为Bean/Entity对象
  228. if (result.isSuccess) {
  229. //重新赋值data或list
  230. final json = result.getDataJson();
  231. var data = JobAppliedEditIndexSGEntity.fromJson(json!);
  232. //重新赋值data或list
  233. return result.convert<JobAppliedEditIndexSGEntity>(data: data);
  234. }
  235. return result.convert();
  236. }
  237. /// 编辑员工信息或考勤的提交
  238. Future<HttpResult> submitEditJobApplied(
  239. String? appliedId,
  240. String? startTime,
  241. String? endTime,
  242. String? security_in,
  243. String? security_out,
  244. String? work_in,
  245. String? work_out,
  246. String? adjustHours,
  247. String? status, {
  248. CancelToken? cancelToken,
  249. }) async {
  250. //参数
  251. Map<String, String> params = {};
  252. params['applied_id'] = appliedId ?? "";
  253. params['start_time'] = startTime ?? "";
  254. params['end_time'] = endTime ?? "";
  255. if (!Utils.isEmpty(security_in)) {
  256. params['security_in'] = security_in ?? "";
  257. }
  258. if (!Utils.isEmpty(security_out)) {
  259. params['security_out'] = security_out ?? "";
  260. }
  261. if (!Utils.isEmpty(work_in)) {
  262. params['work_in'] = work_in ?? "";
  263. }
  264. if (!Utils.isEmpty(work_out)) {
  265. params['work_out'] = work_out ?? "";
  266. }
  267. if (!Utils.isEmpty(adjustHours)) {
  268. params['subtract_hours'] = adjustHours ?? "";
  269. }
  270. if (!Utils.isEmpty(status)) {
  271. params['status'] = status ?? "";
  272. }
  273. final result = await httpProvider.requestNetResult(
  274. ApiConstants.apiJobAppliedEditSubmitSG,
  275. method: HttpMethod.POST,
  276. params: params,
  277. networkDebounce: true,
  278. isShowLoadingDialog: true,
  279. cancelToken: cancelToken,
  280. );
  281. //根据返回的结果,封装原始数据为Bean/Entity对象
  282. if (result.isSuccess) {
  283. //重新赋值data或list
  284. return result.convert();
  285. }
  286. return result.convert();
  287. }
  288. /// 修改考勤员工的考勤状态
  289. Future<HttpResult> submitEditAppliedStatus(
  290. String? appliedId,
  291. String? status, {
  292. CancelToken? cancelToken,
  293. }) async {
  294. //参数
  295. Map<String, String> params = {};
  296. params['applied_id'] = appliedId ?? "";
  297. params['status'] = status ?? "";
  298. final result = await httpProvider.requestNetResult(
  299. ApiConstants.apiJobAppliedChangeStatusSG,
  300. method: HttpMethod.POST,
  301. params: params,
  302. networkDebounce: true,
  303. isShowLoadingDialog: true,
  304. cancelToken: cancelToken,
  305. );
  306. //根据返回的结果,封装原始数据为Bean/Entity对象
  307. if (result.isSuccess) {
  308. //重新赋值data或list
  309. return result.convert();
  310. }
  311. return result.convert();
  312. }
  313. /// 获取员工的评价信息
  314. Future<HttpResult<JobAppliedStaffSGEntity>> fetchJobAppliedRemarkView(
  315. String? appliedId, {
  316. CancelToken? cancelToken,
  317. }) async {
  318. //参数
  319. Map<String, String> params = {};
  320. params['applied_id'] = appliedId ?? "";
  321. final result = await httpProvider.requestNetResult(
  322. ApiConstants.apiJobAppliedRemarkViewSG,
  323. params: params,
  324. cancelToken: cancelToken,
  325. );
  326. //根据返回的结果,封装原始数据为Bean/Entity对象
  327. if (result.isSuccess) {
  328. //重新赋值data或list
  329. final json = result.getDataJson();
  330. var data = JobAppliedStaffSGEntity.fromJson(json!);
  331. //重新赋值data或list
  332. return result.convert<JobAppliedStaffSGEntity>(data: data);
  333. }
  334. return result.convert();
  335. }
  336. /// 提交员工的评价
  337. Future<HttpResult> submitAppliedRemark(
  338. String? appliedId,
  339. String? attitude_rate,
  340. String? grooming_rate,
  341. String? performance_rate,
  342. String? experience_rate,
  343. String? feedback, {
  344. CancelToken? cancelToken,
  345. }) async {
  346. //参数
  347. Map<String, String> params = {};
  348. params['applied_id'] = appliedId ?? "";
  349. params['attitude_rate'] = attitude_rate ?? "";
  350. params['grooming_rate'] = grooming_rate ?? "";
  351. params['performance_rate'] = performance_rate ?? "";
  352. params['experience_rate'] = experience_rate ?? "";
  353. if (!Utils.isEmpty(feedback)) {
  354. params['feedback'] = feedback ?? "";
  355. }
  356. final result = await httpProvider.requestNetResult(
  357. ApiConstants.apiJobAppliedChangeStatusSG,
  358. method: HttpMethod.POST,
  359. params: params,
  360. networkDebounce: true,
  361. isShowLoadingDialog: true,
  362. cancelToken: cancelToken,
  363. );
  364. //根据返回的结果,封装原始数据为Bean/Entity对象
  365. if (result.isSuccess) {
  366. //重新赋值data或list
  367. return result.convert();
  368. }
  369. return result.convert();
  370. }
  371. }