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; +}