job_repository.dart 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826
  1. import 'dart:typed_data';
  2. import 'package:domain/entity/response/job_list_add_staff_entity.dart';
  3. import 'package:domain/entity/response/job_list_applied_edit_entity.dart';
  4. import 'package:domain/entity/response/job_list_applied_info_entity.dart';
  5. import 'package:domain/entity/response/job_list_applied_staff_list_entity.dart';
  6. import 'package:domain/entity/response/job_list_applied_staff_search_entity.dart';
  7. import 'package:domain/entity/response/job_list_detail_entity.dart';
  8. import 'package:domain/entity/response/job_list_entity.dart';
  9. import 'package:domain/entity/response/job_list_index_entity.dart';
  10. import 'package:domain/entity/response/job_list_remark_view_entity.dart';
  11. import 'package:domain/entity/response/staff_detail_entity.dart';
  12. import 'package:domain/entity/response/staff_labour_history_entity.dart';
  13. import 'package:domain/entity/response/staff_remark_history_entity.dart';
  14. import 'package:get/get.dart';
  15. import 'package:plugin_platform/dio_export.dart';
  16. import 'package:plugin_platform/http/http_provider.dart';
  17. import 'package:plugin_platform/http/http_result.dart';
  18. import 'package:shared/utils/util.dart';
  19. import '../constants/api_constants.dart';
  20. import '../entity/response/attendance_entity.dart';
  21. import '../entity/response/attendance_review_entity.dart';
  22. import '../entity/response/check_success_entity.dart';
  23. import '../entity/response/job_list_applied_work_flow_entity.dart';
  24. /// 工作相关
  25. class JobRepository extends GetxService {
  26. HttpProvider httpProvider;
  27. JobRepository({required this.httpProvider});
  28. /// 获取当前酒店的考勤成员列表
  29. Future<HttpResult<AttendanceEntity>> fetchAttendanceList(
  30. String? keyword,
  31. String? startDate,
  32. String? endDate, {
  33. int curPage = 1,
  34. int pageSize = 9999,
  35. CancelToken? cancelToken,
  36. }) async {
  37. Map<String, String> params = {};
  38. params["cur_page"] = curPage.toString();
  39. params["page_size"] = pageSize.toString();
  40. if (!Utils.isEmpty(keyword)) {
  41. params["keyword"] = keyword!;
  42. }
  43. if (!Utils.isEmpty(startDate)) {
  44. params["start_date"] = startDate!;
  45. }
  46. if (!Utils.isEmpty(endDate)) {
  47. params["end_date"] = endDate!;
  48. }
  49. final result = await httpProvider.requestNetResult(
  50. ApiConstants.apiSignApplied,
  51. params: params,
  52. cancelToken: cancelToken,
  53. );
  54. //根据返回的结果,封装原始数据为Bean/Entity对象
  55. if (result.isSuccess) {
  56. //重新赋值data或list
  57. final json = result.getDataJson();
  58. var data = AttendanceEntity.fromJson(json!);
  59. //重新赋值data或list
  60. return result.convert<AttendanceEntity>(data: data);
  61. }
  62. return result.convert();
  63. }
  64. /// 用户上传考勤
  65. Future<HttpResult<CheckSuccessEntity>> submitCheckInOut(
  66. String? appliedId,
  67. ByteData? byteData, {
  68. bool isCheckIn = false,
  69. CancelToken? cancelToken,
  70. }) async {
  71. //Post请求
  72. Map<String, String> params = {};
  73. params['applied_id'] = appliedId ?? "";
  74. params['check_type'] = isCheckIn ? "1" : "2";
  75. Map<String, Uint8List> streams = {};
  76. if (byteData != null) {
  77. streams["capture"] = byteData.buffer.asUint8List();
  78. }
  79. final result = await httpProvider.requestNetResult(
  80. method: HttpMethod.POST,
  81. ApiConstants.apiSignInOut,
  82. params: params,
  83. pathStreams: streams,
  84. networkDebounce: true,
  85. isShowLoadingDialog: true,
  86. cancelToken: cancelToken,
  87. );
  88. //根据返回的结果,封装原始数据为Bean/Entity对象
  89. if (result.isSuccess) {
  90. final json = result.getDataJson();
  91. var data = CheckSuccessEntity.fromJson(json!);
  92. //重新赋值data
  93. return result.convert<CheckSuccessEntity>(data: data);
  94. }
  95. return result.convert<CheckSuccessEntity>();
  96. }
  97. /// 工作列表的筛选选项
  98. Future<HttpResult<JobListIndexEntity>> fetchJobListIndex({
  99. CancelToken? cancelToken,
  100. }) async {
  101. final result = await httpProvider.requestNetResult(
  102. ApiConstants.apiJobListIndex,
  103. cancelToken: cancelToken,
  104. );
  105. //根据返回的结果,封装原始数据为Bean/Entity对象
  106. if (result.isSuccess) {
  107. //重新赋值data或list
  108. final json = result.getDataJson();
  109. var data = JobListIndexEntity.fromJson(json!);
  110. //重新赋值data或list
  111. return result.convert<JobListIndexEntity>(data: data);
  112. }
  113. return result.convert();
  114. }
  115. /// 获取工作列表的主列表
  116. Future<HttpResult<JobListEntity>> fetchJobListTable(
  117. String? keyword,
  118. String? startDate,
  119. String? endDate,
  120. String? statusId,
  121. String? departmentId, {
  122. required int curPage,
  123. CancelToken? cancelToken,
  124. }) async {
  125. //参数
  126. Map<String, String> params = {};
  127. params["cur_page"] = curPage.toString();
  128. params["page_size"] = "20";
  129. if (!Utils.isEmpty(keyword)) {
  130. params["job_title"] = keyword!;
  131. }
  132. if (!Utils.isEmpty(startDate)) {
  133. params["start_time"] = startDate!;
  134. }
  135. if (!Utils.isEmpty(endDate)) {
  136. params["end_time"] = endDate!;
  137. }
  138. if (!Utils.isEmpty(statusId)) {
  139. params["status"] = statusId!;
  140. }
  141. if (!Utils.isEmpty(departmentId)) {
  142. params["co_department_id"] = departmentId!;
  143. }
  144. final result = await httpProvider.requestNetResult(
  145. ApiConstants.apiJobListTable,
  146. params: params,
  147. cancelToken: cancelToken,
  148. );
  149. //根据返回的结果,封装原始数据为Bean/Entity对象
  150. if (result.isSuccess) {
  151. //重新赋值data或list
  152. final json = result.getDataJson();
  153. var data = JobListEntity.fromJson(json!);
  154. //重新赋值data或list
  155. return result.convert<JobListEntity>(data: data);
  156. }
  157. return result.convert();
  158. }
  159. /// 工作列表的详情
  160. Future<HttpResult<JobListDetailEntity>> fetchJobListDetail(
  161. String? jobId, {
  162. CancelToken? cancelToken,
  163. }) async {
  164. //参数
  165. Map<String, String> params = {};
  166. params['job_id'] = jobId ?? "";
  167. final result = await httpProvider.requestNetResult(
  168. ApiConstants.apiJobListDetail,
  169. params: params,
  170. isShowLoadingDialog: true,
  171. cancelToken: cancelToken,
  172. );
  173. //根据返回的结果,封装原始数据为Bean/Entity对象
  174. if (result.isSuccess) {
  175. //重新赋值data或list
  176. final json = result.getDataJson();
  177. var data = JobListDetailEntity.fromJson(json!);
  178. //重新赋值data或list
  179. return result.convert<JobListDetailEntity>(data: data);
  180. }
  181. return result.convert();
  182. }
  183. /// 工作中已申请的工作信息
  184. Future<HttpResult<JobListAppliedInfoEntity>> fetchJobAppliedInfo(
  185. String? jobId, {
  186. CancelToken? cancelToken,
  187. }) async {
  188. //参数
  189. Map<String, String> params = {};
  190. params['job_id'] = jobId ?? "";
  191. final result = await httpProvider.requestNetResult(
  192. ApiConstants.apiJobListAppliedJobInfo,
  193. params: params,
  194. cancelToken: cancelToken,
  195. );
  196. //根据返回的结果,封装原始数据为Bean/Entity对象
  197. if (result.isSuccess) {
  198. //重新赋值data或list
  199. final json = result.getDataJson();
  200. var data = JobListAppliedInfoEntity.fromJson(json!);
  201. //重新赋值data或list
  202. return result.convert<JobListAppliedInfoEntity>(data: data);
  203. }
  204. return result.convert();
  205. }
  206. /// 工作中已申请的成员列表
  207. Future<HttpResult<JobListAppliedStaffListEntity>> fetchJobAppliedStaffs(
  208. String? jobId,
  209. String? staffName, {
  210. String? appliedId,
  211. required int curPage,
  212. CancelToken? cancelToken,
  213. }) async {
  214. //参数
  215. Map<String, String> params = {};
  216. params["cur_page"] = curPage.toString();
  217. params["page_size"] = "10";
  218. if (!Utils.isEmpty(jobId)) {
  219. params["job_id"] = jobId!;
  220. }
  221. if (!Utils.isEmpty(appliedId)) {
  222. params["applied_id"] = appliedId!;
  223. }
  224. if (!Utils.isEmpty(staffName)) {
  225. params["staff_name"] = staffName!;
  226. }
  227. final result = await httpProvider.requestNetResult(
  228. ApiConstants.apiJobListAppliedStaffList,
  229. params: params,
  230. cancelToken: cancelToken,
  231. );
  232. //根据返回的结果,封装原始数据为Bean/Entity对象
  233. if (result.isSuccess) {
  234. //重新赋值data或list
  235. final json = result.getDataJson();
  236. var data = JobListAppliedStaffListEntity.fromJson(json!);
  237. //重新赋值data或list
  238. return result.convert<JobListAppliedStaffListEntity>(data: data);
  239. }
  240. return result.convert();
  241. }
  242. /// 根据ID获取主列表的Item数据,用于刷新Item
  243. Future<HttpResult<JobListAppliedStaffListEntity>> fetchItemByAppliedIds(
  244. String? jobId,
  245. String? appliedIds, {
  246. CancelToken? cancelToken,
  247. }) async {
  248. //参数
  249. Map<String, String> params = {};
  250. params["cur_page"] = "1";
  251. params["page_size"] = "9999";
  252. if (!Utils.isEmpty(appliedIds)) {
  253. params["applied_ids"] = appliedIds!;
  254. }
  255. if (!Utils.isEmpty(jobId)) {
  256. params["job_id"] = jobId!;
  257. }
  258. final result = await httpProvider.requestNetResult(
  259. ApiConstants.apiJobListAppliedStaffList,
  260. params: params,
  261. isShowLoadingDialog: true,
  262. cancelToken: cancelToken,
  263. );
  264. //根据返回的结果,封装原始数据为Bean/Entity对象
  265. if (result.isSuccess) {
  266. //重新赋值data或list
  267. final json = result.getDataJson();
  268. var data = JobListAppliedStaffListEntity.fromJson(json!);
  269. //重新赋值data或list
  270. return result.convert<JobListAppliedStaffListEntity>(data: data);
  271. }
  272. return result.convert();
  273. }
  274. /// 添加员工的全部员工数据列表
  275. Future<HttpResult<JobListAppliedStaffSearchEntity>> searchStaffList(
  276. String? jobId,
  277. String? keyword, {
  278. required int curPage,
  279. CancelToken? cancelToken,
  280. }) async {
  281. //参数
  282. Map<String, String> params = {};
  283. params["cur_page"] = curPage.toString();
  284. params["page_size"] = "10";
  285. if (!Utils.isEmpty(jobId)) {
  286. params["job_id"] = jobId!;
  287. }
  288. if (!Utils.isEmpty(keyword)) {
  289. params["keyword"] = keyword!;
  290. }
  291. final result = await httpProvider.requestNetResult(
  292. ApiConstants.apiJobListAppliedStaffSearch,
  293. params: params,
  294. cancelToken: cancelToken,
  295. );
  296. //根据返回的结果,封装原始数据为Bean/Entity对象
  297. if (result.isSuccess) {
  298. //重新赋值data或list
  299. final json = result.getDataJson();
  300. var data = JobListAppliedStaffSearchEntity.fromJson(json!);
  301. //重新赋值data或list
  302. return result.convert<JobListAppliedStaffSearchEntity>(data: data);
  303. }
  304. return result.convert();
  305. }
  306. /// 添加员工到工作
  307. Future<HttpResult<JobListAddStaffEntity>> addStaff2Job(
  308. String? jobId,
  309. String? staffIds, {
  310. CancelToken? cancelToken,
  311. }) async {
  312. //参数
  313. Map<String, String> params = {};
  314. if (!Utils.isEmpty(jobId)) {
  315. params["job_id"] = jobId!;
  316. }
  317. if (!Utils.isEmpty(staffIds)) {
  318. params["staff_ids"] = staffIds!;
  319. }
  320. final result = await httpProvider.requestNetResult(
  321. ApiConstants.apiJobListAppliedStaffAdd,
  322. isShowLoadingDialog: true,
  323. method: HttpMethod.POST,
  324. params: params,
  325. cancelToken: cancelToken,
  326. );
  327. //根据返回的结果,封装原始数据为Bean/Entity对象
  328. if (result.isSuccess) {
  329. //重新赋值data或list
  330. final json = result.getDataJson();
  331. var data = JobListAddStaffEntity.fromJson(json!);
  332. //重新赋值data或list
  333. return result.convert<JobListAddStaffEntity>(data: data);
  334. }
  335. return result.convert();
  336. }
  337. /// 批量修改员工的签到信息与状态
  338. Future<HttpResult> batchEditStaffCheckTime(
  339. String? jobId,
  340. String? appliedIds,
  341. String? startTime,
  342. String? endTime, {
  343. CancelToken? cancelToken,
  344. }) async {
  345. //参数
  346. Map<String, String> params = {};
  347. if (!Utils.isEmpty(startTime)) {
  348. params["start_time"] = startTime!;
  349. }
  350. if (!Utils.isEmpty(endTime)) {
  351. params["end_time"] = endTime!;
  352. }
  353. if (!Utils.isEmpty(appliedIds)) {
  354. params["applied_ids"] = appliedIds!;
  355. }
  356. if (!Utils.isEmpty(jobId)) {
  357. params["job_id"] = jobId!;
  358. }
  359. final result = await httpProvider.requestNetResult(
  360. ApiConstants.apiJobListAppliedStaffBatchEdit,
  361. isShowLoadingDialog: true,
  362. method: HttpMethod.POST,
  363. params: params,
  364. cancelToken: cancelToken,
  365. );
  366. //根据返回的结果,封装原始数据为Bean/Entity对象
  367. if (result.isSuccess) {
  368. //重新赋值data或list
  369. return result.convert();
  370. }
  371. return result.convert();
  372. }
  373. /// 获取单个员工的信息,准备修改
  374. Future<HttpResult<JobListAppliedEditEntity>> fetchAppliedEditView(
  375. String? appliedId, {
  376. CancelToken? cancelToken,
  377. }) async {
  378. //参数
  379. Map<String, String> params = {};
  380. if (!Utils.isEmpty(appliedId)) {
  381. params["applied_id"] = appliedId!;
  382. }
  383. final result = await httpProvider.requestNetResult(
  384. ApiConstants.apiJobListAppliedStaffEditIndex,
  385. isShowLoadingDialog: true,
  386. params: params,
  387. cancelToken: cancelToken,
  388. );
  389. //根据返回的结果,封装原始数据为Bean/Entity对象
  390. if (result.isSuccess) {
  391. //重新赋值data或list
  392. final json = result.getDataJson();
  393. var data = JobListAppliedEditEntity.fromJson(json!);
  394. //重新赋值data或list
  395. return result.convert<JobListAppliedEditEntity>(data: data);
  396. }
  397. return result.convert();
  398. }
  399. /// 单独修改单个员工的信息
  400. Future<HttpResult> editAppliedSingleStaffInfo(
  401. String? appliedId,
  402. JobListAppliedEditEntity entity, {
  403. CancelToken? cancelToken,
  404. }) async {
  405. //参数
  406. Map<String, String> params = {};
  407. if (!Utils.isEmpty(appliedId)) {
  408. params["applied_id"] = appliedId!;
  409. }
  410. if (!Utils.isEmpty(entity.startTime)) {
  411. params["start_time"] = entity.startTime!;
  412. }
  413. if (!Utils.isEmpty(entity.endTime)) {
  414. params["end_time"] = entity.endTime!;
  415. }
  416. if (!Utils.isEmpty(entity.securityIn)) {
  417. params["security_in"] = entity.securityIn!;
  418. }
  419. if (!Utils.isEmpty(entity.securityOut)) {
  420. params["security_out"] = entity.securityOut!;
  421. }
  422. if (!Utils.isEmpty(entity.workIn)) {
  423. params["work_in"] = entity.workIn!;
  424. }
  425. if (!Utils.isEmpty(entity.workOut)) {
  426. params["work_out"] = entity.workOut!;
  427. }
  428. if (entity.jobUnit == "hour") {
  429. if (!Utils.isEmpty(entity.adjustHours)) {
  430. params["adjust_hours"] = entity.adjustHours!;
  431. }
  432. } else {
  433. if (entity.totalRooms != 0) {
  434. params["total_rooms"] = entity.totalRooms.toString();
  435. }
  436. }
  437. if (entity.reasonType != 0) {
  438. params["co_reason_type"] = entity.reasonType.toString();
  439. }
  440. if (!Utils.isEmpty(entity.coReason)) {
  441. params["co_reason"] = entity.coReason!;
  442. }
  443. final result = await httpProvider.requestNetResult(
  444. ApiConstants.apiJobListAppliedStaffEditSubmit,
  445. isShowLoadingDialog: true,
  446. method: HttpMethod.POST,
  447. params: params,
  448. cancelToken: cancelToken,
  449. );
  450. //根据返回的结果,封装原始数据为Bean/Entity对象
  451. if (result.isSuccess) {
  452. //重新赋值data或list
  453. return result.convert();
  454. }
  455. return result.convert();
  456. }
  457. /// 给员工评分的详情与选项
  458. Future<HttpResult<JobListRemarkViewEntity>> fetchAppliedStaffReviewView(
  459. String? appliedId, {
  460. CancelToken? cancelToken,
  461. }) async {
  462. //参数
  463. Map<String, String> params = {};
  464. if (!Utils.isEmpty(appliedId)) {
  465. params["applied_id"] = appliedId!;
  466. }
  467. final result = await httpProvider.requestNetResult(
  468. ApiConstants.apiJobListAppliedStaffReviewIndex,
  469. isShowLoadingDialog: true,
  470. params: params,
  471. cancelToken: cancelToken,
  472. );
  473. //根据返回的结果,封装原始数据为Bean/Entity对象
  474. if (result.isSuccess) {
  475. //重新赋值data或list
  476. final json = result.getDataJson();
  477. var data = JobListRemarkViewEntity.fromJson(json!);
  478. //重新赋值data或list
  479. return result.convert<JobListRemarkViewEntity>(data: data);
  480. }
  481. return result.convert();
  482. }
  483. /// 单独给单个员工评分的提交
  484. Future<HttpResult> remarkAppliedSingleStaffSubmit(
  485. String? appliedId,
  486. String? attitude_rate,
  487. String? grooming_rate,
  488. String? performance_rate,
  489. String? experience_rate,
  490. String? content, {
  491. CancelToken? cancelToken,
  492. }) async {
  493. //参数
  494. Map<String, String> params = {};
  495. if (!Utils.isEmpty(appliedId)) {
  496. params["applied_id"] = appliedId!;
  497. }
  498. if (!Utils.isEmpty(attitude_rate)) {
  499. params["attitude_rate"] = attitude_rate!;
  500. }
  501. if (!Utils.isEmpty(grooming_rate)) {
  502. params["grooming_rate"] = grooming_rate!;
  503. }
  504. if (!Utils.isEmpty(performance_rate)) {
  505. params["performance_rate"] = performance_rate!;
  506. }
  507. if (!Utils.isEmpty(experience_rate)) {
  508. params["experience_rate"] = experience_rate!;
  509. }
  510. if (!Utils.isEmpty(content)) {
  511. params["content"] = content!;
  512. }
  513. final result = await httpProvider.requestNetResult(
  514. ApiConstants.apiJobListAppliedStaffReviewSubmit,
  515. isShowLoadingDialog: true,
  516. method: HttpMethod.POST,
  517. params: params,
  518. cancelToken: cancelToken,
  519. );
  520. //根据返回的结果,封装原始数据为Bean/Entity对象
  521. if (result.isSuccess) {
  522. //重新赋值data或list
  523. return result.convert();
  524. }
  525. return result.convert();
  526. }
  527. /// 批量提交多个员工的考勤
  528. Future<HttpResult> submitBatchStaffApprove(
  529. String? appliedIds, {
  530. CancelToken? cancelToken,
  531. }) async {
  532. //参数
  533. Map<String, String> params = {};
  534. if (!Utils.isEmpty(appliedIds)) {
  535. params["applied_ids"] = appliedIds!;
  536. }
  537. final result = await httpProvider.requestNetResult(
  538. ApiConstants.apiJobListAppliedApprove,
  539. isShowLoadingDialog: true,
  540. method: HttpMethod.POST,
  541. params: params,
  542. cancelToken: cancelToken,
  543. );
  544. //根据返回的结果,封装原始数据为Bean/Entity对象
  545. if (result.isSuccess) {
  546. //重新赋值data或list
  547. return result.convert();
  548. }
  549. return result.convert();
  550. }
  551. // 员工状态的工作流
  552. Future<HttpResult<JobListAppliedWorkFlowEntity>> fetchAppliedWorkFlow(
  553. String? appliedId, {
  554. CancelToken? cancelToken,
  555. }) async {
  556. //参数
  557. Map<String, String> params = {};
  558. if (!Utils.isEmpty(appliedId)) {
  559. params["applied_id"] = appliedId!;
  560. }
  561. final result = await httpProvider.requestNetResult(
  562. ApiConstants.apiJobListAppliedStaffStateWorkflow,
  563. params: params,
  564. cancelToken: cancelToken,
  565. );
  566. //根据返回的结果,封装原始数据为Bean/Entity对象
  567. if (result.isSuccess) {
  568. //重新赋值data或list
  569. final json = result.getDataJson();
  570. var data = JobListAppliedWorkFlowEntity.fromJson(json!);
  571. //重新赋值data或list
  572. return result.convert<JobListAppliedWorkFlowEntity>(data: data);
  573. }
  574. return result.convert();
  575. }
  576. // 员工的信息
  577. Future<HttpResult<StaffDetailEntity>> fetchStaffDetail(
  578. String? memberId, {
  579. CancelToken? cancelToken,
  580. }) async {
  581. //参数
  582. Map<String, String> params = {};
  583. if (!Utils.isEmpty(memberId)) {
  584. params["member_id"] = memberId!;
  585. }
  586. final result = await httpProvider.requestNetResult(
  587. ApiConstants.apiJobListStaffDetail,
  588. params: params,
  589. cancelToken: cancelToken,
  590. );
  591. //根据返回的结果,封装原始数据为Bean/Entity对象
  592. if (result.isSuccess) {
  593. //重新赋值data或list
  594. final json = result.getDataJson();
  595. var data = StaffDetailEntity.fromJson(json!);
  596. //重新赋值data或list
  597. return result.convert<StaffDetailEntity>(data: data);
  598. }
  599. return result.convert();
  600. }
  601. // 员工的历史申请记录
  602. Future<HttpResult<StaffLabourHistoryEntity>> fetchStaffLabourHistory(
  603. String? memberId,
  604. String? keyword, {
  605. required int curPage,
  606. CancelToken? cancelToken,
  607. }) async {
  608. //参数
  609. Map<String, String> params = {};
  610. params["cur_page"] = curPage.toString();
  611. params["page_size"] = "10";
  612. if (!Utils.isEmpty(memberId)) {
  613. params["member_id"] = memberId!;
  614. }
  615. if (!Utils.isEmpty(keyword)) {
  616. params["keyword"] = keyword!;
  617. }
  618. final result = await httpProvider.requestNetResult(
  619. ApiConstants.apiJobListStaffLabourHistory,
  620. params: params,
  621. cancelToken: cancelToken,
  622. );
  623. //根据返回的结果,封装原始数据为Bean/Entity对象
  624. if (result.isSuccess) {
  625. //重新赋值data或list
  626. final json = result.getDataJson();
  627. var data = StaffLabourHistoryEntity.fromJson(json!);
  628. //重新赋值data或list
  629. return result.convert<StaffLabourHistoryEntity>(data: data);
  630. }
  631. return result.convert();
  632. }
  633. // 员工的历史评价记录
  634. Future<HttpResult<StaffRemarkHistoryEntity>> fetchStaffRemarkHistory(
  635. String? memberId, {
  636. required int curPage,
  637. CancelToken? cancelToken,
  638. }) async {
  639. //参数
  640. Map<String, String> params = {};
  641. params["cur_page"] = curPage.toString();
  642. params["page_size"] = "10";
  643. if (!Utils.isEmpty(memberId)) {
  644. params["member_id"] = memberId!;
  645. }
  646. final result = await httpProvider.requestNetResult(
  647. ApiConstants.apiJobListStaffRemarkHistory,
  648. params: params,
  649. cancelToken: cancelToken,
  650. );
  651. //根据返回的结果,封装原始数据为Bean/Entity对象
  652. if (result.isSuccess) {
  653. //重新赋值data或list
  654. final json = result.getDataJson();
  655. var data = StaffRemarkHistoryEntity.fromJson(json!);
  656. //重新赋值data或list
  657. return result.convert<StaffRemarkHistoryEntity>(data: data);
  658. }
  659. return result.convert();
  660. }
  661. /// 考勤审核列表
  662. Future<HttpResult<AttendanceReviewEntity>> fetchAttendanceReviewList(
  663. String? keyword, {
  664. required int curPage,
  665. CancelToken? cancelToken,
  666. }) async {
  667. //参数
  668. Map<String, String> params = {};
  669. params["cur_page"] = curPage.toString();
  670. params["page_size"] = "20";
  671. if (!Utils.isEmpty(keyword)) {
  672. params["staff_name"] = keyword!;
  673. }
  674. final result = await httpProvider.requestNetResult(
  675. ApiConstants.apiAttendanceReviewTable,
  676. params: params,
  677. cancelToken: cancelToken,
  678. );
  679. //根据返回的结果,封装原始数据为Bean/Entity对象
  680. if (result.isSuccess) {
  681. //重新赋值data或list
  682. final json = result.getDataJson();
  683. var data = AttendanceReviewEntity.fromJson(json!);
  684. //重新赋值data或list
  685. return result.convert<AttendanceReviewEntity>(data: data);
  686. }
  687. return result.convert();
  688. }
  689. /// 考勤的批量同意
  690. Future<HttpResult> approveAttendanceReviews(
  691. String? recordIds, {
  692. CancelToken? cancelToken,
  693. }) async {
  694. //参数
  695. Map<String, String> params = {};
  696. params['record_ids'] = recordIds ?? "";
  697. final result = await httpProvider.requestNetResult(
  698. ApiConstants.apiAttendanceReviewApprove,
  699. method: HttpMethod.POST,
  700. params: params,
  701. networkDebounce: true,
  702. isShowLoadingDialog: true,
  703. cancelToken: cancelToken,
  704. );
  705. //根据返回的结果,封装原始数据为Bean/Entity对象
  706. if (result.isSuccess) {
  707. //重新赋值data或list
  708. return result.convert();
  709. }
  710. return result.convert();
  711. }
  712. /// 考勤的批量拒绝
  713. Future<HttpResult> rejectLabourReviews(
  714. String? recordIds,
  715. String? reason, {
  716. CancelToken? cancelToken,
  717. }) async {
  718. //参数
  719. Map<String, String> params = {};
  720. params['record_ids'] = recordIds ?? "";
  721. if (Utils.isNotEmpty(reason)) {
  722. params['audit_mark'] = reason ?? "";
  723. }
  724. final result = await httpProvider.requestNetResult(
  725. ApiConstants.apiAttendanceReviewReject,
  726. method: HttpMethod.POST,
  727. params: params,
  728. networkDebounce: true,
  729. isShowLoadingDialog: true,
  730. cancelToken: cancelToken,
  731. );
  732. //根据返回的结果,封装原始数据为Bean/Entity对象
  733. if (result.isSuccess) {
  734. //重新赋值data或list
  735. return result.convert();
  736. }
  737. return result.convert();
  738. }
  739. }