呆滞库存处理:从识别预警到清仓止损

引言 呆滞库存是企业的隐形杀手,占用资金、浪费空间、影响现金流。本文将探讨呆滞库存的识别、预警和处理方法。 1. 呆滞库存定义 1.1 分类标准 呆滞库存: 定义:90天无销售 占比:一般不超过总库存的10% 死库存: 定义:180天无销售 占比:应控制在5%以内 1.2 呆滞率计算 呆滞率 = 呆滞库存金额 / 总库存金额 × 100% 示例: 总库存金额:1000万元 呆滞库存金额:80万元 呆滞率 = 80 / 1000 × 100% = 8% 1.3 Java实现 public class ObsoleteInventoryAnalyzer { public Map<String, BigDecimal> analyzeObsoleteRate() { // 1. 获取所有库存 List<Inventory> all = inventoryMapper.selectAll(); BigDecimal totalValue = all.stream() .map(inv -> inv.getAvailableQty() * inv.getUnitCost()) .map(BigDecimal::valueOf) .reduce(BigDecimal.ZERO, BigDecimal::add); // 2. 识别呆滞库存 List<Inventory> obsolete = identifyObsolete(all, 90); BigDecimal obsoleteValue = obsolete.stream() .map(inv -> inv.getAvailableQty() * inv.getUnitCost()) .map(BigDecimal::valueOf) .reduce(BigDecimal.ZERO, BigDecimal::add); // 3. 计算呆滞率 BigDecimal rate = obsoleteValue.divide(totalValue, 4, RoundingMode.HALF_UP) .multiply(new BigDecimal("100")); Map<String, BigDecimal> result = new HashMap<>(); result.put("totalValue", totalValue); result.put("obsoleteValue", obsoleteValue); result.put("obsoleteRate", rate); return result; } private List<Inventory> identifyObsolete(List<Inventory> inventories, int days) { LocalDate threshold = LocalDate.now().minusDays(days); return inventories.stream() .filter(inv -> { LocalDate lastSaleDate = salesDataService.getLastSaleDate(inv.getSku()); return lastSaleDate != null && lastSaleDate.isBefore(threshold); }) .collect(Collectors.toList()); } } 2. 呆滞预警 2.1 预警级别 一级预警(黄色): ...

2025-11-22 · maneng

如约数科科技工作室

浙ICP备2025203501号

👀 本站总访问量 ...| 👤 访客数 ...| 📅 今日访问 ...