package com.malk.shangfeng.controller; /** * 错误抛出与拦截详见 CatchException */ import com.malk.server.common.McR; import com.malk.service.dingtalk.DDClient; import com.malk.service.dingtalk.DDClient_Attendance; import com.malk.service.dingtalk.DDClient_Contacts; import com.malk.utils.UtilMap; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @Slf4j @RestController @RequestMapping public class SFController { @Autowired private DDClient ddClient; @Autowired private DDClient_Attendance ddClient_attendance; @Autowired private DDClient_Contacts ddClient_contacts; @PostMapping("test") McR test() { List columnNames = Arrays.asList("考勤结果", "下班1打卡结果", "下班1打卡时间", "旷工天数", "出勤天数", "休息天数", "工作时长", "考勤结果", "出差时长", "迟到次数", "早退次数", "下班缺卡次数", "上班缺卡次数", "外出时长", "休息日加班", "工作日加班", "节假日加班", "严重迟到次数", "应出勤天数"); List columns = ddClient_attendance.getAttColumns(ddClient.getAccessToken()); Map columnIds = new HashMap(); // 列id通过map提取, 月度汇总接口仅返回id, 存储映射关系 List leaveNames = columns.stream().filter(column -> { if (columnNames.contains(column.get("name"))) { columnIds.put(column.get("id"), column.get("name")); } return column.get("alias").equals("leave_"); } ).map(column -> String.valueOf(column.get("name"))).collect(Collectors.toList()); // ddClient_contacts.getDepartmentId_all(ddClient.getAccessToken(), true).forEach(deptId -> { // // // }); String start = "2023-07-01 00:00:00"; String end = "2023-07-22 23:59:59"; String userId = "196230404821883307"; Map userInfo = UtilMap.map("userId, userName", "196230404821883307", "吴迎梅"); ddClient_attendance.getAttColumnVal(ddClient.getAccessToken(), userId, (List) columnIds.keySet(), start, end).forEach(attendance -> { String columnId = ((Map) attendance.get("column_vo")).get("id").toString(); userInfo.put(columnIds.get(columnId), ""); }); List leaveList = ddClient_attendance.getLeaveTimeByNames(ddClient.getAccessToken(), userId, leaveNames, start, end); // getLeaveTimeByNames // ddClient_attendance.getAttColumns(ddClient.getAccessToken()); // getAttColumnVal return McR.success(columns); } }