fix:框架
This commit is contained in:
@@ -0,0 +1,16 @@
|
||||
package cn.code.nl.framework.execute.config;
|
||||
|
||||
import org.springframework.boot.autoconfigure.AutoConfiguration;
|
||||
import org.springframework.context.annotation.ComponentScan;
|
||||
|
||||
/**
|
||||
* 任务执行模块自动配置
|
||||
* 扫描框架包下的 Spring 组件(如 TaskCommonApiFactory、TaskFactory 等)
|
||||
*
|
||||
* @Author: liyongde
|
||||
* @Date: 2026/7/15
|
||||
*/
|
||||
@AutoConfiguration
|
||||
@ComponentScan(basePackages = "cn.code.nl.framework.execute")
|
||||
public class NlExecuteAutoConfiguration {
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package cn.code.nl.framework.execute.config;
|
||||
|
||||
import cn.code.nl.framework.execute.biz.lms.LmsTaskCommonApi;
|
||||
import cn.code.nl.framework.execute.biz.wms.WmsTaskCommonApi;
|
||||
import org.springframework.boot.autoconfigure.AutoConfiguration;
|
||||
import org.springframework.cloud.openfeign.EnableFeignClients;
|
||||
|
||||
/**
|
||||
* 任务执行模块 RPC 配置
|
||||
* 在框架层注册 Feign Client,确保引用此框架的模块自动拥有对应的 Bean
|
||||
*
|
||||
* @Author: liyongde
|
||||
* @Date: 2026/7/15
|
||||
*/
|
||||
@AutoConfiguration
|
||||
@EnableFeignClients(clients = {LmsTaskCommonApi.class, WmsTaskCommonApi.class})
|
||||
public class NlExecuteRpcAutoConfiguration {
|
||||
}
|
||||
@@ -6,7 +6,7 @@ import cn.code.nl.framework.execute.biz.TaskCommonApi;
|
||||
import cn.code.nl.framework.execute.biz.lms.LmsTaskCommonApi;
|
||||
import cn.code.nl.framework.execute.biz.wms.WmsTaskCommonApi;
|
||||
import jakarta.annotation.PostConstruct;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.HashMap;
|
||||
@@ -23,10 +23,10 @@ import java.util.Map;
|
||||
@Component
|
||||
public class TaskCommonApiFactory {
|
||||
|
||||
@Resource
|
||||
@Autowired(required = false)
|
||||
private LmsTaskCommonApi lmsTaskCommonApi;
|
||||
|
||||
@Resource
|
||||
@Autowired(required = false)
|
||||
private WmsTaskCommonApi wmsTaskCommonApi;
|
||||
|
||||
/**
|
||||
@@ -35,12 +35,16 @@ public class TaskCommonApiFactory {
|
||||
private final Map<String, TaskCommonApi> apiMap = new HashMap<>();
|
||||
|
||||
/**
|
||||
* 初始化映射关系
|
||||
* 初始化映射关系(仅注册当前模块已配置的 Feign Client)
|
||||
*/
|
||||
@PostConstruct
|
||||
public void init() {
|
||||
apiMap.put(RpcConstants.LMS_NAME, lmsTaskCommonApi);
|
||||
apiMap.put(RpcConstants.WMS_NAME, wmsTaskCommonApi);
|
||||
if (lmsTaskCommonApi != null) {
|
||||
apiMap.put(RpcConstants.LMS_NAME, lmsTaskCommonApi);
|
||||
}
|
||||
if (wmsTaskCommonApi != null) {
|
||||
apiMap.put(RpcConstants.WMS_NAME, wmsTaskCommonApi);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
cn.code.nl.framework.execute.config.NlExecuteAutoConfiguration
|
||||
cn.code.nl.framework.execute.config.NlExecuteRpcAutoConfiguration
|
||||
@@ -1,30 +0,0 @@
|
||||
package cn.code.nl.module.task.dto;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* ACS 状态反馈请求 DTO
|
||||
*/
|
||||
@Schema(description = "ACS 状态反馈 Request DTO")
|
||||
@Data
|
||||
public class AcsFeedbackReqDTO {
|
||||
|
||||
@Schema(description = "任务ID", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotNull(message = "任务ID不能为空")
|
||||
private Long taskId;
|
||||
|
||||
@Schema(description = "ACS反馈状态:EXECUTING/PICKED/FINISHED/CANCELLED", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotEmpty(message = "反馈状态不能为空")
|
||||
private String status;
|
||||
|
||||
@Schema(description = "事件ID(幂等键)")
|
||||
private String eventId;
|
||||
|
||||
@Schema(description = "ACS反馈扩展数据")
|
||||
private Map<String, Object> payload;
|
||||
}
|
||||
@@ -1,29 +0,0 @@
|
||||
package cn.code.nl.module.task.dto;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* LMS/WMS 业务处理结果回调请求 DTO
|
||||
*/
|
||||
@Schema(description = "RPC - 业务结果回调 Request DTO")
|
||||
@Data
|
||||
public class TaskCallbackResultReqDTO {
|
||||
|
||||
@Schema(description = "任务ID", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotNull(message = "任务ID不能为空")
|
||||
private Long taskId;
|
||||
|
||||
@Schema(description = "事件ID", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotEmpty(message = "事件ID不能为空")
|
||||
private String eventId;
|
||||
|
||||
@Schema(description = "处理结果:SUCCESS/FAILED", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotEmpty(message = "处理结果不能为空")
|
||||
private String result;
|
||||
|
||||
@Schema(description = "结果描述")
|
||||
private String message;
|
||||
}
|
||||
@@ -1,39 +0,0 @@
|
||||
package cn.code.nl.module.task.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 任务事件 MQ 消息体
|
||||
*/
|
||||
@Data
|
||||
public class TaskEventMessage {
|
||||
|
||||
/** 事件ID */
|
||||
private String eventId;
|
||||
|
||||
/** 事件类型:TASK_FINISHED / TASK_CANCELLED */
|
||||
private String eventType;
|
||||
|
||||
/** 任务ID */
|
||||
private Long taskId;
|
||||
|
||||
/** 任务编码 */
|
||||
private String taskCode;
|
||||
|
||||
/** 业务归属服务:LMS / WMS */
|
||||
private String ownerService;
|
||||
|
||||
/** 业务类型 */
|
||||
private String bizType;
|
||||
|
||||
/** 业务侧标识 */
|
||||
private String bizId;
|
||||
|
||||
/** 业务回调处理器编码 */
|
||||
private String handleCode;
|
||||
|
||||
/** 扩展数据 */
|
||||
private Map<String, Object> payload;
|
||||
}
|
||||
@@ -1,37 +0,0 @@
|
||||
package cn.code.nl.module.task.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* Task→LMS/WMS 同步状态回调请求 DTO
|
||||
* LMS/WMS 需依此 DTO 实现回调端点
|
||||
*/
|
||||
@Data
|
||||
public class TaskStatusCallbackReqDTO {
|
||||
|
||||
/** 任务ID */
|
||||
private Long taskId;
|
||||
|
||||
/** 任务编码 */
|
||||
private String taskCode;
|
||||
|
||||
/** 回调状态:当前为 PICKED(61) */
|
||||
private String status;
|
||||
|
||||
/** 业务归属服务 */
|
||||
private String ownerService;
|
||||
|
||||
/** 业务类型 */
|
||||
private String bizType;
|
||||
|
||||
/** 业务侧标识 */
|
||||
private String bizId;
|
||||
|
||||
/** 业务回调处理器编码(LMS/WMS 内部路由) */
|
||||
private String handleCode;
|
||||
|
||||
/** 扩展数据 */
|
||||
private Map<String, Object> payload;
|
||||
}
|
||||
@@ -1,28 +0,0 @@
|
||||
package cn.code.nl.module.task.dto;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* Task→LMS/WMS 同步状态回调响应 DTO
|
||||
*/
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class TaskStatusCallbackRespDTO {
|
||||
|
||||
/** 是否成功 */
|
||||
private Boolean success;
|
||||
|
||||
/** 响应消息 */
|
||||
private String message;
|
||||
|
||||
public static TaskStatusCallbackRespDTO success() {
|
||||
return new TaskStatusCallbackRespDTO(true, "ok");
|
||||
}
|
||||
|
||||
public static TaskStatusCallbackRespDTO fail(String message) {
|
||||
return new TaskStatusCallbackRespDTO(false, message);
|
||||
}
|
||||
}
|
||||
@@ -1,91 +0,0 @@
|
||||
package cn.code.nl.module.task.dto;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* LMS/WMS 创建搬运任务请求 DTO
|
||||
*/
|
||||
@Schema(description = "RPC - 搬运任务创建 Request DTO")
|
||||
@Data
|
||||
public class TransportTaskCreateReqDTO {
|
||||
|
||||
@Schema(description = "任务名称", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotEmpty(message = "任务名称不能为空")
|
||||
private String taskName;
|
||||
|
||||
@Schema(description = "业务归属服务:LMS/WMS", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotEmpty(message = "业务归属服务不能为空")
|
||||
private String ownerService;
|
||||
|
||||
@Schema(description = "业务类型", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotEmpty(message = "业务类型不能为空")
|
||||
private String bizType;
|
||||
|
||||
@Schema(description = "业务侧标识", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotEmpty(message = "业务侧标识不能为空")
|
||||
private String bizId;
|
||||
|
||||
@Schema(description = "业务回调处理器编码", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotEmpty(message = "业务回调处理器编码不能为空")
|
||||
private String handleCode;
|
||||
|
||||
@Schema(description = "ACS任务类型", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotEmpty(message = "ACS任务类型不能为空")
|
||||
private String acsTaskType;
|
||||
|
||||
@Schema(description = "AGV系统类型", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotEmpty(message = "AGV系统类型不能为空")
|
||||
private String agvSystemType;
|
||||
|
||||
@Schema(description = "取货点1")
|
||||
private String pointCode1;
|
||||
|
||||
@Schema(description = "放货点1")
|
||||
private String pointCode2;
|
||||
|
||||
@Schema(description = "取货点2")
|
||||
private String pointCode3;
|
||||
|
||||
@Schema(description = "放货点2")
|
||||
private String pointCode4;
|
||||
|
||||
@Schema(description = "载具编码")
|
||||
private String vehicleCode;
|
||||
|
||||
@Schema(description = "载具编码2")
|
||||
private String vehicleCode2;
|
||||
|
||||
@Schema(description = "优先级")
|
||||
private String priority;
|
||||
|
||||
@Schema(description = "生产区域")
|
||||
private String productArea;
|
||||
|
||||
@Schema(description = "是否自动下发")
|
||||
private String isAutoIssue;
|
||||
|
||||
@Schema(description = "任务类型")
|
||||
private String taskType;
|
||||
|
||||
@Schema(description = "载具类型")
|
||||
private String vehicleType;
|
||||
|
||||
@Schema(description = "载具数量")
|
||||
private Long vehicleQty;
|
||||
|
||||
@Schema(description = "车号")
|
||||
private String carNo;
|
||||
|
||||
@Schema(description = "任务组标识")
|
||||
private Long taskGroupId;
|
||||
|
||||
@Schema(description = "任务组顺序号")
|
||||
private Long sortSeq;
|
||||
|
||||
@Schema(description = "扩展参数(JSON)")
|
||||
private Map<String, Object> requestParam;
|
||||
}
|
||||
@@ -1,14 +1,11 @@
|
||||
package cn.code.nl.module.task.framework.rpc.config;
|
||||
|
||||
import cn.code.nl.framework.execute.biz.lms.LmsTaskCommonApi;
|
||||
import cn.code.nl.framework.execute.biz.wms.WmsTaskCommonApi;
|
||||
import org.springframework.cloud.openfeign.EnableFeignClients;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
/**
|
||||
* Task 服务 RPC 配置
|
||||
* Feign Client 注册已移至框架层 {@link cn.code.nl.framework.execute.config.NlExecuteRpcAutoConfiguration}
|
||||
*/
|
||||
@Configuration(value = "taskRpcConfiguration", proxyBeanMethods = false)
|
||||
@EnableFeignClients(clients = {LmsTaskCommonApi.class, WmsTaskCommonApi.class})
|
||||
public class RpcConfiguration {
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user