From 62da999f949fc354ce01f0ca9e59fe290d4174e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A7=A6=E9=B8=BF=E5=B1=95?= <18031053041@163.com> Date: Mon, 11 May 2026 16:02:51 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BA=93=E5=AD=98=E5=88=86=E9=85=8D=E8=B7=9F?= =?UTF-8?q?=E5=BA=93=E5=AD=98=E6=9F=A5=E8=AF=A2=E5=8C=BA=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../repository/todo/MaterialInventoryDO.java | 3 +++ .../dto/materialInventory/MaterialInventoryDTO.java | 4 ++++ .../facadeApi/materialInventory/MaterialInventoryApi.java | 8 ++++++-- .../mapper/materialInventory/MaterialInventoryMapper.xml | 3 +++ 4 files changed, 16 insertions(+), 2 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 cdef48701..104b44a95 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 @@ -244,4 +244,7 @@ public class MaterialInventoryDO extends MaterialBaseDO { @ApiModelProperty("LOT编号") @Excel(name = "LOT编号") private String lotNumber; + + /** 为 true 时 SQL 排除库存数量为 0(含 null 视为 0) */ + private Boolean excludeZeroInventoryQuantity; } \ No newline at end of file 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 003cbdf71..59449f3d4 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 @@ -185,4 +185,8 @@ public class MaterialInventoryDTO extends MaterialBaseDTO { @Excel(name = "冻结数量大于0条件") private String greaterThanFreezeQuantity; + /** 为 true 时排除库存数量为 0 的行(出库分配选库存用);库存查询页不传或 false */ + @ApiModelProperty(value = "是否排除库存数量为0", example = "false") + private Boolean excludeZeroInventoryQuantity; + } \ No newline at end of file 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 ab891ebbb..e8b3fce35 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 @@ -48,11 +48,15 @@ public class MaterialInventoryApi extends BaseController { /** * 分页查询物料库存列表 */ - @ApiOperation("查询物料库存列表") + @ApiOperation(value = "查询物料库存列表", notes = "库存查询页不传 excludeZeroInventoryQuantity 可查出数量为0;出库分配页传 excludeZeroInventoryQuantity=true 排除库存数量为0") @GetMapping("/list") public TableDataInfo list(MaterialInventoryDTO materialInventoryDTO, - @RequestParam(value = "customerName", required = false) String customerName) + @RequestParam(value = "customerName", required = false) String customerName, + @RequestParam(value = "excludeZeroInventoryQuantity", required = false) Boolean excludeZeroInventoryQuantity) { + if (Boolean.TRUE.equals(excludeZeroInventoryQuantity)) { + materialInventoryDTO.setExcludeZeroInventoryQuantity(true); + } // 出库分配前端传的是客户名称 customerName,这里通过名称查询货主ID,使用精确匹配(不模糊匹配) String shipperName = null; // 保存查询到的货主名称 if (StringUtils.isNotBlank(customerName) && materialInventoryDTO.getShipperId() == null) { diff --git a/mhd_wms/src/main/resources/mapper/materialInventory/MaterialInventoryMapper.xml b/mhd_wms/src/main/resources/mapper/materialInventory/MaterialInventoryMapper.xml index f04f9873b..bbda42547 100644 --- a/mhd_wms/src/main/resources/mapper/materialInventory/MaterialInventoryMapper.xml +++ b/mhd_wms/src/main/resources/mapper/materialInventory/MaterialInventoryMapper.xml @@ -183,6 +183,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and a.freeze_quantity = #{freezeQuantity} + + and COALESCE(a.inventory_quantity, 0) > 0 + and a.create_by_name like concat('%', #{createByName}, '%')