添加库存信息
parent
74a963ac66
commit
7c8f7d1c4a
|
|
@ -2,8 +2,10 @@ package net.lab1024.sa.admin.module.business.wms.base.stock.service;
|
|||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.google.common.collect.Maps;
|
||||
import jakarta.annotation.Resource;
|
||||
import net.lab1024.sa.admin.module.business.wms.base.area.domain.entity.AreaEntity;
|
||||
import net.lab1024.sa.admin.module.business.wms.base.item.domain.entity.ItemEntity;
|
||||
import net.lab1024.sa.admin.module.business.wms.base.location.domain.entity.LocationEntity;
|
||||
import net.lab1024.sa.admin.module.business.wms.base.location.domain.vo.LocationVO;
|
||||
import net.lab1024.sa.admin.module.business.wms.base.location.manager.LocationManager;
|
||||
|
|
@ -20,6 +22,7 @@ import net.lab1024.sa.admin.module.business.wms.base.stock.domain.entity.StockEn
|
|||
import net.lab1024.sa.admin.module.business.wms.base.stock.domain.form.StockQueryForm;
|
||||
import net.lab1024.sa.admin.module.business.wms.base.stock.domain.form.StockSelect;
|
||||
import net.lab1024.sa.admin.module.business.wms.base.stock.domain.vo.StocksExcelVO;
|
||||
import net.lab1024.sa.admin.module.business.wms.base.stock.manager.StockManager;
|
||||
import net.lab1024.sa.base.common.domain.PageResult;
|
||||
import net.lab1024.sa.base.common.util.SmartPageUtil;
|
||||
import net.lab1024.sa.base.module.support.dict.constant.DictConst;
|
||||
|
|
@ -42,6 +45,9 @@ public class StockQueryService {
|
|||
@Resource
|
||||
private LocationManager locationManager;
|
||||
|
||||
@Resource
|
||||
private StockManager stockManager;
|
||||
|
||||
@Resource
|
||||
private DictService dictService;
|
||||
|
||||
|
|
@ -70,6 +76,27 @@ public class StockQueryService {
|
|||
return SmartPageUtil.convert2PageResult(page, list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据容器id集合查询容器信息
|
||||
*
|
||||
* @param stockIdList 容器id集合
|
||||
* @return Map<Long, StockEntity>
|
||||
*/
|
||||
public Map<Long, StockEntity> queryStockList(List<Long> stockIdList) {
|
||||
if (CollectionUtils.isEmpty(stockIdList)) {
|
||||
return Collections.emptyMap();
|
||||
}
|
||||
stockIdList = stockIdList.stream().distinct().collect(Collectors.toList());
|
||||
Map<Long, StockEntity> stockMap = Maps.newHashMap();
|
||||
for (Long stockId : stockIdList) {
|
||||
StockEntity stock = stockManager.queryStock(stockId);
|
||||
if (stock != null) {
|
||||
stockMap.put(stockId, stock);
|
||||
}
|
||||
}
|
||||
return stockMap;
|
||||
}
|
||||
|
||||
/**
|
||||
* 容器下拉查询
|
||||
*
|
||||
|
|
|
|||
|
|
@ -7,13 +7,9 @@ import net.lab1024.sa.admin.module.business.wms.inventory.domain.vo.InventoryVO;
|
|||
import net.lab1024.sa.admin.module.business.wms.inventory.service.InventoryQueryService;
|
||||
import net.lab1024.sa.admin.module.business.wms.inventory.service.InventoryService;
|
||||
import net.lab1024.sa.base.common.domain.ValidateList;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import net.lab1024.sa.base.common.domain.ResponseDTO;
|
||||
import net.lab1024.sa.base.common.domain.PageResult;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
|
|
@ -61,15 +57,15 @@ public class InventoryController {
|
|||
|
||||
@Operation(summary = "批量删除 @author 霍锦")
|
||||
@PostMapping("/inventory/batchDelete")
|
||||
@SaCheckPermission("inventory:delete")
|
||||
@SaCheckPermission("inventory:batchDelete")
|
||||
public ResponseDTO<String> batchDelete(@RequestBody ValidateList<Long> idList) {
|
||||
return inventoryService.batchDelete(idList);
|
||||
}
|
||||
|
||||
@Operation(summary = "单个删除 @author 霍锦")
|
||||
@GetMapping("/inventory/delete/{inventoryId}")
|
||||
@GetMapping("/inventory/delete")
|
||||
@SaCheckPermission("inventory:delete")
|
||||
public ResponseDTO<String> batchDelete(@PathVariable Long inventoryId) {
|
||||
public ResponseDTO<String> delete(@RequestParam Long inventoryId) {
|
||||
return inventoryService.delete(inventoryId);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ import lombok.AllArgsConstructor;
|
|||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import net.lab1024.sa.base.common.util.SmartRequestUtil;
|
||||
|
||||
/**
|
||||
* 库存信息 实体类
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package net.lab1024.sa.admin.module.business.wms.inventory.domain.form;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import net.lab1024.sa.base.common.domain.PageParam;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
|
@ -16,4 +17,13 @@ import lombok.EqualsAndHashCode;
|
|||
@EqualsAndHashCode(callSuper = false)
|
||||
public class InventoryQueryForm extends PageParam {
|
||||
|
||||
@Schema(description = "物料")
|
||||
private Long itemId;
|
||||
|
||||
@Schema(description = "库位")
|
||||
private Long locationId;
|
||||
|
||||
@Schema(description = "容器")
|
||||
private Long stockId;
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,8 +1,10 @@
|
|||
package net.lab1024.sa.admin.module.business.wms.inventory.domain.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
|
|
@ -23,12 +25,24 @@ public class InventoryVO {
|
|||
@Schema(description = "物料属性")
|
||||
private Long itemKeyId;
|
||||
|
||||
@Schema(description = "物料编码")
|
||||
private String itemCode;
|
||||
|
||||
@Schema(description = "物料名称")
|
||||
private String itemName;
|
||||
|
||||
@Schema(description = "库位")
|
||||
private Long locationId;
|
||||
|
||||
@Schema(description = "库位编码")
|
||||
private String locationCode;
|
||||
|
||||
@Schema(description = "容器")
|
||||
private Long stockId;
|
||||
|
||||
@Schema(description = "容器编码")
|
||||
private String stockCode;
|
||||
|
||||
@Schema(description = "数量")
|
||||
private BigDecimal quantity;
|
||||
|
||||
|
|
|
|||
|
|
@ -3,28 +3,87 @@ package net.lab1024.sa.admin.module.business.wms.inventory.service;
|
|||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import jakarta.annotation.Resource;
|
||||
import net.lab1024.sa.admin.module.business.wms.base.item.domain.entity.ItemEntity;
|
||||
import net.lab1024.sa.admin.module.business.wms.base.item.service.ItemQueryService;
|
||||
import net.lab1024.sa.admin.module.business.wms.base.location.domain.entity.LocationEntity;
|
||||
import net.lab1024.sa.admin.module.business.wms.base.location.service.LocationQueryService;
|
||||
import net.lab1024.sa.admin.module.business.wms.base.stock.domain.entity.StockEntity;
|
||||
import net.lab1024.sa.admin.module.business.wms.base.stock.service.StockQueryService;
|
||||
import net.lab1024.sa.admin.module.business.wms.inventory.dao.InventoryDao;
|
||||
import net.lab1024.sa.admin.module.business.wms.inventory.domain.entity.InventoryEntity;
|
||||
import net.lab1024.sa.admin.module.business.wms.inventory.domain.form.InventoryQueryForm;
|
||||
import net.lab1024.sa.admin.module.business.wms.inventory.domain.vo.InventoryVO;
|
||||
import net.lab1024.sa.admin.module.business.wms.itemKey.domain.entity.ItemKeyEntity;
|
||||
import net.lab1024.sa.admin.module.business.wms.itemKey.service.ItemKeyQueryService;
|
||||
import net.lab1024.sa.admin.module.business.wms.task.domain.vo.TaskVO;
|
||||
import net.lab1024.sa.base.common.domain.PageResult;
|
||||
import net.lab1024.sa.base.common.util.SmartPageUtil;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Service
|
||||
public class InventoryQueryService {
|
||||
|
||||
@Resource
|
||||
private InventoryDao inventoryDao;
|
||||
|
||||
@Resource
|
||||
private ItemQueryService itemQueryService;
|
||||
|
||||
@Resource
|
||||
private StockQueryService stockQueryService;
|
||||
|
||||
@Resource
|
||||
private LocationQueryService locationQueryService;
|
||||
|
||||
@Resource
|
||||
private ItemKeyQueryService itemKeyQueryService;
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询
|
||||
*/
|
||||
public PageResult<InventoryVO> queryPage(InventoryQueryForm queryForm) {
|
||||
Page<?> page = SmartPageUtil.convert2PageQuery(queryForm);
|
||||
List<InventoryVO> list = inventoryDao.queryPage(page, queryForm);
|
||||
// 查询物料属性
|
||||
List<Long> itemKeyIds = list.stream().map(InventoryVO::getItemKeyId).distinct().collect(Collectors.toList());
|
||||
Map<Long, ItemKeyEntity> itemKeyMap = itemKeyQueryService.queryItemKeyList(itemKeyIds);
|
||||
|
||||
//查询物料
|
||||
List<Long> itemIds = itemKeyMap.values().stream().map(ItemKeyEntity::getItemId).distinct().collect(Collectors.toList());
|
||||
Map<Long, ItemEntity> itemMap = itemQueryService.queryItemList(itemIds);
|
||||
|
||||
//查询容器
|
||||
List<Long> stockIds = list.stream().map(InventoryVO::getStockId).distinct().collect(Collectors.toList());
|
||||
Map<Long, StockEntity> stockMap = stockQueryService.queryStockList(stockIds);
|
||||
|
||||
//查询库位
|
||||
List<Long> locationIds = list.stream().map(InventoryVO::getLocationId).distinct().collect(Collectors.toList());
|
||||
Map<Long, LocationEntity> locationMap = locationQueryService.queryLocationList(locationIds);
|
||||
|
||||
list.forEach(InventoryVO -> {
|
||||
ItemKeyEntity itemKey = itemKeyMap.get(InventoryVO.getItemKeyId());
|
||||
if (itemKey != null) {
|
||||
ItemEntity item = itemMap.get(itemKey.getItemId());
|
||||
if (item != null) {
|
||||
InventoryVO.setItemCode(item.getItemCode());
|
||||
InventoryVO.setItemName(item.getItemName());
|
||||
}
|
||||
}
|
||||
StockEntity stock = stockMap.get(InventoryVO.getStockId());
|
||||
if (stock != null) {
|
||||
InventoryVO.setStockCode(stock.getStockCode());
|
||||
}
|
||||
LocationEntity location = locationMap.get(InventoryVO.getLocationId());
|
||||
if (location != null) {
|
||||
InventoryVO.setLocationCode(location.getLocationCode());
|
||||
}
|
||||
});
|
||||
return SmartPageUtil.convert2PageResult(page, list);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -21,6 +21,21 @@
|
|||
SELECT
|
||||
<include refid="base_columns"/>
|
||||
FROM t_inventory
|
||||
<where>
|
||||
<!--物料-->
|
||||
<if test="queryForm.itemId != null">
|
||||
AND t_inventory.item_key_id in (select item_key_id from t_item_key where item_id = #{queryForm.itemId})
|
||||
</if>
|
||||
<!--库位-->
|
||||
<if test="queryForm.locationId != null">
|
||||
AND t_inventory.location_id=#{queryForm.locationId}
|
||||
</if>
|
||||
<!--容器-->
|
||||
<if test="queryForm.stockId != null">
|
||||
AND t_inventory.stock_id=#{queryForm.stockId}
|
||||
</if>
|
||||
</where>
|
||||
ORDER BY t_inventory.create_time
|
||||
</select>
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue