Jelajahi Sumber

对账单bug

24282 1 tahun lalu
induk
melakukan
814539a44a

+ 7 - 5
sd-business/src/main/java/com/sd/business/service/statement/impl/StatementOfAccountServiceImpl.java

@@ -286,9 +286,9 @@ public class StatementOfAccountServiceImpl extends ServiceImpl<StatementOfAccoun
                         .quantity(item.getQuantity())
                         .unitPrice(item.getUnitPrice())
                         .laserLogoSummary((Objects.equals(item.getCustomProcessingType(), "20")
-                                ? item.getCustomProcessingFee() : BigDecimal.ZERO).multiply(item.getQuantity()))
+                                ? item.getCustomProcessingFee().multiply(item.getQuantity()) : BigDecimal.ZERO))
                         .laserMitochondrialSummary((Objects.equals(item.getCustomProcessingType(), "10")
-                                ? item.getCustomProcessingFee() : BigDecimal.ZERO).multiply(item.getQuantity()))
+                                ? item.getCustomProcessingFee().multiply(item.getQuantity()) : BigDecimal.ZERO))
                         .lssueFeeSummary(item.getLssueFee().multiply(item.getQuantity()))
                         .deliveryMaterialsFeeSummary(item.getDeliveryMaterialsFee().multiply(item.getQuantity()))
                         .packingLaborSummary(item.getPackingLabor().multiply(item.getQuantity()))
@@ -330,15 +330,17 @@ public class StatementOfAccountServiceImpl extends ServiceImpl<StatementOfAccoun
         // 赋值合并后结果
         result = new ArrayList<>(documentByBomVoCollection);
 
+        Map<Long, BigDecimal> orderSkuMap = orderSkuList.stream().collect(Collectors.toMap(BaseIdPo::getId, OrderSku::getQuantity));
+
         // 包材bom
         List<OrderSkuBom> orderSkuBomList = orderSkuBomService.list(q -> q.in(OrderSkuBom::getOrderId, orderIdList));
         List<DocumentByBomVo> bomVoList = orderSkuBomList.stream().map(item ->
                 DocumentByBomVo.builder()
                         .bomSpecId(item.getBomSpecId())
-                        .quantity(item.getQuantity())
+                        .quantity(item.getQuantity().multiply(orderSkuMap.get(item.getOrderSkuId())))
                         .unitPrice(item.getUnitPrice())
-                        .subtotal(item.getUnitPrice().multiply(item.getQuantity()))
-                        .total(item.getUnitPrice().multiply(item.getQuantity()))
+                        .subtotal(item.getUnitPrice().multiply(item.getQuantity().multiply(orderSkuMap.get(item.getOrderSkuId()))))
+                        .total(item.getUnitPrice().multiply(item.getQuantity().multiply(orderSkuMap.get(item.getOrderSkuId()))))
                         .build()
         ).collect(Collectors.toList());