From b32c7b0a6abf5c26bb47de8c74090e2297211650 Mon Sep 17 00:00:00 2001
From: lizw-2015 <1183409807@qq.com>
Date: Thu, 3 Jul 2025 14:16:59 +0800
Subject: [PATCH] =?UTF-8?q?feat(task):=20=E6=96=B0=E5=A2=9E=E4=BB=BB?=
=?UTF-8?q?=E5=8A=A1=E5=88=97=E8=A1=A8=E5=B1=95=E7=A4=BA=E5=8A=9F=E8=83=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- 添加 LccTask 类实现任务数据查询
- 创建 RcsTaskRes 类用于任务数据传输
- 更新 TaskMeta 引入新的任务视图组件
- 实现 TaskView2 组件用于展示任务列表
---
.../com/yvan/workbench/controller/LccTask.java | 60 ++++++
.../yvan/workbench/model/response/RcsTaskRes.java | 240 +++++++++++++++++++++
2 files changed, 300 insertions(+)
create mode 100644 servo/src/main/java/com/yvan/workbench/controller/LccTask.java
create mode 100644 servo/src/main/java/com/yvan/workbench/model/response/RcsTaskRes.java
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;
+ }
+}