feat(wms): 完善仓库→区域→库位关系,将库位管理按仓库区域划分,从关联仓库改为关联区域

- 修改 WmsBaseLocation 模型,将 warehouseId 字段改为 areaId
- 更新相关 BO、VO 类中的字段名称
- 修改服务实现类中的查询方法,以适应新的关联关系
- 保留了部分注释代码,以便未来可能的扩展
master
zangch@mesnac.com 5 months ago
parent 1e0a8e65ab
commit 9eb6f7fac0

@ -27,10 +27,14 @@ public class WmsBaseLocation extends TenantEntity {
@TableId(type = IdType.AUTO,value = "location_id") @TableId(type = IdType.AUTO,value = "location_id")
private Long locationId; private Long locationId;
// /**
// * 所属仓库
// */
// private Long warehouseId;
/** /**
* *
*/ */
private Long warehouseId; private Long areaId;
/** /**
* *
@ -51,11 +55,25 @@ public class WmsBaseLocation extends TenantEntity {
* *
*/ */
private Long locationNum; private Long locationNum;
@TableField(exist = false)
private String warehouseCode; // @TableField(exist = false)
// private String warehouseCode;
// /**
// * 仓库名称
// */
// @TableField(exist = false)
// private String warehouseName;
/** /**
* *
*/ */
@TableField(exist = false) @TableField(exist = false)
private String warehouseName; private String areaCode;//JOIN
/**
*
*/
@TableField(exist = false)
private String areaName;//JOIN
} }

@ -1,13 +1,10 @@
package org.dromara.wms.domain.bo; package org.dromara.wms.domain.bo;
import org.dromara.wms.domain.WmsBaseLocation;
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 io.github.linpeilie.annotations.AutoMapper;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*; import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.wms.domain.WmsBaseLocation;
/** /**
* wms_base_location * wms_base_location
@ -19,11 +16,17 @@ import jakarta.validation.constraints.*;
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@AutoMapper(target = WmsBaseLocation.class, reverseConvertGenerate = false) @AutoMapper(target = WmsBaseLocation.class, reverseConvertGenerate = false)
public class WmsBaseLocationBo extends BaseEntity { public class WmsBaseLocationBo extends BaseEntity {
private Long locationId; private Long locationId;
// /**
// * 所属仓库
// */
// private Long warehouseId;
/** /**
* *
*/ */
private Long warehouseId; private Long areaId;
/** /**
* *

@ -32,11 +32,16 @@ public class WmsBaseLocationVo implements Serializable {
@ExcelProperty(value = "表主键") @ExcelProperty(value = "表主键")
private Long locationId; private Long locationId;
// /**
// * 所属仓库
// */
// @ExcelProperty(value = "所属仓库")
// private Long warehouseId;
/** /**
* *
*/ */
@ExcelProperty(value = "所属仓库") @ExcelProperty(value = "所属仓库仓库区域")
private Long warehouseId; private Long areaId;
/** /**
* *
@ -73,12 +78,23 @@ public class WmsBaseLocationVo implements Serializable {
*/ */
@ExcelProperty(value = "更新时间") @ExcelProperty(value = "更新时间")
private Date updateTime; private Date updateTime;
private String warehouseCode;
// private String warehouseCode;
//
// /**
// * 仓库名称
// */
// private String warehouseName;
/**
*
*/
private String areaCode;
/** /**
* *
*/ */
private String warehouseName; private String areaName;
private boolean state=false; private boolean state=false;
} }

