Browse Source

顺丰SIT环境

master
luoweijian 2 weeks ago
parent
commit
f9d006166a
  1. 4
      src/main/java/com/project/logistics/domain/strategy/handler/SfCreateOrderHandler.java
  2. 7
      src/main/java/com/project/logistics/domain/utils/FilePathUtil.java
  3. 5
      src/main/java/com/project/receive/controller/ReceiveController.java
  4. 10
      src/main/java/com/project/receive/domain/dto/SfPodPushRequest.java
  5. 11
      src/main/java/com/project/receive/domain/service/ReceiveService.java
  6. 2
      src/main/resources/application-sftest.yml
  7. 2
      src/main/resources/application-test.yml

4
src/main/java/com/project/logistics/domain/strategy/handler/SfCreateOrderHandler.java

@ -142,6 +142,10 @@ public class SfCreateOrderHandler implements ApiTaskHandler {
// 月结卡号
if (SfPayMethodEnum.SENDER_PAY.equals(senderPayByU9Desc)) {
msgData.put("monthlyCard" , fixedRuleProperties.getMonthlyCard());
msgData.put("payMethod" , SfPayMethodEnum.SENDER_PAY.getCode());
} else {
msgData.put("payMethod" , SfPayMethodEnum.RECIPIENT_PAY.getCode());
}
msgData.put("expressTypeId", sfStandardExpressByCode.getSfCode()); // 标准快递

7
src/main/java/com/project/logistics/domain/utils/FilePathUtil.java

@ -1,6 +1,8 @@
package com.project.logistics.domain.utils;
import cn.hutool.core.date.DateUtil;
import java.util.Calendar;
import java.util.Date;
public class FilePathUtil {
@ -9,6 +11,11 @@ public class FilePathUtil {
* 生成层级路径: 2026年/2026年1月/2026年1月31日
*/
public static String getHierarchicalPath(Date date) {
// 使用Calendar类对日期进行减一天的操作
// Calendar calendar = Calendar.getInstance();
// calendar.setTime(date);
// calendar.add(Calendar.DAY_OF_YEAR, 0);
// Date newDate = calendar.getTime();
String year = DateUtil.format(date, "yyyy年");
String month = DateUtil.format(date, "yyyy年M月");
String day = DateUtil.format(date, "yyyy年M月d日");

5
src/main/java/com/project/receive/controller/ReceiveController.java

@ -1,6 +1,7 @@
package com.project.receive.controller;
import com.project.receive.domain.dto.SfPodPushRequest;
import com.project.receive.domain.dto.SfRoutePushRequest;
import com.project.receive.domain.service.ReceiveService;
import lombok.extern.slf4j.Slf4j;
@ -60,10 +61,10 @@ public class ReceiveController {
* 对应接口: 图片注册及推送接口
*/
@PostMapping("/pod-picture")
public Map<String, Object> handlePodPicturePush(@RequestParam("content") String content) {
public Map<String, Object> handlePodPicturePush(@RequestBody SfPodPushRequest request) {
log.info(">>> 收到顺丰【电子回单图片】推送 (内容较长,不完整打印)");
try {
receiveService.savePodPictureLog(content);
receiveService.savePodPictureLog(request);
return successResponse();
} catch (Exception e) {
log.error("回单图片处理异常", e);

10
src/main/java/com/project/receive/domain/dto/SfPodPushRequest.java

@ -0,0 +1,10 @@
package com.project.receive.domain.dto;
import lombok.Data;
@Data
public class SfPodPushRequest {
private String companyLogo;
private String content;
private String waybillNo;
}

11
src/main/java/com/project/receive/domain/service/ReceiveService.java

@ -6,6 +6,7 @@ import com.project.logistics.domain.entity.LogisticsOrderEntity;
import com.project.logistics.domain.enums.*;
import com.project.logistics.domain.service.base.*;
import com.project.receive.domain.dto.SfPodPushRequest;
import com.project.receive.domain.dto.SfRoutePushRequest;
import com.project.receive.domain.entity.FeePushLogEntity;
import com.project.receive.domain.entity.PodPushLogEntity;
@ -204,14 +205,18 @@ public class ReceiveService {
/**
* 处理 POD 图片推送
*/
public void savePodPictureLog(String content) throws Exception {
public void savePodPictureLog(SfPodPushRequest request) throws Exception {
// 关键:POD 推送包含巨大的 Base64 字节,这里只做存库。
// 具体的解析、下载、传 WebDAV 交由后续的 SF_DOWNLOAD_POD 任务去重试执行。
String waybillNo = JsonPath.read(content, "$.waybillNo");
String waybillNo = request.getWaybillNo();
String base64Data = request.getContent();
if (waybillNo == null) {
throw new IllegalArgumentException("运单号不能为空");
}
PodPushLogEntity podLog = new PodPushLogEntity();
podLog.setWaybillNo(waybillNo);
podLog.setRawPushData(content); // 存入 LONGTEXT 字段
podLog.setRawPushData(base64Data); // 存入 LONGTEXT 字段
podLog.setProcessStatus(SyncStatusEnum.WAIT.getCode());
podPushLogService.save(podLog);

2
src/main/resources/application-sftest.yml

@ -52,7 +52,7 @@ sf:
secret: OG2rwyxIwb3LkmFi9bObYV38DQZcdtsb
tokenUrl: https://sfapi.sit.sf-express.com:45273/oauth2/accessToken
baseUrl: https://sfapi.sit.sf-express.com:45273/std/service
channelCode: MCS-CAS-API-BOX
channelCode: INC-VMOS-CORE
mybatis-plus:
configuration:
# log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # 开发环境下打印SQL

2
src/main/resources/application-test.yml

@ -52,7 +52,7 @@ sf:
secret: ZXmoWOQdSd2UTBmSP6Kv3VW9Q4N5dJqz
tokenUrl: https://sfapi-sbox.sf-express.com/oauth2/accessToken
baseUrl: https://sfapi-sbox.sf-express.com/std/service
channelCode: INC-VMOS-CORE
channelCode: MCS-CAS-API-BOX
mybatis-plus:
configuration:
# log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # 开发环境下打印SQL

Loading…
Cancel
Save