| | |
| | | package com.gs.xky; |
| | | |
| | | import com.gs.xky.config.ApiResponse; |
| | | import com.gs.xky.config.BodyParam; |
| | | import com.gs.xky.config.DataAcquisitionConfiguration; |
| | | import com.gs.xky.config.XkyCommonParam; |
| | | import com.gs.xky.dto.BarcodeDeliveryNo; |
| | | import com.gs.xky.dto.XkyDetail; |
| | | 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.List; |
| | | |
| | | @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; |
| | | |
| | | /** |
| | | * 测试导出生产数据并发送钉钉消息 |
| | | * 功能:查询VW_CJ_SC_SJ_TS_BB表数据 -> 导出Excel -> 发送钉钉文件消息 |
| | | */ |
| | | @Test |
| | | void contextLoads() throws IOException { |
| | | void testExportAndSendProductionData() throws Exception { |
| | | System.out.println("=== 开始测试导出生产数据并发送钉钉 ==="); |
| | | |
| | | List<MesInvItemArn> itemArnMinus = invItemArnService.getItemArnMinus(); |
| | | try { |
| | | boolean result = vwCjScSjTsBbService.exportAndSendToDingtalk(); |
| | | |
| | | deliveryNoticeService.processMesInvItemArnStatusAsync(itemArnMinus); |
| | | 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("=== 测试结束 ==="); |
| | | } |
| | | |
| | | /** |
| | | * 测试获取企业微信access_token |
| | | * 功能:调用企业微信API获取access_token |
| | | */ |
| | | @Test |
| | | void cs() throws IOException { |
| | | XkyCommonParam param = XkyCommonParam.GetInit(); |
| | | void testGetWorkWXAccessToken() { |
| | | System.out.println("=== 开始测试获取企业微信access_token ==="); |
| | | |
| | | // 创建 BodyParam 对象并赋值 |
| | | BodyParam bodyParam = new BodyParam(); |
| | | try { |
| | | String accessToken = workWXService.getAccessToken(); |
| | | |
| | | bodyParam.setErpCode(DataAcquisitionConfiguration.TEST_ERP_CODE); |
| | | bodyParam.setDeliveryNo("222504279H65"); |
| | | bodyParam.setStatus(new int[]{1, 6}); |
| | | 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("✗ 获取的access_token为空"); |
| | | } |
| | | } catch (IOException e) { |
| | | System.out.println("✗ 获取access_token失败: " + e.getMessage()); |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | param.setBody(bodyParam); |
| | | |
| | | ApiResponse<XkyDetail> detail = apiService.sendListRequest(param, XkyDetail.class, "https://openapi.xiekeyun.com/delivery/getDetail.json"); |
| | | |
| | | XkyDetail deliveryNo = detail.getData(); |
| | | // List<LineList> collect = deliveryNo.getLineList().stream().filter(s -> "1".equals(s.getStatus())).collect(Collectors.toList()); |
| | | // System.out.println(JSON.toJSONString(collect)); |
| | | deliveryNoticeService.saveDeliveryNotice(deliveryNo); |
| | | List<BarcodeDeliveryNo> barcodeDeliveryNos = GetBarcodeInformation(deliveryNo.getDeliveryNo()); |
| | | barcodeInformationService.SaveBarcodeInformation(barcodeDeliveryNos, deliveryNo.getDeliveryNo()); |
| | | |
| | | 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); |
| | | // |
| | | // 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); |
| | | // }); |
| | | |
| | | } |
| | | |
| | | |
| | | @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 IOException { |
| | | String str = "{\"state\":\"500\",\"msg\":\"{\\\"Result\\\":{\\\"ResponseStatus\\\":{\\\"ErrorCode\\\":500,\\\"IsSuccess\\\":false,\\\"Errors\\\":[{\\\"FieldName\\\":null,\\\"Message\\\":\\\"明细信息第1行的生产通知单值为:【127147】不存在;\\\\r\\\\n\\\",\\\"DIndex\\\":0}],\\\"SuccessEntitys\\\":[],\\\"SuccessMessages\\\":[],\\\"MsgCode\\\":11},\\\"Id\\\":\\\"\\\",\\\"Number\\\":\\\"\\\",\\\"NeedReturnData\\\":[{}]}}\"}"; |
| | | |
| | | System.out.println("=== 测试结束 ==="); |
| | | } |
| | | } |