From 72cb1d8c07b14e8b37c5bb1e7d3e82c1131779c3 Mon Sep 17 00:00:00 2001 From: rcx <3084692334@qq.com> Date: Wed, 2 Sep 2026 14:04:15 +0800 Subject: [PATCH] =?UTF-8?q?feat(wms):=20=E5=BA=93=E5=AD=98=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E6=8E=A5=E5=8F=A3=E6=96=B0=E5=A2=9E=E9=9A=90=E8=97=8F?= =?UTF-8?q?=E5=8F=AF=E7=94=A8=E6=95=B0=E9=87=8F=E4=B8=BA0=E7=9A=84?= =?UTF-8?q?=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit /materialInventoryApi/list 新增可选参数 excludeZeroAllocationQuantity,为 true 时排除可用数量=0 的库存行;与已有 excludeZeroInventoryQuantity 组成两个独立开关,不传时保持原有行为。配合盘点-库存选择页隐藏数量为0物料及出库选库存隐藏0库存需求。 --- .../repository/todo/MaterialInventoryDO.java | 2 ++ .../materialInventory/MaterialInventoryDTO.java | 3 +++ .../materialInventory/MaterialInventoryApi.java | 17 ++++++++++++++--- .../MaterialInventoryMapper.xml | 6 ++++++ 4 files changed, 25 insertions(+), 3 deletions(-) diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/materialInventory/repository/todo/MaterialInventoryDO.java b/mhd_wms/src/main/java/com/mhd/wms/domain/materialInventory/repository/todo/MaterialInventoryDO.java index 312a5f074..21c834773 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/materialInventory/repository/todo/MaterialInventoryDO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/materialInventory/repository/todo/MaterialInventoryDO.java @@ -256,6 +256,8 @@ public class MaterialInventoryDO extends MaterialBaseDO { /** 为 true 时 SQL 排除库存数量为 0(含 null 视为 0) */ private Boolean excludeZeroInventoryQuantity; + /** 为 true 时 SQL 排除可用数量为 0(含 null 视为 0),出库选库存可用 */ + private Boolean excludeZeroAllocationQuantity; private String expiryDateStr; private String productionDateStr; private String updateTimeStr; diff --git a/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/materialInventory/MaterialInventoryDTO.java b/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/materialInventory/MaterialInventoryDTO.java index fd5bb71cf..944626b17 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/materialInventory/MaterialInventoryDTO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/materialInventory/MaterialInventoryDTO.java @@ -188,6 +188,9 @@ public class MaterialInventoryDTO extends MaterialBaseDTO { /** 为 true 时排除库存数量为 0 的行(出库分配选库存用);库存查询页不传或 false */ @ApiModelProperty(value = "是否排除库存数量为0", example = "false") private Boolean excludeZeroInventoryQuantity; + /** 为 true 时排除可用数量为 0 的行(库存数量>0 但可用数量=0 表示已被冻结/占用完,无法出库);不传或 false 不过滤 */ + @ApiModelProperty(value = "是否排除可用数量为0", example = "false") + private Boolean excludeZeroAllocationQuantity; private String expiryDate; private String productionDate; /** 进货日期(yyyy-MM-dd,单日精确查询) */ diff --git a/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/materialInventory/MaterialInventoryApi.java b/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/materialInventory/MaterialInventoryApi.java index 519994447..ff774c2bb 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/materialInventory/MaterialInventoryApi.java +++ b/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/materialInventory/MaterialInventoryApi.java @@ -53,11 +53,17 @@ public class MaterialInventoryApi extends BaseController { /** * 分页查询物料库存列表 */ - @ApiOperation(value = "查询物料库存列表", notes = "库存查询页不传 excludeZeroInventoryQuantity 可查出数量为0;出库分配页传 excludeZeroInventoryQuantity=true 排除库存数量为0;导出复用本接口:传 isExport=true 标识导出请求(导出显示:商品饮用有效期expiryDate/物料分类materialClassifyName/进货日期purchaseDate,所有查询维度均返回)") + @ApiOperation(value = "查询物料库存列表", notes = "两个隐藏0库存开关(均不传或 false 不过滤,保持原行为):" + + "excludeZeroInventoryQuantity=true 排除库存数量为0(盘点-库存选择页\"隐藏数量为0的物料\");" + + "excludeZeroAllocationQuantity=true 排除可用数量为0(出库选库存,可用数量=0 表示已被冻结/占用完无法出库);" + + "物料编号筛选传 materialCode(精确匹配),仓库筛选传 warehouseId(下拉);" + + "库存查询页不传开关可查出数量为0;导出复用本接口:传 isExport=true 标识导出请求" + + "(导出显示:商品饮用有效期expiryDate/物料分类materialClassifyName/进货日期purchaseDate,所有查询维度均返回)") @GetMapping("/list") public TableDataInfo list(MaterialInventoryDTO materialInventoryDTO, @RequestParam(value = "customerName", required = false) String customerName, @RequestParam(value = "excludeZeroInventoryQuantity", required = false) Boolean excludeZeroInventoryQuantity, + @RequestParam(value = "excludeZeroAllocationQuantity", required = false) Boolean excludeZeroAllocationQuantity, @RequestParam(value = "expiryDateStart", required = false) String expiryDateStart, @RequestParam(value = "expiryDateEnd", required = false) String expiryDateEnd, @RequestParam(value = "purchaseDateStart", required = false) String purchaseDateStart, @@ -69,6 +75,9 @@ public class MaterialInventoryApi extends BaseController { if (Boolean.TRUE.equals(excludeZeroInventoryQuantity)) { materialInventoryDTO.setExcludeZeroInventoryQuantity(true); } + if (Boolean.TRUE.equals(excludeZeroAllocationQuantity)) { + materialInventoryDTO.setExcludeZeroAllocationQuantity(true); + } // 出库分配前端传的是客户名称 customerName,这里通过名称查询货主ID,使用精确匹配(不模糊匹配) String shipperName = null; // 保存查询到的货主名称 if (StringUtils.isNotBlank(customerName) && materialInventoryDTO.getShipperId() == null) { @@ -176,8 +185,10 @@ public class MaterialInventoryApi extends BaseController { // materialDetailId 是新接口专用参数(出库单明细ID),库存 DTO 的同名字段语义是「上架单明细ID」, // 泄入原查询会生成错误的 a.material_detail_id 条件导致查空,进原查询前显式清除 materialInventoryDTO.setMaterialDetailId(null); - // assignableList 非导出场景,isExport 传 null - return list(materialInventoryDTO, customerName, excludeZeroInventoryQuantity, expiryDateStart, expiryDateEnd, null, null, orderByExpiryDate, null); + // assignableList 非导出场景,isExport 传 null;excludeZeroAllocationQuantity 已随 DTO 绑定,透传保持开关生效 + return list(materialInventoryDTO, customerName, excludeZeroInventoryQuantity, + materialInventoryDTO.getExcludeZeroAllocationQuantity(), + expiryDateStart, expiryDateEnd, null, null, orderByExpiryDate, null); } @ApiOperation("查询物料库存列表不分页;queryRule=hz 时按货主+物料分组(同一物料在不同货主各占一行)") diff --git a/mhd_wms/src/main/resources/mapper/materialInventory/MaterialInventoryMapper.xml b/mhd_wms/src/main/resources/mapper/materialInventory/MaterialInventoryMapper.xml index 783b033bb..18cdfa24f 100644 --- a/mhd_wms/src/main/resources/mapper/materialInventory/MaterialInventoryMapper.xml +++ b/mhd_wms/src/main/resources/mapper/materialInventory/MaterialInventoryMapper.xml @@ -217,6 +217,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and COALESCE(a.inventory_quantity, 0) > 0 + + and COALESCE(a.allocation_quantity, 0) > 0 + and a.create_by_name like concat('%', #{createByName}, '%') @@ -378,6 +381,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and COALESCE(mi.inventory_quantity, 0) > 0 + + and COALESCE(mi.allocation_quantity, 0) > 0 + and mi.create_by_name like concat('%', #{createByName}, '%')