24282 1 gadu atpakaļ
vecāks
revīzija
c841831e8e

+ 19 - 15
sd-business/src/main/java/com/sd/business/service/statement/impl/StatementOfAccountServiceImpl.java

@@ -308,19 +308,19 @@ public class StatementOfAccountServiceImpl extends ServiceImpl<StatementOfAccoun
         // 主材bom
         List<DocumentByBomVo> result = orderSkuList.stream()
                 .map(item -> DocumentByBomVo.builder()
-                                .bomSpecId(item.getBomSpecId())
-                                .orderId(item.getOrderId())
-                                .quantity(item.getQuantity())
-                                .unitPrice(item.getUnitPrice())
-                                .laserLogoSummary((Objects.equals(item.getCustomProcessingType(), "20")
-                                        ? item.getCustomProcessingFee().multiply(item.getQuantity()) : BigDecimal.ZERO))
-                                .laserMitochondrialSummary((Objects.equals(item.getCustomProcessingType(), "10")
-                                        ? 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()))
-                                .managementFeeSummary(item.getManagementFee().multiply(item.getQuantity()))
-                                .build())
+                        .bomSpecId(item.getBomSpecId())
+                        .orderId(item.getOrderId())
+                        .quantity(item.getQuantity())
+                        .unitPrice(item.getUnitPrice())
+                        .laserLogoSummary((Objects.equals(item.getCustomProcessingType(), "20")
+                                ? item.getCustomProcessingFee().multiply(item.getQuantity()) : BigDecimal.ZERO))
+                        .laserMitochondrialSummary((Objects.equals(item.getCustomProcessingType(), "10")
+                                ? 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()))
+                        .managementFeeSummary(item.getManagementFee().multiply(item.getQuantity()))
+                        .build())
                 .peek(item -> item.setSubtotal(
                         item.getUnitPrice()
                                 .multiply(item.getQuantity())
@@ -525,6 +525,9 @@ public class StatementOfAccountServiceImpl extends ServiceImpl<StatementOfAccoun
      */
     private List<DocumentByOrderVo.SkuSpec> getSkuSpecList(List<OrderSku> orderSkuList) {
 
+        List<Long> orderIdList = orderSkuList.stream().map(OrderSku::getOrderId).collect(Collectors.toList());
+        Map<Long, OrderInfo> map = orderService.mapKEntity(BaseIdPo::getId, q -> q.in(BaseIdPo::getId, orderIdList).eq(OrderInfo::getType, 2));
+
         List<DocumentByOrderVo.SkuSpec> skuSpecList = orderSkuList.stream()
                 .map(item -> DocumentByOrderVo.SkuSpec.builder()
                         .orderId(item.getOrderId())
@@ -542,9 +545,10 @@ public class StatementOfAccountServiceImpl extends ServiceImpl<StatementOfAccoun
                         .build())
                 .peek(item -> item.setSubtotal(item.getQuantity().multiply(item.getUnitPrice())))
                 .peek(item -> {
+
+                    OrderInfo tempOrderInfo = map.get(item.getOrderId());
                     // 判断是否是委外订单,如果是委外订单时将bom数量修改为0
-                    OrderInfo orderInfo = orderService.getOne(q -> q.eq(OrderInfo::getId, item.getOrderId()).eq(OrderInfo::getType, 2));
-                    if (ObjectUtil.isNotEmpty(orderInfo)) {
+                    if (ObjectUtil.isNotEmpty(tempOrderInfo)) {
                         item.setQuantity(BigDecimal.ZERO);
                     }
                 })