feat(WmsMaterialCoil): 添加库区ID列表查询支持

- 在WmsMaterialCoilBo中新增warehouseIds字段用于存储多个库区ID
- 修改查询逻辑以同时支持单个warehouseId和多个warehouseIds的查询条件
- 实现字符串分割和数字转换功能处理逗号分隔的库区ID列表
- 使用IN查询替代EQ查询以支持多库区条件匹配
- 添加数据去重处理避免重复的库区ID影响查询结果
This commit is contained in:
2026-01-15 17:05:47 +08:00
parent 364ecb3ab0
commit bad618deac
2 changed files with 25 additions and 1 deletions

View File

@@ -56,6 +56,11 @@ public class WmsMaterialCoilBo extends BaseEntity {
*/ */
private Long warehouseId; private Long warehouseId;
/**
* 所在库区IDs逗号分隔
*/
private String warehouseIds;
/** /**
* 下一库区ID * 下一库区ID
*/ */

View File

@@ -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,则查询无库区的数据