From 8da8c3c363d131386efc183440f177e5ad2d1a65 Mon Sep 17 00:00:00 2001 From: Yangk Date: Fri, 30 Jan 2026 15:24:01 +0800 Subject: [PATCH] =?UTF-8?q?feat(wms):=20=E6=B7=BB=E5=8A=A0SAP=E7=89=A9?= =?UTF-8?q?=E6=96=99=E4=BF=A1=E6=81=AF=E5=85=B3=E8=81=94=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dromara/wms/domain/WmsBaseProduct.java | 8 ++- .../wms/domain/bo/WmsBaseProductBo.java | 10 +++ .../wms/domain/vo/WmsBaseProductVo.java | 21 ++++-- .../impl/WmsBaseProductServiceImpl.java | 64 ++++++++++++------- 4 files changed, 73 insertions(+), 30 deletions(-) diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/WmsBaseProduct.java b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/WmsBaseProduct.java index 09c0de71..f1562d5f 100644 --- a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/WmsBaseProduct.java +++ b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/WmsBaseProduct.java @@ -71,6 +71,11 @@ public class WmsBaseProduct extends TenantEntity { */ private String activeFlag; + /** + * SAP物料ID(关联base_material_info.material_id) + */ + private Long materialId; + @TableField(exist = false) /** * 计量单位名称 @@ -80,9 +85,8 @@ public class WmsBaseProduct extends TenantEntity { @TableField(exist = false) private String createByName; @TableField(exist = false) - private String deptName;//部门名称 + private String deptName;// 部门名称 @TableField(exist = false) private String updateByName; - } diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/bo/WmsBaseProductBo.java b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/bo/WmsBaseProductBo.java index deac464b..d4ea3819 100644 --- a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/bo/WmsBaseProductBo.java +++ b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/bo/WmsBaseProductBo.java @@ -69,4 +69,14 @@ public class WmsBaseProductBo extends BaseEntity { private String activeFlag; private String externalBrand; + /** + * SAP物料ID(关联base_material_info.material_id) + */ + private Long materialId; + + /** + * SAP物料型号(查询条件,关联查询) + */ + private String materialModel; + } diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/vo/WmsBaseProductVo.java b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/vo/WmsBaseProductVo.java index 8a29f047..497d3f42 100644 --- a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/vo/WmsBaseProductVo.java +++ b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/vo/WmsBaseProductVo.java @@ -12,8 +12,6 @@ import java.io.Serial; import java.io.Serializable; import java.util.Date; - - /** * 海威成品信息视图对象 wms_base_product * @@ -120,12 +118,27 @@ public class WmsBaseProductVo implements Serializable { */ @ExcelProperty(value = "更新时间") private Date updateTime; - /** + /** * 计量单位名称 */ private String unitName; private String createByName; private String updateByName; - private String deptName;//部门名称 + private String deptName;// 部门名称 + + /** + * SAP物料ID + */ + private Long materialId; + + /** + * SAP物料名称(关联查询) + */ + private String materialName; + + /** + * SAP物料型号(关联查询) + */ + private String materialModel; } diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/service/impl/WmsBaseProductServiceImpl.java b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/service/impl/WmsBaseProductServiceImpl.java index 53dc6dd6..7a1f1cab 100644 --- a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/service/impl/WmsBaseProductServiceImpl.java +++ b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/service/impl/WmsBaseProductServiceImpl.java @@ -10,6 +10,7 @@ import org.dromara.common.mybatis.annotation.DataColumn; import org.dromara.common.mybatis.annotation.DataPermission; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.wms.domain.BaseMaterialInfo; import org.dromara.wms.domain.BaseUnitInfo; import org.dromara.wms.domain.SysDept; import org.dromara.wms.domain.SysUser; @@ -43,7 +44,16 @@ public class WmsBaseProductServiceImpl implements IWmsBaseProductService { */ @Override public WmsBaseProductVo queryById(Long productId) { - return baseMapper.selectVoById(productId); + // 使用 JOIN 查询获取 SAP 物料信息 + MPJLambdaWrapper lqw = JoinWrappers.lambda(WmsBaseProduct.class) + .selectAll(WmsBaseProduct.class) + .leftJoin(BaseUnitInfo.class, BaseUnitInfo::getUnitId, WmsBaseProduct::getUnitId) + .select(BaseUnitInfo::getUnitName) + .leftJoin(BaseMaterialInfo.class, BaseMaterialInfo::getMaterialId, WmsBaseProduct::getMaterialId) + .selectAs(BaseMaterialInfo::getMaterialName, WmsBaseProductVo::getMaterialName) + .selectAs(BaseMaterialInfo::getMaterialModel, WmsBaseProductVo::getMaterialModel) + .eq(WmsBaseProduct::getProductId, productId); + return baseMapper.selectJoinOne(WmsBaseProductVo.class, lqw); } /** @@ -53,11 +63,11 @@ public class WmsBaseProductServiceImpl implements IWmsBaseProductService { * @param pageQuery 分页参数 * @return 海威成品信息分页列表 */ - @DataPermission({@DataColumn(key = "deptName", value = "t.create_dept")}) + @DataPermission({ @DataColumn(key = "deptName", value = "t.create_dept") }) @Override public TableDataInfo queryPageList(WmsBaseProductBo bo, PageQuery pageQuery) { MPJLambdaWrapper lqw = buildQueryWrapper(bo); - Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + Page result = baseMapper.selectJoinPage(pageQuery.build(), WmsBaseProductVo.class, lqw); return TableDataInfo.build(result); } @@ -67,32 +77,39 @@ public class WmsBaseProductServiceImpl implements IWmsBaseProductService { * @param bo 查询条件 * @return 海威成品信息列表 */ - @Override + @Override public List queryList(WmsBaseProductBo bo) { MPJLambdaWrapper lqw = buildQueryWrapper(bo); - return baseMapper.selectVoList(lqw); + return baseMapper.selectJoinList(WmsBaseProductVo.class, lqw); } private MPJLambdaWrapper buildQueryWrapper(WmsBaseProductBo bo) { return JoinWrappers.lambda(WmsBaseProduct.class) - .selectAll(WmsBaseProduct.class) - .leftJoin(BaseUnitInfo.class, BaseUnitInfo::getUnitId, WmsBaseProduct::getUnitId) - .select(BaseUnitInfo::getUnitName) - .eq(StringUtils.isNotBlank(bo.getProductCode()), WmsBaseProduct::getProductCode, bo.getProductCode()) - .like(StringUtils.isNotBlank(bo.getProductName()), WmsBaseProduct::getProductName, bo.getProductName()) - .like(StringUtils.isNotBlank(bo.getExternalBrand()), WmsBaseProduct::getExternalBrand, bo.getExternalBrand()) - .eq(StringUtils.isNotBlank(bo.getActiveFlag()), WmsBaseProduct::getActiveFlag, bo.getActiveFlag()) - .eq(bo.getCreateDept() !=null, WmsBaseProduct::getCreateDept, bo.getCreateDept()) - // 创建人 - .leftJoin(SysUser.class, SysUser::getUserId, WmsBaseProduct::getCreateBy) - .selectAs(SysUser::getNickName, WmsBaseProduct::getCreateByName) - // 更新人 - .leftJoin(SysUser.class, SysUser::getUserId, WmsBaseProduct::getUpdateBy) - .selectAs(SysUser::getNickName, WmsBaseProduct::getUpdateByName) - // 部门 - .leftJoin(SysDept.class, SysDept::getDeptId, WmsBaseProduct::getCreateDept) - .selectAs(SysDept::getDeptName, WmsBaseProduct::getDeptName); - + .selectAll(WmsBaseProduct.class) + .leftJoin(BaseUnitInfo.class, BaseUnitInfo::getUnitId, WmsBaseProduct::getUnitId) + .select(BaseUnitInfo::getUnitName) + .eq(StringUtils.isNotBlank(bo.getProductCode()), WmsBaseProduct::getProductCode, bo.getProductCode()) + .like(StringUtils.isNotBlank(bo.getProductName()), WmsBaseProduct::getProductName, bo.getProductName()) + .like(StringUtils.isNotBlank(bo.getExternalBrand()), WmsBaseProduct::getExternalBrand, + bo.getExternalBrand()) + .eq(StringUtils.isNotBlank(bo.getActiveFlag()), WmsBaseProduct::getActiveFlag, bo.getActiveFlag()) + .eq(bo.getCreateDept() != null, WmsBaseProduct::getCreateDept, bo.getCreateDept()) + // 创建人 + .leftJoin(SysUser.class, SysUser::getUserId, WmsBaseProduct::getCreateBy) + .selectAs(SysUser::getNickName, WmsBaseProduct::getCreateByName) + // 更新人 + .leftJoin(SysUser.class, SysUser::getUserId, WmsBaseProduct::getUpdateBy) + .selectAs(SysUser::getNickName, WmsBaseProduct::getUpdateByName) + // 部门 + .leftJoin(SysDept.class, SysDept::getDeptId, WmsBaseProduct::getCreateDept) + .selectAs(SysDept::getDeptName, WmsBaseProduct::getDeptName) + // SAP物料信息 + .leftJoin(BaseMaterialInfo.class, BaseMaterialInfo::getMaterialId, WmsBaseProduct::getMaterialId) + .selectAs(BaseMaterialInfo::getMaterialName, WmsBaseProductVo::getMaterialName) + .selectAs(BaseMaterialInfo::getMaterialModel, WmsBaseProductVo::getMaterialModel) + // SAP物料型号搜索条件 + .like(StringUtils.isNotBlank(bo.getMaterialModel()), BaseMaterialInfo::getMaterialModel, + bo.getMaterialModel()); } @@ -127,7 +144,6 @@ public class WmsBaseProductServiceImpl implements IWmsBaseProductService { return baseMapper.updateById(update) > 0; } - /** * 校验并批量删除海威成品信息信息 *