feat(wms): 实现钢卷列表按发货状态排序功能

- 在WmsMaterialCoilBo中新增statusFirst字段用于控制排序逻辑
- 在WmsDeliveryWaybillDetailController中设置statusFirst为true以启用新排序
- 在WmsMaterialCoilServiceImpl中实现按发货状态排序的SQL逻辑
- 未发货钢卷(status=0)将排在已发货钢卷之前显示
- 保持原有的仓库ID和创建时间排序规则作为备选方案
This commit is contained in:
2026-03-05 16:30:18 +08:00
parent e8b40d2fa3
commit 4a11ae2079
3 changed files with 12 additions and 3 deletions

View File

@@ -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");