feat(WmsMaterialCoil): 添加库区ID列表查询支持
- 在WmsMaterialCoilBo中新增warehouseIds字段用于存储多个库区ID - 修改查询逻辑以同时支持单个warehouseId和多个warehouseIds的查询条件 - 实现字符串分割和数字转换功能处理逗号分隔的库区ID列表 - 使用IN查询替代EQ查询以支持多库区条件匹配 - 添加数据去重处理避免重复的库区ID影响查询结果
This commit is contained in:
@@ -56,6 +56,11 @@ public class WmsMaterialCoilBo extends BaseEntity {
|
|||||||
*/
|
*/
|
||||||
private Long warehouseId;
|
private Long warehouseId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 所在库区IDs(逗号分隔)
|
||||||
|
*/
|
||||||
|
private String warehouseIds;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 下一库区ID
|
* 下一库区ID
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -341,12 +341,31 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
|
|||||||
qw.like(StringUtils.isNotBlank(bo.getSupplierCoilNo()), "mc.supplier_coil_no", bo.getSupplierCoilNo());
|
qw.like(StringUtils.isNotBlank(bo.getSupplierCoilNo()), "mc.supplier_coil_no", bo.getSupplierCoilNo());
|
||||||
qw.eq(bo.getDataType() != null, "mc.data_type", bo.getDataType());
|
qw.eq(bo.getDataType() != null, "mc.data_type", bo.getDataType());
|
||||||
qw.eq(bo.getMaterialType() != null, "mc.material_type", bo.getMaterialType());
|
qw.eq(bo.getMaterialType() != null, "mc.material_type", bo.getMaterialType());
|
||||||
qw.eq(bo.getWarehouseId() != null, "mc.warehouse_id", bo.getWarehouseId());
|
|
||||||
qw.eq(bo.getHasMergeSplit() != null, "mc.has_merge_split", bo.getHasMergeSplit());
|
qw.eq(bo.getHasMergeSplit() != null, "mc.has_merge_split", bo.getHasMergeSplit());
|
||||||
qw.eq(bo.getStatus() != null, "mc.status", bo.getStatus());
|
qw.eq(bo.getStatus() != null, "mc.status", bo.getStatus());
|
||||||
qw.eq(StringUtils.isNotBlank(bo.getItemType()), "mc.item_type", bo.getItemType());
|
qw.eq(StringUtils.isNotBlank(bo.getItemType()), "mc.item_type", bo.getItemType());
|
||||||
qw.eq(StringUtils.isNotBlank(bo.getCreateBy()), "mc.create_by", bo.getCreateBy());
|
qw.eq(StringUtils.isNotBlank(bo.getCreateBy()), "mc.create_by", bo.getCreateBy());
|
||||||
qw.eq(StringUtils.isNotBlank(bo.getUpdateBy()), "mc.update_by", bo.getUpdateBy());
|
qw.eq(StringUtils.isNotBlank(bo.getUpdateBy()), "mc.update_by", bo.getUpdateBy());
|
||||||
|
// 统一处理 warehouseId 与 warehouseIds:
|
||||||
|
List<Long> warehouseIdList = new ArrayList<>();
|
||||||
|
if (bo.getWarehouseId() != null) {
|
||||||
|
warehouseIdList.add(bo.getWarehouseId());
|
||||||
|
}
|
||||||
|
if (StringUtils.isNotBlank(bo.getWarehouseIds())) {
|
||||||
|
String[] warehouseIdArray = bo.getWarehouseIds().split(",");
|
||||||
|
for (String warehouseIdStr : warehouseIdArray) {
|
||||||
|
if (StringUtils.isNotBlank(warehouseIdStr)) {
|
||||||
|
try {
|
||||||
|
warehouseIdList.add(Long.parseLong(warehouseIdStr.trim()));
|
||||||
|
} catch (NumberFormatException ignore) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!warehouseIdList.isEmpty()) {
|
||||||
|
qw.in("mc.warehouse_id", warehouseIdList.stream().distinct().collect(Collectors.toList()));
|
||||||
|
}
|
||||||
|
|
||||||
// 新增长度
|
// 新增长度
|
||||||
qw.eq(bo.getLength() != null, "mc.length", bo.getLength());
|
qw.eq(bo.getLength() != null, "mc.length", bo.getLength());
|
||||||
// 如果actualWarehouseId不为空,则根据实际库区ID进行查询 如果为-1,则查询无库区的数据
|
// 如果actualWarehouseId不为空,则根据实际库区ID进行查询 如果为-1,则查询无库区的数据
|
||||||
|
|||||||
Reference in New Issue
Block a user