|
@@ -98,9 +98,14 @@ public class OrderSalesShipmentStatisticsServiceImpl implements OrderSalesShipme
|
|
|
return Collections.emptyList();
|
|
|
}
|
|
|
List<Long> bomSpecIds = statisticsVoList.stream().map(OrderSalesShipmentStatisticsBo::getBomSpecId).collect(Collectors.toList());
|
|
|
-
|
|
|
- Map<String, String> bomChromatophoreMap = dictCommonDataService.list(q -> q.eq(DictCommonData::getDictCode, "bom_chromatophore"))
|
|
|
- .stream().collect(Collectors.toMap(DictCommonData::getDictKey, DictCommonData::getDictValue));
|
|
|
+ List<DictCommonData> dictCommonDataList = dictCommonDataService.list();
|
|
|
+ Map<String, Map<String, String>> dictMap = dictCommonDataList.stream()
|
|
|
+ .collect(Collectors.groupingBy(
|
|
|
+ DictCommonData::getDictCode,
|
|
|
+ Collectors.toMap(
|
|
|
+ DictCommonData::getDictKey,
|
|
|
+ DictCommonData::getDictValue)
|
|
|
+ ));
|
|
|
|
|
|
// 查询前90、60、30天的所有库存数据
|
|
|
List<InventoryBackup> inventoryBackupList = inventoryBackupService.list(q -> q
|
|
@@ -190,10 +195,14 @@ public class OrderSalesShipmentStatisticsServiceImpl implements OrderSalesShipme
|
|
|
}
|
|
|
TurnoverRateStatisticsVo vo = new TurnoverRateStatisticsVo();
|
|
|
vo.setBomSpecCode(item.getBomSpecCode());
|
|
|
- vo.setBomSpecName(item.getBomSpecName());
|
|
|
- vo.setWidth(item.getWidth());
|
|
|
+ vo.setSpecies(dictMap.getOrDefault("bom_species", Collections.emptyMap()).get(item.getSpecies()));
|
|
|
+ vo.setChromatophore(dictMap.getOrDefault("bom_chromatophore", Collections.emptyMap()).get(item.getChromatophore()));
|
|
|
+ vo.setFrontGrain(dictMap.getOrDefault("bom_frontGrain", Collections.emptyMap()).get(item.getFrontGrain()));
|
|
|
+ vo.setReverseGrain(dictMap.getOrDefault("bom_reverseGrain", Collections.emptyMap()).get(item.getReverseGrain()));
|
|
|
+ vo.setSellingPriceSystem(dictMap.getOrDefault("bom_sellingPriceSystem", Collections.emptyMap()).get(item.getSellingPriceSystem()));
|
|
|
+ vo.setColour(item.getColour());
|
|
|
vo.setHeight(item.getHeight());
|
|
|
- vo.setChromatophore(bomChromatophoreMap.get(item.getChromatophore()));
|
|
|
+ vo.setWidth(item.getWidth());
|
|
|
vo.setSalesQuantityThirtyDays(item.getThirtyDaysSalesQuantity());
|
|
|
vo.setSalesQuantitySixtyDays(item.getSixtyDaysSalesQuantity());
|
|
|
vo.setSalesQuantityNinetyDays(item.getNinetyDaysSalesQuantity());
|
|
@@ -201,6 +210,13 @@ public class OrderSalesShipmentStatisticsServiceImpl implements OrderSalesShipme
|
|
|
vo.setTurnoverRateSixtyDays(turnoverRateSixtyDays);
|
|
|
vo.setTurnoverRateThirtyDays(turnoverRateThirtyDays);
|
|
|
vo.setQuantity(endQuantity);
|
|
|
+ // 预计消耗天数 100/30
|
|
|
+ if (vo.getSalesQuantityThirtyDays().compareTo(BigDecimal.ZERO) == 0) {
|
|
|
+ vo.setPredictOutStorageDays(null);
|
|
|
+ } else {
|
|
|
+ vo.setPredictOutStorageDays(vo.getQuantity().divide(vo.getSalesQuantityThirtyDays()
|
|
|
+ .divide(BigDecimal.valueOf(30), 6, RoundingMode.HALF_UP), 0, RoundingMode.DOWN));
|
|
|
+ }
|
|
|
return vo;
|
|
|
}).filter(Objects::nonNull)
|
|
|
.sorted(comparing(TurnoverRateStatisticsVo::getTurnoverRateNinetyDays))
|