From 256acffffd45af74181fc96d7090cd42563c72ca Mon Sep 17 00:00:00 2001
From: tjx <t2856754968@163.com>
Date: 星期五, 19 十二月 2025 16:56:06 +0800
Subject: [PATCH] 111
---
src/test/java/com/gs/dingtalk/DeviceReceivingApplicationTests.java | 219 ++++++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 193 insertions(+), 26 deletions(-)
diff --git a/src/test/java/com/gs/dingtalk/DeviceReceivingApplicationTests.java b/src/test/java/com/gs/dingtalk/DeviceReceivingApplicationTests.java
index 8de1248..9a25bb6 100644
--- a/src/test/java/com/gs/dingtalk/DeviceReceivingApplicationTests.java
+++ b/src/test/java/com/gs/dingtalk/DeviceReceivingApplicationTests.java
@@ -1,63 +1,230 @@
package com.gs.dingtalk;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.gs.dingtalk.config.URLEncoder;
+import com.gs.dingtalk.entity.QwStaff;
+import com.gs.dingtalk.mapper.QwStaffMapper;
import com.gs.dingtalk.service.SendDingtalkService;
import com.gs.dingtalk.service.SimpleExample;
+import com.gs.dingtalk.service.VwCjScSjTsBbService;
+import com.gs.dingtalk.service.WorkWXService;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
+import java.io.IOException;
import java.math.BigDecimal;
import java.math.RoundingMode;
+import java.util.List;
@SpringBootTest
class DeviceReceivingApplicationTests {
@Autowired
- private SimpleExample simpleExample;
+ private VwCjScSjTsBbService vwCjScSjTsBbService;
@Autowired
- private SendDingtalkService sendDingtalkService;
+ private WorkWXService workWXService;
+ @Autowired
+ private QwStaffMapper qwStaffMapper;
+
+ /**
+ * 娴嬭瘯瀵煎嚭鐢熶骇鏁版嵁骞跺彂閫侀拤閽夋秷鎭�
+ * 鍔熻兘锛氭煡璇W_CJ_SC_SJ_TS_BB琛ㄦ暟鎹� -> 瀵煎嚭Excel -> 鍙戦�侀拤閽夋枃浠舵秷鎭�
+ */
@Test
- void contextLoads() {
- //FFFFFFFE
- long decimal = Long.parseLong("FFFFFFFE", 16); // 灏�16杩涘埗瀛楃涓茶浆鎹负long绫诲瀷鐨�10杩涘埗鏁�
- BigDecimal a = new BigDecimal(String.valueOf((int) decimal));
- BigDecimal b = new BigDecimal("1000");
- BigDecimal c = a.divide(b, 3, RoundingMode.HALF_UP);
- System.out.println(c);
+ void testExportAndSendProductionData() throws Exception {
+ System.out.println("=== 寮�濮嬫祴璇曞鍑虹敓浜ф暟鎹苟鍙戦�侀拤閽� ===");
+
+ try {
+ boolean result = vwCjScSjTsBbService.exportAndSendToDingtalk();
+
+ if (result) {
+ System.out.println("鉁� 鐢熶骇鏁版嵁瀵煎嚭骞跺彂閫佹垚鍔�");
+ System.out.println(" - 鏁版嵁宸蹭粠 VW_CJ_SC_SJ_TS_BB 琛ㄦ煡璇�");
+ System.out.println(" - Excel 鏂囦欢宸茬敓鎴愬苟淇濆瓨鍒� D:\\BIFile\\");
+ System.out.println(" - 閽夐拤鏂囦欢娑堟伅宸插彂閫�");
+ } else {
+ System.out.println("鉁� 鐢熶骇鏁版嵁瀵煎嚭鎴栧彂閫佸け璐�");
+ }
+ } catch (Exception e) {
+ System.out.println("鉁� 瀵煎嚭骞跺彂閫佹椂鍙戠敓寮傚父: " + e.getMessage());
+ e.printStackTrace();
+ }
+
+ System.out.println("=== 娴嬭瘯缁撴潫 ===");
}
@Test
- void cont() {
-// long resultCode = Long.parseLong("00000001");
-// int result = (int) resultCode;
-// System.out.println(result);
+ void testGetCheckinDataByQwStaff() {
+ System.out.println("=== 寮�濮嬫祴璇曢�氳繃QW_STAFF琛ㄨ幏鍙栨墦鍗℃暟鎹� ===");
- String encode = URLEncoder.encode("");
- System.out.println(encode);
+ // 浼佷笟寰俊鎵撳崱鎺ュ彛闄愬埗锛�
+ // 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);
+
+ if (checkinDataList != null && !checkinDataList.isEmpty()) {
+ System.out.println("鉁� 鎴愬姛鑾峰彇鎵撳崱鏁版嵁");
+ System.out.println(" - 鎵撳崱璁板綍鎬绘暟: " + checkinDataList.size());
+ System.out.println(" - 鍓�5鏉℃暟鎹�:");
+ checkinDataList.stream().limit(5).forEach(data -> {
+ System.out.println(" * userid: " + data.getUserid() +
+ ", 鎵撳崱鏃堕棿: " + new java.util.Date(data.getCheckinTime() * 1000) +
+ ", 鎵撳崱绫诲瀷: " + data.getCheckinType() +
+ ", 寮傚父绫诲瀷: " + data.getExceptionType() +
+ ", 鍦扮偣: " + data.getLocationDetail());
+ });
+ } else {
+ System.out.println("鉁� 鑾峰彇鐨勬墦鍗℃暟鎹负绌猴紙鍙兘QW_STAFF琛ㄦ棤鏁版嵁鎴栨椂闂磋寖鍥村唴鏃犳墦鍗¤褰曪級");
+ }
+ } catch (IOException e) {
+ System.out.println("鉁� 鑾峰彇鎵撳崱鏁版嵁澶辫触: " + e.getMessage());
+ e.printStackTrace();
+ }
+
+ System.out.println("=== 娴嬭瘯缁撴潫 ===");
}
@Test
- void getPhone() throws Exception {
- sendDingtalkService.getDingTalkUserId();
+ void testGetCheckinDataById() {
+ System.out.println("=== 寮�濮嬫祴璇曢�氳繃QW_STAFF琛ㄨ幏鍙栨墦鍗℃暟鎹� ===");
+ QwStaff qwStaff = qwStaffMapper.selectById(3);
+
+ if (qwStaff == null || qwStaff.getAccount() == null || qwStaff.getAccount().isEmpty()) {
+ System.out.println("鉁� 鏈壘鍒癐D涓�3鐨勫憳宸ユ垨鍛樺伐account涓虹┖");
+ return;
+ }
+
+ System.out.println(" - 鍛樺伐濮撳悕: " + qwStaff.getName());
+ System.out.println(" - 鍛樺伐璐﹀彿: " + qwStaff.getAccount());
+
+ try {
+ long currentTime = System.currentTimeMillis() / 1000;
+ long oneDaySeconds = 86400;
+ long thirtyDaysSeconds = 30 * oneDaySeconds;
+
+ // 鏄ㄥぉ缁撴潫鏃堕棿锛�23:59:59锛�
+ long yesterdayEnd = ((currentTime / oneDaySeconds) - 1) * oneDaySeconds + oneDaySeconds - 1;
+ // 20澶╁墠寮�濮嬫椂闂达紙00:00:00锛�
+ long twentyDaysAgoStart = yesterdayEnd - 20 * oneDaySeconds + 1;
+
+ long endTime = yesterdayEnd;
+ long startTime = twentyDaysAgoStart;
+
+ // 楠岃瘉鏃堕棿璺ㄥ害涓嶈秴杩�30澶�
+ long timeSpan = endTime - startTime;
+ if (timeSpan > thirtyDaysSeconds) {
+ System.out.println("鉁� 鏃堕棿璺ㄥ害瓒呰繃30澶╅檺鍒�: " + (timeSpan / oneDaySeconds) + "澶�");
+ return;
+ }
+
+ System.out.println(" - 寮�濮嬫椂闂�: " + new java.util.Date(startTime * 1000) + " (20澶╁墠)");
+ System.out.println(" - 缁撴潫鏃堕棿: " + new java.util.Date(endTime * 1000) + " (鏄ㄥぉ)");
+ System.out.println(" - 鏃堕棿璺ㄥ害: " + (timeSpan / oneDaySeconds) + "澶�");
+
+ List<String> useridList = new java.util.ArrayList<>();
+ useridList.add(qwStaff.getAccount());
+
+ List<WorkWXService.CheckinData> checkinDataList = workWXService.getCheckinData(startTime, endTime, useridList);
+
+ if (checkinDataList != null && !checkinDataList.isEmpty()) {
+ System.out.println("鉁� 鎴愬姛鑾峰彇鎵撳崱鏁版嵁");
+ System.out.println(" - 鎵撳崱璁板綍鎬绘暟: " + checkinDataList.size());
+ checkinDataList.forEach(data -> {
+ System.out.println(" * 鎵撳崱鏃堕棿: " + new java.util.Date(data.getCheckinTime() * 1000) +
+ ", 鎵撳崱绫诲瀷: " + data.getCheckinType() +
+ ", 寮傚父绫诲瀷: " + data.getExceptionType() +
+ ", 鍦扮偣: " + data.getLocationDetail());
+ });
+ } else {
+ System.out.println("鉁� 璇ュ憳宸ュ湪鏃堕棿鑼冨洿鍐呮棤鎵撳崱璁板綍");
+ }
+ } catch (IOException e) {
+ System.out.println("鉁� 鑾峰彇鎵撳崱鏁版嵁澶辫触: " + e.getMessage());
+ e.printStackTrace();
+ }
+
+ System.out.println("=== 娴嬭瘯缁撴潫 ===");
}
@Test
- void sendDingTalk() throws Exception {
- sendDingtalkService.sendDingTalkFiveMinute();
+ void testGetWorkWXUserList() {
+ System.out.println("=== 寮�濮嬫祴璇曡幏鍙栦紒涓氬井淇$敤鎴峰垪琛� ===");
+
+ try {
+ List<WorkWXService.WorkWXUser> userList = workWXService.getUserList();
+
+ if (userList != null && !userList.isEmpty()) {
+ System.out.println("鉁� 鎴愬姛鑾峰彇浼佷笟寰俊鐢ㄦ埛鍒楄〃");
+ System.out.println(" - 鐢ㄦ埛鎬绘暟: " + userList.size());
+ System.out.println(" - 鍓�10鏉℃暟鎹�:");
+ userList.stream().limit(10).forEach(user -> {
+ System.out.println(" * userid: " + user.getUserid() +
+ ", 濮撳悕: " + user.getName() +
+ ", 閮ㄩ棬: " + user.getDepartment());
+ });
+ } else {
+ System.out.println("鉁� 鑾峰彇鐨勭敤鎴峰垪琛ㄤ负绌�");
+ }
+ } catch (IOException e) {
+ System.out.println("鉁� 鑾峰彇鐢ㄦ埛鍒楄〃澶辫触: " + e.getMessage());
+ e.printStackTrace();
+ }
+
+ System.out.println("=== 娴嬭瘯缁撴潫 ===");
}
@Test
- void sendDingTalkthirtyMinute() throws Exception {
- sendDingtalkService.sendDingTalkthirtyMinute();
+ void testSyncUsersToQwStaff() {
+ System.out.println("=== 寮�濮嬫祴璇曞悓姝ヤ紒涓氬井淇$敤鎴峰埌QW_STAFF琛� ===");
+
+ try {
+ int insertCount = workWXService.syncUsersToQwStaff();
+
+ System.out.println("鉁� 鍚屾瀹屾垚");
+ System.out.println(" - 鏂板鐢ㄦ埛鏁�: " + insertCount);
+ } catch (IOException e) {
+ System.out.println("鉁� 鍚屾鐢ㄦ埛澶辫触: " + e.getMessage());
+ e.printStackTrace();
+ }
+
+ System.out.println("=== 娴嬭瘯缁撴潫 ===");
}
- //chatSendMessage
- @Test
- void chatSendMessage() throws Exception {
- sendDingtalkService.chatSendMessage();
- }
}
--
Gitblit v1.9.3