diff --git a/.run/asinkj-auth.run.xml b/.run/asinkj-auth.run.xml
index 0c87a06..c4d1850 100644
--- a/.run/asinkj-auth.run.xml
+++ b/.run/asinkj-auth.run.xml
@@ -1,12 +1,23 @@
-
+
-
+
+
+
-
+
+
+
-
+
\ No newline at end of file
diff --git a/asinkj-api/asinkj-api-amz/pom.xml b/asinkj-api/asinkj-api-amz/pom.xml
new file mode 100644
index 0000000..35689df
--- /dev/null
+++ b/asinkj-api/asinkj-api-amz/pom.xml
@@ -0,0 +1,27 @@
+
+
+ 4.0.0
+
+ org.asinkj
+ asinkj-api
+ ${revision}
+
+
+ asinkj-api-amz
+
+
+ asinkj-api-amz amz服务接口模块
+
+
+
+
+
+
+ org.asinkj
+ asinkj-common-core
+
+
+
+
diff --git a/asinkj-api/asinkj-api-amz/src/main/java/org/asinkj/amz/api/RemoteFBADataService.java b/asinkj-api/asinkj-api-amz/src/main/java/org/asinkj/amz/api/RemoteFBADataService.java
new file mode 100644
index 0000000..9b40e3d
--- /dev/null
+++ b/asinkj-api/asinkj-api-amz/src/main/java/org/asinkj/amz/api/RemoteFBADataService.java
@@ -0,0 +1,8 @@
+package org.asinkj.amz.api;
+
+import org.springframework.stereotype.Service;
+
+@Service
+public interface RemoteFBADataService {
+ void pullAmzFbaDataToken(String startDate, String endDate) throws Exception;
+}
diff --git a/asinkj-api/asinkj-api-bom/pom.xml b/asinkj-api/asinkj-api-bom/pom.xml
index e57253e..66a72ac 100644
--- a/asinkj-api/asinkj-api-bom/pom.xml
+++ b/asinkj-api/asinkj-api-bom/pom.xml
@@ -41,6 +41,12 @@
${revision}
+
+ org.asinkj
+ asinkj-api-amz
+ ${revision}
+
+
diff --git a/asinkj-api/pom.xml b/asinkj-api/pom.xml
index 144bf77..b33fea9 100644
--- a/asinkj-api/pom.xml
+++ b/asinkj-api/pom.xml
@@ -13,6 +13,7 @@
asinkj-api-system
asinkj-api-resource
asinkj-api-workflow
+ asinkj-api-amz
asinkj-api
diff --git a/asinkj-auth/Dockerfile b/asinkj-auth/Dockerfile
index 73f9bf0..b92902b 100644
--- a/asinkj-auth/Dockerfile
+++ b/asinkj-auth/Dockerfile
@@ -18,6 +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' \ # 动态读取环境变量
#-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/pom.xml b/asinkj-biz/asinkj-amz/pom.xml
index 5ffcd9e..cfc1f4a 100644
--- a/asinkj-biz/asinkj-amz/pom.xml
+++ b/asinkj-biz/asinkj-amz/pom.xml
@@ -105,6 +105,11 @@
asinkj-api-resource
+
+ org.asinkj
+ asinkj-api-amz
+
+
com.squareup.okhttp3
okhttp
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 3077bda..2230fc7 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
@@ -103,4 +103,19 @@ public class BizLogisticsOrderDetailController extends BaseController {
@PathVariable Long[] ids) {
return toAjax(bizLogisticsOrderDetailService.deleteWithValidByIds(List.of(ids), true));
}
+
+ /**
+ * 新增物流订单明细(按箱子维度存储)
+ */
+ @SaCheckPermission("amz:logisticsOrderDetail:edit")
+ @Log(title = "批量更新物流订单明细", businessType = BusinessType.INSERT)
+ @RepeatSubmit()
+ @PostMapping("/updateList")
+ public R updateList(@Validated(AddGroup.class) @RequestBody List list) {
+ bizLogisticsOrderDetailService.updateList(list);
+
+ 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 39b16e7..b543400 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
@@ -1,6 +1,7 @@
package org.asinkj.amz.controller;
import java.util.List;
+import java.util.Map;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
@@ -112,9 +113,9 @@ public class BizLogisticsQuoteController extends BaseController {
@GetMapping("/today-quote-status")
@RepeatSubmit()
- public ResponseEntity> getTodayQuoteStatus() {
+ public R> getTodayQuoteStatus() {
List statusList = bizLogisticsQuoteService.getTodayQuoteStatus();
- return ResponseEntity.ok(statusList);
+ return R.ok(statusList);
}
/**
@@ -140,4 +141,13 @@ public class BizLogisticsQuoteController extends BaseController {
@PathVariable Long[] ids) {
return toAjax(bizLogisticsQuoteService.deleteWithValidByIds(List.of(ids), true));
}
+
+
+ @SaCheckPermission("amz:logisticsQuote:query")
+ @GetMapping("/report")
+ public R>> getInfo() {
+ List
+
+ org.asinkj
+ asinkj-api-amz
+
+
diff --git a/asinkj-modules/asinkj-job/src/main/java/org/asinkj/job/snailjob/AmzPullFBAJobExecutor.java b/asinkj-modules/asinkj-job/src/main/java/org/asinkj/job/snailjob/AmzPullFBAJobExecutor.java
new file mode 100644
index 0000000..862bbc3
--- /dev/null
+++ b/asinkj-modules/asinkj-job/src/main/java/org/asinkj/job/snailjob/AmzPullFBAJobExecutor.java
@@ -0,0 +1,55 @@
+package org.asinkj.job.snailjob;
+
+import cn.hutool.core.date.DateTime;
+import cn.hutool.core.date.DateUtil;
+import com.aizuda.snailjob.client.job.core.annotation.JobExecutor;
+import com.aizuda.snailjob.client.job.core.dto.JobArgs;
+import com.aizuda.snailjob.client.model.ExecuteResult;
+import com.aizuda.snailjob.common.core.util.JsonUtil;
+import com.aizuda.snailjob.common.log.SnailJobLog;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.dubbo.config.annotation.DubboReference;
+import org.asinkj.amz.api.RemoteFBADataService;
+import org.springframework.stereotype.Component;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import javax.annotation.Resource;
+
+/**
+ * @author opensnail
+ * @date 2024-05-17
+ */
+@Component
+@JobExecutor(name = "amzPullFBAJobExecutor")
+@Slf4j
+public class AmzPullFBAJobExecutor {
+
+ @DubboReference
+ private RemoteFBADataService remoteFBADataService;
+
+ public ExecuteResult jobExecute(JobArgs jobArgs) throws Exception {
+ SnailJobLog.LOCAL.info("amzPullFBAJobExecutor. jobArgs:{}", JsonUtil.toJsonString(jobArgs));
+ SnailJobLog.REMOTE.info("amzPullFBAJobExecutor. jobArgs:{}", JsonUtil.toJsonString(jobArgs));
+ log.info("amzPullFBAJobExecutor {}", jobArgs.getJobParams());
+ //昨天的日期yyyy-MM-dd
+ // 获取昨天的日期
+ if ("yesterday".equals(jobArgs.getJobParams())) {
+ DateTime yesterday = DateUtil.yesterday();
+ String yesterdayString = yesterday.toString("yyyy-MM-dd");
+ SnailJobLog.LOCAL.info("yesterdayString. yesterdayString:{}", yesterdayString);
+ //获取今天的日期
+ DateTime today = DateUtil.date();
+ String todayString = today.toString("yyyy-MM-dd");
+ SnailJobLog.LOCAL.info("todayString. todayString:{}", todayString);
+ remoteFBADataService.pullAmzFbaDataToken(yesterdayString, todayString);
+ return ExecuteResult.success("获取从昨天开始的FBA货件数据");
+ } else if ("today".equals(jobArgs.getJobParams())) {
+ DateTime today = DateUtil.date();
+ String todayString = today.toString("yyyy-MM-dd");
+ SnailJobLog.LOCAL.info("todayString. todayString:{}", todayString);
+ remoteFBADataService.pullAmzFbaDataToken(todayString, todayString);
+ return ExecuteResult.success("获取今天的FBA货件数据");
+ }
+ return ExecuteResult.success("请指定参数yesterday或者today");
+ }
+}