feat(log): 添加实际库区IDs多值查询功能

- 在WmsCoilWarehouseOperationLogBo中新增actualWarehouseIds字段用于存储逗号分隔的库区ID
- 集成StringUtils工具类支持字符串判空处理
- 实现actualWarehouseId与actualWarehouseIds的统一查询逻辑
- 支持单值和多值库区ID的同时检索
- 添加数字格式验证避免解析异常
- 使用distinct去重确保查询条件的准确性
This commit is contained in:
2026-06-27 13:59:56 +08:00
parent 601d8c751f
commit 5a3759b502
2 changed files with 26 additions and 1 deletions

View File

@@ -36,6 +36,11 @@ public class WmsCoilWarehouseOperationLogBo extends BaseEntity {
*/
private Long actualWarehouseId;
/**
* 实际库区IDs逗号分隔
*/
private String actualWarehouseIds;
/**
* 业务操作类型1=收货2=加工3=调拨4=发货
*/

View File

@@ -3,6 +3,7 @@ package com.klp.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.klp.common.core.page.TableDataInfo;
import com.klp.common.utils.StringUtils;
import com.klp.common.core.domain.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -113,7 +114,26 @@ public class WmsCoilWarehouseOperationLogServiceImpl implements IWmsCoilWarehous
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<WmsCoilWarehouseOperationLog> lqw = Wrappers.lambdaQuery();
lqw.eq(bo.getCoilId() != null, WmsCoilWarehouseOperationLog::getCoilId, bo.getCoilId());
lqw.eq(bo.getActualWarehouseId() != null, WmsCoilWarehouseOperationLog::getActualWarehouseId, bo.getActualWarehouseId());
// 统一处理 actualWarehouseId 与 actualWarehouseIds实际库区单值和逗号分隔多值统一收集
List<Long> actualWarehouseIdList = new ArrayList<>();
if (bo.getActualWarehouseId() != null) {
actualWarehouseIdList.add(bo.getActualWarehouseId());
}
if (StringUtils.isNotBlank(bo.getActualWarehouseIds())) {
String[] actualWarehouseIdArray = bo.getActualWarehouseIds().split(",");
for (String actualWarehouseIdStr : actualWarehouseIdArray) {
if (StringUtils.isNotBlank(actualWarehouseIdStr)) {
try {
actualWarehouseIdList.add(Long.parseLong(actualWarehouseIdStr.trim()));
} catch (NumberFormatException ignore) {
}
}
}
}
if (!actualWarehouseIdList.isEmpty()) {
lqw.in(WmsCoilWarehouseOperationLog::getActualWarehouseId,
actualWarehouseIdList.stream().distinct().collect(Collectors.toList()));
}
lqw.eq(bo.getOperationType() != null, WmsCoilWarehouseOperationLog::getOperationType, bo.getOperationType());
lqw.eq(bo.getInOutType() != null, WmsCoilWarehouseOperationLog::getInOutType, bo.getInOutType());
lqw.eq(bo.getCreateBy() != null, WmsCoilWarehouseOperationLog::getCreateBy, bo.getCreateBy());