From 7874e546c45a503095dbe9ddce5d1e0cea0973af Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Wed, 28 Jan 2026 14:48:13 +0800 Subject: [PATCH] =?UTF-8?q?feat(WmsMaterialCoil):=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E9=92=A2=E5=8D=B7=E5=88=97=E8=A1=A8=E6=8E=92=E5=BA=8F=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 orderBy 字段用于接收前端排序参数 - 实现按实际库位绑定状态排序逻辑 - 支持已绑定库位的钢卷优先展示 - 保持原有创建时间倒序作为默认排序方式 - 添加实际库位ID升序排列支持 --- .../java/com/klp/domain/bo/WmsMaterialCoilBo.java | 4 ++++ .../service/impl/WmsMaterialCoilServiceImpl.java | 14 ++++++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/klp-wms/src/main/java/com/klp/domain/bo/WmsMaterialCoilBo.java b/klp-wms/src/main/java/com/klp/domain/bo/WmsMaterialCoilBo.java index a1e43560..496923a9 100644 --- a/klp-wms/src/main/java/com/klp/domain/bo/WmsMaterialCoilBo.java +++ b/klp-wms/src/main/java/com/klp/domain/bo/WmsMaterialCoilBo.java @@ -237,5 +237,9 @@ public class WmsMaterialCoilBo extends BaseEntity { * 独占状态(0=未独占,1=特殊分卷中) */ private Integer exclusiveStatus; + + // 接收前端传来是否排序的字段 OrderBy + @TableField(exist = false) + private String orderBy; } diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java index 96725f70..b0ce3187 100644 --- a/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java +++ b/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java @@ -611,8 +611,18 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { if (bo.getMinAbnormalCount() != null) { qw.apply("COALESCE(ca.abnormal_count, 0) >= {0}", bo.getMinAbnormalCount()); } - //根据创建时间倒叙 - qw.orderByDesc("mc.create_time"); + // 排序: + // - 当前端需要绑定信息(includeBindInfo=true)时:优先展示“已绑定实际库位”的钢卷(actual_warehouse_id 非空在前) + // 再按实际库位ID升序(库位ID为自增,升序即可满足“先生成的库位在前”) + // - 否则:保持原有创建时间倒序 + if (Boolean.TRUE.equals(bo.getOrderBy())) { + // MySQL: false(0) < true(1),因此 "IS NULL" 升序可实现非空在前、空值在后 + qw.orderByAsc("mc.actual_warehouse_id IS NULL"); + qw.orderByAsc("mc.actual_warehouse_id"); + } else { + //根据创建时间倒叙 + qw.orderByDesc("mc.create_time"); + } return qw; }