From e3c2a12a199bc8343bfaa37094f7f6da08239570 Mon Sep 17 00:00:00 2001
From: dev <182542500@qq.com>
Date: Tue, 8 Apr 2025 18:55:30 +0800
Subject: [PATCH] =?UTF-8?q?=E8=BF=90=E8=90=A5=E7=AB=AF=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.gitignore | 2 +
.run/asinkj-gateway.run.xml | 19 +-
.run/asinkj-job.run.xml | 19 +-
.run/asinkj-resource.run.xml | 19 +-
.run/asinkj-snailjob-server.run.xml | 23 +-
.run/asinkj-system.run.xml | 19 +-
asinkj-auth/Dockerfile | 8 +-
asinkj-biz/asinkj-amz/Dockerfile | 27 ++
asinkj-biz/asinkj-amz/pom.xml | 32 +-
.../BizInquiryRequestController.java | 2 +-
.../BizLogisticsChannelController.java | 2 +-
.../BizLogisticsOrderDetailController.java | 13 +
.../BizLogisticsQuoteController.java | 10 +
.../controller/BizShipmentPlanController.java | 13 +
.../BizShipmentTrackingController.java | 2 +-
.../controller/SysAmazonStoreController.java | 20 +-
.../asinkj/amz/domain/BizLogisticsQuote.java | 4 +-
.../asinkj/amz/domain/BizShipmentPlan.java | 31 +-
.../amz/domain/BizShipmentTracking.java | 62 ++-
.../domain/bo/BizLogisticsQuoteMostBo.java | 3 +-
.../amz/domain/bo/BizShipmentPlanBo.java | 17 +-
.../amz/domain/bo/BizShipmentTrackingBo.java | 74 ++-
.../domain/vo/BizLogisticsOrderDetailVo.java | 6 +
.../amz/domain/vo/BizLogisticsOrderVo.java | 2 +-
.../amz/domain/vo/BizShipmentPlanVo.java | 23 +-
.../amz/domain/vo/BizShipmentTrackingVo.java | 74 ++-
.../amz/dubbo/RemoteFBADataServiceImpl.java | 5 +-
.../amz/hanlder/AddressTypeHandler.java | 2 -
.../mapper/BizLogisticsOrderDetailMapper.java | 3 +
.../amz/mapper/BizShipmentTrackingMapper.java | 2 +-
.../service/IBizInquiryRequestService.java | 2 +-
.../IBizLogisticsOrderDetailService.java | 3 +
.../service/IBizLogisticsQuoteService.java | 3 +
.../amz/service/IBizShipmentPlanService.java | 2 +
.../service/IBizShipmentTrackingService.java | 2 +-
.../amz/service/ISysAmazonStoreService.java | 9 +
.../asinkj/amz/service/LingxinCallback.java | 5 +
.../impl/BizInquiryRequestServiceImpl.java | 10 +-
.../impl/BizLogisticsChannelServiceImpl.java | 6 +-
.../BizLogisticsOrderDetailServiceImpl.java | 28 ++
.../impl/BizLogisticsOrderServiceImpl.java | 18 +-
.../impl/BizLogisticsQuoteServiceImpl.java | 36 +-
.../impl/BizShipmentPlanServiceImpl.java | 102 ++++-
.../impl/BizShipmentTrackingServiceImpl.java | 19 +-
.../impl/SysAmazonStoreServiceImpl.java | 425 ++++++++++++++----
.../asinking/entity/AmzBoxResponse.java | 149 ++++++
.../asinking/entity/AmzShippingResponse.java | 200 +++++++++
.../asinking/entity/AmzStaApiResponse.java | 126 ++++++
.../entity/FbaShipmentApiResponse.java | 2 +-
.../org/asinkj/asinking/entity/Token.java | 2 +-
.../main/java/org/asinkj/utils/HttpUtil.java | 130 ++++--
.../amz/BizLogisticsOrderDetailMapper.xml | 14 +
.../mybatis/core/mapper/BaseMapperPlus.java | 3 +-
asinkj-gateway/Dockerfile | 7 +-
asinkj-modules/asinkj-job/Dockerfile | 7 +-
.../job/snailjob/AmzPullFBAJobExecutor.java | 48 +-
asinkj-modules/asinkj-resource/Dockerfile | 7 +-
asinkj-modules/asinkj-system/Dockerfile | 9 +-
.../controller/system/SysRoleController.java | 2 +-
.../src/main/resources/application.properties | 1 +
.../asinkj-snailjob-server/Dockerfile | 6 +-
pom.xml | 2 +-
62 files changed, 1699 insertions(+), 224 deletions(-)
create mode 100644 asinkj-biz/asinkj-amz/Dockerfile
create mode 100644 asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/LingxinCallback.java
create mode 100644 asinkj-biz/asinkj-amz/src/main/java/org/asinkj/asinking/entity/AmzBoxResponse.java
create mode 100644 asinkj-biz/asinkj-amz/src/main/java/org/asinkj/asinking/entity/AmzShippingResponse.java
create mode 100644 asinkj-biz/asinkj-amz/src/main/java/org/asinkj/asinking/entity/AmzStaApiResponse.java
diff --git a/.gitignore b/.gitignore
index 69cb322..cb5b6ed 100644
--- a/.gitignore
+++ b/.gitignore
@@ -45,3 +45,5 @@ nbdist/
!*/build/*.xml
.flattened-pom.xml
+
+.lingma
diff --git a/.run/asinkj-gateway.run.xml b/.run/asinkj-gateway.run.xml
index 402cd78..ebc7332 100644
--- a/.run/asinkj-gateway.run.xml
+++ b/.run/asinkj-gateway.run.xml
@@ -1,12 +1,23 @@
-
+
-
+
+
+
-
+
+
+
-
+
\ No newline at end of file
diff --git a/.run/asinkj-job.run.xml b/.run/asinkj-job.run.xml
index 3bc3979..bb44146 100644
--- a/.run/asinkj-job.run.xml
+++ b/.run/asinkj-job.run.xml
@@ -1,12 +1,23 @@
-
+
-
+
+
+
+
+
+
+
+
+
+
-
+
+
+
-
+
\ No newline at end of file
diff --git a/.run/asinkj-resource.run.xml b/.run/asinkj-resource.run.xml
index 6e58b9c..0581696 100644
--- a/.run/asinkj-resource.run.xml
+++ b/.run/asinkj-resource.run.xml
@@ -1,12 +1,23 @@
-
+
-
+
+
+
+
+
+
+
+
+
+
-
+
+
+
-
+
\ No newline at end of file
diff --git a/.run/asinkj-snailjob-server.run.xml b/.run/asinkj-snailjob-server.run.xml
index e9038cb..8ff72fd 100644
--- a/.run/asinkj-snailjob-server.run.xml
+++ b/.run/asinkj-snailjob-server.run.xml
@@ -1,12 +1,27 @@
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
-
+
\ No newline at end of file
diff --git a/.run/asinkj-system.run.xml b/.run/asinkj-system.run.xml
index be95b4d..d9c1571 100644
--- a/.run/asinkj-system.run.xml
+++ b/.run/asinkj-system.run.xml
@@ -1,12 +1,23 @@
-
+
-
+
+
+
+
+
+
+
+
+
+
-
+
+
+
-
+
\ No newline at end of file
diff --git a/asinkj-auth/Dockerfile b/asinkj-auth/Dockerfile
index b92902b..8fea904 100644
--- a/asinkj-auth/Dockerfile
+++ b/asinkj-auth/Dockerfile
@@ -1,10 +1,10 @@
# 贝尔实验室 Spring 官方推荐镜像 JDK下载地址 https://bell-sw.com/pages/downloads/
-FROM bellsoft/liberica-openjdk-debian:17.0.11-cds
-#FROM bellsoft/liberica-openjdk-debian:21.0.3-cds
-#FROM findepi/graalvm:java17-native
+FROM amazoncorretto:17.0.14
LABEL maintainer="Shuo Hu "
+ENV TZ=Asia/Shanghai
+
RUN mkdir -p /asinkj/auth/logs \
/asinkj/auth/temp \
/asinkj/skywalking/agent
@@ -18,7 +18,7 @@ EXPOSE ${SERVER_PORT}
ADD ./target/asinkj-auth.jar ./app.jar
ENTRYPOINT java -Djava.security.egd=file:/dev/./urandom -Dserver.port=${SERVER_PORT} \
- -Dspring.profiles.active='prod' \ # 动态读取环境变量
+ -Dspring.profiles.active="prod" \
#-Dskywalking.agent.service_name=asinkj-auth \
#-javaagent:/asinkj/skywalking/agent/skywalking-agent.jar \
-XX:+HeapDumpOnOutOfMemoryError -XX:+UseZGC ${JAVA_OPTS} \
diff --git a/asinkj-biz/asinkj-amz/Dockerfile b/asinkj-biz/asinkj-amz/Dockerfile
new file mode 100644
index 0000000..f438305
--- /dev/null
+++ b/asinkj-biz/asinkj-amz/Dockerfile
@@ -0,0 +1,27 @@
+# 贝尔实验室 Spring 官方推荐镜像 JDK下载地址 https://bell-sw.com/pages/downloads/
+#FROM bellsoft/liberica-openjdk-debian:17.0.11-cds
+#FROM bellsoft/liberica-openjdk-debian:21.0.3-cds
+#FROM findepi/graalvm:java17-native
+FROM amazoncorretto:17.0.14
+
+LABEL maintainer="Shuo Hu "
+
+RUN mkdir -p /asinkj/amz/logs \
+ /asinkj/amz/temp \
+ /asinkj/skywalking/agent
+
+WORKDIR /asinkj/amz
+
+ENV SERVER_PORT=9404 LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS=""
+
+EXPOSE ${SERVER_PORT}
+
+ADD ./target/asinkj-amz.jar ./app.jar
+
+ENTRYPOINT java -Djava.security.egd=file:/dev/./urandom -Dserver.port=${SERVER_PORT} \
+ -Dspring.profiles.active="prod" \
+ #-Dskywalking.agent.service_name=asinkj-auth \
+ #-javaagent:/asinkj/skywalking/agent/skywalking-agent.jar \
+ -XX:+HeapDumpOnOutOfMemoryError -XX:+UseZGC ${JAVA_OPTS} \
+ -jar app.jar
+
diff --git a/asinkj-biz/asinkj-amz/pom.xml b/asinkj-biz/asinkj-amz/pom.xml
index cfc1f4a..1fe6d20 100644
--- a/asinkj-biz/asinkj-amz/pom.xml
+++ b/asinkj-biz/asinkj-amz/pom.xml
@@ -2,21 +2,16 @@
- 4.0.0
+
org.asinkj
- asinkj-cloud-plus
- 2.2.2
- ../../pom.xml
+ asinkj-biz
+ ${revision}
+ 4.0.0
asinkj-amz
-
- 17
- 17
- UTF-8
-
org.asinkj
@@ -113,8 +108,25 @@
com.squareup.okhttp3
okhttp
- 4.9.0
+
+ ${project.artifactId}
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+ ${spring-boot.version}
+
+
+
+ repackage
+
+
+
+
+
+
+
diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/controller/BizInquiryRequestController.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/controller/BizInquiryRequestController.java
index b7fc000..e8890e0 100644
--- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/controller/BizInquiryRequestController.java
+++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/controller/BizInquiryRequestController.java
@@ -64,7 +64,7 @@ public class BizInquiryRequestController extends BaseController {
*/
@SaCheckPermission("amz:inquiryRequest:list")
@GetMapping("/create/{destination}/{channelId}/{date}")
- public R createWithDesAndChannel(@PathVariable("destination") @NotNull(message = "目的地不能为空") String destination,
+ public R createWithDesAndChannel(@PathVariable("destination") @NotNull(message = "目的地不能为空") String destination,
@PathVariable("channelId") @NotNull(message = "渠道不能为空") String channelId,
@PathVariable("date") @NotNull(message = "日期不能为空") String date) {
return bizInquiryRequestService.createWithDesAndChannel(destination, channelId,date);
diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/controller/BizLogisticsChannelController.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/controller/BizLogisticsChannelController.java
index 21cdd4b..b38b463 100644
--- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/controller/BizLogisticsChannelController.java
+++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/controller/BizLogisticsChannelController.java
@@ -46,7 +46,7 @@ public class BizLogisticsChannelController extends BaseController {
return bizLogisticsChannelService.queryPageList(bo, pageQuery);
}
- @SaCheckPermission("amz:logisticsChannel:list")
+// @SaCheckPermission("amz:logisticsChannel:list")
@GetMapping("/list/all")
public TableDataInfo listAll() {
return bizLogisticsChannelService.queryListAll();
diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/controller/BizLogisticsOrderDetailController.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/controller/BizLogisticsOrderDetailController.java
index 2230fc7..0019918 100644
--- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/controller/BizLogisticsOrderDetailController.java
+++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/controller/BizLogisticsOrderDetailController.java
@@ -6,6 +6,8 @@ import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
+import org.asinkj.common.excel.core.ExcelResult;
+import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.asinkj.common.idempotent.annotation.RepeatSubmit;
@@ -21,6 +23,7 @@ import org.asinkj.amz.domain.vo.BizLogisticsOrderDetailVo;
import org.asinkj.amz.domain.bo.BizLogisticsOrderDetailBo;
import org.asinkj.amz.service.IBizLogisticsOrderDetailService;
import org.asinkj.common.mybatis.core.page.TableDataInfo;
+import org.springframework.web.multipart.MultipartFile;
/**
* 物流订单明细(按箱子维度存储)
@@ -57,6 +60,16 @@ public class BizLogisticsOrderDetailController extends BaseController {
ExcelUtil.exportExcel(list, "物流订单明细(按箱子维度存储)", BizLogisticsOrderDetailVo.class, response);
}
+
+ @SaCheckPermission("amz:logisticsOrderDetail:export")
+ @Log(title = "物流订单明细(按箱子维度存储)", businessType = BusinessType.EXPORT)
+ @PostMapping(value = "/importData", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
+ public R importData(@RequestPart("file") MultipartFile file) throws Exception {
+ bizLogisticsOrderDetailService.importExcel(file.getInputStream());
+
+ return R.ok();
+ }
+
/**
* 获取物流订单明细(按箱子维度存储)详细信息
*
diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/controller/BizLogisticsQuoteController.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/controller/BizLogisticsQuoteController.java
index b543400..99a34d1 100644
--- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/controller/BizLogisticsQuoteController.java
+++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/controller/BizLogisticsQuoteController.java
@@ -111,6 +111,16 @@ public class BizLogisticsQuoteController extends BaseController {
}
+ @SaCheckPermission("amz:logisticsQuote:add")
+ @Log(title = "生成报价建议", businessType = BusinessType.INSERT)
+ @RepeatSubmit()
+ @PostMapping("/check-quote-price")
+ public R checkQuotePrice(@Validated(AddGroup.class) @RequestBody BizLogisticsQuoteMostBo bo) {
+
+ return R.ok(bizLogisticsQuoteService.checkPriceQuoteByBo(bo));
+ }
+
+
@GetMapping("/today-quote-status")
@RepeatSubmit()
public R> getTodayQuoteStatus() {
diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/controller/BizShipmentPlanController.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/controller/BizShipmentPlanController.java
index 30108ff..e007fd8 100644
--- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/controller/BizShipmentPlanController.java
+++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/controller/BizShipmentPlanController.java
@@ -118,4 +118,17 @@ public class BizShipmentPlanController extends BaseController {
return R.ok(bizShipmentPlanService.getQuote(destination,channel));
}
+
+ /**
+ * 获取货件计划详细信息
+ *
+ *
+ */
+ @SaCheckPermission("amz:shipmentPlan:query")
+ @GetMapping("/take-today-amz-plan-data")
+ public R takeTodayAmzPlanData() {
+ bizShipmentPlanService.takeTodayAmzPlanData();
+ return R.ok();
+ }
+
}
diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/controller/BizShipmentTrackingController.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/controller/BizShipmentTrackingController.java
index ae16fa0..7256325 100644
--- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/controller/BizShipmentTrackingController.java
+++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/controller/BizShipmentTrackingController.java
@@ -27,7 +27,7 @@ import org.asinkj.common.mybatis.core.page.TableDataInfo;
* 前端访问路由地址为:/amz/shipmentTracking
*
* @author shuo hu
- * @date 2025-03-20
+ * @date 2025-04-03
*/
@Validated
@RequiredArgsConstructor
diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/controller/SysAmazonStoreController.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/controller/SysAmazonStoreController.java
index 3f93607..81a408f 100644
--- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/controller/SysAmazonStoreController.java
+++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/controller/SysAmazonStoreController.java
@@ -6,6 +6,7 @@ import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
+import org.asinkj.amz.service.LingxinCallback;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.asinkj.common.idempotent.annotation.RepeatSubmit;
@@ -135,12 +136,29 @@ public class SysAmazonStoreController extends BaseController {
return R.ok();
}
+ @SaCheckPermission("amz:amazonStore:remove")
+ @Log(title = "亚马逊STA", businessType = BusinessType.OTHER)
+ @GetMapping("/amz-sta/{startDate}/{endDate}")
+ public R getAmzStaToken(@PathVariable String startDate, @PathVariable String endDate) {
+ try {
+ sysAmazonStoreService.pullAmzStaData(startDate, endDate, new LingxinCallback() {
+ @Override
+ public void onFinished(String result, int status) {
+
+ }
+ });
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ return R.ok();
+ }
+
@SaCheckPermission("amz:amazonStore:remove")
@Log(title = "亚马逊FBAtest", businessType = BusinessType.OTHER)
@GetMapping("/test")
public R testAmzFbaToken() {
try {
- sysAmazonStoreService.testAmazonData();
+ sysAmazonStoreService.pullAmzBoxData2();
} catch (Exception e) {
throw new RuntimeException(e);
}
diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/BizLogisticsQuote.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/BizLogisticsQuote.java
index 24719f7..ec9b079 100644
--- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/BizLogisticsQuote.java
+++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/BizLogisticsQuote.java
@@ -4,6 +4,8 @@ import org.asinkj.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
+
+import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
@@ -51,7 +53,7 @@ public class BizLogisticsQuote extends TenantEntity {
/**
* 基础价格
*/
- private Long price;
+ private BigDecimal price;
/**
* 时效(单位:天)
diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/BizShipmentPlan.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/BizShipmentPlan.java
index 79707cc..925ca8e 100644
--- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/BizShipmentPlan.java
+++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/BizShipmentPlan.java
@@ -6,8 +6,9 @@ import org.asinkj.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
+
+import java.math.BigDecimal;
import java.util.Date;
-import com.fasterxml.jackson.annotation.JsonFormat;
import java.io.Serial;
@@ -40,6 +41,11 @@ public class BizShipmentPlan extends TenantEntity {
*/
private String shipmentId;
+ /**
+ * 货件唯一编号
+ */
+ private String shipmentUniqueId;
+
/**
* 货件名称
*/
@@ -83,7 +89,7 @@ public class BizShipmentPlan extends TenantEntity {
/**
* 同步时间
*/
- private Date syncTime;
+ private Date receivingTime;
/**
* 计划发货日期
@@ -127,11 +133,32 @@ public class BizShipmentPlan extends TenantEntity {
*/
private String isSta;
+ /**
+ * box_quantity
+ * box_size
+ * logistics_weight
+ * set_total
+ */
+
+
+ private Long boxQuantity;
+
+ private String boxSize;
+
+ private BigDecimal logisticsWeight;
+
+ private Long setTotal;
+
/**
* 删除标记
*/
@TableLogic
private String delFlag;
+ /**
+ * sta 计划ID
+ */
+ private String inboundPlanId;
+
}
diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/BizShipmentTracking.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/BizShipmentTracking.java
index a44f9f1..a91d621 100644
--- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/BizShipmentTracking.java
+++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/BizShipmentTracking.java
@@ -11,7 +11,7 @@ import java.io.Serial;
* 物流追踪对象 biz_shipment_tracking
*
* @author shuo hu
- * @date 2025-03-20
+ * @date 2025-04-03
*/
@Data
@EqualsAndHashCode(callSuper = true)
@@ -47,5 +47,65 @@ public class BizShipmentTracking extends TenantEntity {
@TableLogic
private String delFlag;
+ /**
+ * 本地箱子编号
+ */
+ private String localBoxId;
+
+ /**
+ * 包裹唯一标识
+ */
+ private String packageId;
+
+ /**
+ * 总数量
+ */
+ private Long total;
+
+ /**
+ * 重量
+ */
+ private Long weight;
+
+ /**
+ * 重量单位
+ */
+ private String weightUnit;
+
+ /**
+ * 长度
+ */
+ private Long length;
+
+ /**
+ * 宽度
+ */
+ private Long width;
+
+ /**
+ * 高度
+ */
+ private Long height;
+
+ /**
+ * 尺寸单位
+ */
+ private String lengthUnit;
+
+ /**
+ * 箱子展示名称
+ */
+ private String boxName;
+
+ /**
+ * 货件唯一编号
+ */
+ private String shipmentUniqueId;
+
+ /**
+ * STA任务编号
+ */
+ private String inboundPlanId;
+
}
diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/bo/BizLogisticsQuoteMostBo.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/bo/BizLogisticsQuoteMostBo.java
index bba7e1a..05b317d 100644
--- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/bo/BizLogisticsQuoteMostBo.java
+++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/bo/BizLogisticsQuoteMostBo.java
@@ -12,6 +12,7 @@ import org.asinkj.common.core.validate.EditGroup;
import org.asinkj.common.mybatis.core.domain.BaseEntity;
import java.io.Serial;
+import java.math.BigDecimal;
import java.util.Date;
/**
@@ -55,7 +56,7 @@ public class BizLogisticsQuoteMostBo extends BaseEntity {
* 基础价格
*/
@NotNull(message = "基础价格不能为空", groups = { AddGroup.class, EditGroup.class })
- private Long price;
+ private BigDecimal price;
/**
* 时效(单位:天)
diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/bo/BizShipmentPlanBo.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/bo/BizShipmentPlanBo.java
index be65b53..6420762 100644
--- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/bo/BizShipmentPlanBo.java
+++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/bo/BizShipmentPlanBo.java
@@ -1,5 +1,6 @@
package org.asinkj.amz.domain.bo;
+import com.alibaba.excel.annotation.ExcelProperty;
import org.asinkj.amz.domain.BizShipmentPlan;
import org.asinkj.asinking.entity.FbaShipmentApiResponse;
import org.asinkj.common.mybatis.core.domain.BaseEntity;
@@ -9,6 +10,8 @@ import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
+
+import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
@@ -93,7 +96,7 @@ public class BizShipmentPlanBo extends BaseEntity {
* 同步时间
*/
@NotNull(message = "同步时间不能为空", groups = { AddGroup.class, EditGroup.class })
- private Date syncTime;
+ private Date receivingTime;
/**
* 计划发货日期
@@ -144,4 +147,16 @@ public class BizShipmentPlanBo extends BaseEntity {
private String isSta;
+ @ExcelProperty(value = "箱子数量")
+ private Long boxQuantity;
+
+ @ExcelProperty(value = "箱子尺寸")
+ private String boxSize;
+
+ @ExcelProperty(value = "总的物流商计重")
+ private BigDecimal logisticsWeight;
+
+ @ExcelProperty(value = "套数(系统中的申报量)")
+ private Long setTotal;
+
}
diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/bo/BizShipmentTrackingBo.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/bo/BizShipmentTrackingBo.java
index 35f641d..4418483 100644
--- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/bo/BizShipmentTrackingBo.java
+++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/bo/BizShipmentTrackingBo.java
@@ -13,7 +13,7 @@ import jakarta.validation.constraints.*;
* 物流追踪业务对象 biz_shipment_tracking
*
* @author shuo hu
- * @date 2025-03-20
+ * @date 2025-04-03
*/
@Data
@EqualsAndHashCode(callSuper = true)
@@ -44,5 +44,77 @@ public class BizShipmentTrackingBo extends BaseEntity {
@NotBlank(message = "物流单号不能为空", groups = { AddGroup.class, EditGroup.class })
private String trackingNumber;
+ /**
+ * 本地箱子编号
+ */
+ @NotBlank(message = "本地箱子编号不能为空", groups = { AddGroup.class, EditGroup.class })
+ private String localBoxId;
+
+ /**
+ * 包裹唯一标识
+ */
+ @NotBlank(message = "包裹唯一标识不能为空", groups = { AddGroup.class, EditGroup.class })
+ private String packageId;
+
+ /**
+ * 总数量
+ */
+ @NotNull(message = "总数量不能为空", groups = { AddGroup.class, EditGroup.class })
+ private Long total;
+
+ /**
+ * 重量
+ */
+ @NotNull(message = "重量不能为空", groups = { AddGroup.class, EditGroup.class })
+ private Long weight;
+
+ /**
+ * 重量单位
+ */
+ @NotBlank(message = "重量单位不能为空", groups = { AddGroup.class, EditGroup.class })
+ private String weightUnit;
+
+ /**
+ * 长度
+ */
+ @NotNull(message = "长度不能为空", groups = { AddGroup.class, EditGroup.class })
+ private Long length;
+
+ /**
+ * 宽度
+ */
+ @NotNull(message = "宽度不能为空", groups = { AddGroup.class, EditGroup.class })
+ private Long width;
+
+ /**
+ * 高度
+ */
+ @NotNull(message = "高度不能为空", groups = { AddGroup.class, EditGroup.class })
+ private Long height;
+
+ /**
+ * 尺寸单位
+ */
+ @NotBlank(message = "尺寸单位不能为空", groups = { AddGroup.class, EditGroup.class })
+ private String lengthUnit;
+
+ /**
+ * 箱子展示名称
+ */
+ @NotBlank(message = "箱子展示名称不能为空", groups = { AddGroup.class, EditGroup.class })
+ private String boxName;
+
+ /**
+ * 货件唯一编号
+ */
+ @NotBlank(message = "货件唯一编号不能为空", groups = { AddGroup.class, EditGroup.class })
+ private String shipmentUniqueId;
+
+ /**
+ * STA任务编号
+ */
+ @NotBlank(message = "STA任务编号不能为空", groups = { AddGroup.class, EditGroup.class })
+ private String inboundPlanId;
+
}
diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizLogisticsOrderDetailVo.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizLogisticsOrderDetailVo.java
index 1bb07ed..8e022de 100644
--- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizLogisticsOrderDetailVo.java
+++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizLogisticsOrderDetailVo.java
@@ -1,6 +1,10 @@
package org.asinkj.amz.domain.vo;
import java.util.Date;
+
+import com.alibaba.excel.annotation.write.style.ContentStyle;
+import com.alibaba.excel.annotation.write.style.HeadStyle;
+import com.alibaba.excel.enums.BooleanEnum;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.asinkj.amz.domain.BizLogisticsOrderDetail;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
@@ -25,6 +29,7 @@ import java.util.Date;
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = BizLogisticsOrderDetail.class)
+@ContentStyle(locked = BooleanEnum.TRUE)
public class BizLogisticsOrderDetailVo implements Serializable {
@Serial
@@ -42,6 +47,7 @@ public class BizLogisticsOrderDetailVo implements Serializable {
*/
@ExcelProperty(value = "订单号")
// @ExcelDictFormat(readConverterExp = "b=iz_logistics_order.id")
+ @ContentStyle(locked = BooleanEnum.TRUE)
private String orderId;
/**
diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizLogisticsOrderVo.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizLogisticsOrderVo.java
index 3388fad..0cffb54 100644
--- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizLogisticsOrderVo.java
+++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizLogisticsOrderVo.java
@@ -71,7 +71,7 @@ public class BizLogisticsOrderVo implements Serializable {
*/
@ExcelProperty(value = "物流渠道", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "如=空运/海运/快递等")
- private String logisticsChannel;
+ private String channelName;
/**
* 目的地仓库名称或编码
diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizShipmentPlanVo.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizShipmentPlanVo.java
index e6c7d21..713f859 100644
--- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizShipmentPlanVo.java
+++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizShipmentPlanVo.java
@@ -1,5 +1,6 @@
package org.asinkj.amz.domain.vo;
+import java.math.BigDecimal;
import java.util.Date;
import com.alibaba.fastjson.annotation.JSONField;
@@ -20,7 +21,6 @@ import java.io.Serializable;
import java.util.Date;
-
/**
* 货件计划视图对象 biz_shipment_plan
*
@@ -105,7 +105,7 @@ public class BizShipmentPlanVo implements Serializable {
* 同步时间
*/
@ExcelProperty(value = "同步时间")
- private Date syncTime;
+ private Date receivingTime;
/**
* 计划发货日期
@@ -158,9 +158,26 @@ public class BizShipmentPlanVo implements Serializable {
private String isSta;
+ @ExcelProperty(value = "箱子数量")
+ private Long boxNum;
+
+
+ @ExcelProperty(value = "箱子数量")
+ private Long boxQuantity;
+
+ @ExcelProperty(value = "箱子尺寸")
+ private String boxSize;
+
+ @ExcelProperty(value = "总的物流商计重")
+ private BigDecimal logisticsWeight;
+
+ @ExcelProperty(value = "套数(系统中的申报量)")
+ private Long setTotal;
+
+
// 显式添加 Setter(即使使用 @Data)
public void setShipFromAddress(FbaShipmentApiResponse.Address shipFromAddress) {
- System.out.printf(String.valueOf(shipToAddress));
+// System.out.printf(String.valueOf(shipToAddress));
this.shipFromAddress = shipFromAddress;
}
diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizShipmentTrackingVo.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizShipmentTrackingVo.java
index d50ea35..48a242e 100644
--- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizShipmentTrackingVo.java
+++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizShipmentTrackingVo.java
@@ -18,7 +18,7 @@ import java.util.Date;
* 物流追踪视图对象 biz_shipment_tracking
*
* @author shuo hu
- * @date 2025-03-20
+ * @date 2025-04-03
*/
@Data
@ExcelIgnoreUnannotated
@@ -52,5 +52,77 @@ public class BizShipmentTrackingVo implements Serializable {
@ExcelProperty(value = "物流单号")
private String trackingNumber;
+ /**
+ * 本地箱子编号
+ */
+ @ExcelProperty(value = "本地箱子编号")
+ private String localBoxId;
+
+ /**
+ * 包裹唯一标识
+ */
+ @ExcelProperty(value = "包裹唯一标识")
+ private String packageId;
+
+ /**
+ * 总数量
+ */
+ @ExcelProperty(value = "总数量")
+ private Long total;
+
+ /**
+ * 重量
+ */
+ @ExcelProperty(value = "重量")
+ private Long weight;
+
+ /**
+ * 重量单位
+ */
+ @ExcelProperty(value = "重量单位")
+ private String weightUnit;
+
+ /**
+ * 长度
+ */
+ @ExcelProperty(value = "长度")
+ private Long length;
+
+ /**
+ * 宽度
+ */
+ @ExcelProperty(value = "宽度")
+ private Long width;
+
+ /**
+ * 高度
+ */
+ @ExcelProperty(value = "高度")
+ private Long height;
+
+ /**
+ * 尺寸单位
+ */
+ @ExcelProperty(value = "尺寸单位")
+ private String lengthUnit;
+
+ /**
+ * 箱子展示名称
+ */
+ @ExcelProperty(value = "箱子展示名称")
+ private String boxName;
+
+ /**
+ * 货件唯一编号
+ */
+ @ExcelProperty(value = "货件唯一编号")
+ private String shipmentUniqueId;
+
+ /**
+ * STA任务编号
+ */
+ @ExcelProperty(value = "STA任务编号")
+ private String inboundPlanId;
+
}
diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/dubbo/RemoteFBADataServiceImpl.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/dubbo/RemoteFBADataServiceImpl.java
index 0f9ed3d..5016971 100644
--- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/dubbo/RemoteFBADataServiceImpl.java
+++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/dubbo/RemoteFBADataServiceImpl.java
@@ -4,6 +4,7 @@ import lombok.RequiredArgsConstructor;
import org.apache.dubbo.config.annotation.DubboService;
import org.asinkj.amz.api.RemoteFBADataService;
import org.asinkj.amz.service.ISysAmazonStoreService;
+import org.asinkj.amz.service.LingxinCallback;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@@ -18,6 +19,8 @@ public class RemoteFBADataServiceImpl implements RemoteFBADataService {
@Override
public void pullAmzFbaDataToken(String startDate, String endDate) throws Exception {
- sysAmazonStoreService.pullAmzFBAData(startDate,endDate);
+ sysAmazonStoreService.pullAmzStaData(startDate, endDate, (result, status) -> {
+
+ });
}
}
diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/hanlder/AddressTypeHandler.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/hanlder/AddressTypeHandler.java
index a9d76ea..d08d935 100644
--- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/hanlder/AddressTypeHandler.java
+++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/hanlder/AddressTypeHandler.java
@@ -30,7 +30,6 @@ public class AddressTypeHandler extends BaseTypeHandler {
+ void updateByBoxId(List bizLogisticsOrderDetailVos);
}
diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/mapper/BizShipmentTrackingMapper.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/mapper/BizShipmentTrackingMapper.java
index 9b37089..3554dc1 100644
--- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/mapper/BizShipmentTrackingMapper.java
+++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/mapper/BizShipmentTrackingMapper.java
@@ -8,7 +8,7 @@ import org.asinkj.common.mybatis.core.mapper.BaseMapperPlus;
* 物流追踪Mapper接口
*
* @author shuo hu
- * @date 2025-03-20
+ * @date 2025-04-03
*/
public interface BizShipmentTrackingMapper extends BaseMapperPlus {
diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/IBizInquiryRequestService.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/IBizInquiryRequestService.java
index acf9b9d..1115e9a 100644
--- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/IBizInquiryRequestService.java
+++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/IBizInquiryRequestService.java
@@ -69,7 +69,7 @@ public interface IBizInquiryRequestService {
*/
Boolean deleteWithValidByIds(Collection ids, Boolean isValid);
- R createWithDesAndChannel(@NotNull(message = "目的地不能为空") String destination, @NotNull(message = "渠道不能为空") String channelId, @NotNull(message = "日期不能为空") String date);
+ R createWithDesAndChannel(@NotNull(message = "目的地不能为空") String destination, @NotNull(message = "渠道不能为空") String channelId, @NotNull(message = "日期不能为空") String date);
TableDataInfo queryWithDesAndChannel(@NotNull(message = "目的地不能为空") String destination, @NotNull(message = "渠道不能为空") String channelId, @NotNull(message = "日期不能为空") String date);
}
diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/IBizLogisticsOrderDetailService.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/IBizLogisticsOrderDetailService.java
index 9bc2df7..1f4ad93 100644
--- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/IBizLogisticsOrderDetailService.java
+++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/IBizLogisticsOrderDetailService.java
@@ -6,6 +6,7 @@ import org.asinkj.amz.domain.bo.BizLogisticsOrderDetailBo;
import org.asinkj.common.mybatis.core.page.TableDataInfo;
import org.asinkj.common.mybatis.core.page.PageQuery;
+import java.io.InputStream;
import java.util.Collection;
import java.util.List;
@@ -68,4 +69,6 @@ public interface IBizLogisticsOrderDetailService {
Boolean deleteWithValidByIds(Collection ids, Boolean isValid);
void updateList(List list);
+
+ void importExcel(InputStream inputStream);
}
diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/IBizLogisticsQuoteService.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/IBizLogisticsQuoteService.java
index 148952f..19e0479 100644
--- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/IBizLogisticsQuoteService.java
+++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/IBizLogisticsQuoteService.java
@@ -8,6 +8,7 @@ import org.asinkj.amz.domain.vo.InquiryQuoteStatusDTO;
import org.asinkj.common.mybatis.core.page.TableDataInfo;
import org.asinkj.common.mybatis.core.page.PageQuery;
+import java.math.BigDecimal;
import java.util.Collection;
import java.util.List;
import java.util.Map;
@@ -79,5 +80,7 @@ public interface IBizLogisticsQuoteService {
void insertMostQuoteByBo(BizLogisticsQuoteMostBo bo);
+ Boolean checkPriceQuoteByBo(BizLogisticsQuoteMostBo bo);
+
List getTodayQuoteStatus();
}
diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/IBizShipmentPlanService.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/IBizShipmentPlanService.java
index 86364ea..9b90e85 100644
--- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/IBizShipmentPlanService.java
+++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/IBizShipmentPlanService.java
@@ -72,4 +72,6 @@ public interface IBizShipmentPlanService {
List getQuote(@NotNull(message = "主键不能为空") String destination, String channel);
BizShipmentPlanVo queryByfbaShipmentId(String fbaShipmentId);
+
+ void takeTodayAmzPlanData();
}
diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/IBizShipmentTrackingService.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/IBizShipmentTrackingService.java
index a20e8d5..2a6bb5a 100644
--- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/IBizShipmentTrackingService.java
+++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/IBizShipmentTrackingService.java
@@ -13,7 +13,7 @@ import java.util.List;
* 物流追踪Service接口
*
* @author shuo hu
- * @date 2025-03-20
+ * @date 2025-04-03
*/
public interface IBizShipmentTrackingService {
diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/ISysAmazonStoreService.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/ISysAmazonStoreService.java
index 533963a..e3bd93a 100644
--- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/ISysAmazonStoreService.java
+++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/ISysAmazonStoreService.java
@@ -1,5 +1,6 @@
package org.asinkj.amz.service;
+import okhttp3.Callback;
import org.asinkj.amz.domain.SysAmazonStore;
import org.asinkj.amz.domain.vo.SysAmazonStoreVo;
import org.asinkj.amz.domain.bo.SysAmazonStoreBo;
@@ -74,9 +75,17 @@ public interface ISysAmazonStoreService {
void pullAmzFBAData(String startDate,String endDate) throws Exception;
+ void pullAmzStaData(String startDate, String endDate, LingxinCallback lingxinCallback);
+
+ void pullAmzBoxData() throws Exception;
+
+ void pullAmzBoxData2() throws Exception;
+
void getAmzStoreTokenData() throws Exception;
void testAmazonData() throws Exception;
void testAmazonData2() throws Exception;
+
+// void pullAmzStaData(String startDate, String endDate);
}
diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/LingxinCallback.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/LingxinCallback.java
new file mode 100644
index 0000000..69d0967
--- /dev/null
+++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/LingxinCallback.java
@@ -0,0 +1,5 @@
+package org.asinkj.amz.service;
+
+public interface LingxinCallback {
+ void onFinished(String result, int status); // 自定义方法名
+}
diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizInquiryRequestServiceImpl.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizInquiryRequestServiceImpl.java
index 34afb41..c47c578 100644
--- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizInquiryRequestServiceImpl.java
+++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizInquiryRequestServiceImpl.java
@@ -18,7 +18,9 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import org.asinkj.common.satoken.utils.LoginHelper;
+import org.asinkj.resource.api.RemoteMessageService;
import org.asinkj.utils.SerialNoGenerator;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.asinkj.amz.domain.bo.BizInquiryRequestBo;
import org.asinkj.amz.domain.vo.BizInquiryRequestVo;
@@ -59,6 +61,8 @@ public class BizInquiryRequestServiceImpl implements IBizInquiryRequestService {
@Resource
private BizLogisticsQuoteMapper logisticsQuoteMapper;
+ @Resource
+ private RemoteMessageService remoteMessageService;
/**
* 查询物流询价
@@ -167,7 +171,7 @@ public class BizInquiryRequestServiceImpl implements IBizInquiryRequestService {
}
@Override
- public R createWithDesAndChannel(String destination, String channelId,String date) {
+ public R createWithDesAndChannel(String destination, String channelId,String date) {
@@ -216,7 +220,9 @@ public class BizInquiryRequestServiceImpl implements IBizInquiryRequestService {
billingRequestMapper.insert(bizInquiryRequest);
- return R.ok();
+ remoteMessageService.publishMessage(LoginHelper.getUserId(), "您好,您的询价单创建成功。具体询价单号为:"+bizInquiryRequest.getInquiryNo());
+
+ return R.ok(bizInquiryRequest.getInquiryNo());
}
@Override
diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizLogisticsChannelServiceImpl.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizLogisticsChannelServiceImpl.java
index 32cf1fa..a1a3369 100644
--- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizLogisticsChannelServiceImpl.java
+++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizLogisticsChannelServiceImpl.java
@@ -149,8 +149,10 @@ public class BizLogisticsChannelServiceImpl implements IBizLogisticsChannelServi
public TableDataInfo queryListAll() {
LambdaQueryWrapper lqw = Wrappers.lambdaQuery();
- lqw.eq(BizLogisticsChannel::getChannelType, "system");
- return TableDataInfo.build(baseMapper.selectVoList(lqw));
+// lqw.eq(BizLogisticsChannel::getChannelType, "system");
+ TableDataInfo build = TableDataInfo.build(baseMapper.selectVoList(lqw));
+
+ return build;
}
}
diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizLogisticsOrderDetailServiceImpl.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizLogisticsOrderDetailServiceImpl.java
index d9f7222..aba02b9 100644
--- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizLogisticsOrderDetailServiceImpl.java
+++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizLogisticsOrderDetailServiceImpl.java
@@ -1,8 +1,12 @@
package org.asinkj.amz.service.impl;
+import com.alibaba.fastjson2.JSONObject;
+import lombok.extern.slf4j.Slf4j;
import org.asinkj.amz.domain.BizLogisticsOrder;
+import org.asinkj.common.core.exception.ServiceException;
import org.asinkj.common.core.utils.MapstructUtils;
import org.asinkj.common.core.utils.StringUtils;
+import org.asinkj.common.excel.utils.ExcelUtil;
import org.asinkj.common.mybatis.core.page.TableDataInfo;
import org.asinkj.common.mybatis.core.page.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -17,9 +21,11 @@ import org.asinkj.amz.domain.BizLogisticsOrderDetail;
import org.asinkj.amz.mapper.BizLogisticsOrderDetailMapper;
import org.asinkj.amz.service.IBizLogisticsOrderDetailService;
+import java.io.InputStream;
import java.util.List;
import java.util.Map;
import java.util.Collection;
+import java.util.stream.Collectors;
/**
* 物流订单明细(按箱子维度存储)Service业务层处理
@@ -27,6 +33,7 @@ import java.util.Collection;
* @author shuo hu
* @date 2025-03-24
*/
+@Slf4j
@RequiredArgsConstructor
@Service
public class BizLogisticsOrderDetailServiceImpl implements IBizLogisticsOrderDetailService {
@@ -156,4 +163,25 @@ public class BizLogisticsOrderDetailServiceImpl implements IBizLogisticsOrderDet
public void updateList(List list) {
baseMapper.updateBatchById(MapstructUtils.convert(list, BizLogisticsOrderDetail.class));
}
+
+ @Override
+ public void importExcel(InputStream inputStream) {
+ List bizLogisticsOrderDetailVos = ExcelUtil.importExcel(inputStream, BizLogisticsOrderDetailVo.class);
+ checkData(bizLogisticsOrderDetailVos);
+ log.info("导入数据条数:{}", JSONObject.toJSONString(bizLogisticsOrderDetailVos));
+
+ baseMapper.updateByBoxId(bizLogisticsOrderDetailVos);
+
+ }
+
+ private void checkData(List bizLogisticsOrderDetailVos) {
+ boolean isAllSame = bizLogisticsOrderDetailVos.stream()
+ .map(BizLogisticsOrderDetailVo::getFbaShipmentId)
+ .collect(Collectors.toSet())
+ .size() == 1;
+ if (!isAllSame) {
+ throw new ServiceException("FBA货件编号不一致,请检查后重新导入");
+ }
+
+ }
}
diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizLogisticsOrderServiceImpl.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizLogisticsOrderServiceImpl.java
index f03bfe0..83828a3 100644
--- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizLogisticsOrderServiceImpl.java
+++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizLogisticsOrderServiceImpl.java
@@ -27,6 +27,8 @@ import org.asinkj.amz.domain.vo.BizLogisticsOrderVo;
import org.asinkj.amz.mapper.BizLogisticsOrderMapper;
import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
import java.util.*;
import java.util.stream.Collectors;
@@ -41,6 +43,8 @@ import java.util.stream.Collectors;
@Service
public class BizLogisticsOrderServiceImpl implements IBizLogisticsOrderService {
+ private static final BigDecimal LB_TO_KG_RATIO = new BigDecimal("0.45359237");
+
private final BizLogisticsOrderMapper baseMapper;
@Resource
@@ -246,7 +250,19 @@ public class BizLogisticsOrderServiceImpl implements IBizLogisticsOrderService {
detail.setChannelName(quoteVo.getChannelName());
detail.setDestination(quoteVo.getDestination());
detail.setPricePerKg(quoteVo.getPrice());
- detail.setLogisticsStatus("pending");
+ detail.setPlannedQuantity(bizShipmentTracking.getTotal());
+
+ BigDecimal lb = new BigDecimal(bizShipmentTracking.getWeight());
+
+ // 计算kg值(乘法运算)
+ BigDecimal kgValue = lb.multiply(LB_TO_KG_RATIO);
+
+ // 保留两位小数并四舍五入
+ kgValue = kgValue.setScale(2, RoundingMode.HALF_UP);
+
+
+ detail.setSupplierWeight(kgValue.longValue());
+ detail.setLogisticsStatus("IN_WAREHOUSE");
// detail.setPlannedQuantity(bizShipmentTracking.getQuantity());
// detail.setShipmentQuantity(sum);
// detail.setTrackingNumber(bizShipmentTracking.getTrackingNumber());
diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizLogisticsQuoteServiceImpl.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizLogisticsQuoteServiceImpl.java
index deff72f..31c3585 100644
--- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizLogisticsQuoteServiceImpl.java
+++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizLogisticsQuoteServiceImpl.java
@@ -31,6 +31,8 @@ import org.asinkj.amz.mapper.BizLogisticsQuoteMapper;
import org.asinkj.amz.service.IBizLogisticsQuoteService;
import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
import java.time.LocalDate;
import java.util.*;
import java.util.function.Function;
@@ -61,7 +63,7 @@ public class BizLogisticsQuoteServiceImpl implements IBizLogisticsQuoteService {
private BizLogisticsChannelMapper bizLogisticsChannelMapper;
@Resource
- private RemoteUserService remoteUserService ;
+ private RemoteUserService remoteUserService;
/**
* 查询物流报价
@@ -75,10 +77,6 @@ public class BizLogisticsQuoteServiceImpl implements IBizLogisticsQuoteService {
}
-
-
-
-
@Override
public List