| | |
| | | import com.gs.dingtalk.service.SimpleExample; |
| | | 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; |
| | |
| | | |
| | | @Autowired |
| | | private QwCheckinDataService qwCheckinDataService; |
| | | |
| | | @Autowired |
| | | private QwCheckinDayDataService qwCheckinDayDataService; |
| | | |
| | | @Autowired |
| | | private QwHardwareCheckinDataService qwHardwareCheckinDataService; |
| | | |
| | | /** |
| | | * 测试导出生产数据并发送钉钉消息 |
| | |
| | | }); |
| | | } |
| | | }); |
| | | |
| | | // 保存到数据库 |
| | | System.out.println(" - 开始保存打卡日报数据到数据库..."); |
| | | int insertCount = qwCheckinDayDataService.saveDayDataBatch(dayDataList); |
| | | System.out.println("✓ 保存完成,新增记录数: " + insertCount + ", 更新(已存在): " + (dayDataList.size() - insertCount)); |
| | | } else { |
| | | System.out.println("✗ 获取的打卡日报数据为空"); |
| | | } |
| | |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 测试获取设备打卡数据 |
| | | * 接口限制:时间跨度不超过一个月,用户列表不超过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("=== 测试结束 ==="); |
| | | } |
| | | |
| | | } |