diff --git a/blade-service-api/blade-wms-api/src/main/java/org/springblade/wms/pojo/vo/StStorehouseVO.java b/blade-service-api/blade-wms-api/src/main/java/org/springblade/wms/pojo/vo/StStorehouseVO.java index a21e0be99..13ff2408c 100644 --- a/blade-service-api/blade-wms-api/src/main/java/org/springblade/wms/pojo/vo/StStorehouseVO.java +++ b/blade-service-api/blade-wms-api/src/main/java/org/springblade/wms/pojo/vo/StStorehouseVO.java @@ -1,5 +1,6 @@ package org.springblade.wms.pojo.vo; +import com.baomidou.mybatisplus.annotation.TableField; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; @@ -38,5 +39,8 @@ public class StStorehouseVO extends StStorehouse { @Schema(description = "物料名称") private String goodsName; + @TableField(exist = false) + private String goodsCodeAndGoodsName; + } diff --git a/blade-service/blade-wms/src/main/java/org/springblade/wms/controller/StComboxController.java b/blade-service/blade-wms/src/main/java/org/springblade/wms/controller/StComboxController.java index 16ea3698e..15f4e173e 100644 --- a/blade-service/blade-wms/src/main/java/org/springblade/wms/controller/StComboxController.java +++ b/blade-service/blade-wms/src/main/java/org/springblade/wms/controller/StComboxController.java @@ -242,15 +242,29 @@ public class StComboxController { return R.data(new ArrayList<>()); } + List allStockList = new ArrayList<>(); // 4. 取出 物料ID(从传入的 stStorehouse 里拿) - StGoods goods = stGoodsMapper.queryByCode(stStorehouse.getGoodsCode()); + if (StrUtil.isNotBlank(stStorehouse.getGoodsCodeAndGoodsName())) { + List goodsIdList = stGoodsMapper.getGoods(stStorehouse.getGoodsCodeAndGoodsName()); - // 5. 调用 实时库存查询(传入 物料ID + 库房ID) - List allStockList = new ArrayList<>(); - for (Long shId : shIdList) { - IPage stockPage = stRealtimeStockService.selectByGoodsIdShId(Condition.getPage(query), goods.getId(), shId, null, null); - allStockList.addAll(stockPage.getRecords()); + // 5. 调用 实时库存查询(传入 物料ID + 库房ID) + for (Long shId : shIdList) { + for (Long goodsId : goodsIdList) { + + IPage stockPage = stRealtimeStockService.selectByGoodsIdShId(Condition.getPage(query), goodsId, shId, null, null); + allStockList.addAll(stockPage.getRecords()); + } + } + } else { + StGoods goods = stGoodsMapper.queryByCode(stStorehouse.getGoodsCode()); + + // 5. 调用 实时库存查询(传入 物料ID + 库房ID) + for (Long shId : shIdList) { + IPage stockPage = stRealtimeStockService.selectByGoodsIdShId(Condition.getPage(query), goods.getId(), shId, null, null); + allStockList.addAll(stockPage.getRecords()); + } } + return R.data(allStockList); } diff --git a/blade-service/blade-wms/src/main/java/org/springblade/wms/mapper/StGoodsMapper.java b/blade-service/blade-wms/src/main/java/org/springblade/wms/mapper/StGoodsMapper.java index 895c259e2..7c80babb2 100644 --- a/blade-service/blade-wms/src/main/java/org/springblade/wms/mapper/StGoodsMapper.java +++ b/blade-service/blade-wms/src/main/java/org/springblade/wms/mapper/StGoodsMapper.java @@ -45,5 +45,7 @@ public interface StGoodsMapper extends BaseMapper { List selectFindAllGoodsPage(IPage page, StGoodsVO stGoods); List queryByShId(IPage page, StGoodsVO stGoods); + + List getGoods(String goodsCodeAndGoodsName); } diff --git a/blade-service/blade-wms/src/main/java/org/springblade/wms/mapper/StGoodsMapper.xml b/blade-service/blade-wms/src/main/java/org/springblade/wms/mapper/StGoodsMapper.xml index 0af9a2cbc..8d0bdfda1 100644 --- a/blade-service/blade-wms/src/main/java/org/springblade/wms/mapper/StGoodsMapper.xml +++ b/blade-service/blade-wms/src/main/java/org/springblade/wms/mapper/StGoodsMapper.xml @@ -134,4 +134,13 @@ ) WHERE rn = 1 + diff --git a/blade-service/blade-wms/src/main/java/org/springblade/wms/mapper/StStorehouseMapper.xml b/blade-service/blade-wms/src/main/java/org/springblade/wms/mapper/StStorehouseMapper.xml index e4457a920..14473dda9 100644 --- a/blade-service/blade-wms/src/main/java/org/springblade/wms/mapper/StStorehouseMapper.xml +++ b/blade-service/blade-wms/src/main/java/org/springblade/wms/mapper/StStorehouseMapper.xml @@ -40,6 +40,21 @@ + + AND EXISTS ( + SELECT 1 + FROM st_realtime_stock r + JOIN st_goods g ON r.goods_id = g.id + WHERE r.sh_id = t.id + AND r.is_deleted = 0 + AND g.is_deleted = 0 + AND ( + g.goods_code LIKE '%' || #{stStorehouse.goodsCodeAndGoodsName} || '%' + OR g.goods_name LIKE '%' || #{stStorehouse.goodsCodeAndGoodsName} || '%' + ) + ) + + AND EXISTS ( SELECT 1