src/main/java/com/gs/xky/service/XkyService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/application.yml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/test/java/com/gs/xky/XkyApplicationTests.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/gs/xky/service/XkyService.java
@@ -2,6 +2,7 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.gs.xky.config.ApiResponse; @@ -13,6 +14,8 @@ import com.gs.xky.dto.XkyEntity; import com.gs.xky.entity.*; import lombok.RequiredArgsConstructor; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -24,9 +27,8 @@ @RequiredArgsConstructor public class XkyService { private static final Logger log = LoggerFactory.getLogger(XkyService.class); private final ApiService apiService; private final DeliveryNoticeService deliveryNoticeService; private final TblBarcodeInformationService barcodeInformationService; @@ -40,49 +42,45 @@ public void GetSaveDetail() throws IOException { long currentTimeMillis = System.currentTimeMillis(); long startDate = currentTimeMillis - (20 * 60 * 1000); // 计算 20 分钟前的时间戳 XkyCommonParam param = XkyCommonParam.GetInit(); // 计算五分钟前的时间戳 long startDate = currentTimeMillis - (20 * 60 * 1000); // 1 分钟 = 1 * 60 * 1000 毫秒 // 创建 BodyParam 对象并赋值 BodyParam bodyParam = new BodyParam(); bodyParam.setStartDate(startDate); bodyParam.setEndDate(currentTimeMillis); bodyParam.setErpCode(DataAcquisitionConfiguration.TEST_ERP_CODE); bodyParam.setStatus(new int[]{1, 6}); // bodyParam.setLogisticsStatus(2); param.setBody(bodyParam); // 记录请求参数日志 log.info("【GetSaveDetail 请求参数】时间: {}, 参数: {}", currentTimeMillis, JSONUtil.toJsonStr(param)); ApiResponse<XkyEntity> noList = apiService.sendListRequest(param, XkyEntity.class, "https://openapi.xiekeyun.com/delivery/getNoList.json"); // List<String> deliveryNoList = noList.getDataList().stream().map(XkyEntity::getDeliveryNo).collect(Collectors.toList()); // 记录返回数据日志 log.info("【GetSaveDetail 响应数据】时间: {}, 返回: {}", currentTimeMillis, JSONUtil.toJsonStr(noList)); List<XkyEntity> deliveryNoList = noList.getDataList(); if (CollUtil.isEmpty(deliveryNoList)) { log.info("【GetSaveDetail】返回列表为空,跳过处理"); return; } deliveryNoList.forEach(deliveryNo -> { try { if ("6".equals(deliveryNo.getStatus()) || "0".equals(deliveryNo.getLogisticsStatus())) { log.info("【GetSaveDetail】移除送货单: {}", deliveryNo.getDeliveryNo()); remove(deliveryNo); } else if ("1".equals(deliveryNo.getStatus()) && "2".equals(deliveryNo.getLogisticsStatus())) { log.info("【GetSaveDetail】处理送货单: {}", deliveryNo.getDeliveryNo()); XkyDetail detail = getDetail(deliveryNo.getDeliveryNo()); deliveryNoticeService.saveDeliveryNotice(detail); List<BarcodeDeliveryNo> barcodeDeliveryNos = GetBarcodeInformation(deliveryNo.getDeliveryNo()); barcodeInformationService.SaveBarcodeInformation(barcodeDeliveryNos, deliveryNo.getDeliveryNo()); deliveryNoticeService.callPdaReceiptBtn("送货单签收[BTNOK[PL017[" + deliveryNo.getDeliveryNo(), ""); } } catch (IOException e) { log.error("【GetSaveDetail 处理异常】送货单: {}, 异常: {}", deliveryNo.getDeliveryNo(), e.getMessage(), e); throw new RuntimeException(e); } }); src/main/resources/application.yml
@@ -5,7 +5,7 @@ datasource: type: com.alibaba.druid.pool.DruidDataSource driver-class-name: oracle.jdbc.OracleDriver url: jdbc:oracle:thin:@192.168.1.104:1521/ORCL url: jdbc:oracle:thin:@122.226.249.238:5936/ORCL username: zmz_prd password: zmzprd druid: @@ -38,4 +38,14 @@ map-underscore-to-camel-case: true jdbc-type-for-null: 'null' type-aliases-package: com.gs.xky.entity.* mapper-locations: classpath:mapper/*.xml mapper-locations: classpath:mapper/*.xml logging: level: root: info com.gs.xky.service.XkyService: debug # 指定 XkyService 记录 debug 级别的日志 file: name: logs/xky_service.log # 指定日志文件路径 pattern: file: "%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n" console: "%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n" src/test/java/com/gs/xky/XkyApplicationTests.java
@@ -1,20 +1,18 @@ package com.gs.xky; import cn.hutool.core.collection.ListUtil; import com.alibaba.fastjson2.JSON; import com.gs.xky.config.*; import com.gs.xky.dto.EmployeeInfo; 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.service.ApiService; import com.gs.xky.service.MesStaffService; import com.gs.xky.service.XkyService; 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 { @@ -28,6 +26,12 @@ @Autowired private MesStaffService staffService; @Autowired private DeliveryNoticeService deliveryNoticeService; @Autowired private TblBarcodeInformationService barcodeInformationService; @Test void contextLoads() throws IOException { @@ -43,13 +47,35 @@ BodyParam bodyParam = new BodyParam(); bodyParam.setErpCode(DataAcquisitionConfiguration.TEST_ERP_CODE); bodyParam.setDeliveryNo("22250212VVWU"); bodyParam.setDeliveryNo("22250403DE7H"); param.setBody(bodyParam); ApiResponse<XkyDetail> noList = apiService.sendListRequest(param, XkyDetail.class, "https://openapi.xiekeyun.com/delivery/getDetail.json"); ApiResponse<XkyDetail> detail = apiService.sendListRequest(param, XkyDetail.class, "https://openapi.xiekeyun.com/delivery/getDetail.json"); System.out.println(JSON.toJSONString(noList.getData())); XkyDetail deliveryNo = detail.getData(); 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 @@ -74,26 +100,26 @@ @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); }); // 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\\\":[{}]}}\"}"; } }