From f9d006166a906124c22c87a2966d92a7b992c06f Mon Sep 17 00:00:00 2001 From: luoweijian <1329394916@qq.com> Date: Wed, 8 Apr 2026 18:12:23 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A1=BA=E4=B8=B0SIT=E7=8E=AF=E5=A2=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/strategy/handler/SfCreateOrderHandler.java | 4 ++++ .../project/logistics/domain/utils/FilePathUtil.java | 7 +++++++ .../project/receive/controller/ReceiveController.java | 5 +++-- .../project/receive/domain/dto/SfPodPushRequest.java | 10 ++++++++++ .../receive/domain/service/ReceiveService.java | 11 ++++++++--- src/main/resources/application-sftest.yml | 2 +- src/main/resources/application-test.yml | 2 +- 7 files changed, 34 insertions(+), 7 deletions(-) create mode 100644 src/main/java/com/project/receive/domain/dto/SfPodPushRequest.java diff --git a/src/main/java/com/project/logistics/domain/strategy/handler/SfCreateOrderHandler.java b/src/main/java/com/project/logistics/domain/strategy/handler/SfCreateOrderHandler.java index 38be0c7..9818019 100644 --- a/src/main/java/com/project/logistics/domain/strategy/handler/SfCreateOrderHandler.java +++ b/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()); // 标准快递 diff --git a/src/main/java/com/project/logistics/domain/utils/FilePathUtil.java b/src/main/java/com/project/logistics/domain/utils/FilePathUtil.java index f5ab7ce..4a54b1d 100644 --- a/src/main/java/com/project/logistics/domain/utils/FilePathUtil.java +++ b/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日"); diff --git a/src/main/java/com/project/receive/controller/ReceiveController.java b/src/main/java/com/project/receive/controller/ReceiveController.java index 92f2204..173c8d5 100644 --- a/src/main/java/com/project/receive/controller/ReceiveController.java +++ b/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 handlePodPicturePush(@RequestParam("content") String content) { + public Map handlePodPicturePush(@RequestBody SfPodPushRequest request) { log.info(">>> 收到顺丰【电子回单图片】推送 (内容较长,不完整打印)"); try { - receiveService.savePodPictureLog(content); + receiveService.savePodPictureLog(request); return successResponse(); } catch (Exception e) { log.error("回单图片处理异常", e); diff --git a/src/main/java/com/project/receive/domain/dto/SfPodPushRequest.java b/src/main/java/com/project/receive/domain/dto/SfPodPushRequest.java new file mode 100644 index 0000000..6b2933c --- /dev/null +++ b/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; +} \ No newline at end of file diff --git a/src/main/java/com/project/receive/domain/service/ReceiveService.java b/src/main/java/com/project/receive/domain/service/ReceiveService.java index f434600..4817fb7 100644 --- a/src/main/java/com/project/receive/domain/service/ReceiveService.java +++ b/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); diff --git a/src/main/resources/application-sftest.yml b/src/main/resources/application-sftest.yml index 1585571..2872461 100644 --- a/src/main/resources/application-sftest.yml +++ b/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 diff --git a/src/main/resources/application-test.yml b/src/main/resources/application-test.yml index 3397e26..1442b34 100644 --- a/src/main/resources/application-test.yml +++ b/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