|
@@ -823,17 +823,15 @@ public class StudentRepairServiceImpl extends BaseServiceImpl<Integer, StudentRe
|
|
|
//获取子商品明细map
|
|
|
List<GoodsSellDto> sellDtos = goodsSellDto.getGoodsSellDtos();
|
|
|
Map<Integer, List<GoodsSellDto>> subGoodsMap = sellDtos.stream().collect(Collectors.groupingBy(GoodsSellDto::getGoodsId));
|
|
|
-
|
|
|
- List<SellOrder> sellOrders = orderListMap.get(parentGoodsId);
|
|
|
- for (int i = 0; i < sellOrders.size(); i++) {
|
|
|
- SellOrder sellOrder = sellOrders.get(i);
|
|
|
- GoodsSellDto sellDto = subGoodsMap.get(sellOrder.getGoodsId()).get(0);
|
|
|
+ Set<Integer> integers = subGoodsMap.keySet();
|
|
|
+ for (int i = 0; i < integers.size(); i++) {
|
|
|
+ GoodsSellDto sellDto = subGoodsMap.get(integers.iterator().next()).get(0);
|
|
|
//获取比例
|
|
|
BigDecimal ratioAmount = sellDto.getTotalGoodsPrice().divide(divide, 2, BigDecimal.ROUND_HALF_UP);
|
|
|
|
|
|
if(addTotalPrice.doubleValue() > 0l){
|
|
|
//如果是最后一件商品
|
|
|
- if(i == sellOrders.size() - 1){
|
|
|
+ if(i == integers.size() - 1){
|
|
|
sellDto.setTotalGoodsPrice(sellDto.getTotalGoodsPrice().add(usableParentGoodsAddTotalPrice));
|
|
|
}else {
|
|
|
//获取分配的附加
|
|
@@ -844,7 +842,7 @@ public class StudentRepairServiceImpl extends BaseServiceImpl<Integer, StudentRe
|
|
|
sellDto.setGoodsPrice(sellDto.getTotalGoodsPrice());
|
|
|
}else if(cutTotalPrice.doubleValue() > 0l){
|
|
|
//如果是最后一件商品
|
|
|
- if(i == sellOrders.size() - 1){
|
|
|
+ if(i == integers.size() - 1){
|
|
|
sellDto.setTotalGoodsPrice(sellDto.getTotalGoodsPrice().subtract(usableParentGoodsCutTotalPrice));
|
|
|
}else {
|
|
|
//获取分配的组合减免金额
|
|
@@ -857,6 +855,14 @@ public class StudentRepairServiceImpl extends BaseServiceImpl<Integer, StudentRe
|
|
|
continue noFreeAmount;
|
|
|
}
|
|
|
}
|
|
|
+ /*List<SellOrder> sellOrders = orderListMap.get(parentGoodsId);
|
|
|
+ for (int i = 0; i < sellOrders.size(); i++) {
|
|
|
+ SellOrder sellOrder = sellOrders.get(i);
|
|
|
+ GoodsSellDto sellDto = subGoodsMap.get(sellOrder.getGoodsId()).get(0);
|
|
|
+ //获取比例
|
|
|
+ BigDecimal ratioAmount = sellDto.getTotalGoodsPrice().divide(divide, 2, BigDecimal.ROUND_HALF_UP);
|
|
|
+
|
|
|
+ }*/
|
|
|
}
|
|
|
for (int i = 0; i < sellOrderList.size(); i++) {
|
|
|
SellOrder sellOrder = sellOrderList.get(i);
|
|
@@ -881,18 +887,18 @@ public class StudentRepairServiceImpl extends BaseServiceImpl<Integer, StudentRe
|
|
|
if (goods.getAgreeCostPrice() != null) {
|
|
|
costMap.put("SellCost2", goods.getAgreeCostPrice());
|
|
|
}
|
|
|
- goodsSellDto.setTotalGoodsPrice(goodsSellDto.getGoodsPrice().multiply(new BigDecimal(sellOrder.getNum())));
|
|
|
+ BigDecimal multiply2 = goodsSellDto.getGoodsPrice().multiply(new BigDecimal(sellOrder.getNum()));
|
|
|
//获取比例
|
|
|
- BigDecimal ratioAmount = goodsSellDto.getTotalGoodsPrice().divide(totalAmount, 2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ BigDecimal ratioAmount = multiply2.divide(totalAmount, 2, BigDecimal.ROUND_HALF_UP);
|
|
|
//如果有减免金额
|
|
|
if(marketAmount.doubleValue() > 0l){
|
|
|
//如果是最后一件商品
|
|
|
if(i == sellOrderList.size() - 1){
|
|
|
- goodsSellDto.setTotalGoodsPrice(goodsSellDto.getTotalGoodsPrice().subtract(usableMarketAmount));
|
|
|
+ goodsSellDto.setTotalGoodsPrice(multiply2.subtract(usableMarketAmount));
|
|
|
}else {
|
|
|
//获取分配的减免金额
|
|
|
BigDecimal multiply = ratioAmount.multiply(marketAmount).setScale(2,BigDecimal.ROUND_HALF_UP);
|
|
|
- goodsSellDto.setTotalGoodsPrice(goodsSellDto.getTotalGoodsPrice().subtract(multiply));
|
|
|
+ goodsSellDto.setTotalGoodsPrice(multiply2.subtract(multiply));
|
|
|
usableMarketAmount = usableMarketAmount.subtract(multiply);
|
|
|
}
|
|
|
}
|