|
@@ -182,10 +182,20 @@ public class StatisticsServiceImpl implements IStatisticsService {
|
|
|
BigDecimal stlAmountReturns = saleDetailDtoList.stream().filter(e -> "已完成".equals(e.getStatus()) &&
|
|
BigDecimal stlAmountReturns = saleDetailDtoList.stream().filter(e -> "已完成".equals(e.getStatus()) &&
|
|
|
"外部销售".equals(e.getBusinessSource())).map(SaleDetailDto::getSubTotalMoney).filter(Objects::nonNull)
|
|
"外部销售".equals(e.getBusinessSource())).map(SaleDetailDto::getSubTotalMoney).filter(Objects::nonNull)
|
|
|
.reduce(BigDecimal.ZERO, BigDecimal::add).setScale(0, RoundingMode.HALF_UP);
|
|
.reduce(BigDecimal.ZERO, BigDecimal::add).setScale(0, RoundingMode.HALF_UP);
|
|
|
- map.put("dealAmountM", subTotalMoneyActual.subtract(subTotalMoneyReturns));
|
|
|
|
|
- map.put("salesNumM", goodsNumActual.subtract(goodsNumReturns));
|
|
|
|
|
|
|
+ BigDecimal goodsNumCancel = saleDetailDtoList.stream().filter(e -> OrderStatusEnum.CANCELLED.value.equals(e.getStatus()))
|
|
|
|
|
+ .map(SaleDetailDto::getGoodsNum).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add)
|
|
|
|
|
+ .setScale(0, RoundingMode.HALF_UP).abs();
|
|
|
|
|
+ BigDecimal subTotalMoneyCancel = saleDetailDtoList.stream().filter(e -> OrderStatusEnum.CANCELLED.value.equals(e.getStatus()))
|
|
|
|
|
+ .map(SaleDetailDto::getSubTotalMoney).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add)
|
|
|
|
|
+ .setScale(0, RoundingMode.HALF_UP).abs();
|
|
|
|
|
+ // 已取消的毛利
|
|
|
|
|
+ BigDecimal profitCancel = saleDetailDtoList.stream().filter(e -> OrderStatusEnum.CANCELLED.value.equals(e.getStatus()))
|
|
|
|
|
+ .map(SaleDetailDto::getProfit).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add)
|
|
|
|
|
+ .setScale(0, RoundingMode.HALF_UP).abs();
|
|
|
|
|
+ map.put("dealAmountM", subTotalMoneyActual.subtract(subTotalMoneyReturns).subtract(subTotalMoneyCancel));
|
|
|
|
|
+ map.put("salesNumM", goodsNumActual.subtract(goodsNumReturns).subtract(goodsNumCancel));
|
|
|
map.put("stlAmountM", stlAmountActual.subtract(stlAmountReturns));
|
|
map.put("stlAmountM", stlAmountActual.subtract(stlAmountReturns));
|
|
|
- map.put("profitM", profitActual.subtract(profitReturns));
|
|
|
|
|
|
|
+ map.put("profitM", profitActual.subtract(profitReturns).subtract(profitCancel));
|
|
|
String formattedDay = today.format(formatter);
|
|
String formattedDay = today.format(formatter);
|
|
|
List<SaleDetailDto> saleDetailDayList = saleDetailDtoList.stream().filter(e -> e.getBusinesDate().equals(formattedDay))
|
|
List<SaleDetailDto> saleDetailDayList = saleDetailDtoList.stream().filter(e -> e.getBusinesDate().equals(formattedDay))
|
|
|
.collect(Collectors.toList());
|
|
.collect(Collectors.toList());
|
|
@@ -747,10 +757,18 @@ public class StatisticsServiceImpl implements IStatisticsService {
|
|
|
BigDecimal subTotalMoneyCancel = saleDetailDtoList.stream().filter(e -> OrderStatusEnum.CANCELLED.value.equals(e.getStatus()))
|
|
BigDecimal subTotalMoneyCancel = saleDetailDtoList.stream().filter(e -> OrderStatusEnum.CANCELLED.value.equals(e.getStatus()))
|
|
|
.map(SaleDetailDto::getSubTotalMoney).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add)
|
|
.map(SaleDetailDto::getSubTotalMoney).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add)
|
|
|
.setScale(0, RoundingMode.HALF_UP).abs();
|
|
.setScale(0, RoundingMode.HALF_UP).abs();
|
|
|
|
|
+
|
|
|
|
|
+ BigDecimal goodsNumReturns = saleDetailDtoList.stream().filter(e -> "已完成".equals(e.getStatus()))
|
|
|
|
|
+ .map(SaleDetailDto::getGoodsNum).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add)
|
|
|
|
|
+ .setScale(0, RoundingMode.HALF_UP).abs();
|
|
|
|
|
+ BigDecimal goodsNumCancel = saleDetailDtoList.stream().filter(e -> OrderStatusEnum.CANCELLED.value.equals(e.getStatus()))
|
|
|
|
|
+ .map(SaleDetailDto::getGoodsNum).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add)
|
|
|
|
|
+ .setScale(0, RoundingMode.HALF_UP).abs();
|
|
|
|
|
+
|
|
|
long customerCount = saleDetailDtoList.stream().filter(e -> !OrderStatusEnum.COMPLETED.value.equals(e.getStatus()) && !OrderStatusEnum.CANCELLED.value.equals(e.getStatus()) && e.getBsType().equals("销售")).map(SaleDetailDto::getCustomerId).filter(Objects::nonNull).distinct().count();
|
|
long customerCount = saleDetailDtoList.stream().filter(e -> !OrderStatusEnum.COMPLETED.value.equals(e.getStatus()) && !OrderStatusEnum.CANCELLED.value.equals(e.getStatus()) && e.getBsType().equals("销售")).map(SaleDetailDto::getCustomerId).filter(Objects::nonNull).distinct().count();
|
|
|
BigDecimal realAmount = subTotalMoneyActual.subtract(subTotalMoneyReturns).subtract(subTotalMoneyCancel);
|
|
BigDecimal realAmount = subTotalMoneyActual.subtract(subTotalMoneyReturns).subtract(subTotalMoneyCancel);
|
|
|
Map<String, Object> map = new HashMap<>(3);
|
|
Map<String, Object> map = new HashMap<>(3);
|
|
|
- map.put("income", goodsNumActual);
|
|
|
|
|
|
|
+ map.put("income", goodsNumActual.subtract(goodsNumReturns).subtract(goodsNumCancel));
|
|
|
map.put("averageAmount", realAmount.divide(new BigDecimal(customerCount), 2, RoundingMode.HALF_UP));
|
|
map.put("averageAmount", realAmount.divide(new BigDecimal(customerCount), 2, RoundingMode.HALF_UP));
|
|
|
map.put("corpsNumber", customerCount);
|
|
map.put("corpsNumber", customerCount);
|
|
|
|
|
|