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 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; import java.util.stream.Collectors; @SpringBootTest class XkyApplicationTests { @Autowired private XkyService xkyService; @Autowired private ApiService apiService; @Autowired private MesStaffService staffService; @Autowired private DeliveryNoticeService deliveryNoticeService; @Autowired private TblBarcodeInformationService barcodeInformationService; @Autowired private MesInvItemArnService invItemArnService; @Autowired private PurchaseService service; @Autowired private DingtalkInfoService dingtalkInfoService; @Autowired private VwCjScSjTsBbService vwCjScSjTsBbService; @Test void contextLoads() throws IOException { List 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 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 barcodeDeliveryNos = GetBarcodeInformation(deliveryNo.getDeliveryNo()); barcodeInformationService.SaveBarcodeInformation(barcodeDeliveryNos, deliveryNo.getDeliveryNo()); if ("2".equals(deliveryNo.getLogisticsStatus())) { deliveryNoticeService.callPdaReceiptBtn("送货单签收[BTNOK[PL017[" + deliveryNo.getDeliveryNo(), ""); } } } } private List 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 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); // // DingTalkResponse employeeInfoDingTalkResponse = apiService.sendListRequest(dingTalkParam, EmployeeInfo.class, "http://192.168.1.64/eHR/eHRExternalService/Service.ashx"); // // //造梦者(浙江)科技有限公司 cUnitName // //http://192.168.1.64/eHR // List collect = employeeInfoDingTalkResponse.getData().stream().filter(s -> "造梦者(浙江)科技有限公司".equals(s.getCUnitName())).collect(Collectors.toList()); // System.out.println(collect.size()); // // List> partition = ListUtil.partition(collect, 500); // // partition.forEach(list -> { // staffService.SaveStaff(list); // }); XkyCommonParam param = XkyCommonParam.GetInit(); String jsonString = JSON.toJSONString(param); System.out.println(jsonString); } @Test void cs2() throws IOException { // DingTalkParam dingTalkParam = new DingTalkParam(1); // // DingTalkResponse employeeInfoDingTalkResponse = apiService.sendListRequest(dingTalkParam, EmployeeInfo.class, "http://192.168.1.64/eHR/eHRExternalService/Service.ashx"); // // //造梦者(浙江)科技有限公司 cUnitName // //http://192.168.1.64/eHR // List collect = employeeInfoDingTalkResponse.getData().stream().filter(s -> "造梦者(浙江)科技有限公司".equals(s.getCUnitName())).collect(Collectors.toList()); // System.out.println(collect.size()); // // List> partition = ListUtil.partition(collect, 100); // // partition.forEach(list -> { // staffService.UpdateStaff(list); // }); } @Test void cs3() throws Exception { DingTalkParam dingTalkParam = new DingTalkParam(1); DingTalkResponse employeeInfoDingTalkResponse = apiService.sendListRequest(dingTalkParam, EmployeeInfo.class, "http://192.168.1.64/eHR/eHRExternalService/Service.ashx"); List collect = employeeInfoDingTalkResponse.getData().stream() .filter(s -> "造梦者(浙江)科技有限公司".equals(s.getCUnitName())) .collect(Collectors.toList()); } /** * 测试发送ActionCard消息(在外部浏览器中打开链接) * 适用场景:BI报表、外部系统链接等需要在外部浏览器打开的场景 */ @Test void testSendActionCardMessage() throws Exception { System.out.println("=== 开始测试发送ActionCard消息 ==="); boolean result = dingtalkInfoService.sendActionCardMessage(); if (result) { System.out.println("✓ ActionCard消息发送成功"); } else { System.out.println("✗ ActionCard消息发送失败"); } System.out.println("=== 测试结束 ==="); } /** * 测试发送文件消息 * 适用场景:发送Excel报表、PDF文档、Word文档等各类文件 */ @Test void testSendFileMessage() throws Exception { System.out.println("=== 开始测试发送文件消息 ==="); // 指定要发送的文件路径(请修改为实际存在的文件路径) String filePath = "D:\\BIFile\\12412321.pdf"; // 示例:Excel报表文件 // String filePath = "D:\\test\\document.pdf"; // 示例:PDF文档 // String filePath = "D:\\test\\data.docx"; // 示例:Word文档 try { boolean result = dingtalkInfoService.sendFileMessage(filePath); if (result) { System.out.println("✓ 文件消息发送成功"); } else { System.out.println("✗ 文件消息发送失败"); } } catch (Exception e) { System.out.println("✗ 发送文件时发生异常: " + e.getMessage()); e.printStackTrace(); } System.out.println("=== 测试结束 ==="); } /** * 测试导出生产数据并发送钉钉消息 * 功能:查询VW_CJ_SC_SJ_TS_BB表数据 -> 导出Excel -> 发送钉钉文件消息 */ @Test 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("=== 测试结束 ==="); } }