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());
+ }
+ });
+ }
}