From 9d0ce1368fc71660a8b9873af8f275e7689b7394 Mon Sep 17 00:00:00 2001
From: tjx <t2856754968@163.com>
Date: 星期五, 19 十二月 2025 16:14:53 +0800
Subject: [PATCH] 111
---
src/test/java/com/gs/dingtalk/DeviceReceivingApplicationTests.java | 26 ++++++++++++++++++++++++++
src/main/java/com/gs/dingtalk/service/WorkWXService.java | 18 ++++++++----------
2 files changed, 34 insertions(+), 10 deletions(-)
diff --git a/src/main/java/com/gs/dingtalk/service/WorkWXService.java b/src/main/java/com/gs/dingtalk/service/WorkWXService.java
index 35f4758..493ed70 100644
--- a/src/main/java/com/gs/dingtalk/service/WorkWXService.java
+++ b/src/main/java/com/gs/dingtalk/service/WorkWXService.java
@@ -226,22 +226,20 @@
continue;
}
- QwStaff existingStaff = qwStaffMapper.selectOne(
+ qwStaffMapper.delete(
new LambdaQueryWrapper<QwStaff>().eq(QwStaff::getAccount, user.getUserid())
);
- if (existingStaff == null) {
- QwStaff qwStaff = new QwStaff();
- qwStaff.setName(user.getName());
- qwStaff.setAccount(user.getUserid());
- qwStaff.setDept(user.getDepartment() != null ? user.getDepartment().toString() : null);
+ QwStaff qwStaff = new QwStaff();
+ qwStaff.setName(user.getName());
+ qwStaff.setAccount(user.getUserid());
+ qwStaff.setDept(user.getDepartment() != null ? user.getDepartment().toString() : null);
- qwStaffMapper.insert(qwStaff);
- insertCount++;
- }
+ qwStaffMapper.insert(qwStaff);
+ insertCount++;
}
- log.info("鍚屾鐢ㄦ埛鍒癚W_STAFF琛ㄥ畬鎴愶紝鏂板鐢ㄦ埛鏁�: {}", insertCount);
+ log.info("鍚屾鐢ㄦ埛鍒癚W_STAFF琛ㄥ畬鎴愶紝鍚屾鐢ㄦ埛鏁�: {}", insertCount);
return insertCount;
}
diff --git a/src/test/java/com/gs/dingtalk/DeviceReceivingApplicationTests.java b/src/test/java/com/gs/dingtalk/DeviceReceivingApplicationTests.java
index e2ab79c..20160be 100644
--- a/src/test/java/com/gs/dingtalk/DeviceReceivingApplicationTests.java
+++ b/src/test/java/com/gs/dingtalk/DeviceReceivingApplicationTests.java
@@ -62,15 +62,41 @@
void testGetCheckinDataByQwStaff() {
System.out.println("=== 寮�濮嬫祴璇曢�氳繃QW_STAFF琛ㄨ幏鍙栨墦鍗℃暟鎹� ===");
+ // 浼佷笟寰俊鎵撳崱鎺ュ彛闄愬埗锛�
+ // 1. 鑾峰彇璁板綍鏃堕棿璺ㄥ害涓嶈秴杩�30澶�
+ // 2. 鐢ㄦ埛鍒楄〃涓嶈秴杩�100涓�傝嫢鐢ㄦ埛瓒呰繃100涓紝璇峰垎鎵硅幏鍙栵紙宸插湪Service灞傚疄鐜拌嚜鍔ㄥ垎鎵癸級
+ // 3. 鎺ュ彛杩斿洖鏈�澶�3000鏉℃墦鍗℃暟鎹�
+ // 4. 鏍囧噯鎵撳崱鏃堕棿鍙浜庡浐瀹氭帓鐝拰鑷畾涔夋帓鐝袱绉嶇被鍨嬫湁鏁�
+ // 5. 鎺ュ彛璋冪敤棰戠巼闄愬埗涓�600娆�/鍒嗛挓锛堝凡鍦⊿ervice灞傚疄鐜版壒娆¢棿寤惰繜锛�
+
try {
long currentTime = System.currentTimeMillis() / 1000;
long oneDaySeconds = 86400;
+ long thirtyDaysSeconds = 30 * oneDaySeconds;
long endTime = (currentTime / oneDaySeconds) * oneDaySeconds - 1;
long startTime = endTime - oneDaySeconds + 1;
+ // 楠岃瘉鏃堕棿璺ㄥ害涓嶈秴杩�30澶�
+ long timeSpan = endTime - startTime;
+ if (timeSpan > thirtyDaysSeconds) {
+ System.out.println("鉁� 鏃堕棿璺ㄥ害瓒呰繃30澶╅檺鍒�: " + (timeSpan / oneDaySeconds) + "澶�");
+ return;
+ }
+
System.out.println(" - 寮�濮嬫椂闂�: " + new java.util.Date(startTime * 1000));
System.out.println(" - 缁撴潫鏃堕棿: " + new java.util.Date(endTime * 1000));
+ System.out.println(" - 鏃堕棿璺ㄥ害: " + (timeSpan / oneDaySeconds) + "澶� (闄愬埗: 鈮�30澶�)");
+
+ // 鑾峰彇鐢ㄦ埛鎬绘暟
+ long totalUsers = qwStaffMapper.selectCount(new LambdaQueryWrapper<QwStaff>()
+ .isNotNull(QwStaff::getAccount)
+ .ne(QwStaff::getAccount, ""));
+ System.out.println(" - QW_STAFF琛ㄧ敤鎴锋�绘暟: " + totalUsers);
+ if (totalUsers > 100) {
+ int batchCount = (int) ((totalUsers + 99) / 100);
+ System.out.println(" - 灏嗚嚜鍔ㄥ垎鎵瑰鐞�: " + batchCount + "鎵� (姣忔壒鈮�100鐢ㄦ埛)");
+ }
List<WorkWXService.CheckinData> checkinDataList = workWXService.getCheckinDataByQwStaff(startTime, endTime);
--
Gitblit v1.9.3