feat(wms): 添加SAP物料信息关联查询功能

dev
Yangk 1 week ago
parent c37ad18da7
commit 8da8c3c363

@ -71,6 +71,11 @@ public class WmsBaseProduct extends TenantEntity {
*/ */
private String activeFlag; private String activeFlag;
/**
* SAPIDbase_material_info.material_id
*/
private Long materialId;
@TableField(exist = false) @TableField(exist = false)
/** /**
* *
@ -80,9 +85,8 @@ public class WmsBaseProduct extends TenantEntity {
@TableField(exist = false) @TableField(exist = false)
private String createByName; private String createByName;
@TableField(exist = false) @TableField(exist = false)
private String deptName;//部门名称 private String deptName;// 部门名称
@TableField(exist = false) @TableField(exist = false)
private String updateByName; private String updateByName;
} }

@ -69,4 +69,14 @@ public class WmsBaseProductBo extends BaseEntity {
private String activeFlag; private String activeFlag;
private String externalBrand; private String externalBrand;
/**
* SAPIDbase_material_info.material_id
*/
private Long materialId;
/**
* SAP
*/
private String materialModel;
} }

@ -12,8 +12,6 @@ import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.util.Date;
/** /**
* wms_base_product * wms_base_product
* *
@ -120,12 +118,27 @@ public class WmsBaseProductVo implements Serializable {
*/ */
@ExcelProperty(value = "更新时间") @ExcelProperty(value = "更新时间")
private Date updateTime; private Date updateTime;
/** /**
* *
*/ */
private String unitName; private String unitName;
private String createByName; private String createByName;
private String updateByName; private String updateByName;
private String deptName;//部门名称 private String deptName;// 部门名称
/**
* SAPID
*/
private Long materialId;
/**
* SAP
*/
private String materialName;
/**
* SAP
*/
private String materialModel;
} }

@ -10,6 +10,7 @@ import org.dromara.common.mybatis.annotation.DataColumn;
import org.dromara.common.mybatis.annotation.DataPermission; import org.dromara.common.mybatis.annotation.DataPermission;
import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo; 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.BaseUnitInfo;
import org.dromara.wms.domain.SysDept; import org.dromara.wms.domain.SysDept;
import org.dromara.wms.domain.SysUser; import org.dromara.wms.domain.SysUser;
@ -43,7 +44,16 @@ public class WmsBaseProductServiceImpl implements IWmsBaseProductService {
*/ */
@Override @Override
public WmsBaseProductVo queryById(Long productId) { public WmsBaseProductVo queryById(Long productId) {
return baseMapper.selectVoById(productId); // 使用 JOIN 查询获取 SAP 物料信息
MPJLambdaWrapper<WmsBaseProduct> 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 * @param pageQuery
* @return * @return
*/ */
@DataPermission({@DataColumn(key = "deptName", value = "t.create_dept")}) @DataPermission({ @DataColumn(key = "deptName", value = "t.create_dept") })
@Override @Override
public TableDataInfo<WmsBaseProductVo> queryPageList(WmsBaseProductBo bo, PageQuery pageQuery) { public TableDataInfo<WmsBaseProductVo> queryPageList(WmsBaseProductBo bo, PageQuery pageQuery) {
MPJLambdaWrapper<WmsBaseProduct> lqw = buildQueryWrapper(bo); MPJLambdaWrapper<WmsBaseProduct> lqw = buildQueryWrapper(bo);
Page<WmsBaseProductVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw); Page<WmsBaseProductVo> result = baseMapper.selectJoinPage(pageQuery.build(), WmsBaseProductVo.class, lqw);
return TableDataInfo.build(result); return TableDataInfo.build(result);
} }
@ -67,32 +77,39 @@ public class WmsBaseProductServiceImpl implements IWmsBaseProductService {
* @param bo * @param bo
* @return * @return
*/ */
@Override @Override
public List<WmsBaseProductVo> queryList(WmsBaseProductBo bo) { public List<WmsBaseProductVo> queryList(WmsBaseProductBo bo) {
MPJLambdaWrapper<WmsBaseProduct> lqw = buildQueryWrapper(bo); MPJLambdaWrapper<WmsBaseProduct> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw); return baseMapper.selectJoinList(WmsBaseProductVo.class, lqw);
} }
private MPJLambdaWrapper<WmsBaseProduct> buildQueryWrapper(WmsBaseProductBo bo) { private MPJLambdaWrapper<WmsBaseProduct> buildQueryWrapper(WmsBaseProductBo bo) {
return JoinWrappers.lambda(WmsBaseProduct.class) return JoinWrappers.lambda(WmsBaseProduct.class)
.selectAll(WmsBaseProduct.class) .selectAll(WmsBaseProduct.class)
.leftJoin(BaseUnitInfo.class, BaseUnitInfo::getUnitId, WmsBaseProduct::getUnitId) .leftJoin(BaseUnitInfo.class, BaseUnitInfo::getUnitId, WmsBaseProduct::getUnitId)
.select(BaseUnitInfo::getUnitName) .select(BaseUnitInfo::getUnitName)
.eq(StringUtils.isNotBlank(bo.getProductCode()), WmsBaseProduct::getProductCode, bo.getProductCode()) .eq(StringUtils.isNotBlank(bo.getProductCode()), WmsBaseProduct::getProductCode, bo.getProductCode())
.like(StringUtils.isNotBlank(bo.getProductName()), WmsBaseProduct::getProductName, bo.getProductName()) .like(StringUtils.isNotBlank(bo.getProductName()), WmsBaseProduct::getProductName, bo.getProductName())
.like(StringUtils.isNotBlank(bo.getExternalBrand()), WmsBaseProduct::getExternalBrand, bo.getExternalBrand()) .like(StringUtils.isNotBlank(bo.getExternalBrand()), WmsBaseProduct::getExternalBrand,
.eq(StringUtils.isNotBlank(bo.getActiveFlag()), WmsBaseProduct::getActiveFlag, bo.getActiveFlag()) bo.getExternalBrand())
.eq(bo.getCreateDept() !=null, WmsBaseProduct::getCreateDept, bo.getCreateDept()) .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::getCreateBy)
// 更新人 .selectAs(SysUser::getNickName, WmsBaseProduct::getCreateByName)
.leftJoin(SysUser.class, SysUser::getUserId, WmsBaseProduct::getUpdateBy) // 更新人
.selectAs(SysUser::getNickName, WmsBaseProduct::getUpdateByName) .leftJoin(SysUser.class, SysUser::getUserId, WmsBaseProduct::getUpdateBy)
// 部门 .selectAs(SysUser::getNickName, WmsBaseProduct::getUpdateByName)
.leftJoin(SysDept.class, SysDept::getDeptId, WmsBaseProduct::getCreateDept) // 部门
.selectAs(SysDept::getDeptName, WmsBaseProduct::getDeptName); .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; return baseMapper.updateById(update) > 0;
} }
/** /**
* *
* *

Loading…
Cancel
Save