From 0fa1319217ccafcd3c00639af06964c334908d03 Mon Sep 17 00:00:00 2001 From: "zangch@mesnac.com" Date: Mon, 25 Aug 2025 11:30:41 +0800 Subject: [PATCH] =?UTF-8?q?feat(wms):=20=E9=87=87=E8=B4=AD=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E7=89=A9=E6=96=99=E5=88=97=E8=A1=A8=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E5=B7=B2=E5=85=A5=E5=BA=93=E6=95=B0=E9=87=8F=E7=BB=9F=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增接口和方法查询带已入库数量的采购订单物料列表 - 在 WmsPurchaseOrderDetailVo 中添加已入库数量和剩余可入库数量字段 - 实现查询逻辑,通过左连接和子查询计算已入库数量 - 出库单添加客户字段 --- .../WmsPurchaseOrderDetailController.java | 9 ++++ .../dromara/wms/domain/WmsOutstockOrder.java | 5 +++ .../wms/domain/bo/BaseMaterialInfoBo.java | 13 +++--- .../wms/domain/bo/WmsOutstockOrderBo.java | 13 +++--- .../wms/domain/vo/WmsOutstockOrderVo.java | 14 +++---- .../domain/vo/WmsPurchaseOrderDetailVo.java | 10 +++++ .../mapper/WmsPurchaseOrderDetailMapper.java | 11 +++++ .../WmsPurchaseOrderDetailServiceImpl.java | 42 ++++++++++++------- .../wms/WmsPurchaseOrderDetailMapper.xml | 39 +++++++++++++++++ 9 files changed, 122 insertions(+), 34 deletions(-) diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPurchaseOrderDetailController.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPurchaseOrderDetailController.java index 576dbc8..8f73ba2 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPurchaseOrderDetailController.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPurchaseOrderDetailController.java @@ -114,4 +114,13 @@ public class WmsPurchaseOrderDetailController extends BaseController { List list = wmsPurchaseOrderDetailService.queryList(bo); return R.ok(list); } + + /** + * 查询采购订单-物料列表(带已入库数量统计) + */ + @GetMapping("/listWithInstockedQty") + public R> listWithInstockedQty(WmsPurchaseOrderDetailBo bo) { + List list = wmsPurchaseOrderDetailService.queryListWithInstockedQty(bo); + return R.ok(list); + } } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsOutstockOrder.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsOutstockOrder.java index 629612d..8c78744 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsOutstockOrder.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsOutstockOrder.java @@ -82,6 +82,11 @@ public class WmsOutstockOrder { @TableField(fill = FieldFill.INSERT) private String createBy; + /** + * 客户id,order_type为1销售订单时 + */ + private Long customerId; + /** * 创建时间 */ diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/BaseMaterialInfoBo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/BaseMaterialInfoBo.java index db6745b..4301e3e 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/BaseMaterialInfoBo.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/BaseMaterialInfoBo.java @@ -1,17 +1,16 @@ package org.dromara.wms.domain.bo; -import org.dromara.wms.domain.BaseMaterialInfo; -import org.dromara.common.mybatis.core.domain.BaseEntity; -import org.dromara.common.core.validate.AddGroup; -import org.dromara.common.core.validate.EditGroup; import io.github.linpeilie.annotations.AutoMapper; +import jakarta.validation.constraints.NotBlank; import lombok.Data; import lombok.EqualsAndHashCode; -import jakarta.validation.constraints.*; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.wms.domain.BaseMaterialInfo; import java.math.BigDecimal; import java.util.Date; -import com.fasterxml.jackson.annotation.JsonFormat; /** * 物料信息业务对象 base_material_info @@ -32,7 +31,7 @@ public class BaseMaterialInfoBo extends BaseEntity { /** * ERP信息 */ - @NotBlank(message = "ERP信息不能为空", groups = { AddGroup.class, EditGroup.class }) +// @NotBlank(message = "ERP信息不能为空", groups = { AddGroup.class, EditGroup.class }) private String erpId; /** diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsOutstockOrderBo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsOutstockOrderBo.java index 956be6b..727f040 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsOutstockOrderBo.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsOutstockOrderBo.java @@ -1,16 +1,13 @@ package org.dromara.wms.domain.bo; -import org.dromara.common.mybatis.core.domain.BaseEntity; -import org.dromara.common.core.validate.AddGroup; -import org.dromara.common.core.validate.EditGroup; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; import lombok.EqualsAndHashCode; -import jakarta.validation.constraints.*; -import java.util.Date; -import com.fasterxml.jackson.annotation.JsonFormat; +import org.dromara.common.mybatis.core.domain.BaseEntity; import org.dromara.wms.domain.WmsOutstockOrder; +import java.util.Date; + /** * 出库单业务对象 wms_outstock_order * @@ -89,5 +86,9 @@ public class WmsOutstockOrderBo extends BaseEntity { private String auditComments; private String tenantId; + /** + * 客户id,order_type为1销售订单时 + */ + private Long customerId; } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsOutstockOrderVo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsOutstockOrderVo.java index b98104a..b5ec12f 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsOutstockOrderVo.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsOutstockOrderVo.java @@ -1,14 +1,9 @@ package org.dromara.wms.domain.vo; -import java.util.Date; - -import com.baomidou.mybatisplus.annotation.FieldFill; -import com.baomidou.mybatisplus.annotation.TableField; -import com.fasterxml.jackson.annotation.JsonFormat; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; -import org.dromara.common.excel.annotation.ExcelDictFormat; -import org.dromara.common.excel.convert.ExcelDictConvert; +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; import org.dromara.wms.domain.WmsOutstockOrder; @@ -105,6 +100,11 @@ public class WmsOutstockOrderVo implements Serializable { @TableField(fill = FieldFill.INSERT) private String createBy; + /** + * 客户id,order_type为1销售订单时 + */ + private Long customerId; + /** * 创建时间 */ diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsPurchaseOrderDetailVo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsPurchaseOrderDetailVo.java index 5df4635..5e27b66 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsPurchaseOrderDetailVo.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsPurchaseOrderDetailVo.java @@ -97,5 +97,15 @@ public class WmsPurchaseOrderDetailVo implements Serializable { private Long materialId; + /** + * 已入库数量 + */ + private BigDecimal instockedQty; + + /** + * 剩余可入库数量 + */ + private BigDecimal remainingQty; + } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsPurchaseOrderDetailMapper.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsPurchaseOrderDetailMapper.java index 8caae49..138ba9c 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsPurchaseOrderDetailMapper.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsPurchaseOrderDetailMapper.java @@ -1,9 +1,12 @@ package org.dromara.wms.mapper; +import org.apache.ibatis.annotations.Param; import org.dromara.wms.domain.WmsPurchaseOrderDetail; import org.dromara.wms.domain.vo.WmsPurchaseOrderDetailVo; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import java.util.List; + /** * 采购订单-物料Mapper接口 * @@ -12,4 +15,12 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; */ public interface WmsPurchaseOrderDetailMapper extends BaseMapperPlus { + /** + * 查询采购订单物料列表(带已入库数量统计) + * + * @param poNo 采购订单编号 + * @return 采购订单物料列表 + */ + List selectListWithInstockedQty(@Param("poNo") String poNo); + } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPurchaseOrderDetailServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPurchaseOrderDetailServiceImpl.java index 639987a..14adeef 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPurchaseOrderDetailServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPurchaseOrderDetailServiceImpl.java @@ -1,34 +1,31 @@ package org.dromara.wms.service.impl; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; -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.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.wrapper.MPJLambdaWrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; -import org.dromara.common.satoken.utils.LoginHelper; -import org.dromara.wms.domain.WmsInstockDetail; +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.wms.domain.WmsPurchaseOrderDetail; import org.dromara.wms.domain.bo.BaseMaterialInfoBo; -import org.dromara.wms.domain.bo.WmsInstockDetailBo; +import org.dromara.wms.domain.bo.WmsPurchaseOrderDetailBo; import org.dromara.wms.domain.vo.BaseMaterialInfoVo; +import org.dromara.wms.domain.vo.WmsPurchaseOrderDetailVo; +import org.dromara.wms.mapper.WmsPurchaseOrderDetailMapper; import org.dromara.wms.service.IBaseMaterialInfoService; +import org.dromara.wms.service.IWmsInstockDetailService; +import org.dromara.wms.service.IWmsPurchaseOrderDetailService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import org.dromara.wms.domain.bo.WmsPurchaseOrderDetailBo; -import org.dromara.wms.domain.vo.WmsPurchaseOrderDetailVo; -import org.dromara.wms.domain.WmsPurchaseOrderDetail; -import org.dromara.wms.mapper.WmsPurchaseOrderDetailMapper; -import org.dromara.wms.service.IWmsPurchaseOrderDetailService; import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; +import java.util.Collection; import java.util.List; import java.util.Map; -import java.util.Collection; /** * 采购订单-物料Service业务层处理 @@ -44,6 +41,8 @@ public class WmsPurchaseOrderDetailServiceImpl implements IWmsPurchaseOrderDetai @Autowired private IBaseMaterialInfoService baseMaterialInfoService; + private final IWmsInstockDetailService wmsInstockDetailService; + /** * 查询采购订单-物料 * @@ -165,4 +164,19 @@ public class WmsPurchaseOrderDetailServiceImpl implements IWmsPurchaseOrderDetai } return baseMapper.deleteByIds(ids) > 0; } + + /** + * 查询采购订单-物料列表(带已入库数量统计) + * + * @param bo 查询条件 + * @return 采购订单-物料列表 + */ + @Override + public List queryListWithInstockedQty(WmsPurchaseOrderDetailBo bo) { + if (StringUtils.isBlank(bo.getPoNo())) { + return new ArrayList<>(); + } + return baseMapper.selectListWithInstockedQty(bo.getPoNo()); + } + } diff --git a/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsPurchaseOrderDetailMapper.xml b/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsPurchaseOrderDetailMapper.xml index 7e403c8..1355cd2 100644 --- a/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsPurchaseOrderDetailMapper.xml +++ b/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsPurchaseOrderDetailMapper.xml @@ -4,4 +4,43 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + + +