th_er_repository.dart 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806
  1. import 'package:domain/entity/response/hotel_info_entity.dart';
  2. import 'package:domain/entity/response/job_list_add_staff_entity.dart';
  3. import 'package:domain/entity/response/job_list_e_r_detail_entity.dart';
  4. import 'package:domain/entity/response/job_list_e_r_option_entity.dart';
  5. import 'package:domain/entity/response/labour_request_e_r_entity.dart';
  6. import 'package:domain/entity/response/sign_in_sign_out_entity.dart';
  7. import 'package:domain/entity/response/switch_project_entity.dart';
  8. import 'package:domain/entity/response/t_h_applied_edit_entity.dart';
  9. import 'package:domain/entity/response/t_h_applied_employee_entity.dart';
  10. import 'package:domain/entity/response/t_h_applied_index_entity.dart';
  11. import 'package:domain/entity/response/t_h_applied_table_entity.dart';
  12. import 'package:get/get.dart';
  13. import 'package:plugin_platform/http/http_provider.dart';
  14. import 'package:plugin_platform/http/http_result.dart';
  15. import 'package:plugin_platform/platform_export.dart';
  16. import 'package:shared/utils/util.dart';
  17. import '../constants/api_constants.dart';
  18. import '../entity/response/job_list_applied_work_flow_entity.dart';
  19. import '../entity/response/job_list_remark_view_entity.dart';
  20. import '../entity/response/labour_list_e_r_entity.dart';
  21. import '../entity/response/labour_request_e_r_option_entity.dart';
  22. import '../entity/response/staff_detail_entity.dart';
  23. import '../entity/response/staff_labour_history_entity.dart';
  24. import '../entity/response/staff_remark_history_entity.dart';
  25. import '../entity/response/t_h_employee_detail_entity.dart';
  26. import '../entity/response/t_h_employee_remarks_entity.dart';
  27. /// 泰国的 ER 的数据仓库
  28. class THERRepository extends GetxService {
  29. HttpProvider httpProvider;
  30. THERRepository({required this.httpProvider});
  31. /// 获取 ER 用工请求列表
  32. Future<HttpResult<LabourRequestEREntity>> fetchERLabourRequest(
  33. String? date, {
  34. CancelToken? cancelToken,
  35. }) async {
  36. Map<String, String> params = {};
  37. if (!Utils.isEmpty(date)) {
  38. params["day"] = date!;
  39. }
  40. final result = await httpProvider.requestNetResult(
  41. ApiConstants.apiERLabourRequestTH,
  42. params: params,
  43. cancelToken: cancelToken,
  44. );
  45. if (result.isSuccess) {
  46. final json = result.getDataJson();
  47. var data = LabourRequestEREntity.fromJson(json!);
  48. return result.convert<LabourRequestEREntity>(data: data);
  49. }
  50. return result.convert();
  51. }
  52. /// 获取 ER 用工请求选项
  53. Future<HttpResult<JobListERDetailEntity>> fetchERLabourRequestAddOption({
  54. CancelToken? cancelToken,
  55. }) async {
  56. final result = await httpProvider.requestNetResult(
  57. ApiConstants.apiERLabourRequestAddOptionTH,
  58. networkDebounce: true,
  59. isShowLoadingDialog: true,
  60. cancelToken: cancelToken,
  61. );
  62. if (result.isSuccess) {
  63. final json = result.getDataJson();
  64. var data = JobListERDetailEntity.fromJson(json!);
  65. return result.convert<JobListERDetailEntity>(data: data);
  66. }
  67. return result.convert();
  68. }
  69. /// 新增 ER 的用工请求
  70. Future<HttpResult> addLabourRequestERSubmit({
  71. required String jobTitleId,
  72. required String startTime,
  73. required String endTime,
  74. required String outletId,
  75. String? repeatStart,
  76. String? repeatEnd,
  77. String? sexLimit,
  78. String? needNum,
  79. String? maleLimit,
  80. String? femaleLimit,
  81. String? eventName,
  82. String? eventType,
  83. String? remark,
  84. CancelToken? cancelToken,
  85. }) async {
  86. Map<String, String> params = {};
  87. params["job_title_id"] = jobTitleId;
  88. params["start_time"] = startTime;
  89. params["end_time"] = endTime;
  90. params["outlet_id"] = outletId;
  91. if (!Utils.isEmpty(repeatStart)) {
  92. params["repeat_start"] = repeatStart!;
  93. }
  94. if (!Utils.isEmpty(repeatEnd)) {
  95. params["repeat_end"] = repeatEnd!;
  96. }
  97. if (!Utils.isEmpty(sexLimit)) {
  98. params["sex_limit"] = sexLimit!;
  99. }
  100. if (!Utils.isEmpty(needNum)) {
  101. params["need_num"] = needNum!;
  102. }
  103. if (!Utils.isEmpty(maleLimit)) {
  104. params["male_limit"] = maleLimit!;
  105. }
  106. if (!Utils.isEmpty(femaleLimit)) {
  107. params["female_limit"] = femaleLimit!;
  108. }
  109. if (!Utils.isEmpty(eventName)) {
  110. params["event_name"] = eventName!;
  111. }
  112. if (!Utils.isEmpty(eventType)) {
  113. params["event_type"] = eventType!;
  114. }
  115. if (!Utils.isEmpty(remark)) {
  116. params["remark"] = remark!;
  117. }
  118. final result = await httpProvider.requestNetResult(
  119. ApiConstants.apiERLabourRequestAddSubmitTH,
  120. method: HttpMethod.POST,
  121. params: params,
  122. networkDebounce: true,
  123. isShowLoadingDialog: true,
  124. cancelToken: cancelToken,
  125. );
  126. if (result.isSuccess) {
  127. return result.convert();
  128. }
  129. return result.convert();
  130. }
  131. /// 获取 ER 工作列表选项
  132. Future<HttpResult<JobListEROptionEntity>> fetchERJobListOption({
  133. String? date,
  134. CancelToken? cancelToken,
  135. }) async {
  136. Map<String, String> params = {};
  137. if (!Utils.isEmpty(date)) {
  138. params["daily"] = date!;
  139. }
  140. final result = await httpProvider.requestNetResult(
  141. ApiConstants.apiERJobListOptionTH,
  142. params: params,
  143. cancelToken: cancelToken,
  144. );
  145. if (result.isSuccess) {
  146. final json = result.getDataJson();
  147. var data = JobListEROptionEntity.fromJson(json!);
  148. return result.convert<JobListEROptionEntity>(data: data);
  149. }
  150. return result.convert();
  151. }
  152. /// 获取 ER 工作列表
  153. Future<HttpResult<LabourListEREntity>> fetchERJobListTable({
  154. required int curPage,
  155. String? keyword,
  156. String? divisionId,
  157. String? outletId,
  158. String? status,
  159. String? startDate,
  160. String? endDate,
  161. String? trending,
  162. CancelToken? cancelToken,
  163. }) async {
  164. //参数
  165. Map<String, String> params = {};
  166. params["cur_page"] = curPage.toString();
  167. params["page_size"] = "10";
  168. if (!Utils.isEmpty(keyword)) {
  169. params["job_title"] = keyword!;
  170. }
  171. if (!Utils.isEmpty(divisionId)) {
  172. params["division_id"] = divisionId!;
  173. }
  174. if (!Utils.isEmpty(outletId)) {
  175. params["outlet_id"] = outletId!;
  176. }
  177. if (!Utils.isEmpty(status)) {
  178. params["status"] = status!;
  179. }
  180. if (!Utils.isEmpty(startDate)) {
  181. params["start_date"] = startDate!;
  182. }
  183. if (!Utils.isEmpty(endDate)) {
  184. params["end_date"] = endDate!;
  185. }
  186. if (!Utils.isEmpty(trending)) {
  187. params["trending"] = trending!;
  188. }
  189. final result = await httpProvider.requestNetResult(
  190. ApiConstants.apiERJobListTableTH,
  191. params: params,
  192. cancelToken: cancelToken,
  193. );
  194. if (result.isSuccess) {
  195. final json = result.getDataJson();
  196. var data = LabourListEREntity.fromJson(json!);
  197. return result.convert<LabourListEREntity>(data: data);
  198. }
  199. return result.convert();
  200. }
  201. /// ER 工作列表的删除
  202. Future<HttpResult> deleteJobListERSubmit({
  203. required String jobId,
  204. required String type,
  205. CancelToken? cancelToken,
  206. }) async {
  207. Map<String, String> params = {};
  208. params["job_id"] = jobId;
  209. params["type"] = type;
  210. final result = await httpProvider.requestNetResult(
  211. ApiConstants.apiERJobListDeleteTH,
  212. method: HttpMethod.POST,
  213. params: params,
  214. networkDebounce: true,
  215. isShowLoadingDialog: true,
  216. cancelToken: cancelToken,
  217. );
  218. if (result.isSuccess) {
  219. return result.convert();
  220. }
  221. return result.convert();
  222. }
  223. /// 获取 ER 工作列表详情
  224. Future<HttpResult<JobListERDetailEntity>> fetchERJobListDetail({
  225. required String jobId,
  226. CancelToken? cancelToken,
  227. }) async {
  228. //参数
  229. Map<String, String> params = {};
  230. params["job_id"] = jobId;
  231. final result = await httpProvider.requestNetResult(
  232. ApiConstants.apiERJobListDetailTH,
  233. params: params,
  234. networkDebounce: true,
  235. isShowLoadingDialog: true,
  236. cancelToken: cancelToken,
  237. );
  238. if (result.isSuccess) {
  239. final json = result.getDataJson();
  240. var data = JobListERDetailEntity.fromJson(json!);
  241. return result.convert<JobListERDetailEntity>(data: data);
  242. }
  243. return result.convert();
  244. }
  245. /// 编辑 ER 的用工请求
  246. Future<HttpResult> editLabourRequestERSubmit({
  247. required String jobId,
  248. required String jobTitleId,
  249. required String startTime,
  250. required String endTime,
  251. required String outletId,
  252. String? sexLimit,
  253. String? needNum,
  254. String? maleLimit,
  255. String? femaleLimit,
  256. String? eventName,
  257. String? eventType,
  258. String? remark,
  259. CancelToken? cancelToken,
  260. }) async {
  261. Map<String, String> params = {};
  262. params["job_id"] = jobId;
  263. params["job_title_id"] = jobTitleId;
  264. params["start_time"] = startTime;
  265. params["end_time"] = endTime;
  266. params["outlet_id"] = outletId;
  267. if (!Utils.isEmpty(sexLimit)) {
  268. params["sex_limit"] = sexLimit!;
  269. }
  270. if (!Utils.isEmpty(needNum)) {
  271. params["need_num"] = needNum!;
  272. }
  273. if (!Utils.isEmpty(maleLimit)) {
  274. params["male_limit"] = maleLimit!;
  275. }
  276. if (!Utils.isEmpty(femaleLimit)) {
  277. params["female_limit"] = femaleLimit!;
  278. }
  279. if (!Utils.isEmpty(eventName)) {
  280. params["event_name"] = eventName!;
  281. }
  282. if (!Utils.isEmpty(eventType)) {
  283. params["event_type"] = eventType!;
  284. }
  285. if (!Utils.isEmpty(remark)) {
  286. params["remark"] = remark!;
  287. }
  288. final result = await httpProvider.requestNetResult(
  289. ApiConstants.apiERLabourRequestEditSubmitTH,
  290. method: HttpMethod.POST,
  291. params: params,
  292. networkDebounce: true,
  293. isShowLoadingDialog: true,
  294. cancelToken: cancelToken,
  295. );
  296. if (result.isSuccess) {
  297. return result.convert();
  298. }
  299. return result.convert();
  300. }
  301. /// 获取 ER 工作 Applied 选项
  302. Future<HttpResult<THAppliedIndexEntity>> fetchERAppliedOption({
  303. required String? jobId,
  304. CancelToken? cancelToken,
  305. }) async {
  306. //参数
  307. Map<String, String> params = {};
  308. params["job_id"] = jobId ?? "";
  309. final result = await httpProvider.requestNetResult(
  310. ApiConstants.apiERAppliedOptionTH,
  311. params: params,
  312. cancelToken: cancelToken,
  313. );
  314. if (result.isSuccess) {
  315. final json = result.getDataJson();
  316. var data = THAppliedIndexEntity.fromJson(json!);
  317. return result.convert<THAppliedIndexEntity>(data: data);
  318. }
  319. return result.convert();
  320. }
  321. /// 获取 ER 工作 Applied Table
  322. Future<HttpResult<THAppliedTableEntity>> fetchERAppliedTable({
  323. required String? jobId,
  324. required int curPage,
  325. String? keyword,
  326. String? status,
  327. CancelToken? cancelToken,
  328. }) async {
  329. //参数
  330. Map<String, String> params = {};
  331. params["job_id"] = jobId ?? "";
  332. params["cur_page"] = curPage.toString();
  333. params["page_size"] = '10';
  334. if (!Utils.isEmpty(keyword)) {
  335. params["keyword"] = keyword!;
  336. }
  337. if (!Utils.isEmpty(status)) {
  338. params["status"] = status!;
  339. }
  340. final result = await httpProvider.requestNetResult(
  341. ApiConstants.apiERAppliedListTH,
  342. params: params,
  343. cancelToken: cancelToken,
  344. );
  345. if (result.isSuccess) {
  346. final json = result.getDataJson();
  347. var data = THAppliedTableEntity.fromJson(json!);
  348. return result.convert<THAppliedTableEntity>(data: data);
  349. }
  350. return result.convert();
  351. }
  352. // 刷新 Table
  353. Future<HttpResult<THAppliedTableEntity>> fetchItemByAppliedIds(
  354. String? jobId,
  355. String? appliedIds, {
  356. CancelToken? cancelToken,
  357. }) async {
  358. //参数
  359. Map<String, String> params = {};
  360. params["cur_page"] = "1";
  361. params["page_size"] = "9999";
  362. if (!Utils.isEmpty(appliedIds)) {
  363. params["applied_ids"] = appliedIds!;
  364. }
  365. if (!Utils.isEmpty(jobId)) {
  366. params["job_id"] = jobId!;
  367. }
  368. final result = await httpProvider.requestNetResult(
  369. ApiConstants.apiERAppliedListTH,
  370. params: params,
  371. cancelToken: cancelToken,
  372. );
  373. if (result.isSuccess) {
  374. final json = result.getDataJson();
  375. var data = THAppliedTableEntity.fromJson(json!);
  376. return result.convert<THAppliedTableEntity>(data: data);
  377. }
  378. return result.convert();
  379. }
  380. /// Applied 批量员工批准
  381. Future<HttpResult> submitBatchStaffApprove(String? separatedIds, {required CancelToken cancelToken}) async {
  382. Map<String, String> params = {};
  383. params["applied_ids"] = separatedIds ?? "";
  384. final result = await httpProvider.requestNetResult(
  385. method: HttpMethod.POST,
  386. ApiConstants.apiERAppliedApproveTH,
  387. params: params,
  388. networkDebounce: true,
  389. isShowLoadingDialog: true,
  390. cancelToken: cancelToken,
  391. );
  392. if (result.isSuccess) {
  393. return result.convert();
  394. }
  395. return result.convert();
  396. }
  397. /// Applied 批量员工编辑
  398. Future<HttpResult> batchEditStaffCheckTime(String? separatedIds, String? startDate, String? endDate, {required CancelToken cancelToken}) async {
  399. Map<String, String> params = {};
  400. params["applied_ids"] = separatedIds ?? "";
  401. if (!Utils.isEmpty(startDate)) {
  402. params["start_time"] = startDate!;
  403. }
  404. if (!Utils.isEmpty(endDate)) {
  405. params["end_time"] = endDate!;
  406. }
  407. final result = await httpProvider.requestNetResult(
  408. method: HttpMethod.POST,
  409. ApiConstants.apiERAppliedEditTH,
  410. params: params,
  411. networkDebounce: true,
  412. isShowLoadingDialog: true,
  413. cancelToken: cancelToken,
  414. );
  415. if (result.isSuccess) {
  416. return result.convert();
  417. }
  418. return result.convert();
  419. }
  420. /// 获取 ER 工作 Applied 编辑详情
  421. Future<HttpResult<THAppliedEditEntity>> fetchERAppliedEditDetail({
  422. required String? appliedId,
  423. CancelToken? cancelToken,
  424. }) async {
  425. //参数
  426. Map<String, String> params = {};
  427. params["applied_id"] = appliedId ?? "";
  428. final result = await httpProvider.requestNetResult(
  429. ApiConstants.apiERAppliedEditAttTH,
  430. params: params,
  431. networkDebounce: true,
  432. isShowLoadingDialog: true,
  433. cancelToken: cancelToken,
  434. );
  435. if (result.isSuccess) {
  436. final json = result.getDataJson();
  437. var data = THAppliedEditEntity.fromJson(json!);
  438. return result.convert<THAppliedEditEntity>(data: data);
  439. }
  440. return result.convert();
  441. }
  442. /// Applied 修改员工考勤提交
  443. Future<HttpResult> editAppliedDetailSubmit({
  444. required String? appliedId,
  445. String? startTime,
  446. String? endTime,
  447. String? securityIn,
  448. String? securityOut,
  449. String? workIn,
  450. String? workOut,
  451. String? subtractHours,
  452. String? status,
  453. String? reasonType,
  454. String? remark,
  455. CancelToken? cancelToken,
  456. }) async {
  457. Map<String, String> params = {};
  458. params["applied_id"] = appliedId ?? "";
  459. if (!Utils.isEmpty(startTime)) {
  460. params["start_time"] = startTime!;
  461. }
  462. if (!Utils.isEmpty(endTime)) {
  463. params["end_time"] = endTime!;
  464. }
  465. if (!Utils.isEmpty(securityIn)) {
  466. params["security_in"] = securityIn!;
  467. }
  468. if (!Utils.isEmpty(securityOut)) {
  469. params["security_out"] = securityOut!;
  470. }
  471. if (!Utils.isEmpty(workIn)) {
  472. params["work_in"] = workIn!;
  473. }
  474. if (!Utils.isEmpty(workOut)) {
  475. params["work_out"] = workOut!;
  476. }
  477. if (!Utils.isEmpty(subtractHours)) {
  478. params["subtract_hours"] = subtractHours!;
  479. }
  480. if (!Utils.isEmpty(status)) {
  481. params["status"] = status!;
  482. }
  483. if (!Utils.isEmpty(reasonType)) {
  484. params["reason_type"] = reasonType!;
  485. }
  486. if (!Utils.isEmpty(remark)) {
  487. params["remark"] = remark!;
  488. }
  489. final result = await httpProvider.requestNetResult(
  490. method: HttpMethod.POST,
  491. ApiConstants.apiERAppliedEditAttSubmitTH,
  492. params: params,
  493. networkDebounce: true,
  494. isShowLoadingDialog: true,
  495. cancelToken: cancelToken,
  496. );
  497. if (result.isSuccess) {
  498. return result.convert();
  499. }
  500. return result.convert();
  501. }
  502. /// 添加员工的全部员工数据列表
  503. Future<HttpResult<THAppliedEmployeeEntity>> searchStaffList(
  504. String? jobId,
  505. String? keyword, {
  506. required int curPage,
  507. CancelToken? cancelToken,
  508. }) async {
  509. //参数
  510. Map<String, String> params = {};
  511. params["cur_page"] = curPage.toString();
  512. params["page_size"] = "10";
  513. if (Utils.isNotEmpty(jobId)) {
  514. params["job_id"] = jobId!;
  515. }
  516. if (Utils.isNotEmpty(keyword)) {
  517. params["keyword"] = keyword!;
  518. }
  519. final result = await httpProvider.requestNetResult(
  520. ApiConstants.apiERAppliedAddEmployeeTH,
  521. params: params,
  522. cancelToken: cancelToken,
  523. );
  524. if (result.isSuccess) {
  525. final json = result.getDataJson();
  526. var data = THAppliedEmployeeEntity.fromJson(json!);
  527. return result.convert<THAppliedEmployeeEntity>(data: data);
  528. }
  529. return result.convert();
  530. }
  531. /// 添加员工到工作
  532. Future<HttpResult<JobListAddStaffEntity>> addStaff2Job(
  533. String? jobId,
  534. String? staffIds, {
  535. CancelToken? cancelToken,
  536. }) async {
  537. //参数
  538. Map<String, String> params = {};
  539. if (!Utils.isEmpty(jobId)) {
  540. params["job_id"] = jobId!;
  541. }
  542. if (!Utils.isEmpty(staffIds)) {
  543. params["staff_ids"] = staffIds!;
  544. }
  545. final result = await httpProvider.requestNetResult(
  546. ApiConstants.apiERAppliedAddEmployeeSubmitTH,
  547. isShowLoadingDialog: true,
  548. method: HttpMethod.POST,
  549. params: params,
  550. cancelToken: cancelToken,
  551. );
  552. if (result.isSuccess) {
  553. final json = result.getDataJson();
  554. var data = JobListAddStaffEntity.fromJson(json!);
  555. return result.convert<JobListAddStaffEntity>(data: data);
  556. }
  557. return result.convert();
  558. }
  559. // 员工的信息
  560. Future<HttpResult<THEmployeeDetailEntity>> fetchStaffDetail(
  561. String? memberId, {
  562. CancelToken? cancelToken,
  563. }) async {
  564. //参数
  565. Map<String, String> params = {};
  566. if (!Utils.isEmpty(memberId)) {
  567. params["member_id"] = memberId!;
  568. }
  569. final result = await httpProvider.requestNetResult(
  570. ApiConstants.apiEREmployeeInfoTH,
  571. params: params,
  572. cancelToken: cancelToken,
  573. );
  574. //根据返回的结果,封装原始数据为Bean/Entity对象
  575. if (result.isSuccess) {
  576. //重新赋值data或list
  577. final json = result.getDataJson();
  578. var data = THEmployeeDetailEntity.fromJson(json!);
  579. //重新赋值data或list
  580. return result.convert<THEmployeeDetailEntity>(data: data);
  581. }
  582. return result.convert();
  583. }
  584. // 员工的历史申请记录
  585. Future<HttpResult<StaffLabourHistoryEntity>> fetchStaffLabourHistory(
  586. String? memberId,
  587. String? keyword, {
  588. required int curPage,
  589. CancelToken? cancelToken,
  590. }) async {
  591. //参数
  592. Map<String, String> params = {};
  593. params["cur_page"] = curPage.toString();
  594. params["page_size"] = "10";
  595. if (!Utils.isEmpty(memberId)) {
  596. params["member_id"] = memberId!;
  597. }
  598. if (!Utils.isEmpty(keyword)) {
  599. params["keyword"] = keyword!;
  600. }
  601. final result = await httpProvider.requestNetResult(
  602. ApiConstants.apiEREmployeeHistoryTH,
  603. params: params,
  604. cancelToken: cancelToken,
  605. );
  606. //根据返回的结果,封装原始数据为Bean/Entity对象
  607. if (result.isSuccess) {
  608. //重新赋值data或list
  609. final json = result.getDataJson();
  610. var data = StaffLabourHistoryEntity.fromJson(json!);
  611. //重新赋值data或list
  612. return result.convert<StaffLabourHistoryEntity>(data: data);
  613. }
  614. return result.convert();
  615. }
  616. // 员工的历史评价记录
  617. Future<HttpResult<THEmployeeRemarksEntity>> fetchStaffRemarkHistory(
  618. String? memberId, {
  619. required int curPage,
  620. CancelToken? cancelToken,
  621. }) async {
  622. //参数
  623. Map<String, String> params = {};
  624. params["cur_page"] = curPage.toString();
  625. params["page_size"] = "10";
  626. if (!Utils.isEmpty(memberId)) {
  627. params["member_id"] = memberId!;
  628. }
  629. final result = await httpProvider.requestNetResult(
  630. ApiConstants.apiEREmployeeEvaluationTH,
  631. params: params,
  632. cancelToken: cancelToken,
  633. );
  634. if (result.isSuccess) {
  635. final json = result.getDataJson();
  636. var data = THEmployeeRemarksEntity.fromJson(json!);
  637. return result.convert<THEmployeeRemarksEntity>(data: data);
  638. }
  639. return result.convert();
  640. }
  641. /// 给员工评分的详情与选项
  642. Future<HttpResult<JobListRemarkViewEntity>> fetchAppliedStaffReviewView(
  643. String? appliedId, {
  644. CancelToken? cancelToken,
  645. }) async {
  646. //参数
  647. Map<String, String> params = {};
  648. if (!Utils.isEmpty(appliedId)) {
  649. params["applied_id"] = appliedId!;
  650. }
  651. final result = await httpProvider.requestNetResult(
  652. ApiConstants.apiERAppliedStaffReviewIndexTH,
  653. isShowLoadingDialog: true,
  654. params: params,
  655. cancelToken: cancelToken,
  656. );
  657. if (result.isSuccess) {
  658. final json = result.getDataJson();
  659. var data = JobListRemarkViewEntity.fromJson(json!);
  660. return result.convert<JobListRemarkViewEntity>(data: data);
  661. }
  662. return result.convert();
  663. }
  664. /// 单独给单个员工评分的提交
  665. Future<HttpResult> remarkAppliedSingleStaffSubmit(
  666. String? appliedId,
  667. String? attitudeRate,
  668. String? groomingRate,
  669. String? performanceRate,
  670. String? experienceRate,
  671. String? content, {
  672. CancelToken? cancelToken,
  673. }) async {
  674. //参数
  675. Map<String, dynamic> params = {};
  676. if (!Utils.isEmpty(appliedId)) {
  677. params["applied_id"] = appliedId!;
  678. }
  679. if (!Utils.isEmpty(attitudeRate)) {
  680. params["attitude_rate"] = (double.parse(attitudeRate!)).toInt();
  681. }
  682. if (!Utils.isEmpty(groomingRate)) {
  683. params["grooming_rate"] = (double.parse(groomingRate!)).toInt();
  684. }
  685. if (!Utils.isEmpty(performanceRate)) {
  686. params["performance_rate"] = (double.parse(performanceRate!)).toInt();
  687. }
  688. if (!Utils.isEmpty(experienceRate)) {
  689. params["experience_rate"] = (double.parse(experienceRate!)).toInt();
  690. }
  691. if (!Utils.isEmpty(content)) {
  692. params["feedback"] = content!;
  693. }
  694. final result = await httpProvider.requestNetResult(
  695. ApiConstants.apiERAppliedStaffReviewSubmitTH,
  696. isShowLoadingDialog: true,
  697. method: HttpMethod.POST,
  698. params: params,
  699. cancelToken: cancelToken,
  700. );
  701. if (result.isSuccess) {
  702. return result.convert();
  703. }
  704. return result.convert();
  705. }
  706. // 员工状态的工作流
  707. Future<HttpResult<JobListAppliedWorkFlowEntity>> fetchAppliedWorkFlow(
  708. String? appliedId, {
  709. CancelToken? cancelToken,
  710. }) async {
  711. //参数
  712. Map<String, String> params = {};
  713. if (!Utils.isEmpty(appliedId)) {
  714. params["applied_id"] = appliedId!;
  715. }
  716. final result = await httpProvider.requestNetResult(
  717. ApiConstants.apiERAppliedStaffStateWorkflowTH,
  718. params: params,
  719. cancelToken: cancelToken,
  720. );
  721. //根据返回的结果,封装原始数据为Bean/Entity对象
  722. if (result.isSuccess) {
  723. //重新赋值data或list
  724. final json = result.getDataJson();
  725. var data = JobListAppliedWorkFlowEntity.fromJson(json!);
  726. //重新赋值data或list
  727. return result.convert<JobListAppliedWorkFlowEntity>(data: data);
  728. }
  729. return result.convert();
  730. }
  731. }