refactor: 库存查询优化

This commit is contained in:
zccbbg 2024-08-07 13:55:15 +08:00
parent 0a7abfb88a
commit 7a294feef9
6 changed files with 48 additions and 48 deletions

View file

@ -38,21 +38,30 @@ public class InventoryController extends BaseController {
private final InventoryService inventoryService; private final InventoryService inventoryService;
/** /**
* 查询库存列表 * 查询库存列表库区维度
*/ */
@SaCheckPermission("wms:inventory:list") @SaCheckPermission("wms:inventory:list")
@GetMapping("/list") @GetMapping(value = {"/list", "/boardList/area"})
public TableDataInfo<InventoryVo> list(InventoryBo bo, PageQuery pageQuery) { public TableDataInfo<InventoryVo> queryAreaBoardList(InventoryBo bo, PageQuery pageQuery) {
return inventoryService.queryPageList(bo, pageQuery); return inventoryService.queryAreaBoardList(bo, pageQuery);
} }
/** /**
* 查询库存列表 * 查询库存列表商品维度
*/ */
@SaCheckPermission("wms:inventory:list") @SaCheckPermission("wms:inventory:list")
@GetMapping("/boardList") @GetMapping(value = {"/boardList/item"})
public TableDataInfo<InventoryVo> queryBoradList(InventoryBo bo, PageQuery pageQuery) { public TableDataInfo<InventoryVo> queryItemBoardList(InventoryBo bo, PageQuery pageQuery) {
return inventoryService.queryBoardList(bo, pageQuery); return inventoryService.queryItemBoardList(bo, pageQuery);
}
/**
* 查询库存列表仓库维度
*/
@SaCheckPermission("wms:inventory:list")
@GetMapping("/boardList/warehouse")
public TableDataInfo<InventoryVo> queryWarehouseBoardList(InventoryBo bo, PageQuery pageQuery) {
return inventoryService.queryWarehouseBoardList(bo, pageQuery);
} }
/** /**

View file

@ -6,7 +6,6 @@ import com.ruoyi.common.mybatis.core.domain.BaseEntity;
import com.ruoyi.common.mybatis.core.domain.PlaceAndItem; import com.ruoyi.common.mybatis.core.domain.PlaceAndItem;
import com.ruoyi.wms.domain.entity.Inventory; import com.ruoyi.wms.domain.entity.Inventory;
import io.github.linpeilie.annotations.AutoMapper; import io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
@ -70,11 +69,4 @@ public class InventoryBo extends BaseEntity implements PlaceAndItem {
private String skuName; private String skuName;
private String skuCode; private String skuCode;
private Long itemCategory; private Long itemCategory;
/**
* 看板查看类型
* 1. 2. 仓库库区规格
* 3. 规格仓库库区
* */
private Integer type;
} }

View file

@ -4,11 +4,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; import com.ruoyi.common.mybatis.core.mapper.BaseMapperPlus;
import com.ruoyi.wms.domain.bo.InventoryBo; import com.ruoyi.wms.domain.bo.InventoryBo;
import com.ruoyi.wms.domain.entity.Inventory; import com.ruoyi.wms.domain.entity.Inventory;
import org.apache.ibatis.annotations.Param;
import com.ruoyi.wms.domain.vo.InventoryVo; import com.ruoyi.wms.domain.vo.InventoryVo;
import org.apache.ibatis.annotations.Param;
import java.time.LocalDateTime;
import java.util.List;
/** /**
* 库存Mapper接口 * 库存Mapper接口
@ -18,7 +15,8 @@ import java.util.List;
*/ */
public interface InventoryMapper extends BaseMapperPlus<Inventory, InventoryVo> { public interface InventoryMapper extends BaseMapperPlus<Inventory, InventoryVo> {
Page<InventoryVo> selectVoPageByBo(Page<Object> page, @Param("bo") InventoryBo bo); Page<InventoryVo> queryItemBoardList(Page<Object> page, @Param("bo") InventoryBo bo);
Page<InventoryVo> queryAreaBoardList(Page<Object> page, @Param("bo") InventoryBo bo);
Page<InventoryVo> selectBoardPageByWarehouse(Page<Object> page, @Param("bo") InventoryBo bo); Page<InventoryVo> selectBoardPageByWarehouse(Page<Object> page, @Param("bo") InventoryBo bo);
} }

View file

