From f84ad7db2a9eb863404be1da330178df6c2b7fb9 Mon Sep 17 00:00:00 2001
From: Administrator <2856754968@qq.com>
Date: 星期三, 26 十一月 2025 10:53:23 +0800
Subject: [PATCH] 增加企业微信的实体

---
 src/test/java/com/gs/xky/XkyApplicationTests.java |  308 ++++++++++++++++++++++----------------------------
 1 files changed, 135 insertions(+), 173 deletions(-)

diff --git a/src/test/java/com/gs/xky/XkyApplicationTests.java b/src/test/java/com/gs/xky/XkyApplicationTests.java
index 4571852..46b1b93 100644
--- a/src/test/java/com/gs/xky/XkyApplicationTests.java
+++ b/src/test/java/com/gs/xky/XkyApplicationTests.java
@@ -1,217 +1,179 @@
 package com.gs.xky;
 
-import com.alibaba.fastjson.JSON;
-import com.gs.xky.config.*;
-import com.gs.xky.dto.BarcodeDeliveryNo;
-import com.gs.xky.dto.EmployeeInfo;
-import com.gs.xky.dto.XkyDetail;
-import com.gs.xky.dto.XkyEntity;
-import com.gs.xky.entity.MesInvItemArn;
-import com.gs.xky.service.*;
+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.ArrayList;
 import java.util.List;
