From 4a11ae2079208f60af2159cf521634d408fb5dcf Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Thu, 5 Mar 2026 16:30:18 +0800 Subject: [PATCH] =?UTF-8?q?feat(wms):=20=E5=AE=9E=E7=8E=B0=E9=92=A2?= =?UTF-8?q?=E5=8D=B7=E5=88=97=E8=A1=A8=E6=8C=89=E5=8F=91=E8=B4=A7=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E6=8E=92=E5=BA=8F=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在WmsMaterialCoilBo中新增statusFirst字段用于控制排序逻辑 - 在WmsDeliveryWaybillDetailController中设置statusFirst为true以启用新排序 - 在WmsMaterialCoilServiceImpl中实现按发货状态排序的SQL逻辑 - 未发货钢卷(status=0)将排在已发货钢卷之前显示 - 保持原有的仓库ID和创建时间排序规则作为备选方案 --- .../controller/WmsDeliveryWaybillDetailController.java | 1 + .../main/java/com/klp/domain/bo/WmsMaterialCoilBo.java | 4 ++++ .../klp/service/impl/WmsMaterialCoilServiceImpl.java | 10 +++++++--- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/klp-wms/src/main/java/com/klp/controller/WmsDeliveryWaybillDetailController.java b/klp-wms/src/main/java/com/klp/controller/WmsDeliveryWaybillDetailController.java index bf120f90..f9c003ef 100644 --- a/klp-wms/src/main/java/com/klp/controller/WmsDeliveryWaybillDetailController.java +++ b/klp-wms/src/main/java/com/klp/controller/WmsDeliveryWaybillDetailController.java @@ -121,6 +121,7 @@ public class WmsDeliveryWaybillDetailController extends BaseController { return new TableDataInfo<>(); } bo.setCoilIds(boundCoilIds.stream().map(String::valueOf).collect(java.util.stream.Collectors.joining(","))); + bo.setStatusFirst(true); // 未发货的排在前面 return iWmsMaterialCoilService.queryPageList(bo, pageQuery); } } 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 afcaee15..92bb7989 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 @@ -249,5 +249,9 @@ public class WmsMaterialCoilBo extends BaseEntity { // 父钢卷id private String parentCoilId; + + // 已绑定钢卷列表中,未发货(status=0)的排在前面 + @TableField(exist = false) + private Boolean statusFirst; } 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 1bce9400..8e9c6eae 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 @@ -649,9 +649,13 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { qw.apply("COALESCE(ca.abnormal_count, 0) >= {0}", bo.getMinAbnormalCount()); } // 排序: - // 再按实际库位ID升序(库位ID为自增,升序即可满足“先生成的库位在前”) - // - 否则:保持原有创建时间倒序 - if (Boolean.TRUE.equals(bo.getOrderBy())) { + // 已绑定钢卷列表中,未发货(status=0)的排在前面 + if (Boolean.TRUE.equals(bo.getStatusFirst())) { + qw.orderByAsc("mc.status = 1"); + qw.orderByAsc("mc.status"); + } else if (Boolean.TRUE.equals(bo.getOrderBy())) { + // 再按实际库位ID升序(库位ID为自增,升序即可满足“先生成的库位在前”) + // - 否则:保持原有创建时间倒序 // MySQL: false(0) < true(1),因此 "IS NULL" 升序可实现非空在前、空值在后 qw.orderByAsc("mc.actual_warehouse_id IS NULL"); qw.orderByAsc("mc.actual_warehouse_id");