feat(wms): 实现钢卷列表按发货状态排序功能
- 在WmsMaterialCoilBo中新增statusFirst字段用于控制排序逻辑 - 在WmsDeliveryWaybillDetailController中设置statusFirst为true以启用新排序 - 在WmsMaterialCoilServiceImpl中实现按发货状态排序的SQL逻辑 - 未发货钢卷(status=0)将排在已发货钢卷之前显示 - 保持原有的仓库ID和创建时间排序规则作为备选方案
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -249,5 +249,9 @@ public class WmsMaterialCoilBo extends BaseEntity {
|
||||
|
||||
// 父钢卷id
|
||||
private String parentCoilId;
|
||||
|
||||
// 已绑定钢卷列表中,未发货(status=0)的排在前面
|
||||
@TableField(exist = false)
|
||||
private Boolean statusFirst;
|
||||
}
|
||||
|
||||
|
||||
@@ -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");
|
||||
|
||||
Reference in New Issue
Block a user