From 36b559c7e83a2a25360ac568e62030f9c0ab9513 Mon Sep 17 00:00:00 2001 From: chuzhichao Date: Fri, 5 May 2023 12:03:48 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=BC=E5=87=BA=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- wms/pom.xml | 5 ++ .../java/com/cyl/wms/domain/Inventory.java | 13 +++ .../cyl/wms/pojo/vo/InventoryHistoryVO.java | 12 ++- .../java/com/cyl/wms/pojo/vo/InventoryVO.java | 13 ++- .../wms/service/InventoryHistoryService.java | 1 + .../com/cyl/wms/service/InventoryService.java | 82 ++++++++++++++++++- 6 files changed, 111 insertions(+), 15 deletions(-) diff --git a/wms/pom.xml b/wms/pom.xml index 0a705f5..1d6265e 100644 --- a/wms/pom.xml +++ b/wms/pom.xml @@ -21,6 +21,11 @@ ruoyi-common ${ruoyi.version} + + com.ruoyi + ruoyi-system + ${ruoyi.version} + com.ruoyi mybatis-plus-api diff --git a/wms/src/main/java/com/cyl/wms/domain/Inventory.java b/wms/src/main/java/com/cyl/wms/domain/Inventory.java index 925717a..dbe095e 100644 --- a/wms/src/main/java/com/cyl/wms/domain/Inventory.java +++ b/wms/src/main/java/com/cyl/wms/domain/Inventory.java @@ -2,6 +2,7 @@ package com.cyl.wms.domain; import java.math.BigDecimal; +import com.baomidou.mybatisplus.annotation.TableField; import com.cyl.wms.pojo.vo.PlaceAndItem; import com.ruoyi.common.annotation.Excel; import io.swagger.annotations.ApiModel; @@ -50,4 +51,16 @@ public class Inventory extends BaseAudit implements PlaceAndItem { @ApiModelProperty("删除标识") private Integer delFlag; + @TableField(exist = false) + private String itemNo; + + @TableField(exist = false) + private String itemName; + + @TableField(exist = false) + private String warehouseName; + + @TableField(exist = false) + private String areaName; + } diff --git a/wms/src/main/java/com/cyl/wms/pojo/vo/InventoryHistoryVO.java b/wms/src/main/java/com/cyl/wms/pojo/vo/InventoryHistoryVO.java index d767ae4..9be2a1b 100644 --- a/wms/src/main/java/com/cyl/wms/pojo/vo/InventoryHistoryVO.java +++ b/wms/src/main/java/com/cyl/wms/pojo/vo/InventoryHistoryVO.java @@ -22,17 +22,19 @@ public class InventoryHistoryVO extends BaseAudit implements AreaAndItemInfo { /** * 操作id(出库、入库、库存移动表单id) */ - @Excel(name = "操作id" , readConverterExp = "出库、入库、库存移动表单id" ) private Long formId; /** * 操作类型 */ - @Excel(name = "操作类型", handler = DictDealHandler.class, args = {"wms_receipt_type", "wms_shipment_type", "wms_movement_type"}) private Integer formType; + /** + * 操作类型名称 + */ + @Excel(name = "操作类型") + private String formTypeName; /** * 物料ID */ - @Excel(name = "物料ID" ) private Long itemId; @Excel(name = "物料名称" ) private String itemName; @@ -41,15 +43,11 @@ public class InventoryHistoryVO extends BaseAudit implements AreaAndItemInfo { /** * 货架id */ - @Excel(name = "货架id" ) private Long rackId; - @Excel(name = "货架名称" ) private String rackName; - @Excel(name = "仓库id" ) private Long warehouseId; @Excel(name = "仓库名称" ) private String warehouseName; - @Excel(name = "库区id" ) private Long areaId; @Excel(name = "库区名称" ) diff --git a/wms/src/main/java/com/cyl/wms/pojo/vo/InventoryVO.java b/wms/src/main/java/com/cyl/wms/pojo/vo/InventoryVO.java index 74370a5..87ba301 100644 --- a/wms/src/main/java/com/cyl/wms/pojo/vo/InventoryVO.java +++ b/wms/src/main/java/com/cyl/wms/pojo/vo/InventoryVO.java @@ -15,25 +15,24 @@ public class InventoryVO extends BaseAudit implements AreaAndItemInfo { /** ID */ private Long id; /** 物料ID */ - @Excel(name = "物料ID") private Long itemId; - // 物料名称 - private String itemName; // 物料编号 + @Excel(name = "物料编码") private String itemNo; - + // 物料名称 + @Excel(name = "物料名称") + private String itemName; /** 货架id */ - @Excel(name = "货架id") private Long rackId; // 货架 名称 private String rackName; - @Excel(name = "仓库id") private Long warehouseId; // 仓库 名称 + @Excel(name = "仓库") private String warehouseName; - @Excel(name = "库区id") private Long areaId; // 库区 名称 + @Excel(name = "库区") private String areaName; /** 库存 */ @Excel(name = "库存") diff --git a/wms/src/main/java/com/cyl/wms/service/InventoryHistoryService.java b/wms/src/main/java/com/cyl/wms/service/InventoryHistoryService.java index ca485ba..350b264 100644 --- a/wms/src/main/java/com/cyl/wms/service/InventoryHistoryService.java +++ b/wms/src/main/java/com/cyl/wms/service/InventoryHistoryService.java @@ -53,6 +53,7 @@ public class InventoryHistoryService { List list = queryInventoryHistories(query); List res = inventoryHistoryConvert.dos2vos(list); inventoryService.injectAreaAndItemInfo(res); + inventoryService.injectDictDataLabel(res); return res; } diff --git a/wms/src/main/java/com/cyl/wms/service/InventoryService.java b/wms/src/main/java/com/cyl/wms/service/InventoryService.java index c8b45ea..74368a6 100644 --- a/wms/src/main/java/com/cyl/wms/service/InventoryService.java +++ b/wms/src/main/java/com/cyl/wms/service/InventoryService.java @@ -7,12 +7,15 @@ import com.cyl.wms.domain.*; import com.cyl.wms.mapper.InventoryMapper; import com.cyl.wms.pojo.query.InventoryQuery; import com.cyl.wms.pojo.vo.AreaAndItemInfo; +import com.cyl.wms.pojo.vo.InventoryHistoryVO; import com.cyl.wms.pojo.vo.InventoryVO; import com.cyl.wms.pojo.vo.PlaceAndItem; import com.github.pagehelper.PageHelper; import com.ruoyi.common.constant.CommonConstant; +import com.ruoyi.common.core.domain.entity.SysDictData; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.SortUtil; +import com.ruoyi.system.service.ISysDictDataService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Example; import org.springframework.data.domain.Page; @@ -45,6 +48,8 @@ public class InventoryService { private RackService rackService; @Autowired private ItemService itemService; + @Autowired + private ISysDictDataService sysDictDataService; /** * 查询库存 @@ -89,7 +94,7 @@ public class InventoryService { if (query.getQuantityEnd() != null) { qw.le("quantity" , query.getQuantityEnd()); } - return inventoryMapper.selectList(qw); + return getInventoryList(qw); } /** @@ -144,6 +149,14 @@ public class InventoryService { return inventoryMapper.updateDelFlagByIds(ids); } + public List getInventoryList(QueryWrapper qw){ + List items = inventoryMapper.selectList(qw); + injectItemNoAndItemName(items); + injectWarehouseName(items); + injectAreaName(items); + return items; + } + public boolean canOutStock(Long itemId, Long warehouseId, Long areaId, Long rackId, BigDecimal quantity) { QueryWrapper qw = new QueryWrapper<>(); qw.eq("item_id" , itemId) @@ -334,4 +347,71 @@ public class InventoryService { injectAreaAndItemInfo(res); return res; } + + /** + * 注入物料编码和名称 + * + * @param res 物料 + */ + public void injectItemNoAndItemName(List res) { + if (CollUtil.isEmpty(res)) { + return; + } + Set items = res.stream().map(Inventory::getItemId).collect(Collectors.toSet()); + Map itemMap = itemService.selectByIdIn(items).stream().collect(Collectors.toMap(Item::getId, it -> it)); + res.forEach(it -> { + if (it.getItemId() != null && itemMap.containsKey(it.getItemId())) { + it.setItemNo(itemMap.get(it.getItemId()).getItemNo()); + it.setItemName(itemMap.get(it.getItemId()).getItemName()); + } + }); + } + + /** + * 注入仓库名称 + * @param res 物料 + */ + public void injectWarehouseName(List res){ + if (CollUtil.isEmpty(res)){ + return; + } + Set warehouses = res.stream().map(Inventory::getWarehouseId).collect(Collectors.toSet()); + Map warehouseMap = warehouseService.selectByIdIn(warehouses).stream().collect(Collectors.toMap(Warehouse::getId, it -> it)); + res.forEach(it -> { + if (it.getWarehouseId() != null && warehouseMap.containsKey(it.getWarehouseId())){ + it.setWarehouseName(warehouseMap.get(it.getWarehouseId()).getWarehouseName()); + } + }); + } + + /** + * 注入库区名称 + * @param res 物料 + */ + public void injectAreaName(List res){ + if (CollUtil.isEmpty(res)){ + return; + } + Set areas = res.stream().map(Inventory::getAreaId).collect(Collectors.toSet()); + Map areaMap = areaService.selectByIdIn(areas).stream().collect(Collectors.toMap(Area::getId, it -> it)); + res.forEach(it -> { + if (it.getAreaId() != null && areaMap.containsKey(it.getAreaId())){ + it.setAreaName(areaMap.get(it.getAreaId()).getAreaName()); + } + }); + } + + public void injectDictDataLabel(List res){ + if (CollUtil.isEmpty(res)){ + return; + } + Set dictTypes = new HashSet<>(); + dictTypes.add("wms_inventory_oper_type"); + Map sysDictDataMap = sysDictDataService.selectDictDataByTypes(dictTypes).stream().collect(Collectors.toMap(SysDictData::getDictValue, it -> it)); + res.forEach(it -> { + if (it.getFormType() != null && sysDictDataMap.containsKey(String.valueOf(it.getFormType()))){ + it.setFormTypeName(sysDictDataMap.get(String.valueOf(it.getFormType())).getDictLabel()); + } + }); + } }