소스 검색

锡鼎, 添加纷享销客考勤返回排序

pruple_boy 1 년 전
부모
커밋
e26706152e

+ 9 - 3
mjava-xiding/src/main/java/com/malk/xiding/controller/XDController.java

@@ -81,7 +81,7 @@ public class XDController {
         String Time = UtilDateTime.formatLocalDate(UtilDateTime.convertToLocalDateTimeFromDate(sTime).plusDays(1).toLocalDate()) + " 05:00:00";
 
         log.info("xxxx, {}, {}", sTime, Time);
-//        ddClient_attendance.listAttendanceRecord(ddClient.getAccessToken(), Arrays.asList("1007515542693640"), "2023-05-17 00:00:00", "2023-05-24 23:59:59");
+        ddClient_attendance.listAttendanceRecord(ddClient.getAccessToken(), Arrays.asList("181004250420083082"), "2023-06-27 00:00:00", "2023-06-28 03:59:59");
 
 //        return McR.success(ddClient_attendance.uploadAttendanceRecord(ddClient.getAccessToken(), "1111", "纷享销客同步", "纷享销客同步", null, new Date().getTime()));
 //        return McR.success(approveRecordDao2.findAllByEndTimeAfter(UtilDateTime.parseDateTime("2023-05-18 00:00:00"), PageRequest.of(0, 50)));
@@ -99,9 +99,15 @@ public class XDController {
 
     @PostMapping("test2")
     McR test2() {
-        Date eTime = UtilDateTime.parseDateTime("2023-05-31" + " 23:59:59");
-        Date sTime = UtilDateTime.parseDateTime("2023-05-04" + " 00:00:00");
+        Date sTime = UtilDateTime.parseDateTime("2023-06-27" + " 00:00:00");
+        Date eTime = UtilDateTime.parseDateTime("2023-06-27" + " 23:59:59");
         xdService.syncAttendance(0, sTime, eTime);
         return McR.success();
     }
+
+    @PostMapping("test5")
+    McR test5() {
+        ddClient_attendance.uploadAttendanceRecord(ddClient.getAccessToken(), "181004250420083082", "纷享销客同步", "纷享销客同步", null, 1687863141000L);
+        return McR.success();
+    }
 }

+ 3 - 2
mjava-xiding/src/main/java/com/malk/xiding/service/impl/XDImplService.java

@@ -179,7 +179,7 @@ public class XDImplService implements XDService {
         Page<XdDdApproveRecordPo> poPage = approveRecordDao2.findAllByEndTimeAfter(sTime, PageRequest.of(page, 40));
         // 全量同步
 //        Page<XdDdApproveRecordPo> poPage = approveRecordDao2.findAll(PageRequest.of(page, 40));
-//        Page<XdDdApproveRecordPo> poPage = approveRecordDao2.findAllByOpenUserId("FSUID_11F092EC8EEAB75C282DB45DBC325BB6", PageRequest.of(page, 40))
+//        Page<XdDdApproveRecordPo> poPage = approveRecordDao2.findAllByOpenUserId("FSUID_4ED8868EE972F63FBBB19318EEB36455", PageRequest.of(page, 40));
         if (poPage.isEmpty()) {
             return;
         }
@@ -188,7 +188,8 @@ public class XDImplService implements XDService {
         List<XdDdApproveRecordPo> poList = poPage.getContent().stream().filter(UtilMc.distinctByKey(XdDdApproveRecordPo::getOpenUserId)).collect(Collectors.toList());
         List<String> openUserIds = poList.stream().map(item -> item.getOpenUserId()).collect(Collectors.toList());
         List<Map> attendanceList = fxkClient.getAttendance_All(fxkClient.getAccessToken(), fxkConf.getCorpId(), sTime.getTime(), eTime.getTime(), openUserIds);
-        log.info("同步人员数量 = {}, 考勤数量 = {}", openUserIds.size());
+
+        log.info("同步人员数量 = {}, 考勤数量 = {}", openUserIds.size(), attendanceList.size());
         attendanceList.forEach(item -> {
             XdFxkDdAttendancePo attendancePo = JSON.parseObject(JSON.toJSONString(item), XdFxkDdAttendancePo.class);
             attendancePo.setIdDd(poList.stream().filter(row -> row.getOpenUserId().equals(attendancePo.getOpenUserId())).findAny().get().getUserId());

+ 1 - 1
mjava/src/main/java/com/malk/service/fxiaoke/FXKClient.java

@@ -35,7 +35,7 @@ public interface FXKClient {
     /**
      * 获取考勤_全部 [最大分页]
      * -
-     * [50人考勤记录部分接近1000]
+     * [50人考勤记录部分接近1000, 注意传入id去重]
      */
     List<Map> getAttendance_All(String accessToken, String corpId, long startTime, long endTime, List<String> openUserIds);
 }

+ 3 - 3
mjava/src/main/java/com/malk/service/fxiaoke/impl/FXKImplClient.java

@@ -13,9 +13,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Pageable;
 import org.springframework.stereotype.Service;
 
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 @Service
@@ -107,6 +105,8 @@ public class FXKImplClient implements FXKClient {
             item.put("outside", "外勤");
             return item;
         }).collect(Collectors.toList()));
+        // ppExt: 避免考勤覆盖, 参考钉钉上传 uploadAttendanceRecord 方法实现
+        Collections.sort(attendanceList, Comparator.comparingLong(o -> UtilMap.getLong(o, "checkTime")));
         return attendanceList;
     }
 }