From 2781f0d8d9b2b09e07505b8e154dbe7393e0edb6 Mon Sep 17 00:00:00 2001 From: rcx <3084692334@qq.com> Date: Mon, 31 Aug 2026 10:17:53 +0800 Subject: [PATCH] =?UTF-8?q?feat(oms):=E5=BA=93=E5=AD=98=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E5=AF=BC=E5=87=BA=E6=96=B0=E5=A2=9E=E5=BA=93=E5=AD=98=E4=B8=BA?= =?UTF-8?q?0=E6=98=AF=E5=90=A6=E5=AF=BC=E5=87=BA=E5=8F=82=E6=95=B0=20/rese?= =?UTF-8?q?rvationMaterialInventoryApi/list=20=E6=96=B0=E5=A2=9E=E5=8F=AF?= =?UTF-8?q?=E9=80=89=E5=8F=82=E6=95=B0=20excludeZeroInventoryQuantity?= =?UTF-8?q?=EF=BC=8C=E5=89=8D=E7=AB=AF"=E5=BA=93=E5=AD=98=E4=B8=BA0?= =?UTF-8?q?=E6=98=AF=E5=90=A6=E5=AF=BC=E5=87=BA"=E9=80=89"=E6=98=AF"?= =?UTF-8?q?=E6=97=B6=E4=BC=A0=20true=EF=BC=8CSQL=20=E4=BB=A5=20HAVING=20IF?= =?UTF-8?q?NULL(SUM(inventory=5Fquantity),0)>0=20=E6=8E=92=E9=99=A4?= =?UTF-8?q?=E6=B1=87=E6=80=BB=E5=BA=93=E5=AD=98=E4=B8=BA0=E7=9A=84?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=EF=BC=9B=E6=89=80=E6=9C=89=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E7=BB=B4=E5=BA=A6(all/hz/wl/kw/wlkw/wlExpiry)=E5=85=B16?= =?UTF-8?q?=E6=9D=A1=E6=9F=A5=E8=AF=A2=E5=9C=A8=20GROUP=20BY=20=E5=90=8E?= =?UTF-8?q?=E7=BB=9F=E4=B8=80=E6=8C=82=E8=BD=BD=E5=85=AC=E5=85=B1=E7=89=87?= =?UTF-8?q?=E6=AE=B5=20excludeZeroInventoryHaving=EF=BC=8C=E4=B8=8E=20sort?= =?UTF-8?q?=5Forder=20=E5=AF=B90=E5=BA=93=E5=AD=98=E7=9A=84=E5=AE=9A?= =?UTF-8?q?=E4=B9=89=E4=BF=9D=E6=8C=81=E4=B8=80=E8=87=B4=EF=BC=9B=E4=B8=8D?= =?UTF-8?q?=E4=BC=A0=E5=8F=82=E6=95=B0=E6=97=B6=20SQL=20=E4=B8=8D=E6=8B=BC?= =?UTF-8?q?=E6=8E=A5=E6=9D=A1=E4=BB=B6=EF=BC=8C=E8=A1=8C=E4=B8=BA=E4=B8=8E?= =?UTF-8?q?=E5=8E=9F=E6=9D=A5=E5=AE=8C=E5=85=A8=E4=B8=80=E8=87=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../todo/ReservationMaterialInventoryDO.java | 3 +++ .../ReservationMaterialInventoryApi.java | 6 +++++- .../MaterialInventoryMapper.xml | 16 +++++++++++++++- 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/reservationMaterialInventory/repository/todo/ReservationMaterialInventoryDO.java b/mhd_oms/src/main/java/com/mhd/oms/domain/reservationMaterialInventory/repository/todo/ReservationMaterialInventoryDO.java index c31872418..c3985e908 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/reservationMaterialInventory/repository/todo/ReservationMaterialInventoryDO.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/reservationMaterialInventory/repository/todo/ReservationMaterialInventoryDO.java @@ -258,4 +258,7 @@ public class ReservationMaterialInventoryDO extends MaterialBaseDO { @ApiModelProperty("导出按到期日分组排序标识:仅 queryRule=wlExpiry 时生效,true-到期日倒序(日期近的在前、空值最后、0库存靠后);不传-保持原有排序") private Boolean orderByExpiryDate; + + @ApiModelProperty("导出排除库存为0标识:true-排除库存数量汇总为0的数据(所有查询维度 queryRule 均生效);不传-不过滤") + private Boolean excludeZeroInventoryQuantity; } \ No newline at end of file diff --git a/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/reservationMaterialInventory/ReservationMaterialInventoryApi.java b/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/reservationMaterialInventory/ReservationMaterialInventoryApi.java index 7d1368cf8..8e124d521 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/reservationMaterialInventory/ReservationMaterialInventoryApi.java +++ b/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/reservationMaterialInventory/ReservationMaterialInventoryApi.java @@ -47,12 +47,13 @@ public class ReservationMaterialInventoryApi extends BaseController { /** * 分页查询物料库存列表 */ - @ApiOperation("查询物料库存列表") + @ApiOperation(value = "查询物料库存列表", notes = "导出复用本接口,任意查询维度(queryRule)下:前端\"库存为0是否导出\"选\"是\"时传 excludeZeroInventoryQuantity=true 排除库存为0的数据,不传或 false 导出全部(含库存为0);orderByExpiryDate=true 时按到期日分组排序") @GetMapping("/list") public TableDataInfo list(ReservationMaterialInventoryDTO materialInventoryDTO, @RequestParam(value = "customerName", required = false) String customerName, @RequestParam(value = "expiryDateStart", required = false) String expiryDateStart, @RequestParam(value = "expiryDateEnd", required = false) String expiryDateEnd, + @RequestParam(value = "excludeZeroInventoryQuantity", required = false) Boolean excludeZeroInventoryQuantity, @RequestParam(value = "orderByExpiryDate", required = false) Boolean orderByExpiryDate) { // 出库分配前端传的是客户名称 customerName,这里通过名称查询货主ID,使用精确匹配(不模糊匹配) @@ -86,6 +87,9 @@ public class ReservationMaterialInventoryApi extends BaseController { // 导出场景:queryRule=wlExpiry + orderByExpiryDate=true 时 SQL 按到期日倒序分组 // (日期近的在前、空值最后、0库存靠后、同到期日按更新时间倒序) materialInventoryDO.setOrderByExpiryDate(orderByExpiryDate); + // 导出场景:前端"库存为0是否导出"选"是"时传 excludeZeroInventoryQuantity=true, + // SQL 用 HAVING 排除汇总库存为0的数据(与 WMS 同名参数语义一致) + materialInventoryDO.setExcludeZeroInventoryQuantity(excludeZeroInventoryQuantity); startPage(); // 使用带批次属性的查询方法,批次属性值从库存表中获取 List list = materialInventoryApplicationService.queryListWithBatchAttributes(materialInventoryDO); diff --git a/mhd_oms/src/main/resources/mapper/reservationMaterialInventory/MaterialInventoryMapper.xml b/mhd_oms/src/main/resources/mapper/reservationMaterialInventory/MaterialInventoryMapper.xml index 0297f8a29..10b846bf0 100644 --- a/mhd_oms/src/main/resources/mapper/reservationMaterialInventory/MaterialInventoryMapper.xml +++ b/mhd_oms/src/main/resources/mapper/reservationMaterialInventory/MaterialInventoryMapper.xml @@ -282,6 +282,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + + HAVING IFNULL(SUM(a.inventory_quantity), 0) > 0 + + + @@ -369,6 +381,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" GROUP BY a.MATERIAL_BASE_INFO_ID, a.EXPIRY_DATE, a.shipper_id, a.shipper_code, a.shipper_name, a.organization_id, a.organization_name, a.top_organization_id, b.material_code, b.material_name + @@ -394,6 +407,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" GROUP BY a.SHIPPER_ID +