feat(wms): 添加按钢卷ID查询操作记录功能

- 在 IWmsCoilWarehouseOperationLogService 中新增 queryByCoilId 方法
- 在 WmsCoilWarehouseOperationLogController 中新增 /byCoilId 接口
- 在 WmsCoilWarehouseOperationLogServiceImpl 中实现按钢卷ID查询逻辑
- 实现关联查询钢卷信息和库区信息的功能
- 支持按操作类型、出入库类型、时间范围进行筛选
- 将原有仓库ID查询接口的参数改为可选参数
This commit is contained in:
2026-03-06 11:41:07 +08:00
parent 1f6b3a9ace
commit bc99d985f5
3 changed files with 84 additions and 2 deletions

View File

@@ -207,4 +207,55 @@ public class WmsCoilWarehouseOperationLogServiceImpl implements IWmsCoilWarehous
}
return result;
}
@Override
public List<WmsCoilWarehouseOperationLogVo> queryByCoilId(Long coilId, Integer operationType, Integer inOutType, Date startTime, Date endTime) {
LambdaQueryWrapper<WmsCoilWarehouseOperationLog> lqw = Wrappers.lambdaQuery();
lqw.eq(WmsCoilWarehouseOperationLog::getCoilId, coilId);
lqw.eq(operationType != null, WmsCoilWarehouseOperationLog::getOperationType, operationType);
lqw.eq(inOutType != null, WmsCoilWarehouseOperationLog::getInOutType, inOutType);
lqw.ge(startTime != null, WmsCoilWarehouseOperationLog::getCreateTime, startTime);
lqw.le(endTime != null, WmsCoilWarehouseOperationLog::getCreateTime, endTime);
lqw.orderByDesc(WmsCoilWarehouseOperationLog::getCreateTime);
List<WmsCoilWarehouseOperationLogVo> list = baseMapper.selectVoList(lqw);
Set<Long> coilIds = list.stream()
.map(WmsCoilWarehouseOperationLogVo::getCoilId)
.filter(Objects::nonNull)
.collect(Collectors.toSet());
Set<Long> warehouseIds = list.stream()
.map(WmsCoilWarehouseOperationLogVo::getActualWarehouseId)
.filter(Objects::nonNull)
.collect(Collectors.toSet());
Map<Long, WmsMaterialCoilVo> coilMap = new HashMap<>();
if (!coilIds.isEmpty()) {
WmsMaterialCoilBo bo = new WmsMaterialCoilBo();
bo.setCoilIds(coilIds.stream().map(String::valueOf).collect(Collectors.joining(",")));
List<WmsMaterialCoilVo> coils = wmsMaterialCoilService.queryList(bo);
for (WmsMaterialCoilVo coil : coils) {
coilMap.put(coil.getCoilId(), coil);
}
}
Map<Long, WmsActualWarehouseVo> warehouseMap = new HashMap<>();
if (!warehouseIds.isEmpty()) {
LambdaQueryWrapper<WmsActualWarehouse> warehouseQuery = Wrappers.lambdaQuery();
warehouseQuery.in(WmsActualWarehouse::getActualWarehouseId, warehouseIds);
List<WmsActualWarehouse> warehouses = wmsActualWarehouseMapper.selectList(warehouseQuery);
for (WmsActualWarehouse warehouse : warehouses) {
WmsActualWarehouseVo vo = BeanUtil.toBean(warehouse, WmsActualWarehouseVo.class);
warehouseMap.put(warehouse.getActualWarehouseId(), vo);
}
}
for (WmsCoilWarehouseOperationLogVo vo : list) {
vo.setCoil(coilMap.get(vo.getCoilId()));
vo.setWarehouse(warehouseMap.get(vo.getActualWarehouseId()));
}
return list;
}
}