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