啊鑫
2025-04-03 ff9fc9d9fa53a0c9aacd9d5d4a9533114ee8b790
SRM增加log日志
已修改3个文件
122 ■■■■■ 文件已修改
src/main/java/com/gs/xky/service/XkyService.java 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application.yml 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/test/java/com/gs/xky/XkyApplicationTests.java 78 ●●●●● 补丁 | 查看 | 原始文档 | 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\\\":[{}]}}\"}";
    }
}