-import java.util.stream.Collectors;
 
 @SpringBootTest
 class XkyApplicationTests {
 
 
     @Autowired
-    private XkyService xkyService;
+    private VwCjScSjTsBbService vwCjScSjTsBbService;
 
     @Autowired
-    private ApiService apiService;
+    private WorkWXService workWXService;
 
-    @Autowired
-    private MesStaffService staffService;
-
-    @Autowired
-    private DeliveryNoticeService deliveryNoticeService;
-
-    @Autowired
-    private TblBarcodeInformationService barcodeInformationService;
-
-    @Autowired
-    private MesInvItemArnService invItemArnService;
-    @Autowired
-    private PurchaseService service;
-    @Autowired
-    private DingtalkInfoService dingtalkInfoService;
-
+    /**
+     * 娴嬭瘯瀵煎嚭鐢熶骇鏁版嵁骞跺彂閫侀拤閽夋秷鎭�
+     * 鍔熻兘锛氭煡璇W_CJ_SC_SJ_TS_BB琛ㄦ暟鎹� -> 瀵煎嚭Excel -> 鍙戦�侀拤閽夋枃浠舵秷鎭�
+     */
     @Test
-    void contextLoads() throws IOException {
+    void testExportAndSendProductionData() throws Exception {
+        System.out.println("=== 寮�濮嬫祴璇曞鍑虹敓浜ф暟鎹苟鍙戦�侀拤閽� ===");
 
-        List<MesInvItemArn> itemArnMinus = invItemArnService.getItemArnMinus();
-
-        deliveryNoticeService.processMesInvItemArnStatusAsync(itemArnMinus);
-
-    }
-
-    @Test
-    public void getDeviceRealTimeData() throws IOException {
-        xkyService.GetSaveDetail();
-    }
-
-    @Test
-    void cs() throws IOException {
-
-        String str = "22250702H88F;";
-
-
-        String[] split = str.split(";");
-
-        for (String s : split) {
-            XkyCommonParam param = XkyCommonParam.GetInit();
-
-            // 鍒涘缓 BodyParam 瀵硅薄骞惰祴鍊�
-            BodyParam bodyParam = new BodyParam();
-
-            bodyParam.setErpCode(DataAcquisitionConfiguration.TEST_ERP_CODE);
-            bodyParam.setDeliveryNo(s);
-
-            param.setBody(bodyParam);
-
-            ApiResponse<XkyDetail> detail = apiService.sendListRequest(param, XkyDetail.class, "https://openapi.xiekeyun.com/delivery/getDetail.json");
-
-            XkyDetail deliveryNo = detail.getData();
-
-            if (deliveryNo == null) {
-                System.out.println("涓虹┖鐨勯�佽揣鍗曞彿" + s);
-                return;
-            }
-
-            if ("6".equals(deliveryNo.getStatus()) || "0".equals(deliveryNo.getLogisticsStatus())) {
-                XkyEntity xkyEntity = new XkyEntity();
-                xkyEntity.setDeliveryNo(deliveryNo.getDeliveryNo());
-                xkyService.remove1(xkyEntity);
-            } else if ("1".equals(deliveryNo.getStatus()) && ("2".equals(deliveryNo.getLogisticsStatus()) || "1".equals(deliveryNo.getLogisticsStatus()))) {
-                XkyDetail detail1 = deliveryNo;
-                deliveryNoticeService.saveDeliveryNotice(detail1);
-                List<BarcodeDeliveryNo> barcodeDeliveryNos = GetBarcodeInformation(deliveryNo.getDeliveryNo());
-                barcodeInformationService.SaveBarcodeInformation(barcodeDeliveryNos, deliveryNo.getDeliveryNo());
-                if ("2".equals(deliveryNo.getLogisticsStatus())) {
-                    deliveryNoticeService.callPdaReceiptBtn("閫佽揣鍗曠鏀禰BTNOK[PL017[" + deliveryNo.getDeliveryNo(), "");
-                }
-            }
-        }
-    }
-
-    private List<BarcodeDeliveryNo> GetBarcodeInformation(String deliveryNo) throws IOException {
-        XkyCommonParam param = XkyCommonParam.GetInit();
-
-        // 鍒涘缓 BodyParam 瀵硅薄骞惰祴鍊�
-        BodyParam bodyParam = new BodyParam();
-
-        bodyParam.setErpCode(DataAcquisitionConfiguration.TEST_ERP_CODE);
-        bodyParam.setDeliveryNo(deliveryNo);
-
-        param.setBody(bodyParam);
-
-
-        ApiResponse<BarcodeDeliveryNo> noList = apiService.sendListRequest(param, BarcodeDeliveryNo.class, "https://openapi.xiekeyun.com/barcode/byDeliveryNo.json");
-
-        return noList.getDataList();
-    }
-
-    @Test
-    void cs1() throws IOException {
-//        DingTalkParam dingTalkParam = new DingTalkParam(0);
+//        try {
+//            boolean result = vwCjScSjTsBbService.exportAndSendToDingtalk();
 //
-//        DingTalkResponse<EmployeeInfo> employeeInfoDingTalkResponse = apiService.sendListRequest(dingTalkParam, EmployeeInfo.class, "http://192.168.1.64/eHR/eHRExternalService/Service.ashx");
-//
-//        //閫犳ⅵ鑰咃紙娴欐睙锛夌鎶�鏈夐檺鍏徃 cUnitName
-//        //http://192.168.1.64/eHR
-//        List<EmployeeInfo> collect = employeeInfoDingTalkResponse.getData().stream().filter(s -> "閫犳ⅵ鑰咃紙娴欐睙锛夌鎶�鏈夐檺鍏徃".equals(s.getCUnitName())).collect(Collectors.toList());
-//        System.out.println(collect.size());
-//
-//        List<List<EmployeeInfo>> partition = ListUtil.partition(collect, 500);
-//
-//        partition.forEach(list -> {
-//            staffService.SaveStaff(list);
-//        });
-        XkyCommonParam param = XkyCommonParam.GetInit();
-        String jsonString = JSON.toJSONString(param);
-        System.out.println(jsonString);
-    }
+//            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();
+//        }
 
-    @Test
-    void cs2() throws IOException {
-//        DingTalkParam dingTalkParam = new DingTalkParam(1);
-//
-//        DingTalkResponse<EmployeeInfo> employeeInfoDingTalkResponse = apiService.sendListRequest(dingTalkParam, EmployeeInfo.class, "http://192.168.1.64/eHR/eHRExternalService/Service.ashx");
-//
-//        //閫犳ⅵ鑰咃紙娴欐睙锛夌鎶�鏈夐檺鍏徃 cUnitName
-//        //http://192.168.1.64/eHR
-//        List<EmployeeInfo> collect = employeeInfoDingTalkResponse.getData().stream().filter(s -> "閫犳ⅵ鑰咃紙娴欐睙锛夌鎶�鏈夐檺鍏徃".equals(s.getCUnitName())).collect(Collectors.toList());
-//        System.out.println(collect.size());
-//
-//        List<List<EmployeeInfo>> partition = ListUtil.partition(collect, 100);
-//
-//        partition.forEach(list -> {
-//            staffService.UpdateStaff(list);
-//        });
-
-    }
-
-    @Test
-    void cs3() throws Exception {
-        DingTalkParam dingTalkParam = new DingTalkParam(1);
-        DingTalkResponse<EmployeeInfo> employeeInfoDingTalkResponse =
-                apiService.sendListRequest(dingTalkParam, EmployeeInfo.class,
-                        "http://192.168.1.64/eHR/eHRExternalService/Service.ashx");
-
-        List<EmployeeInfo> collect = employeeInfoDingTalkResponse.getData().stream()
-                .filter(s -> "閫犳ⅵ鑰咃紙娴欐睙锛夌鎶�鏈夐檺鍏徃".equals(s.getCUnitName()))
-                .collect(Collectors.toList());
-
+        System.out.println("=== 娴嬭瘯缁撴潫 ===");
     }
 
     /**
-     * 娴嬭瘯鍙戦�丄ctionCard娑堟伅锛堝湪澶栭儴娴忚鍣ㄤ腑鎵撳紑閾炬帴锛�
-     * 閫傜敤鍦烘櫙锛欱I鎶ヨ〃銆佸閮ㄧ郴缁熼摼鎺ョ瓑闇�瑕佸湪澶栭儴娴忚鍣ㄦ墦寮�鐨勫満鏅�
+     * 娴嬭瘯鑾峰彇浼佷笟寰俊access_token
+     * 鍔熻兘锛氳皟鐢ㄤ紒涓氬井淇PI鑾峰彇access_token
      */
     @Test
-    void testSendActionCardMessage() throws Exception {
-        System.out.println("=== 寮�濮嬫祴璇曞彂閫丄ctionCard娑堟伅 ===");
+    void testGetWorkWXAccessToken() {
+        System.out.println("=== 寮�濮嬫祴璇曡幏鍙栦紒涓氬井淇ccess_token ===");
 
-        boolean result = dingtalkInfoService.sendActionCardMessage();
+        try {
+            String accessToken = workWXService.getAccessToken();
 
-        if (result) {
-            System.out.println("鉁� ActionCard娑堟伅鍙戦�佹垚鍔�");
-        } else {
-            System.out.println("鉁� ActionCard娑堟伅鍙戦�佸け璐�");
+            if (accessToken != null && !accessToken.isEmpty()) {
+                System.out.println("鉁� 鎴愬姛鑾峰彇浼佷笟寰俊access_token");
+                System.out.println("  - access_token: " + accessToken);
+                System.out.println("  - token闀垮害: " + accessToken.length());
+            } else {
+                System.out.println("鉁� 鑾峰彇鐨刟ccess_token涓虹┖");
+            }
+        } catch (IOException e) {
+            System.out.println("鉁� 鑾峰彇access_token澶辫触: " + e.getMessage());
+            e.printStackTrace();
         }
 
         System.out.println("=== 娴嬭瘯缁撴潫 ===");
     }
 
     /**
-     * 娴嬭瘯鍙戦�佹枃浠舵秷鎭�
-     * 閫傜敤鍦烘櫙锛氬彂閫丒xcel鎶ヨ〃銆丳DF鏂囨。銆乄ord鏂囨。绛夊悇绫绘枃浠�
+     * 娴嬭瘯閫氳繃鎵嬫満鍙疯幏鍙杣serid
+     * 鍔熻兘锛氳皟鐢ㄤ紒涓氬井淇PI閫氳繃鎵嬫満鍙锋煡璇serid
      */
     @Test
-    void testSendFileMessage() throws Exception {
-        System.out.println("=== 寮�濮嬫祴璇曞彂閫佹枃浠舵秷鎭� ===");
-
-        // 鎸囧畾瑕佸彂閫佺殑鏂囦欢璺緞锛堣淇敼涓哄疄闄呭瓨鍦ㄧ殑鏂囦欢璺緞锛�
-        String filePath = "D:\\test\\report.xlsx";  // 绀轰緥锛欵xcel鎶ヨ〃鏂囦欢
-        // String filePath = "D:\\test\\document.pdf";  // 绀轰緥锛歅DF鏂囨。
-        // String filePath = "D:\\test\\data.docx";     // 绀轰緥锛歐ord鏂囨。
+    void testGetUserIdByMobile() {
+        System.out.println("=== 寮�濮嬫祴璇曢�氳繃鎵嬫満鍙疯幏鍙杣serid ===");
 
         try {
-            boolean result = dingtalkInfoService.sendFileMessage(filePath);
+            String mobile = "13335712023";
+            String userid = workWXService.getUserIdByMobile(mobile);
 
-            if (result) {
-                System.out.println("鉁� 鏂囦欢娑堟伅鍙戦�佹垚鍔�");
+            if (userid != null && !userid.isEmpty()) {
+                System.out.println("鉁� 鎴愬姛閫氳繃鎵嬫満鍙疯幏鍙杣serid");
+                System.out.println("  - 鎵嬫満鍙�: " + mobile);
+                System.out.println("  - userid: " + userid);
             } else {
-                System.out.println("鉁� 鏂囦欢娑堟伅鍙戦�佸け璐�");
+                System.out.println("鉁� 鑾峰彇鐨剈serid涓虹┖");
             }
-        } catch (Exception e) {
-            System.out.println("鉁� 鍙戦�佹枃浠舵椂鍙戠敓寮傚父: " + e.getMessage());
+        } catch (IOException e) {
+            System.out.println("鉁� 鑾峰彇userid澶辫触: " + e.getMessage());
+            e.printStackTrace();
+        }
+
+        System.out.println("=== 娴嬭瘯缁撴潫 ===");
+    }
+
+    /**
+     * 娴嬭瘯鑾峰彇浼佷笟寰俊鐢ㄦ埛鍒楄〃
+     * 鍔熻兘锛氳皟鐢ㄤ紒涓氬井淇PI鑾峰彇鎵�鏈夌敤鎴风殑userid鍜岄儴闂ㄤ俊鎭�
+     */
+    @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("  - 鍓�5鏉℃暟鎹�:");
+                userList.stream().limit(5).forEach(user -> {
+                    System.out.println("    * userid: " + user.getUserid() +
+                            ", name: " + user.getName() +
+                            ", department: " + user.getDepartment());
+                });
+            } else {
+                System.out.println("鉁� 鑾峰彇鐨勭敤鎴峰垪琛ㄤ负绌�");
+            }
+        } catch (IOException e) {
+            System.out.println("鉁� 鑾峰彇鐢ㄦ埛鍒楄〃澶辫触: " + e.getMessage());
+            e.printStackTrace();
+        }
+
+        System.out.println("=== 娴嬭瘯缁撴潫 ===");
+    }
+
+    /**
+     * 娴嬭瘯鑾峰彇浼佷笟寰俊鎵撳崱鏁版嵁
+     * 鍔熻兘锛氳幏鍙栨寚瀹氭椂闂磋寖鍥村唴鐨勫憳宸ユ墦鍗¤褰�
+     */
+    @Test
+    void testGetCheckinData() {
+        System.out.println("=== 寮�濮嬫祴璇曡幏鍙栦紒涓氬井淇℃墦鍗℃暟鎹� ===");
+
+        try {
+            List<WorkWXService.WorkWXUser> userList = workWXService.getUserList();
+
+            if (userList == null || userList.isEmpty()) {
+                System.out.println("鉁� 鏈幏鍙栧埌鐢ㄦ埛鍒楄〃锛屾棤娉曠户缁祴璇�");
+                return;
+            }
+
+            List<String> useridList = new ArrayList<>();
+            userList.forEach(user -> useridList.add(user.getUserid()));
+
+            long endTime = System.currentTimeMillis() / 1000;
+            long startTime = endTime - 86400;
+
+            System.out.println("  - 鐢ㄦ埛鎬绘暟: " + useridList.size());
+            System.out.println("  - 寮�濮嬫椂闂�: " + new java.util.Date(startTime * 1000));
+            System.out.println("  - 缁撴潫鏃堕棿: " + new java.util.Date(endTime * 1000));
+
+            List<WorkWXService.CheckinData> checkinDataList = workWXService.getCheckinData(startTime, endTime, useridList);
+
+            if (checkinDataList != null && !checkinDataList.isEmpty()) {
+                System.out.println("鉁� 鎴愬姛鑾峰彇鎵撳崱鏁版嵁");
+                System.out.println("  - 鎵撳崱璁板綍鎬绘暟: " + checkinDataList.size());
+                System.out.println("  - 鍓�3鏉℃暟鎹�:");
+                checkinDataList.stream().limit(3).forEach(data -> {
+                    System.out.println("    * userid: " + data.getUserid() +
+                            ", 鎵撳崱鏃堕棿: " + new java.util.Date(data.getCheckinTime() * 1000) +
+                            ", 鎵撳崱绫诲瀷: " + data.getCheckinType() +
+                            ", 鍦扮偣: " + data.getLocationDetail());
+                });
+            } else {
+                System.out.println("鉁� 鑾峰彇鐨勬墦鍗℃暟鎹负绌�");
+            }
+        } catch (IOException e) {
+            System.out.println("鉁� 鑾峰彇鎵撳崱鏁版嵁澶辫触: " + e.getMessage());
             e.printStackTrace();
         }
 

--
Gitblit v1.9.3