From bdd876efffa89716559b580686996dea43b24028 Mon Sep 17 00:00:00 2001 From: wusiyu <2015098864@qq.com> Date: Tue, 19 May 2026 11:33:47 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=93=E5=BA=93=E7=AE=A1=E7=90=86=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wms/pojo/entity/StStorageLocation.java | 7 +++++++ .../wms/pojo/vo/StErpWarehouseTransferVO.java | 6 ++++++ .../controller/StRequisitionController.java | 9 +++++++++ .../mapper/StErpWarehouseTransferMapper.xml | 19 ++++++++++++++++++- 4 files changed, 40 insertions(+), 1 deletion(-) diff --git a/blade-service-api/blade-wms-api/src/main/java/org/springblade/wms/pojo/entity/StStorageLocation.java b/blade-service-api/blade-wms-api/src/main/java/org/springblade/wms/pojo/entity/StStorageLocation.java index ec161cf37..1740ea461 100644 --- a/blade-service-api/blade-wms-api/src/main/java/org/springblade/wms/pojo/entity/StStorageLocation.java +++ b/blade-service-api/blade-wms-api/src/main/java/org/springblade/wms/pojo/entity/StStorageLocation.java @@ -1,5 +1,6 @@ package org.springblade.wms.pojo.entity; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; @@ -62,5 +63,11 @@ public class StStorageLocation extends TenantEntity { @Schema(description = "部门ID") private Long deptId; + /** + * 库房名称 + */ + @TableField(exist = false) + @Schema(description = "库房名称") + private String shName; } diff --git a/blade-service-api/blade-wms-api/src/main/java/org/springblade/wms/pojo/vo/StErpWarehouseTransferVO.java b/blade-service-api/blade-wms-api/src/main/java/org/springblade/wms/pojo/vo/StErpWarehouseTransferVO.java index ea875a778..fda6d15be 100644 --- a/blade-service-api/blade-wms-api/src/main/java/org/springblade/wms/pojo/vo/StErpWarehouseTransferVO.java +++ b/blade-service-api/blade-wms-api/src/main/java/org/springblade/wms/pojo/vo/StErpWarehouseTransferVO.java @@ -33,6 +33,12 @@ public class StErpWarehouseTransferVO extends StErpWarehouseTransfer { private String unitName; @Schema(description = "型号/牌号") private String materialModel; + @Schema(description = "库房编号") + private Long shId; + @Schema(description = "库房名称") + private String shName; + @Schema(description = "库位号") + private String location; @TableField(exist = false) private List children=new ArrayList<>(); diff --git a/blade-service/blade-wms/src/main/java/org/springblade/wms/controller/StRequisitionController.java b/blade-service/blade-wms/src/main/java/org/springblade/wms/controller/StRequisitionController.java index b74fe6c71..ec5c3acb5 100644 --- a/blade-service/blade-wms/src/main/java/org/springblade/wms/controller/StRequisitionController.java +++ b/blade-service/blade-wms/src/main/java/org/springblade/wms/controller/StRequisitionController.java @@ -23,9 +23,11 @@ import org.springblade.core.tool.utils.Func; import org.springblade.wms.pojo.dto.StRequisitionDTO; import org.springblade.wms.pojo.entity.StRequisition; import org.springblade.wms.pojo.entity.StStorageLocation; +import org.springblade.wms.pojo.entity.StStorehouse; import org.springblade.wms.pojo.vo.StRequisitionVO; import org.springblade.wms.service.IStRequisitionService; import org.springblade.wms.service.IStStorageLocationService; +import org.springblade.wms.service.IStStorehouseService; import org.springblade.wms.wrapper.StRequisitionWrapper; import org.springframework.web.bind.annotation.*; @@ -49,6 +51,7 @@ public class StRequisitionController extends BladeController { private final IStRequisitionService stRequisitionService; private final IStStorageLocationService stStorageLocationService; + private final IStStorehouseService stStorehouseService; /** * 领料单打印 详情 @@ -109,6 +112,12 @@ public class StRequisitionController extends BladeController { pages.getRecords().forEach(vo -> { vo.setPushQuantity(Double.valueOf(vo.getInvysqty())); // pushQuantity = 申请数量 StStorageLocation loc = stStorageLocationService.findByGoodsCode(vo.getPrtno()); + if (loc != null) { + StStorehouse storehouse = stStorehouseService.getById(loc.getShId()); + if (storehouse != null) { + loc.setShName(storehouse.getShName()); + } + } vo.setPushHouse(loc); // pushHouse = 库位对象 }); diff --git a/blade-service/blade-wms/src/main/java/org/springblade/wms/mapper/StErpWarehouseTransferMapper.xml b/blade-service/blade-wms/src/main/java/org/springblade/wms/mapper/StErpWarehouseTransferMapper.xml index 00d6bce7f..3496ce072 100644 --- a/blade-service/blade-wms/src/main/java/org/springblade/wms/mapper/StErpWarehouseTransferMapper.xml +++ b/blade-service/blade-wms/src/main/java/org/springblade/wms/mapper/StErpWarehouseTransferMapper.xml @@ -41,10 +41,27 @@ g.goods_name , -- 材料名称(物料表名称) g.specifications , -- 物料规格(物料表规格) g.material_model , -- 型号/牌号(物料表型号) - g.unit_name -- 单位(物料表计量单位) + g.unit_name, -- 单位(物料表计量单位) + s.sh_id, + s.sh_name, + s.location FROM st_erp_warehouse_transfer transfer -- 左关联物料表:保证无物料ID时,转移记录仍能查询 LEFT JOIN st_goods g ON transfer.goods_id = g.id AND g.is_deleted = 0 + LEFT JOIN ( + SELECT + sl.*, + sh.sh_name, + ROW_NUMBER() OVER( + PARTITION BY sl.goods_code + ORDER BY sl.create_time ASC + ) rn + FROM st_storage_location sl + LEFT JOIN st_storehouse sh + ON sl.sh_id = sh.id -- 库位关联库房 + AND sh.is_deleted = 0 + WHERE sl.is_deleted = 0 + ) s ON g.goods_code = s.goods_code AND s.rn = 1 (transfer.out_quantity - transfer.put_quantity) > 0