From ce7738b672326ccbb36aca1a90c60b184be707f7 Mon Sep 17 00:00:00 2001
From: tjx <t2856754968@163.com>
Date: 星期三, 24 十二月 2025 19:32:05 +0800
Subject: [PATCH] 11

---
 src/test/java/com/gs/dingtalk/DeviceReceivingApplicationTests.java |  103 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 103 insertions(+), 0 deletions(-)

diff --git a/src/test/java/com/gs/dingtalk/DeviceReceivingApplicationTests.java b/src/test/java/com/gs/dingtalk/DeviceReceivingApplicationTests.java
index 8e3997b..0a81436 100644
--- a/src/test/java/com/gs/dingtalk/DeviceReceivingApplicationTests.java
+++ b/src/test/java/com/gs/dingtalk/DeviceReceivingApplicationTests.java
@@ -10,6 +10,7 @@
 import com.gs.dingtalk.service.VwCjScSjTsBbService;
 import com.gs.dingtalk.service.WorkWXService;
 import com.gs.dingtalk.service.QwCheckinDayDataService;
+import com.gs.dingtalk.service.QwHardwareCheckinDataService;
 import org.junit.jupiter.api.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
@@ -37,6 +38,9 @@
 
     @Autowired
     private QwCheckinDayDataService qwCheckinDayDataService;
