|
@@ -261,7 +261,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
}
|
|
}
|
|
|
if (!order.getTradeType().equals(OrderTypeEnum.IMPORT.getType())) {
|
|
if (!order.getTradeType().equals(OrderTypeEnum.IMPORT.getType())) {
|
|
|
// 生成毛利润 毛利额
|
|
// 生成毛利润 毛利额
|
|
|
- List<OrderItems> list = orderItemsService.list(new QueryWrapper<OrderItems>().eq("pid", order.getId()).eq("is_deleted", 0));
|
|
|
|
|
|
|
+ List<OrderItems> list = orderItemsService.list(new QueryWrapper<OrderItems>().eq("pid", order.getId()).eq("good_type",0).eq("is_deleted", 0));
|
|
|
Order orderMessage = new Order();
|
|
Order orderMessage = new Order();
|
|
|
orderMessage.setId(order.getId());
|
|
orderMessage.setId(order.getId());
|
|
|
if (CollectionUtils.isNotEmpty(list) && order.getTradeType().equals(OrderTypeEnum.DOMESTIC.getType())) {
|
|
if (CollectionUtils.isNotEmpty(list) && order.getTradeType().equals(OrderTypeEnum.DOMESTIC.getType())) {
|
|
@@ -271,7 +271,11 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
BigDecimal amount = list.stream().map(OrderItems::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
BigDecimal amount = list.stream().map(OrderItems::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
//毛利额 = 销售金额-采购金额-预计海运费-本次使用返利+应收费用(除包装费)
|
|
//毛利额 = 销售金额-采购金额-预计海运费-本次使用返利+应收费用(除包装费)
|
|
|
BigDecimal grossProfit = amount.subtract(reduce.add(order.getPredictOceanFreight())).subtract(order.getCreateProfit() == null ? BigDecimal.ZERO : order.getCreateProfit());
|
|
BigDecimal grossProfit = amount.subtract(reduce.add(order.getPredictOceanFreight())).subtract(order.getCreateProfit() == null ? BigDecimal.ZERO : order.getCreateProfit());
|
|
|
-
|
|
|
|
|
|
|
+ //国内主表需要总重量总体积
|
|
|
|
|
+ //总重量求和
|
|
|
|
|
+ BigDecimal cntrVolumn = list.stream().reduce(BigDecimal.ZERO, (x, y) -> x.add(y.getCntrVolumn().multiply(y.getOrderQuantity())), BigDecimal::add);
|
|
|
|
|
+ //总体积求和
|
|
|
|
|
+ BigDecimal cartonWeight = list.stream().reduce(BigDecimal.ZERO, (x, y) -> x.add(y.getCntrWeight().multiply(y.getOrderQuantity())), BigDecimal::add);
|
|
|
// 毛利额添加应收费用(除包装费)
|
|
// 毛利额添加应收费用(除包装费)
|
|
|
Long feeId = 0L;
|
|
Long feeId = 0L;
|
|
|
R<FeesDesc> fees = feesDescClient.getFeesByName("包装费");
|
|
R<FeesDesc> fees = feesDescClient.getFeesByName("包装费");
|
|
@@ -290,6 +294,10 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
orderMessage.setGrossProfit(grossProfit);
|
|
orderMessage.setGrossProfit(grossProfit);
|
|
|
// 毛利率
|
|
// 毛利率
|
|
|
orderMessage.setGrossProfitRate(grossProfitRate);
|
|
orderMessage.setGrossProfitRate(grossProfitRate);
|
|
|
|
|
+ //总重量
|
|
|
|
|
+ orderMessage.setCntrVolumn(cntrVolumn);
|
|
|
|
|
+ //总提价
|
|
|
|
|
+ orderMessage.setCntrWeight(cartonWeight);
|
|
|
} else if (CollectionUtils.isNotEmpty(list) && order.getTradeType().equals(OrderTypeEnum.EXPORT.getType())) {
|
|
} else if (CollectionUtils.isNotEmpty(list) && order.getTradeType().equals(OrderTypeEnum.EXPORT.getType())) {
|
|
|
// 出口的毛利额=销售价 * 汇率 - (采购价+配件价格) 毛利率 =毛利额/(采购单价+配件价格)
|
|
// 出口的毛利额=销售价 * 汇率 - (采购价+配件价格) 毛利率 =毛利额/(采购单价+配件价格)
|
|
|
// 金额求和
|
|
// 金额求和
|
|
@@ -544,6 +552,13 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
// 计算主表总金额
|
|
// 计算主表总金额
|
|
|
BigDecimal itemTotalAmount = orderList.stream().map(OrderItems::getAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
BigDecimal itemTotalAmount = orderList.stream().map(OrderItems::getAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
selectById.setOrderAmount(itemTotalAmount);
|
|
selectById.setOrderAmount(itemTotalAmount);
|
|
|
|
|
+ //国内订单需要体积和重量
|
|
|
|
|
+ if (StringUtils.isNotBlank(selectById.getTradeType()) && selectById.getTradeType().equals(OrderTypeEnum.DOMESTIC.getType())){
|
|
|
|
|
+ //总重量求和
|
|
|
|
|
+ selectById.setCntrVolumn(orderList.stream().reduce(BigDecimal.ZERO, (x, y) -> x.add(y.getCntrVolumn().multiply(y.getOrderQuantity())), BigDecimal::add));
|
|
|
|
|
+ //总体积求和
|
|
|
|
|
+ selectById.setCntrWeight(orderList.stream().reduce(BigDecimal.ZERO, (x, y) -> x.add(y.getCntrWeight().multiply(y.getOrderQuantity())), BigDecimal::add));
|
|
|
|
|
+ }
|
|
|
baseMapper.updateById(selectById);
|
|
baseMapper.updateById(selectById);
|
|
|
}
|
|
}
|
|
|
});
|
|
});
|