From 90c4a9e8e9510b86f15c11121884367da3e8fe49 Mon Sep 17 00:00:00 2001 From: liyongde <1419499670@qq.com> Date: Wed, 15 Jul 2026 14:59:05 +0800 Subject: [PATCH] =?UTF-8?q?fix=EF=BC=9A=E4=BB=BB=E5=8A=A1=E6=8B=86?= =?UTF-8?q?=E8=A7=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nl-dependencies/pom.xml | 6 +++ .../framework/common/enums/RpcConstants.java | 24 +++++++++ .../nl-spring-boot-starter-execute/pom.xml | 51 +++++++++++++++++++ .../framework/execute/biz/TaskCommonApi.java | 10 ++++ .../execute/biz/lms/LmsTaskCommonApi.java | 16 ++++++ .../framework/execute/biz/package-info.java | 6 +++ .../execute/biz/wms/WmsTaskCommonApi.java | 16 ++++++ .../framework/execute/core/AbstractTask.java | 28 ++++++++++ .../nl/framework/execute/package-info.java | 6 +++ nl-framework/pom.xml | 1 + nl-module-lms/nl-module-lms-server/pom.xml | 4 ++ .../java/cn/code/nl/module/lms/DemoTask.java | 25 +++++++++ nl-module-task/nl-module-task-api/pom.xml | 5 ++ .../task/enums/TransportTaskStatusEnum.java | 14 +++-- .../task/mq/producer/TaskEventProducer.java | 2 +- .../TransportTaskFeedbackServiceImpl.java | 1 + 16 files changed, 206 insertions(+), 9 deletions(-) create mode 100644 nl-framework/nl-spring-boot-starter-execute/pom.xml create mode 100644 nl-framework/nl-spring-boot-starter-execute/src/main/java/cn/code/nl/framework/execute/biz/TaskCommonApi.java create mode 100644 nl-framework/nl-spring-boot-starter-execute/src/main/java/cn/code/nl/framework/execute/biz/lms/LmsTaskCommonApi.java create mode 100644 nl-framework/nl-spring-boot-starter-execute/src/main/java/cn/code/nl/framework/execute/biz/package-info.java create mode 100644 nl-framework/nl-spring-boot-starter-execute/src/main/java/cn/code/nl/framework/execute/biz/wms/WmsTaskCommonApi.java create mode 100644 nl-framework/nl-spring-boot-starter-execute/src/main/java/cn/code/nl/framework/execute/core/AbstractTask.java create mode 100644 nl-framework/nl-spring-boot-starter-execute/src/main/java/cn/code/nl/framework/execute/package-info.java create mode 100644 nl-module-lms/nl-module-lms-server/src/main/java/cn/code/nl/module/lms/DemoTask.java diff --git a/nl-dependencies/pom.xml b/nl-dependencies/pom.xml index 82657709..f58d31e3 100644 --- a/nl-dependencies/pom.xml +++ b/nl-dependencies/pom.xml @@ -185,6 +185,12 @@ ${revision} + + cn.nl.cloud + nl-spring-boot-starter-execute + ${revision} + + com.github.xiaoymin knife4j-openapi3-jakarta-spring-boot-starter diff --git a/nl-framework/nl-common/src/main/java/cn/code/nl/framework/common/enums/RpcConstants.java b/nl-framework/nl-common/src/main/java/cn/code/nl/framework/common/enums/RpcConstants.java index aba002d7..25844976 100644 --- a/nl-framework/nl-common/src/main/java/cn/code/nl/framework/common/enums/RpcConstants.java +++ b/nl-framework/nl-common/src/main/java/cn/code/nl/framework/common/enums/RpcConstants.java @@ -43,4 +43,28 @@ public interface RpcConstants { */ String TASK_PREFIX = RPC_API_PREFIX + "/task"; + + /** + * lms 服务名 + * + * 注意,需要保证和 spring.application.name 保持一致 + */ + String LMS_NAME = "lms-server"; + + /** + * lms 服务的前缀 + */ + String LMS_PREFIX = RPC_API_PREFIX + "/lms"; + + /** + * wms 服务名 + * + * 注意,需要保证和 spring.application.name 保持一致 + */ + String WMS_NAME = "wms-server"; + + /** + * wms 服务的前缀 + */ + String WMS_PREFIX = RPC_API_PREFIX + "/wms"; } diff --git a/nl-framework/nl-spring-boot-starter-execute/pom.xml b/nl-framework/nl-spring-boot-starter-execute/pom.xml new file mode 100644 index 00000000..9d57493b --- /dev/null +++ b/nl-framework/nl-spring-boot-starter-execute/pom.xml @@ -0,0 +1,51 @@ + + + 4.0.0 + + cn.nl.cloud + nl-framework + ${revision} + + + nl-spring-boot-starter-execute + ${project.artifactId} + + + + cn.nl.cloud + nl-common + + + + + org.springframework.boot + spring-boot-configuration-processor + true + + + org.springframework.boot + spring-boot-starter + true + + + + org.springframework.boot + spring-boot-starter + + + + + cn.nl.cloud + nl-spring-boot-starter-rpc + true + + + org.springdoc + springdoc-openapi-starter-webmvc-ui + provided + + + + \ No newline at end of file diff --git a/nl-framework/nl-spring-boot-starter-execute/src/main/java/cn/code/nl/framework/execute/biz/TaskCommonApi.java b/nl-framework/nl-spring-boot-starter-execute/src/main/java/cn/code/nl/framework/execute/biz/TaskCommonApi.java new file mode 100644 index 00000000..31dd840a --- /dev/null +++ b/nl-framework/nl-spring-boot-starter-execute/src/main/java/cn/code/nl/framework/execute/biz/TaskCommonApi.java @@ -0,0 +1,10 @@ +package cn.code.nl.framework.execute.biz; + +/** + * + * @Author: liyongde + * @Date: 2026/7/15 14:54 + */ +public interface TaskCommonApi { + void doHandlePicked(); +} diff --git a/nl-framework/nl-spring-boot-starter-execute/src/main/java/cn/code/nl/framework/execute/biz/lms/LmsTaskCommonApi.java b/nl-framework/nl-spring-boot-starter-execute/src/main/java/cn/code/nl/framework/execute/biz/lms/LmsTaskCommonApi.java new file mode 100644 index 00000000..04b36e7e --- /dev/null +++ b/nl-framework/nl-spring-boot-starter-execute/src/main/java/cn/code/nl/framework/execute/biz/lms/LmsTaskCommonApi.java @@ -0,0 +1,16 @@ +package cn.code.nl.framework.execute.biz.lms; + +import cn.code.nl.framework.common.enums.RpcConstants; +import cn.code.nl.framework.execute.biz.TaskCommonApi; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.cloud.openfeign.FeignClient; + +/** + * lms通用API + * @Author: liyongde + * @Date: 2026/7/15 14:39 + */ +@FeignClient(name = RpcConstants.LMS_NAME, primary = false) // TODO 芋艿:fallbackFactory = +@Tag(name = "RPC 服务 - lms任务") +public interface LmsTaskCommonApi extends TaskCommonApi { +} diff --git a/nl-framework/nl-spring-boot-starter-execute/src/main/java/cn/code/nl/framework/execute/biz/package-info.java b/nl-framework/nl-spring-boot-starter-execute/src/main/java/cn/code/nl/framework/execute/biz/package-info.java new file mode 100644 index 00000000..277056e1 --- /dev/null +++ b/nl-framework/nl-spring-boot-starter-execute/src/main/java/cn/code/nl/framework/execute/biz/package-info.java @@ -0,0 +1,6 @@ +/** + * 业务实现的API + * @Author: liyongde + * @Date: 2026/7/15 14:38 + */ +package cn.code.nl.framework.execute.biz; \ No newline at end of file diff --git a/nl-framework/nl-spring-boot-starter-execute/src/main/java/cn/code/nl/framework/execute/biz/wms/WmsTaskCommonApi.java b/nl-framework/nl-spring-boot-starter-execute/src/main/java/cn/code/nl/framework/execute/biz/wms/WmsTaskCommonApi.java new file mode 100644 index 00000000..601f4cfd --- /dev/null +++ b/nl-framework/nl-spring-boot-starter-execute/src/main/java/cn/code/nl/framework/execute/biz/wms/WmsTaskCommonApi.java @@ -0,0 +1,16 @@ +package cn.code.nl.framework.execute.biz.wms; + +import cn.code.nl.framework.common.enums.RpcConstants; +import cn.code.nl.framework.execute.biz.TaskCommonApi; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.cloud.openfeign.FeignClient; + +/** + * + * @Author: liyongde + * @Date: 2026/7/15 14:48 + */ +@FeignClient(name = RpcConstants.WMS_NAME, primary = false) // TODO 芋艿:fallbackFactory = +@Tag(name = "RPC 服务 - wms任务") +public interface WmsTaskCommonApi extends TaskCommonApi { +} diff --git a/nl-framework/nl-spring-boot-starter-execute/src/main/java/cn/code/nl/framework/execute/core/AbstractTask.java b/nl-framework/nl-spring-boot-starter-execute/src/main/java/cn/code/nl/framework/execute/core/AbstractTask.java new file mode 100644 index 00000000..06270134 --- /dev/null +++ b/nl-framework/nl-spring-boot-starter-execute/src/main/java/cn/code/nl/framework/execute/core/AbstractTask.java @@ -0,0 +1,28 @@ +package cn.code.nl.framework.execute.core; + +/** + * 抽象类任务契约 + * LMS/WMS子类遵守 + * + * @Author: liyongde + * @Date: 2026/7/15 11:21 + */ +public abstract class AbstractTask { + + // ========== 取货完成、完成、取消的逻辑 ========== + public void doHandlePicked(Long taskId) { + // 子类实现取货完成业务 + } + + public abstract void doHandleFinish(Long taskId); + + public abstract void doHandleCancel(Long taskId); + + /** + * 二次请求 + * @param taskId:任务id + */ + public Long againApply(Long taskId) { + return null; + } +} diff --git a/nl-framework/nl-spring-boot-starter-execute/src/main/java/cn/code/nl/framework/execute/package-info.java b/nl-framework/nl-spring-boot-starter-execute/src/main/java/cn/code/nl/framework/execute/package-info.java new file mode 100644 index 00000000..a2e1cfca --- /dev/null +++ b/nl-framework/nl-spring-boot-starter-execute/src/main/java/cn/code/nl/framework/execute/package-info.java @@ -0,0 +1,6 @@ +/** + * 任务模板父类 + * @Author: liyongde + * @Date: 2026/7/15 11:03 + */ +package cn.code.nl.framework.execute; \ No newline at end of file diff --git a/nl-framework/pom.xml b/nl-framework/pom.xml index 7ae5c781..d03e7122 100644 --- a/nl-framework/pom.xml +++ b/nl-framework/pom.xml @@ -30,6 +30,7 @@ nl-spring-boot-starter-biz-tenant nl-spring-boot-starter-biz-data-permission nl-spring-boot-starter-biz-ip + nl-spring-boot-starter-execute nl-framework diff --git a/nl-module-lms/nl-module-lms-server/pom.xml b/nl-module-lms/nl-module-lms-server/pom.xml index 562d3f5f..8f91845d 100644 --- a/nl-module-lms/nl-module-lms-server/pom.xml +++ b/nl-module-lms/nl-module-lms-server/pom.xml @@ -32,6 +32,10 @@ nl-module-lms-api ${revision} + + cn.nl.cloud + nl-spring-boot-starter-execute + diff --git a/nl-module-lms/nl-module-lms-server/src/main/java/cn/code/nl/module/lms/DemoTask.java b/nl-module-lms/nl-module-lms-server/src/main/java/cn/code/nl/module/lms/DemoTask.java new file mode 100644 index 00000000..18671e11 --- /dev/null +++ b/nl-module-lms/nl-module-lms-server/src/main/java/cn/code/nl/module/lms/DemoTask.java @@ -0,0 +1,25 @@ +package cn.code.nl.module.lms; + +import cn.code.nl.framework.execute.core.AbstractTask; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +/** + * 案例代码 + * @Author: liyongde + * @Date: 2026/7/15 14:30 + */ +@Slf4j +@Component +public class DemoTask extends AbstractTask { + + @Override + public void doHandleFinish(Long taskId) { + + } + + @Override + public void doHandleCancel(Long taskId) { + + } +} diff --git a/nl-module-task/nl-module-task-api/pom.xml b/nl-module-task/nl-module-task-api/pom.xml index 62bda8dd..c6d3884c 100644 --- a/nl-module-task/nl-module-task-api/pom.xml +++ b/nl-module-task/nl-module-task-api/pom.xml @@ -44,6 +44,11 @@ true + + cn.nl.cloud + nl-spring-boot-starter-execute + + \ No newline at end of file diff --git a/nl-module-task/nl-module-task-api/src/main/java/cn/code/nl/module/task/enums/TransportTaskStatusEnum.java b/nl-module-task/nl-module-task-api/src/main/java/cn/code/nl/module/task/enums/TransportTaskStatusEnum.java index 7cb148c6..9ff62481 100644 --- a/nl-module-task/nl-module-task-api/src/main/java/cn/code/nl/module/task/enums/TransportTaskStatusEnum.java +++ b/nl-module-task/nl-module-task-api/src/main/java/cn/code/nl/module/task/enums/TransportTaskStatusEnum.java @@ -20,19 +20,17 @@ public enum TransportTaskStatusEnum { EXECUTING("60", "执行中"), - PICKED("61", "已取货搬运中"), + PICKED("65", "已取货搬运中"), - FINISHED_CALLBACK_PENDING("67", "外部完成待业务处理"), + FINISHED_CALLBACK_PENDING("75", "外部完成待业务处理"), - CANCEL_EXTERNAL_PENDING("68", "外部取消中"), + CANCEL_CALLBACK_PENDING("85", "外部取消待业务处理"), - CANCEL_CALLBACK_PENDING("69", "外部取消待业务处理"), + FINISHED("79", "完成"), - FINISHED("70", "完成"), + CANCELLED("89", "取消"), - CANCELLED("80", "取消"), - - FAILED("90", "失败"); + FAILED("99", "失败"); private final String code; private final String name; diff --git a/nl-module-task/nl-module-task-server/src/main/java/cn/code/nl/module/task/mq/producer/TaskEventProducer.java b/nl-module-task/nl-module-task-server/src/main/java/cn/code/nl/module/task/mq/producer/TaskEventProducer.java index 6de3f0d1..4168d271 100644 --- a/nl-module-task/nl-module-task-server/src/main/java/cn/code/nl/module/task/mq/producer/TaskEventProducer.java +++ b/nl-module-task/nl-module-task-server/src/main/java/cn/code/nl/module/task/mq/producer/TaskEventProducer.java @@ -34,7 +34,7 @@ public class TaskEventProducer { message.setEventId(UUID.randomUUID().toString()); } - String destination = TOPIC + ":" + message.getOwnerService(); + String destination = TOPIC + "_" + message.getOwnerService(); try { rocketMQTemplate.syncSend(destination, message); log.info("MQ 发送成功, destination={}, taskId={}, eventType={}", diff --git a/nl-module-task/nl-module-task-server/src/main/java/cn/code/nl/module/task/service/transporttask/TransportTaskFeedbackServiceImpl.java b/nl-module-task/nl-module-task-server/src/main/java/cn/code/nl/module/task/service/transporttask/TransportTaskFeedbackServiceImpl.java index 531871b3..f68c26ce 100644 --- a/nl-module-task/nl-module-task-server/src/main/java/cn/code/nl/module/task/service/transporttask/TransportTaskFeedbackServiceImpl.java +++ b/nl-module-task/nl-module-task-server/src/main/java/cn/code/nl/module/task/service/transporttask/TransportTaskFeedbackServiceImpl.java @@ -105,6 +105,7 @@ public class TransportTaskFeedbackServiceImpl implements TransportTaskFeedbackSe /** * 处理取货完成(61):更新状态 + 同步 HTTP 回调 LMS/WMS + * ownerService: 服务提供商 */ private void handlePicked(TransportTaskDO task, AcsFeedbackReqDTO reqDTO) { if (!isAllowedFrom(task.getTaskStatus(), "60", "61")) {