SFController.java 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. package com.malk.shangfeng.controller;
  2. /**
  3. * 错误抛出与拦截详见 CatchException
  4. */
  5. import com.malk.server.common.McR;
  6. import com.malk.service.dingtalk.DDClient;
  7. import com.malk.service.dingtalk.DDClient_Attendance;
  8. import com.malk.service.dingtalk.DDClient_Contacts;
  9. import com.malk.utils.UtilMap;
  10. import lombok.extern.slf4j.Slf4j;
  11. import org.springframework.beans.factory.annotation.Autowired;
  12. import org.springframework.web.bind.annotation.PostMapping;
  13. import org.springframework.web.bind.annotation.RequestMapping;
  14. import org.springframework.web.bind.annotation.RestController;
  15. import java.util.Arrays;
  16. import java.util.HashMap;
  17. import java.util.List;
  18. import java.util.Map;
  19. import java.util.stream.Collectors;
  20. @Slf4j
  21. @RestController
  22. @RequestMapping
  23. public class SFController {
  24. @Autowired
  25. private DDClient ddClient;
  26. @Autowired
  27. private DDClient_Attendance ddClient_attendance;
  28. @Autowired
  29. private DDClient_Contacts ddClient_contacts;
  30. @PostMapping("test")
  31. McR test() {
  32. List<String> columnNames = Arrays.asList("考勤结果", "下班1打卡结果", "下班1打卡时间", "旷工天数", "出勤天数", "休息天数", "工作时长", "考勤结果", "出差时长", "迟到次数", "早退次数", "下班缺卡次数", "上班缺卡次数", "外出时长", "休息日加班", "工作日加班", "节假日加班", "严重迟到次数", "应出勤天数");
  33. List<Map> columns = ddClient_attendance.getAttColumns(ddClient.getAccessToken());
  34. Map columnIds = new HashMap(); // 列id通过map提取, 月度汇总接口仅返回id, 存储映射关系
  35. List<String> leaveNames = columns.stream().filter(column -> {
  36. if (columnNames.contains(column.get("name"))) {
  37. columnIds.put(column.get("id"), column.get("name"));
  38. }
  39. return column.get("alias").equals("leave_");
  40. }
  41. ).map(column -> String.valueOf(column.get("name"))).collect(Collectors.toList());
  42. // ddClient_contacts.getDepartmentId_all(ddClient.getAccessToken(), true).forEach(deptId -> {
  43. //
  44. //
  45. // });
  46. String start = "2023-07-01 00:00:00";
  47. String end = "2023-07-22 23:59:59";
  48. String userId = "196230404821883307";
  49. Map userInfo = UtilMap.map("userId, userName", "196230404821883307", "吴迎梅");
  50. ddClient_attendance.getAttColumnVal(ddClient.getAccessToken(), userId, (List<String>) columnIds.keySet(), start, end).forEach(attendance -> {
  51. String columnId = ((Map) attendance.get("column_vo")).get("id").toString();
  52. userInfo.put(columnIds.get(columnId), "");
  53. });
  54. List<Map> leaveList = ddClient_attendance.getLeaveTimeByNames(ddClient.getAccessToken(), userId, leaveNames, start, end);
  55. // getLeaveTimeByNames
  56. // ddClient_attendance.getAttColumns(ddClient.getAccessToken());
  57. // getAttColumnVal
  58. return McR.success(columns);
  59. }
  60. }