feat:WMS 模块 「库存查询」-「即时库存」

1. 完成即时库存列表接口改造:JSON 返回每个对象中补充规格型号与库存数量合计字段。
     2. 支持前端基于规格型号进行即时库存的组合条件查询
This commit is contained in:
rcx
2026-08-05 18:18:08 +08:00
parent 4b382e4d8f
commit 56b39702b5
8 changed files with 341 additions and 267 deletions
@@ -71,6 +71,12 @@ public interface IMaterialInventoryService extends IService<MaterialInventory>
*/
public List<ImmediateInventoryPO> queryImmediateInventoryList(ImmediateInventoryDO immediateInventoryDO);
/**
* 查询即时库存合计数量
*/
public BigDecimal sumImmediateInventoryQuantity(ImmediateInventoryDO immediateInventoryDO);
/**
* @description 增加指定库存
* @author ZhouGY
@@ -91,6 +91,12 @@ public interface MaterialInventoryMapper extends BaseMapper<MaterialInventory>
*/
public List<ImmediateInventoryPO> queryImmediateInventoryList(ImmediateInventoryDO immediateInventoryDO);
/**
* 查询即时库存合计数量(与列表相同筛选条件,返回库存数量总和)
*/
public BigDecimal sumImmediateInventoryQuantity(ImmediateInventoryDO immediateInventoryDO);
@Select("SELECT SUM(inventory_quantity) FROM material_inventory a LEFT JOIN material_base_info b ON a.material_base_info_id = b.material_base_info_id WHERE a.del_flag = 1 AND b.shipper_id = #{shipperId} AND b.material_base_info_id = #{materialBaseInfoId}")
public BigDecimal sumInventoryQuantityByShipperAndMaterialCode(@Param("shipperId") Long shipperId, @Param("materialBaseInfoId") Long materialBaseInfoId);
@@ -464,11 +464,29 @@ public class MaterialInventoryImpl extends ServiceImpl<MaterialInventoryMapper,
}
}
/**
* 分页查询即时库存列表
*
* @param immediateInventoryDO 即时库存查询条件(含组织权限、货主、物料、仓库、数量区间等筛选条件)
* @return 即时库存列表
*/
@Override
public List<ImmediateInventoryPO> queryImmediateInventoryList(ImmediateInventoryDO immediateInventoryDO) {
return materialInventoryMapper.queryImmediateInventoryList(immediateInventoryDO);
}
/**
* 查询即时库存合计数量
* <p>与列表查询使用相同筛选条件但不分页,统计筛选条件下所有库存数量之和</p>
*
* @param immediateInventoryDO 即时库存查询条件(与列表查询保持一致,保证合计口径一致)
* @return 库存数量合计值,无数据时为 0
*/
@Override
public BigDecimal sumImmediateInventoryQuantity(ImmediateInventoryDO immediateInventoryDO) {
return materialInventoryMapper.sumImmediateInventoryQuantity(immediateInventoryDO);
}
/**
* @description 增加指定库存
* @author ZhouGY
@@ -103,6 +103,20 @@ public class MaterialInventoryDomainService {
return materialInventoryService.queryImmediateInventoryList(immediateInventoryDO);
}
/**
* 查询即时库存合计数量
*/
public BigDecimal sumImmediateInventoryQuantity(ImmediateInventoryDO immediateInventoryDO) {
return materialInventoryService.sumImmediateInventoryQuantity(immediateInventoryDO);
}
/**
* 根据查询条件获取物料库存信息
* <p>按货主、组织、物料、仓库、库位等条件查询,返回汇总后的库存信息(含库存数量合计)</p>
*
* @param materialInventoryDO 物料库存查询条件(含货主、顶级组织、物料基础信息、仓库、库位等)
* @return 匹配条件的物料库存信息,无匹配数据时返回 null
*/
public MaterialInventoryPO selectOneByWhere(MaterialInventoryDO materialInventoryDO) {
return materialInventoryService.selectOneByWhere(materialInventoryDO);
}
@@ -42,10 +42,18 @@ public class ImmediateInventoryPO {
@Excel(name = "物料条形码")
private String barCode;
@ApiModelProperty("规格型号")
@Excel(name = "规格型号")
private String specificationModel;
@ApiModelProperty("库存数量")
@Excel(name = "库存数量")
private BigDecimal inventoryQuantity;
@ApiModelProperty("库存数量合计(当前查询条件下所有库存数量之和)")
@Excel(name = "库存数量合计")
private BigDecimal totalInventoryQuantity;
@ApiModelProperty("可用数量 ")
@Excel(name = "可用数量 ")
private BigDecimal allocationQuantity;
@@ -44,6 +44,10 @@ public class ImmediateInventoryDO extends BaseVOEntity {
@Excel(name = "物料条形码")
private String barCode;
@ApiModelProperty("规格型号")
@Excel(name = "规格型号")
private String specificationModel;
@ApiModelProperty("仓库id")
@Excel(name = "仓库id")
private Long warehouseId;
@@ -45,6 +45,10 @@ public class ImmediateInventoryDTO {
@Excel(name = "物料条形码")
private String barCode;
@ApiModelProperty("规格型号")
@Excel(name = "规格型号")
private String specificationModel;
@ApiModelProperty("仓库id")
@Excel(name = "仓库id")
private Long warehouseId;