+
+    @Autowired
+    private QwHardwareCheckinDataService qwHardwareCheckinDataService;
 
     /**
      * 娴嬭瘯瀵煎嚭鐢熶骇鏁版嵁骞跺彂閫侀拤閽夋秷鎭�
@@ -422,4 +426,103 @@
         }
     }
 
+    /**
+     * 娴嬭瘯鑾峰彇璁惧鎵撳崱鏁版嵁
+     * 鎺ュ彛闄愬埗锛氭椂闂磋法搴︿笉瓒呰繃涓�涓湀锛岀敤鎴峰垪琛ㄤ笉瓒呰繃100涓�
+     */
+    @Test
+    void testGetHardwareCheckinData() {
+        System.out.println("=== 寮�濮嬫祴璇曡幏鍙栬澶囨墦鍗℃暟鎹� ===");
+
+        try {
+            long currentTime = System.currentTimeMillis() / 1000;
+            long oneDaySeconds = 86400;
+
+            // 鑾峰彇鏄ㄥぉ鐨勮澶囨墦鍗℃暟鎹�
+            long yesterdayStart = ((currentTime / oneDaySeconds) - 1) * oneDaySeconds;
+            long yesterdayEnd = yesterdayStart + oneDaySeconds - 1;
+
+            System.out.println("  - 寮�濮嬫椂闂�: " + new java.util.Date(yesterdayStart * 1000));
+            System.out.println("  - 缁撴潫鏃堕棿: " + new java.util.Date(yesterdayEnd * 1000));
+
+            // 鑾峰彇鐢ㄦ埛鎬绘暟
+            long totalUsers = qwStaffMapper.selectCount(new LambdaQueryWrapper<QwStaff>()
+                    .isNotNull(QwStaff::getAccount)
+                    .ne(QwStaff::getAccount, ""));
+            System.out.println("  - QW_STAFF琛ㄧ敤鎴锋�绘暟: " + totalUsers);
+
+            List<WorkWXService.HardwareCheckinData> dataList = workWXService.getHardwareCheckinDataByQwStaff(yesterdayStart, yesterdayEnd);
+
+            if (dataList != null && !dataList.isEmpty()) {
+                System.out.println("鉁� 鎴愬姛鑾峰彇璁惧鎵撳崱鏁版嵁");
+                System.out.println("  - 璁惧鎵撳崱璁板綍鎬绘暟: " + dataList.size());
+                System.out.println("  - 鍓�10鏉℃暟鎹�:");
+                dataList.stream().limit(10).forEach(data -> {
+                    System.out.println("    * userid: " + data.getUserid() +
+                            ", 鎵撳崱鏃堕棿: " + new java.util.Date(data.getCheckinTime() * 1000) +
+                            ", 璁惧SN: " + data.getDeviceSn() +
+                            ", 璁惧鍚嶇О: " + data.getDeviceName());
+                });
+
+                // 淇濆瓨鍒版暟鎹簱
+                System.out.println("  - 寮�濮嬩繚瀛樿澶囨墦鍗℃暟鎹埌鏁版嵁搴�...");
+                int insertCount = qwHardwareCheckinDataService.saveHardwareDataBatch(dataList);
+                System.out.println("鉁� 淇濆瓨瀹屾垚锛屾柊澧炶褰曟暟: " + insertCount + ", 鏇存柊(宸插瓨鍦�): " + (dataList.size() - insertCount));
+            } else {
+                System.out.println("鉁� 鑾峰彇鐨勮澶囨墦鍗℃暟鎹负绌猴紙鍙兘鏃犺澶囨墦鍗¤褰曟垨鎺ュ彛鏈紑閫氾級");
+            }
+        } catch (IOException e) {
+            System.out.println("鉁� 鑾峰彇璁惧鎵撳崱鏁版嵁澶辫触: " + e.getMessage());
+            e.printStackTrace();
+        }
+
+        System.out.println("=== 娴嬭瘯缁撴潫 ===");
+    }
+
+    /**
+     * 娴嬭瘯鍚屾鏄ㄥぉ鐨勮澶囨墦鍗℃暟鎹�
+     */
+    @Test
+    void testSyncYesterdayHardwareData() {
+        System.out.println("=== 寮�濮嬫祴璇曞悓姝ユ槰澶╄澶囨墦鍗℃暟鎹� ===");
+
+        try {
+            int insertCount = qwHardwareCheckinDataService.syncYesterdayHardwareData();
+            System.out.println("鉁� 鍚屾瀹屾垚锛屾柊澧炶褰曟暟: " + insertCount);
+        } catch (IOException e) {
+            System.out.println("鉁� 鍚屾璁惧鎵撳崱鏁版嵁澶辫触: " + e.getMessage());
+            e.printStackTrace();
+        }
+
+        System.out.println("=== 娴嬭瘯缁撴潫 ===");
+    }
+
+    /**
+     * 娴嬭瘯鍚屾鎸囧畾鏃ユ湡鑼冨洿鐨勮澶囨墦鍗℃暟鎹�
+     */
+    @Test
+    void testSyncHardwareDataByDateRange() {
+        System.out.println("=== 寮�濮嬫祴璇曞悓姝ユ寚瀹氭棩鏈熻寖鍥寸殑璁惧鎵撳崱鏁版嵁 ===");
+
+        try {
+            long currentTime = System.currentTimeMillis() / 1000;
+            long oneDaySeconds = 86400;
+
+            // 鍚屾鏈�杩�7澶╃殑鏁版嵁
+            long endTime = ((currentTime / oneDaySeconds) - 1) * oneDaySeconds + oneDaySeconds - 1;  // 鏄ㄥぉ23:59:59
+            long startTime = endTime - 7 * oneDaySeconds + 1;  // 7澶╁墠00:00:00
+
+            System.out.println("  - 寮�濮嬫椂闂�: " + new java.util.Date(startTime * 1000));
+            System.out.println("  - 缁撴潫鏃堕棿: " + new java.util.Date(endTime * 1000));
+
+            int insertCount = qwHardwareCheckinDataService.syncHardwareData(startTime, endTime);
+            System.out.println("鉁� 鍚屾瀹屾垚锛屾柊澧炶褰曟暟: " + insertCount);
+        } catch (IOException e) {
+            System.out.println("鉁� 鍚屾璁惧鎵撳崱鏁版嵁澶辫触: " + e.getMessage());
+            e.printStackTrace();
+        }
+
+        System.out.println("=== 娴嬭瘯缁撴潫 ===");
+    }
+
 }

--
Gitblit v1.9.3