feat(log): 添加实际库区IDs多值查询功能
- 在WmsCoilWarehouseOperationLogBo中新增actualWarehouseIds字段用于存储逗号分隔的库区ID - 集成StringUtils工具类支持字符串判空处理 - 实现actualWarehouseId与actualWarehouseIds的统一查询逻辑 - 支持单值和多值库区ID的同时检索 - 添加数字格式验证避免解析异常 - 使用distinct去重确保查询条件的准确性
This commit is contained in:
@@ -36,6 +36,11 @@ public class WmsCoilWarehouseOperationLogBo extends BaseEntity {
|
||||
*/
|
||||
private Long actualWarehouseId;
|
||||
|
||||
/**
|
||||
* 实际库区IDs(逗号分隔)
|
||||
*/
|
||||
private String actualWarehouseIds;
|
||||
|
||||
/**
|
||||
* 业务操作类型:1=收货,2=加工,3=调拨,4=发货
|
||||
*/
|
||||
|
||||
@@ -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());
|
||||
|
||||
Reference in New Issue
Block a user