From b141161014deab6c603f799a41f74e896c503f0a Mon Sep 17 00:00:00 2001
From: tjx <t2856754968@163.com>
Date: 星期三, 26 十一月 2025 16:11:52 +0800
Subject: [PATCH] 新增企业微信的接口

---
 src/test/java/com/gs/xky/XkyApplicationTests.java |  159 +++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 119 insertions(+), 40 deletions(-)

diff --git a/src/test/java/com/gs/xky/XkyApplicationTests.java b/src/test/java/com/gs/xky/XkyApplicationTests.java
index a127cb1..40c332e 100644
--- a/src/test/java/com/gs/xky/XkyApplicationTests.java
+++ b/src/test/java/com/gs/xky/XkyApplicationTests.java
@@ -1,59 +1,138 @@
 package com.gs.xky;
 
-import com.alibaba.fastjson.JSON;
-import com.gs.xky.config.*;
-import com.gs.xky.dto.XkyEntity;
-import com.gs.xky.service.ApiService;
+import com.gs.xky.service.VwCjScSjTsBbService;
+import com.gs.xky.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.util.List;
 
 @SpringBootTest
 class XkyApplicationTests {
 
 
     @Autowired
-    private ApiService apiService;
+    private VwCjScSjTsBbService vwCjScSjTsBbService;
 
+    @Autowired
+    private WorkWXService workWXService;
+
+    /**
+     * 娴嬭瘯瀵煎嚭鐢熶骇鏁版嵁骞跺彂閫侀拤閽夋秷鎭�
+     * 鍔熻兘锛氭煡璇W_CJ_SC_SJ_TS_BB琛ㄦ暟鎹� -> 瀵煎嚭Excel -> 鍙戦�侀拤閽夋枃浠舵秷鎭�
+     */
     @Test
-    void contextLoads() throws IOException {
+    void testExportAndSendProductionData() throws Exception {
+        System.out.println("=== 寮�濮嬫祴璇曞鍑虹敓浜ф暟鎹苟鍙戦�侀拤閽� ===");
 
-        long currentTimeMillis = System.currentTimeMillis();
+//        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();
+//        }
 
-        ApiCommonParam apiParam = new ApiCommonParam();
-        apiParam.setAppKey(DataAcquisitionConfiguration.TEST_APP_KEY);//鍙戞惡瀹簯鎻愪緵鐨刟ppKey
-        apiParam.setVersion("1.0");//鎺ュ彛鐗堟湰
-        apiParam.setOperateCompanyCode(DataAcquisitionConfiguration.TEST_COMPANY_CODE);//鎿嶄綔鑰呮墍灞炲叕鍙哥紪鐮�
-        apiParam.setOwnerCompanyCode(DataAcquisitionConfiguration.TEST_COMPANY_CODE);//鏁版嵁鎵�灞炲叕鍙哥紪鐮�,闈為泦鍥㈠叕鍙搁粯璁よ祴鍊间负鎿嶄綔鍏徃
-        apiParam.setTimestamps(currentTimeMillis / 1000);//褰撳墠鏃堕棿瀵瑰簲鐨勬椂闂存埑锛堢鏁帮級
-
-        String appSecret = DataAcquisitionConfiguration.TEST_APP_SECRET;//鎼哄浜戞彁渚涚殑appSecret
-
-        String sign = SignUtils.buildCurrentSign(JSON.toJSONString(apiParam), appSecret);
-        apiParam.setSign(sign);
-
-
-        // 璁$畻浜斿垎閽熷墠鐨勬椂闂存埑
-        long startDate = currentTimeMillis - (65 * 60 * 1000); // 5 鍒嗛挓 = 5 * 60 * 1000 姣
-
-        // 鍒涘缓 BodyParam 瀵硅薄骞惰祴鍊�
-        BodyParam bodyParam = new BodyParam();
-        bodyParam.setStartDate(startDate);
-        bodyParam.setEndDate(currentTimeMillis);
-        bodyParam.setErpCode("Z106");
-        bodyParam.setStatus(new int[]{1});
-        bodyParam.setLogisticsStatus(2);
-
-        XkyCommonParam param = new XkyCommonParam();
-        param.setCommonParam(apiParam);
-        param.setBody(bodyParam);
-
-
-        ApiResponse<XkyEntity> xkyEntityApiResponse = apiService.sendListRequest(param, XkyEntity.class, "https://openapi.xiekeyun.com/delivery/getNoList.json");
-
-        System.out.println(JSON.toJSONString(xkyEntityApiResponse));
+        System.out.println("=== 娴嬭瘯缁撴潫 ===");
     }
 
-}
+    @Test
+    void testGetCheckinDataByQwStaff() {
+        System.out.println("=== 寮�濮嬫祴璇曢�氳繃QW_STAFF琛ㄨ幏鍙栨墦鍗℃暟鎹� ===");
+
+        try {
+            long currentTime = System.currentTimeMillis() / 1000;
+            long oneDaySeconds = 86400;
+
+            long endTime = (currentTime / oneDaySeconds) * oneDaySeconds - 1;
+            long startTime = endTime - oneDaySeconds + 1;
+
+            System.out.println("  - 寮�濮嬫椂闂�: " + new java.util.Date(startTime * 1000));
+            System.out.println("  - 缁撴潫鏃堕棿: " + new java.util.Date(endTime * 1000));
+
+            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 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 testGetUserDetail() {
+        System.out.println("=== 寮�濮嬫祴璇曡幏鍙栫敤鎴疯鎯� ===");
+
+        try {
+            String userid = "ShenJuanYue";
+            WorkWXService.WorkWXUserDetail userDetail = workWXService.getUserDetail(userid);
+
+            if (userDetail != null && userDetail.getErrcode() == 0) {
+                System.out.println("鉁� 鎴愬姛鑾峰彇鐢ㄦ埛璇︽儏");
+                System.out.println("  - userid: " + userDetail.getUserid());
+                System.out.println("  - 濮撳悕: " + userDetail.getName());
+                System.out.println("  - 鎵嬫満鍙�: " + userDetail.getMobile());
+                System.out.println("  - 鑱屼綅: " + userDetail.getPosition());
+            } else {
+                System.out.println("鉁� 鑾峰彇鐢ㄦ埛璇︽儏澶辫触");
+            }
+        } catch (IOException e) {
+            System.out.println("鉁� 鑾峰彇鐢ㄦ埛璇︽儏澶辫触: " + e.getMessage());
+            e.printStackTrace();
+        }
+
+        System.out.println("=== 娴嬭瘯缁撴潫 ===");
+    }
+}
\ No newline at end of file

--
Gitblit v1.9.3