From 62c82cacbeaf1326ea95a623456b065752b000a4 Mon Sep 17 00:00:00 2001
From: lizw-2015 <1183409807@qq.com>
Date: Thu, 3 Jul 2025 17:36:16 +0800
Subject: [PATCH] =?UTF-8?q?feat(device):=20=E6=B7=BB=E5=8A=A0=E8=AE=BE?=
=?UTF-8?q?=E5=A4=87=E7=AE=A1=E7=90=86=E5=8A=9F=E8=83=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- 新增 DeviceManager 类,实现设备相关数据查询方法
- 添加 QueryExecutorReq、QueryInvLedgerReq、QueryInvLpnReq、QueryLocationReq 等请求模型类
- 实现 locations 和 vehicles 页面的查询功能,包括表单输入和表格展示
- 优化页面样式,添加查询按钮和数据加载状态显示
---
.../yvan/workbench/controller/DeviceManager.java | 82 ++++++++++++++++++++++
.../workbench/model/request/QueryExecutorReq.java | 15 ++++
.../workbench/model/request/QueryInvLedgerReq.java | 13 ++++
.../workbench/model/request/QueryInvLpnReq.java | 15 ++++
.../workbench/model/request/QueryLocationReq.java | 13 ++++
5 files changed, 138 insertions(+)
create mode 100644 servo/src/main/java/com/yvan/workbench/controller/DeviceManager.java
create mode 100644 servo/src/main/java/com/yvan/workbench/model/request/QueryExecutorReq.java
create mode 100644 servo/src/main/java/com/yvan/workbench/model/request/QueryInvLedgerReq.java
create mode 100644 servo/src/main/java/com/yvan/workbench/model/request/QueryInvLpnReq.java
create mode 100644 servo/src/main/java/com/yvan/workbench/model/request/QueryLocationReq.java
diff --git a/servo/src/main/java/com/yvan/workbench/controller/DeviceManager.java b/servo/src/main/java/com/yvan/workbench/controller/DeviceManager.java
new file mode 100644
index 0000000..34b57a2
--- /dev/null
+++ b/servo/src/main/java/com/yvan/workbench/controller/DeviceManager.java
@@ -0,0 +1,82 @@
+package com.yvan.workbench.controller;
+
+import com.galaxis.rcs.common.entity.LccBasExecutor;
+import com.galaxis.rcs.common.entity.LccBasLocation;
+import com.galaxis.rcs.common.entity.LccInvLedger;
+import com.querydsl.sql.SQLQuery;
+import com.yvan.workbench.model.request.QueryExecutorReq;
+import com.yvan.workbench.model.request.QueryInvLedgerReq;
+import com.yvan.workbench.model.request.QueryInvLpnReq;
+import com.yvan.workbench.model.request.QueryLocationReq;
+import org.apache.commons.lang3.StringUtils;
+import org.clever.core.model.request.QueryByPage;
+import org.clever.core.model.request.page.Page;
+import org.clever.data.jdbc.DaoFactory;
+import org.clever.data.jdbc.QueryDSL;
+import org.clever.data.jdbc.querydsl.utils.QueryDslUtils;
+
+import java.util.LinkedHashMap;
+import java.util.List;
+
+import static com.galaxis.rcs.common.query.QLccBasContainer.lccBasContainer;
+import static com.galaxis.rcs.common.query.QLccBasExecutor.lccBasExecutor;
+import static com.galaxis.rcs.common.query.QLccBasLocation.lccBasLocation;
+import static com.galaxis.rcs.common.query.QLccInvLedger.lccInvLedger;
+import static com.galaxis.rcs.common.query.QLccInvLpn.lccInvLpn;
+
+/**
+ * 作者:lizw
+ * 创建时间:2025/07/03 14:33
+ */
+public class DeviceManager {
+ private static final QueryDSL QUERY_DSL = DaoFactory.getQueryDSL();
+
+ public static List queryLocation(QueryLocationReq req) {
+ SQLQuery query = QUERY_DSL.selectFrom(lccBasLocation).orderBy(lccBasLocation.locCode.asc());
+ if (StringUtils.isNotBlank(req.getLocCode())) {
+ query.where(lccBasLocation.locCode.eq(req.getLocCode().trim()));
+ }
+ return query.fetch();
+ }
+
+ public static List queryExecutor(QueryExecutorReq req) {
+ SQLQuery query = QUERY_DSL.selectFrom(lccBasExecutor).orderBy(lccBasExecutor.executorId.asc());
+ if (StringUtils.isNotBlank(req.getVirtualFloorCode())) {
+ query.where(lccBasExecutor.executorId.eq(req.getVirtualFloorCode().trim()));
+ }
+ if (req.getIsActive() != null) {
+ query.where(lccBasExecutor.isActive.eq(req.getIsActive()));
+ }
+ return query.fetch();
+ }
+
+ public static Page> queryInvLpn(QueryInvLpnReq req) {
+ SQLQuery> query = QUERY_DSL.select(QueryDslUtils.linkedMap(lccInvLpn, lccBasLocation, lccBasContainer))
+ .from(lccInvLpn)
+ .innerJoin(lccBasLocation).on(
+ lccInvLpn.locCode.eq(lccBasLocation.locCode).and(
+ lccBasLocation.envId.eq(lccBasLocation.envId)
+ )
+ )
+ .innerJoin(lccBasContainer).on(
+ lccInvLpn.lpn.eq(lccInvLpn.lpn).and(
+ lccBasContainer.envId.eq(lccInvLpn.envId)
+ )
+ ).orderBy(lccInvLpn.lpn.asc());
+ if (StringUtils.isNotBlank(req.getLpn())) {
+ query.where(lccInvLpn.lpn.eq(req.getLpn().trim()));
+ }
+ if (StringUtils.isNotBlank(req.getLocCode())) {
+ query.where(lccInvLpn.locCode.eq(req.getLocCode().trim()));
+ }
+ return QueryDslUtils.queryByPage(query, QueryByPage.getCurrent());
+ }
+
+ public static Page queryInvLedger(QueryInvLedgerReq req) {
+ SQLQuery query = QUERY_DSL.selectFrom(lccInvLedger).orderBy(lccInvLedger.ledgerId.asc());
+ if (StringUtils.isNotBlank(req.getLpn())) {
+ query.where(lccInvLedger.lpn.eq(req.getLpn().trim()));
+ }
+ return QueryDslUtils.queryByPage(query, QueryByPage.getCurrent());
+ }
+}
diff --git a/servo/src/main/java/com/yvan/workbench/model/request/QueryExecutorReq.java b/servo/src/main/java/com/yvan/workbench/model/request/QueryExecutorReq.java
new file mode 100644
index 0000000..1851a15
--- /dev/null
+++ b/servo/src/main/java/com/yvan/workbench/model/request/QueryExecutorReq.java
@@ -0,0 +1,15 @@
+package com.yvan.workbench.model.request;
+
+import lombok.Data;
+
+/**
+ * 作者:lizw
+ * 创建时间:2025/07/03 14:43
+ */
+@Data
+public class QueryExecutorReq {
+ /** 仿真车所在楼层 */
+ private String virtualFloorCode;
+ /** 是否激活 */
+ private Boolean isActive;
+}
diff --git a/servo/src/main/java/com/yvan/workbench/model/request/QueryInvLedgerReq.java b/servo/src/main/java/com/yvan/workbench/model/request/QueryInvLedgerReq.java
new file mode 100644
index 0000000..0375489
--- /dev/null
+++ b/servo/src/main/java/com/yvan/workbench/model/request/QueryInvLedgerReq.java
@@ -0,0 +1,13 @@
+package com.yvan.workbench.model.request;
+
+import lombok.Data;
+
+/**
+ * 作者:lizw
+ * 创建时间:2025/07/03 14:58
+ */
+@Data
+public class QueryInvLedgerReq {
+ /** 托盘条码 */
+ private String lpn;
+}
diff --git a/servo/src/main/java/com/yvan/workbench/model/request/QueryInvLpnReq.java b/servo/src/main/java/com/yvan/workbench/model/request/QueryInvLpnReq.java
new file mode 100644
index 0000000..74f623e
--- /dev/null
+++ b/servo/src/main/java/com/yvan/workbench/model/request/QueryInvLpnReq.java
@@ -0,0 +1,15 @@
+package com.yvan.workbench.model.request;
+
+import lombok.Data;
+
+/**
+ * 作者:lizw
+ * 创建时间:2025/07/03 14:48
+ */
+@Data
+public class QueryInvLpnReq {
+ /** 托盘条码 */
+ private String lpn;
+ /** 库存位置 */
+ private String locCode;
+}
diff --git a/servo/src/main/java/com/yvan/workbench/model/request/QueryLocationReq.java b/servo/src/main/java/com/yvan/workbench/model/request/QueryLocationReq.java
new file mode 100644
index 0000000..53c86f5
--- /dev/null
+++ b/servo/src/main/java/com/yvan/workbench/model/request/QueryLocationReq.java
@@ -0,0 +1,13 @@
+package com.yvan.workbench.model.request;
+
+import lombok.Data;
+
+/**
+ * 作者:lizw
+ * 创建时间:2025/07/03 14:38
+ */
+@Data
+public class QueryLocationReq {
+ /** 位置编码 */
+ private String locCode;
+}