@ -3,8 +3,6 @@ package org.dromara.wms.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper; import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data; import lombok.Data;
import org.dromara.wms.domain.WmsInstockPrint; import org.dromara.wms.domain.WmsInstockPrint;
@ -12,7 +10,6 @@ import org.dromara.wms.domain.WmsInstockPrint;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date;
@ -117,6 +114,8 @@ public class WmsInstockPrintVo implements Serializable {
private Double instockQty; private Double instockQty;
private Long warehouseId; private Long warehouseId;
//关联仓库改为关联区域
private Long areaId;
/** /**
* *

@ -1,26 +1,25 @@
package org.dromara.wms.service.impl; package org.dromara.wms.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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.extension.plugins.pagination.Page;
import com.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.toolkit.JoinWrappers;
import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.dromara.wms.domain.WmsBaseWarehouse; import org.dromara.common.core.utils.MapstructUtils;
import org.springframework.stereotype.Service; 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.WmsBaseArea;
import org.dromara.wms.domain.WmsBaseLocation;
import org.dromara.wms.domain.bo.WmsBaseLocationBo; import org.dromara.wms.domain.bo.WmsBaseLocationBo;
import org.dromara.wms.domain.vo.WmsBaseLocationVo; import org.dromara.wms.domain.vo.WmsBaseLocationVo;
import org.dromara.wms.domain.WmsBaseLocation;
import org.dromara.wms.mapper.WmsBaseLocationMapper; import org.dromara.wms.mapper.WmsBaseLocationMapper;
import org.dromara.wms.service.IWmsBaseLocationService; import org.dromara.wms.service.IWmsBaseLocationService;
import org.springframework.stereotype.Service;
import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Collection;
/** /**
* Service * Service
@ -73,8 +72,8 @@ public class WmsBaseLocationServiceImpl implements IWmsBaseLocationService {
@Override @Override
public List<WmsBaseLocationVo> queryVoList(WmsBaseLocationBo bo) { public List<WmsBaseLocationVo> queryVoList(WmsBaseLocationBo bo) {
LambdaQueryWrapper<WmsBaseLocation> lqw = new LambdaQueryWrapper<>(); LambdaQueryWrapper<WmsBaseLocation> lqw = new LambdaQueryWrapper<>();
if (bo.getWarehouseId()!=null){ if (bo.getAreaId()!=null){
lqw.eq(WmsBaseLocation::getWarehouseId,bo.getWarehouseId()); lqw.eq(WmsBaseLocation::getAreaId,bo.getAreaId());
} }
return baseMapper.selectVoList(lqw); return baseMapper.selectVoList(lqw);
} }
@ -83,10 +82,13 @@ public class WmsBaseLocationServiceImpl implements IWmsBaseLocationService {
Map<String, Object> params = bo.getParams(); Map<String, Object> params = bo.getParams();
MPJLambdaWrapper<WmsBaseLocation> lqw = JoinWrappers.lambda(WmsBaseLocation.class) MPJLambdaWrapper<WmsBaseLocation> lqw = JoinWrappers.lambda(WmsBaseLocation.class)
.selectAll(WmsBaseLocation.class) .selectAll(WmsBaseLocation.class)
.select(WmsBaseWarehouse::getWarehouseName,WmsBaseWarehouse::getWarehouseCode) // .select(WmsBaseWarehouse::getWarehouseName,WmsBaseWarehouse::getWarehouseCode)
// .leftJoin(WmsBaseWarehouse.class,WmsBaseWarehouse::getWarehouseId,WmsBaseLocation::getWarehouseId)
//关联仓库改为关联区域
.select(WmsBaseArea::getAreaName, WmsBaseArea::getAreaCode)
.leftJoin(WmsBaseArea.class,WmsBaseArea::getAreaId,WmsBaseLocation::getAreaId)
.leftJoin(WmsBaseWarehouse.class,WmsBaseWarehouse::getWarehouseId,WmsBaseLocation::getWarehouseId) .eq(bo.getAreaId() != null, WmsBaseLocation::getAreaId, bo.getAreaId())
.eq(bo.getWarehouseId() != null, WmsBaseLocation::getWarehouseId, bo.getWarehouseId())
.like(StringUtils.isNotBlank(bo.getLocationCode()), WmsBaseLocation::getLocationCode, bo.getLocationCode()) .like(StringUtils.isNotBlank(bo.getLocationCode()), WmsBaseLocation::getLocationCode, bo.getLocationCode())
.eq(bo.getLineNum() != null, WmsBaseLocation::getLineNum, bo.getLineNum()) .eq(bo.getLineNum() != null, WmsBaseLocation::getLineNum, bo.getLineNum())
.eq(bo.getLayerNum() != null, WmsBaseLocation::getLayerNum, bo.getLayerNum()) .eq(bo.getLayerNum() != null, WmsBaseLocation::getLayerNum, bo.getLayerNum())
@ -150,8 +152,13 @@ public class WmsBaseLocationServiceImpl implements IWmsBaseLocationService {
public WmsBaseLocationVo selectLocationVoByCode(String code) { public WmsBaseLocationVo selectLocationVoByCode(String code) {
MPJLambdaWrapper<WmsBaseLocation> lqw = JoinWrappers.lambda(WmsBaseLocation.class) MPJLambdaWrapper<WmsBaseLocation> lqw = JoinWrappers.lambda(WmsBaseLocation.class)
.selectAll(WmsBaseLocation.class) .selectAll(WmsBaseLocation.class)
.select(WmsBaseWarehouse::getWarehouseName,WmsBaseWarehouse::getWarehouseCode)
.leftJoin(WmsBaseWarehouse.class,WmsBaseWarehouse::getWarehouseId,WmsBaseLocation::getWarehouseId) // .select(WmsBaseWarehouse::getWarehouseName,WmsBaseWarehouse::getWarehouseCode)
// .leftJoin(WmsBaseWarehouse.class,WmsBaseWarehouse::getWarehouseId,WmsBaseLocation::getWarehouseId)
//关联仓库改为关联区域
.select(WmsBaseArea::getAreaName, WmsBaseArea::getAreaCode)
.leftJoin(WmsBaseArea.class,WmsBaseArea::getAreaId,WmsBaseLocation::getAreaId)
.eq( WmsBaseLocation::getLocationCode, code); .eq( WmsBaseLocation::getLocationCode, code);
return baseMapper.selectVoOne(lqw); return baseMapper.selectVoOne(lqw);
} }

Loading…
Cancel
Save