feat: task-api模块请求/响应DTO

This commit is contained in:
2026-07-14 17:04:31 +08:00
parent 2d76497f0a
commit a0f1916cf8
6 changed files with 254 additions and 0 deletions

View File

@@ -0,0 +1,30 @@
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;
}

View File

@@ -0,0 +1,29 @@
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;
}

View File

@@ -0,0 +1,39 @@
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;
}

View File

@@ -0,0 +1,37 @@
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;
}

View File

@@ -0,0 +1,28 @@
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);
}
}

View File

@@ -0,0 +1,91 @@
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;
}