diff --git a/servo/src/main/java/com/yvan/workbench/controller/LccTask.java b/servo/src/main/java/com/yvan/workbench/controller/LccTask.java
new file mode 100644
index 0000000..179c014
--- /dev/null
+++ b/servo/src/main/java/com/yvan/workbench/controller/LccTask.java
@@ -0,0 +1,60 @@
+package com.yvan.workbench.controller;
+
+import com.galaxis.rcs.common.entity.RcsTaskBiz;
+import com.galaxis.rcs.common.entity.RcsTaskDevice;
+import com.galaxis.rcs.common.entity.RcsTaskPlan;
+import com.yvan.workbench.model.response.RcsTaskRes;
+import org.clever.core.mapper.BeanCopyUtils;
+import org.clever.data.jdbc.DaoFactory;
+import org.clever.data.jdbc.QueryDSL;
+
+import java.util.List;
+import java.util.Objects;
+
+import static com.galaxis.rcs.common.query.QRcsTaskBiz.rcsTaskBiz;
+import static com.galaxis.rcs.common.query.QRcsTaskDevice.rcsTaskDevice;
+import static com.galaxis.rcs.common.query.QRcsTaskPlan.rcsTaskPlan;
+
+/**
+ * 作者:lizw
+ * 创建时间:2025/07/03 10:43
+ */
+public class LccTask {
+ private static final QueryDSL QUERY_DSL = DaoFactory.getQueryDSL();
+
+ public static List allRcsTask() {
+ List rcsTaskBizList = QUERY_DSL.selectFrom(rcsTaskBiz)
+ .orderBy(rcsTaskBiz.envId.asc())
+ .orderBy(rcsTaskBiz.bizType.asc())
+ .orderBy(rcsTaskBiz.priority.asc())
+ .orderBy(rcsTaskBiz.lpn.asc())
+ .orderBy(rcsTaskBiz.taskFrom.asc())
+ .fetch();
+ List rcsTaskPlanList = QUERY_DSL.selectFrom(rcsTaskPlan)
+ .orderBy(rcsTaskPlan.envId.asc())
+ .orderBy(rcsTaskPlan.planType.asc())
+ .orderBy(rcsTaskPlan.seq.asc())
+ .fetch();
+ List rcsTaskDeviceList = QUERY_DSL.selectFrom(rcsTaskDevice)
+ .orderBy(rcsTaskDevice.envId.asc())
+ .orderBy(rcsTaskDevice.deviceType.asc())
+ .orderBy(rcsTaskDevice.seq.asc())
+ .fetch();
+ List res = rcsTaskBizList.stream().map(item -> BeanCopyUtils.mapper(RcsTaskRes.class, item)).toList();
+ for (RcsTaskRes task : res) {
+ List taskPlans = rcsTaskPlanList.stream()
+ .filter(item -> Objects.equals(item.getBizTaskId(), task.getBizTaskId()))
+ .map(item -> BeanCopyUtils.mapper(RcsTaskRes.TaskPlan.class, item))
+ .toList();
+ task.setTaskPlans(taskPlans);
+ for (RcsTaskRes.TaskPlan plan : taskPlans) {
+ List taskDevices = rcsTaskDeviceList.stream()
+ .filter(item -> Objects.equals(item.getBizTaskId(), plan.getBizTaskId()) && Objects.equals(item.getPlanTaskId(), plan.getPlanTaskId()))
+ .map(item -> BeanCopyUtils.mapper(RcsTaskRes.TaskDevice.class, item))
+ .toList();
+ plan.setTaskDevices(taskDevices);
+ }
+ }
+ return res;
+ }
+}
diff --git a/servo/src/main/java/com/yvan/workbench/model/response/RcsTaskRes.java b/servo/src/main/java/com/yvan/workbench/model/response/RcsTaskRes.java
new file mode 100644
index 0000000..bb0040c
--- /dev/null
+++ b/servo/src/main/java/com/yvan/workbench/model/response/RcsTaskRes.java
@@ -0,0 +1,240 @@
+package com.yvan.workbench.model.response;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 作者:lizw
+ * 创建时间:2025/07/03 10:46
+ */
+@Data
+public class RcsTaskRes {
+ private Long bizTaskId;
+ /**
+ * 环境ID
+ */
+ private Long envId;
+ /**
+ * 任务类型
+ */
+ private String bizType;
+ /**
+ * 托盘ID
+ */
+ private String lpn;
+ /**
+ * 任务优先级
+ */
+ private Integer priority;
+ /**
+ * 任务起始点
+ */
+ private String taskFrom;
+ /**
+ * 任务目标点
+ */
+ private String taskTo;
+ /**
+ * 系统分配的执行器ID
+ */
+ private String allocatedExecutorId;
+ /**
+ * 任务负载信息
+ */
+ private String bizTaskPayload;
+ /**
+ * 异常提示信息
+ */
+ private String bizTaskErrorInfo;
+ /**
+ * 任务描述
+ */
+ private String bizTaskDescription;
+ /**
+ * 任务状态
+ */
+ private String bizTaskStatus;
+ /**
+ * 创建时间
+ */
+ private Date createAt;
+ /**
+ * 创建人
+ */
+ private String createBy;
+ /**
+ * 更新时间
+ */
+ private Date updateAt;
+ /**
+ * 更新人
+ */
+ private String updateBy;
+
+ private List taskPlans;
+
+ @Data
+ public static class TaskPlan {
+ /**
+ * 规划ID
+ */
+ private Long planTaskId;
+ /**
+ * 业务任务ID
+ */
+ private Long bizTaskId;
+ /**
+ * 环境ID
+ */
+ private Long envId;
+ /**
+ * 规划类型
+ */
+ private String planType;
+ /**
+ * 执行器ID
+ */
+ private String executorId;
+ /**
+ * 规划序号
+ */
+ private Integer seq;
+ /**
+ * 目标点ID
+ */
+ private String targetId;
+ /**
+ * 目标点货架列
+ */
+ private Integer targetBay;
+ /**
+ * 目标点货架层
+ */
+ private Integer targetLevel;
+ /**
+ * 目标点货架格
+ */
+ private Integer targetCell;
+ /**
+ * 目标点旋转角度
+ */
+ private BigDecimal targetRotation;
+ /**
+ * 背负托盘ID
+ */
+ private String loadLpn;
+ /**
+ * 任务负载信息
+ */
+ private String planTaskPayload;
+ /**
+ * 规划执行状态
+ */
+ private String planTaskStatus;
+ /**
+ * 异常提示信息
+ */
+ private String planTaskErrorInfo;
+ /**
+ * 任务描述
+ */
+ private String planTaskDescription;
+ /**
+ * 创建时间
+ */
+ private Date createAt;
+ /**
+ * 创建人
+ */
+ private String createBy;
+ /**
+ * 更新时间
+ */
+ private Date updateAt;
+ /**
+ * 更新人
+ */
+ private String updateBy;
+
+ private List taskDevices;
+ }
+
+ @Data
+ public static class TaskDevice {
+ /**
+ * 设备任务ID
+ */
+ private Long deviceTaskId;
+ /**
+ * 规划ID
+ */
+ private Long planTaskId;
+ /**
+ * 业务任务ID
+ */
+ private Long bizTaskId;
+ /**
+ * 环境ID
+ */
+ private Long envId;
+ /**
+ * 设备类型
+ */
+ private String deviceType;
+ /**
+ * 执行器ID
+ */
+ private String deviceItemId;
+ /**
+ * 执行序号
+ */
+ private Integer seq;
+ /**
+ * 报文类型
+ */
+ private String packetType;
+ /**
+ * 报文目标点
+ */
+ private String packetEndPoint;
+ /**
+ * 报文内容
+ */
+ private String packetPayload;
+ /**
+ * 任务负载信息
+ */
+ private String deviceTaskPayload;
+ /**
+ * 执行状态
+ */
+ private String deviceTaskStatus;
+ /**
+ * 异常提示信息
+ */
+ private String deviceTaskErrorInfo;
+ /**
+ * 任务描述
+ */
+ private String deviceTaskDescription;
+ /**
+ * 创建时间
+ */
+ private Date createAt;
+ /**
+ * 创建人
+ */
+ private String createBy;
+ /**
+ * 更新时间
+ */
+ private Date updateAt;
+ /**
+ * 更新人
+ */
+ private String updateBy;
+ }
+}