fgd vor 1 Jahr
Ursprung
Commit
af2526d02c

+ 22 - 6
sd-business/src/main/java/com/sd/business/service/order/impl/OrderSalesShipmentStatisticsServiceImpl.java

@@ -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))