@ -5,7 +5,6 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.core.constant.ServiceConstants;
import com.ruoyi.common.core.exception.base.BaseException; import com.ruoyi.common.core.exception.base.BaseException;
import com.ruoyi.common.core.utils.MapstructUtils; import com.ruoyi.common.core.utils.MapstructUtils;
import com.ruoyi.common.core.utils.ValidatorUtils; import com.ruoyi.common.core.utils.ValidatorUtils;
@ -13,7 +12,9 @@ import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.mybatis.core.domain.PlaceAndItem; import com.ruoyi.common.mybatis.core.domain.PlaceAndItem;
import com.ruoyi.common.mybatis.core.page.PageQuery; import com.ruoyi.common.mybatis.core.page.PageQuery;
import com.ruoyi.common.mybatis.core.page.TableDataInfo; import com.ruoyi.common.mybatis.core.page.TableDataInfo;
import com.ruoyi.wms.domain.bo.*; import com.ruoyi.wms.domain.bo.InventoryBo;
import com.ruoyi.wms.domain.bo.InventoryDetailBo;
import com.ruoyi.wms.domain.bo.ShipmentDataBo;
import com.ruoyi.wms.domain.entity.Inventory; import com.ruoyi.wms.domain.entity.Inventory;
import com.ruoyi.wms.domain.vo.InventoryVo; import com.ruoyi.wms.domain.vo.InventoryVo;
import com.ruoyi.wms.domain.vo.ItemSkuVo; import com.ruoyi.wms.domain.vo.ItemSkuVo;
@ -50,14 +51,6 @@ public class InventoryService extends ServiceImpl<InventoryMapper, Inventory> {
return inventoryMapper.selectVoById(id); return inventoryMapper.selectVoById(id);
} }
/**
* 查询库存列表
*/
public TableDataInfo<InventoryVo> queryPageList(InventoryBo bo, PageQuery pageQuery) {
Page<InventoryVo> result = inventoryMapper.selectVoPageByBo(pageQuery.build(), bo);
return TableDataInfo.build(result);
}
/** /**
* 查询库存列表 * 查询库存列表
*/ */
@ -190,8 +183,7 @@ public class InventoryService extends ServiceImpl<InventoryMapper, Inventory> {
return shipmentData; return shipmentData;
} }
public TableDataInfo<InventoryVo> queryBoardList(InventoryBo bo, PageQuery pageQuery) { public TableDataInfo<InventoryVo> queryWarehouseBoardList(InventoryBo bo, PageQuery pageQuery) {
if (ServiceConstants.InventoryBoardType.WAREHOUSE.equals(bo.getType())) {
TableDataInfo<InventoryVo> tableDataInfo = TableDataInfo.build(inventoryMapper.selectBoardPageByWarehouse(pageQuery.build(), bo)); TableDataInfo<InventoryVo> tableDataInfo = TableDataInfo.build(inventoryMapper.selectBoardPageByWarehouse(pageQuery.build(), bo));
if (CollUtil.isEmpty(tableDataInfo.getRows())) { if (CollUtil.isEmpty(tableDataInfo.getRows())) {
return tableDataInfo; return tableDataInfo;
@ -204,7 +196,18 @@ public class InventoryService extends ServiceImpl<InventoryMapper, Inventory> {
it.setItem(itemSku.getItem()); it.setItem(itemSku.getItem());
}); });
return tableDataInfo; return tableDataInfo;
} }
return queryPageList(bo, pageQuery);
/**
* 查询库存列表
*/
public TableDataInfo<InventoryVo> queryAreaBoardList(InventoryBo bo, PageQuery pageQuery) {
Page<InventoryVo> result = inventoryMapper.queryAreaBoardList(pageQuery.build(), bo);
return TableDataInfo.build(result);
}
public TableDataInfo<InventoryVo> queryItemBoardList(InventoryBo bo, PageQuery pageQuery) {
Page<InventoryVo> result = inventoryMapper.queryItemBoardList(pageQuery.build(), bo);
return TableDataInfo.build(result);
} }
} }

View file

@ -9,7 +9,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<association property="item" javaType="com.ruoyi.wms.domain.vo.ItemVo" /> <association property="item" javaType="com.ruoyi.wms.domain.vo.ItemVo" />
</resultMap> </resultMap>
<select id="selectVoPageByBo" resultMap="inventoryVoMap"> <sql id="selectVoListByBo">
select select
inventory.*, inventory.*,
sku.*, sku.*,
@ -43,12 +43,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
and inventory.quantity>=#{bo.minQuantity} and inventory.quantity>=#{bo.minQuantity}
</if> </if>
</where> </where>
<if test="bo.type == null or bo.type == 2"> </sql>
order by inventory.warehouse_id,inventory.area_id,sku.item_id,sku.id
</if> <select id="queryAreaBoardList" resultMap="inventoryVoMap">
<if test="bo.type == 3"> <include refid="selectVoListByBo"/>
order by sku.item_id,sku.id,inventory.warehouse_id,inventory.area_id order by inventory.warehouse_id,inventory.area_id,sku.item_id,sku.id
</if> </select>
<select id="queryItemBoardList" resultMap="inventoryVoMap">
<include refid="selectVoListByBo"/>
order by sku.item_id,sku.id,inventory.warehouse_id,inventory.area_id
</select> </select>
<select id="selectBoardPageByWarehouse" resultType="com.ruoyi.wms.domain.vo.InventoryVo"> <select id="selectBoardPageByWarehouse" resultType="com.ruoyi.wms.domain.vo.InventoryVo">

View file

@ -28,10 +28,4 @@ public class ServiceConstants {
public static final Integer PENDING = 0; public static final Integer PENDING = 0;
public static final Integer FINISH = 1; public static final Integer FINISH = 1;
} }
public class InventoryBoardType {
public static final Integer WAREHOUSE = 1;
public static final Integer AREA = 2;
public static final Integer ITEM = 3;
}
} }