From 9248f4485d48739c74634d420e039ea0b3776d5f Mon Sep 17 00:00:00 2001 From: "zangch@mesnac.com" Date: Fri, 5 Sep 2025 14:19:04 +0800 Subject: [PATCH] =?UTF-8?q?feat(wms):=20=E4=BC=98=E5=8C=96=E8=B0=83?= =?UTF-8?q?=E6=8B=A8=E8=AE=A2=E5=8D=95=E5=92=8C=E8=AF=A6=E6=83=85=E7=9A=84?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 WmsAllocateOrder 和 WmsAllocateOrderDetail 中添加仓库名称字段- 更新 WmsAllocateOrderDetailServiceImpl 和 WmsAllocateOrderServiceImpl 中的查询方法 - 在 WmsAllocateOrderDetailVo 和 WmsAllocateOrderVo 中添加仓库名称字段 - 优化查询性能,减少重复的 leftJoin 操作 --- .../dromara/wms/domain/WmsAllocateOrder.java | 14 ++++++-- .../wms/domain/WmsAllocateOrderDetail.java | 10 ++++-- .../domain/vo/WmsAllocateOrderDetailVo.java | 2 -- .../wms/domain/vo/WmsAllocateOrderVo.java | 4 +++ .../WmsAllocateOrderDetailServiceImpl.java | 26 +++++++------- .../impl/WmsAllocateOrderServiceImpl.java | 34 ++++++++++--------- 6 files changed, 54 insertions(+), 36 deletions(-) diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsAllocateOrder.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsAllocateOrder.java index dc9b1415..ff88f2a6 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsAllocateOrder.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsAllocateOrder.java @@ -126,10 +126,20 @@ public class WmsAllocateOrder{ */ @TableField(fill = FieldFill.INSERT_UPDATE) private Date updateTime; + + + /** + * 仓库 + */ @TableField(exist = false) - private String planWarehouseCode; + private String planWarehouseCode;//字段映射 @TableField(exist = false) - private String targetWarehouseCode; + private String targetWarehouseCode;//字段映射 + @TableField(exist = false) + private String planWarehouseName;//字段映射 + @TableField(exist = false) + private String targetWarehouseName;//字段映射 + /** * 物料大类 diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsAllocateOrderDetail.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsAllocateOrderDetail.java index 4e633c63..d63560cb 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsAllocateOrderDetail.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsAllocateOrderDetail.java @@ -50,13 +50,13 @@ public class WmsAllocateOrderDetail { * erp同步数量 */ private Long erpSynchronousQty; - + /** * 已分包数量 */ @TableField(exist = false) private BigDecimal printedQty; - + /** * 租户id */ @@ -81,6 +81,12 @@ public class WmsAllocateOrderDetail { */ @TableField(fill = FieldFill.INSERT_UPDATE) private Date updateTime; + + /** + * 物料名称 + */ + @TableField(exist = false) + private String materialName; @TableField(exist = false) private String materialCode; diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsAllocateOrderDetailVo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsAllocateOrderDetailVo.java index 81fb6772..459ed67e 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsAllocateOrderDetailVo.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsAllocateOrderDetailVo.java @@ -4,8 +4,6 @@ import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.TableField; -import org.dromara.common.excel.annotation.ExcelDictFormat; -import org.dromara.common.excel.convert.ExcelDictConvert; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; import org.dromara.wms.domain.WmsAllocateOrderDetail; diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsAllocateOrderVo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsAllocateOrderVo.java index 292a0a37..21d8b2e3 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsAllocateOrderVo.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsAllocateOrderVo.java @@ -149,8 +149,12 @@ public class WmsAllocateOrderVo implements Serializable { */ @TableField(fill = FieldFill.INSERT_UPDATE) private Date updateTime; + + // 字段映射 仓库 private String planWarehouseCode; private String targetWarehouseCode; + private String planWarehouseName; + private String targetWarehouseName; /** * 物料大类 diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsAllocateOrderDetailServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsAllocateOrderDetailServiceImpl.java index f6eb13a0..8a0b6266 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsAllocateOrderDetailServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsAllocateOrderDetailServiceImpl.java @@ -1,30 +1,26 @@ package org.dromara.wms.service.impl; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.wrapper.MPJLambdaWrapper; +import lombok.RequiredArgsConstructor; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; -import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.PageQuery; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import lombok.RequiredArgsConstructor; +import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.wms.domain.BaseMaterialInfo; import org.dromara.wms.domain.WmsAllocateOrderDetail; -import org.dromara.wms.domain.WmsBaseWarehouse; -import org.dromara.wms.domain.WmsMoveOrder; import org.dromara.wms.domain.bo.WmsAllocateOrderDetailBo; -import org.dromara.wms.domain.bo.WmsMoveOrderBo; import org.dromara.wms.domain.vo.WmsAllocateOrderDetailVo; import org.dromara.wms.mapper.WmsAllocateOrderDetailMapper; import org.dromara.wms.service.IWmsAllocateOrderDetailService; import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Isolation; import org.springframework.transaction.annotation.Transactional; -import java.util.*; +import java.util.Collection; +import java.util.List; +import java.util.Map; /** * 调拨子Service业务层处理 @@ -72,13 +68,14 @@ public class WmsAllocateOrderDetailServiceImpl implements IWmsAllocateOrderDetai */ @Override public List queryList(WmsAllocateOrderDetailBo bo) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); + MPJLambdaWrapper lqw = buildJoinQueryWrapper(bo); return baseMapper.selectVoList(lqw); } - private LambdaQueryWrapper buildQueryWrapper(WmsAllocateOrderDetailBo bo) { + private MPJLambdaWrapper buildQueryWrapper(WmsAllocateOrderDetailBo bo) { Map params = bo.getParams(); - LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + MPJLambdaWrapper lqw = JoinWrappers.lambda(WmsAllocateOrderDetail.class); + lqw.eq(bo.getAoDId() != null, WmsAllocateOrderDetail::getAoDId, bo.getAoDId()); lqw.eq(StringUtils.isNotBlank(bo.getAllocateCode()), WmsAllocateOrderDetail::getAllocateCode, bo.getAllocateCode()); lqw.eq(bo.getMaterialId() != null, WmsAllocateOrderDetail::getMaterialId, bo.getMaterialId()); @@ -90,7 +87,8 @@ public class WmsAllocateOrderDetailServiceImpl implements IWmsAllocateOrderDetai private MPJLambdaWrapper buildJoinQueryWrapper(WmsAllocateOrderDetailBo bo) { Map params = bo.getParams(); MPJLambdaWrapper lqw = JoinWrappers.lambda(WmsAllocateOrderDetail.class) - .selectAll(WmsAllocateOrderDetail.class).select(BaseMaterialInfo::getMaterialCode) + .selectAll(WmsAllocateOrderDetail.class) + .select(BaseMaterialInfo::getMaterialCode,BaseMaterialInfo::getMaterialName) .leftJoin(BaseMaterialInfo.class,BaseMaterialInfo::getMaterialId,WmsAllocateOrderDetail::getMaterialId); lqw.eq(bo.getAoDId() != null, WmsAllocateOrderDetail::getAoDId, bo.getAoDId()); lqw.eq(StringUtils.isNotBlank(bo.getAllocateCode()), WmsAllocateOrderDetail::getAllocateCode, bo.getAllocateCode()); diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsAllocateOrderServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsAllocateOrderServiceImpl.java index 84c862b0..476b440e 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsAllocateOrderServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsAllocateOrderServiceImpl.java @@ -1,30 +1,30 @@ package org.dromara.wms.service.impl; -import com.github.yulichang.toolkit.JoinWrappers; -import com.github.yulichang.wrapper.MPJLambdaWrapper; -import org.dromara.common.core.utils.MapstructUtils; -import org.dromara.common.core.utils.StringUtils; -import org.dromara.common.mybatis.core.page.TableDataInfo; -import org.dromara.common.mybatis.core.page.PageQuery; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.yulichang.toolkit.JoinWrappers; +import com.github.yulichang.wrapper.MPJLambdaWrapper; import lombok.RequiredArgsConstructor; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.satoken.utils.LoginHelper; -import org.dromara.wms.domain.*; +import org.dromara.wms.domain.BaseMaterialCategory; +import org.dromara.wms.domain.WmsAllocateOrder; +import org.dromara.wms.domain.WmsBaseWarehouse; import org.dromara.wms.domain.bo.WmsAllocateOrderBo; -import org.dromara.wms.domain.bo.WmsReturnOrderBo; import org.dromara.wms.domain.vo.WmsAllocateOrderVo; import org.dromara.wms.mapper.WmsAllocateOrderMapper; -import org.dromara.wms.mapper.WmsInstockOrderMapper; import org.dromara.wms.service.IWmsAllocateOrderService; import org.springframework.stereotype.Service; import java.text.SimpleDateFormat; +import java.util.Collection; import java.util.Date; import java.util.List; import java.util.Map; -import java.util.Collection; import java.util.concurrent.atomic.AtomicInteger; /** @@ -81,11 +81,13 @@ public class WmsAllocateOrderServiceImpl implements IWmsAllocateOrderService { .leftJoin(BaseMaterialCategory.class, BaseMaterialCategory::getMaterialCategoryId, WmsAllocateOrder::getMaterialCategoryId) - .selectAs("a",WmsBaseWarehouse::getWarehouseCode,WmsAllocateOrderVo::getPlanWarehouseCode) - .selectAs("b",WmsBaseWarehouse::getWarehouseCode,WmsAllocateOrderVo::getTargetWarehouseCode) - .leftJoin(WmsBaseWarehouse.class,"a",WmsBaseWarehouse::getWarehouseId,WmsAllocateOrder::getPlanWarehouseId) - .leftJoin(WmsBaseWarehouse.class,"b",WmsBaseWarehouse::getWarehouseId,WmsAllocateOrder::getTargetWarehouseId); - + // 关联表查询仓库编码和名称,只需要一次连接 + .selectAs("a", WmsBaseWarehouse::getWarehouseCode, WmsAllocateOrderVo::getPlanWarehouseCode) + .selectAs("a", WmsBaseWarehouse::getWarehouseName, WmsAllocateOrderVo::getPlanWarehouseName) + .selectAs("b", WmsBaseWarehouse::getWarehouseCode, WmsAllocateOrderVo::getTargetWarehouseCode) + .selectAs("b", WmsBaseWarehouse::getWarehouseName, WmsAllocateOrderVo::getTargetWarehouseName) + .leftJoin(WmsBaseWarehouse.class, "a", WmsBaseWarehouse::getWarehouseId, WmsAllocateOrder::getPlanWarehouseId) + .leftJoin(WmsBaseWarehouse.class, "b", WmsBaseWarehouse::getWarehouseId, WmsAllocateOrder::getTargetWarehouseId); lqw.eq(bo.getAoId() != null, WmsAllocateOrder::getAoId, bo.getAoId()); lqw.eq(StringUtils.isNotBlank(bo.getAllocateOrderCode()), WmsAllocateOrder::getAllocateOrderCode, bo.getAllocateOrderCode());