This commit is contained in:
2025-10-28 12:20:20 +08:00
parent 0b9f7bc7e9
commit 10d6cc1144
18 changed files with 5032 additions and 47 deletions

View File

@@ -102,8 +102,6 @@ public class WmsStockServiceImpl implements IWmsStockService {
LambdaQueryWrapper<WmsStock> lqw = new LambdaQueryWrapper<>();
lqw.eq(StringUtils.isNotBlank(bo.getItemType()), WmsStock::getItemType, bo.getItemType());
lqw.eq(bo.getItemId() != null, WmsStock::getItemId, bo.getItemId());
lqw.eq(bo.getQuantity() != null, WmsStock::getQuantity, bo.getQuantity());
lqw.eq(StringUtils.isNotBlank(bo.getUnit()), WmsStock::getUnit, bo.getUnit());
lqw.eq(StringUtils.isNotBlank(bo.getBatchNo()), WmsStock::getBatchNo, bo.getBatchNo());
return lqw;
}
@@ -125,8 +123,6 @@ public class WmsStockServiceImpl implements IWmsStockService {
qw.eq(StringUtils.isNotBlank(bo.getItemType()), "s.item_type", bo.getItemType());
qw.eq(bo.getItemId() != null, "s.item_id", bo.getItemId());
qw.eq(bo.getQuantity() != null, "s.quantity", bo.getQuantity());
qw.eq(StringUtils.isNotBlank(bo.getUnit()), "s.unit", bo.getUnit());
qw.eq(StringUtils.isNotBlank(bo.getBatchNo()), "s.batch_no", bo.getBatchNo());
return qw;
@@ -179,7 +175,37 @@ public class WmsStockServiceImpl implements IWmsStockService {
return baseMapper.getStockByItemId(rawMaterialId);
}
/**
* 查询库存分布(按仓库统计)
*/
@Override
public WmsStockVo queryStockDistribution(WmsStockBo bo) {
if (bo.getItemType() == null || bo.getItemId() == null) {
throw new RuntimeException("物品类型和物品ID不能为空");
}
// 1. 计算总库存量
BigDecimal totalQuantity = BigDecimal.ZERO;
// 2. 按仓库统计库存分布
List<WmsStockVo> distributionList = baseMapper.selectStockDistribution(bo.getItemType(), bo.getItemId());
// 计算总量
for (WmsStockVo vo : distributionList) {
if (vo.getTotalQuantity() != null) {
totalQuantity = totalQuantity.add(vo.getTotalQuantity());
}
}
// 构建返回对象
WmsStockVo result = new WmsStockVo();
result.setItemType(bo.getItemType());
result.setItemId(bo.getItemId());
result.setTotalQuantity(totalQuantity);
result.setStockDistribution(distributionList);
return result;
}
/**
* 获取指定仓库ID及其所有子仓库ID