Browse Source

修复对账单bug

fgd 1 năm trước cách đây
mục cha
commit
4f0c472d37

+ 4 - 0
sd-business/src/main/java/com/sd/business/entity/statement/vo/DocumentByBomVo.java

@@ -81,4 +81,8 @@ public class DocumentByBomVo {
      */
     private Integer placeholder;
 
+    /**
+     * 订单id
+     */
+    private Long orderId;
 }

+ 5 - 0
sd-business/src/main/java/com/sd/business/entity/statement/vo/DocumentBySkuVo.java

@@ -51,4 +51,9 @@ public class DocumentBySkuVo {
      */
     private Integer placeholder;
 
+    /**
+     * 订单id
+     */
+    private Long orderId;
+
 }

+ 28 - 31
sd-business/src/main/java/com/sd/business/service/statement/impl/StatementOfAccountServiceImpl.java

@@ -246,11 +246,9 @@ public class StatementOfAccountServiceImpl extends ServiceImpl<StatementOfAccoun
         List<DocumentBySkuVo> documentBySkuVoList = orderSkuList.stream()
                 .map(item -> DocumentBySkuVo.builder()
                         .skuSpecId(item.getSkuSpecId())
+                        .orderId(item.getOrderId())
                         // 判断是否是委外订单,如果是委外订单时将bom数量修改为0
-                        .quantity(ObjectUtil.isNotEmpty(
-                                orderService.getOne(q -> q
-                                        .eq(OrderInfo::getId, item.getOrderId()).eq(OrderInfo::getType, 2)))
-                                ? BigDecimal.ZERO : item.getQuantity())
+                        .quantity(item.getQuantity())
                         .unitPrice(item.getUnitPrice()
                                 .add(item.getCustomProcessingFee())
                                 .add(item.getLssueFee())
@@ -260,8 +258,15 @@ public class StatementOfAccountServiceImpl extends ServiceImpl<StatementOfAccoun
                                 .add(item.getManagementFee())
                         )
                         .build())
-                .peek(item -> item.setSubtotal(item.getQuantity().multiply(item.getUnitPrice())))
+                .peek(item -> item.setSubtotal(ObjectUtil.equals(item.getQuantity(), BigDecimal.ZERO) ? item.getUnitPrice() : item.getQuantity().multiply(item.getUnitPrice())))
                 .peek(item -> item.setTotal(item.getSubtotal()))
+                .peek(item -> {
+                    // 判断是否是委外订单,如果是委外订单时将bom数量修改为0
+                    OrderInfo orderInfo = orderService.getOne(q -> q.eq(OrderInfo::getId, item.getOrderId()).eq(OrderInfo::getType, 2));
+                    if (ObjectUtil.isNotEmpty(orderInfo)) {
+                        item.setQuantity(BigDecimal.ZERO);
+                    }
+                })
                 .collect(Collectors.toList());
 
         // 赋值sku规格品名和品号
@@ -302,26 +307,9 @@ public class StatementOfAccountServiceImpl extends ServiceImpl<StatementOfAccoun
 
         // 主材bom
         List<DocumentByBomVo> result = orderSkuList.stream()
-                .map(item -> {
-                    OrderInfo orderInfo = orderService.getOne(q -> q.eq(OrderInfo::getId, item.getOrderId()).eq(OrderInfo::getType, 2));
-                    if (ObjectUtil.isNotEmpty(orderInfo)) {
-                        // 判断是否是委外订单,如果是委外订单时将bom数量修改为0
-                        return DocumentByBomVo.builder()
-                                .bomSpecId(item.getBomSpecId())
-                                .quantity(BigDecimal.ZERO)
-                                .unitPrice(item.getUnitPrice())
-                                .laserLogoSummary((Objects.equals(item.getCustomProcessingType(), "20")
-                                        ? item.getCustomProcessingFee() : BigDecimal.ZERO))
-                                .laserMitochondrialSummary((Objects.equals(item.getCustomProcessingType(), "10")
-                                        ? item.getCustomProcessingFee() : BigDecimal.ZERO))
-                                .lssueFeeSummary(item.getLssueFee())
-                                .deliveryMaterialsFeeSummary(item.getDeliveryMaterialsFee())
-                                .packingLaborSummary(item.getPackingLabor())
-                                .managementFeeSummary(item.getManagementFee())
-                                .build();
-                    } else {
-                        return DocumentByBomVo.builder()
+                .map(item -> DocumentByBomVo.builder()
                                 .bomSpecId(item.getBomSpecId())
+                                .orderId(item.getOrderId())
                                 .quantity(item.getQuantity())
                                 .unitPrice(item.getUnitPrice())
                                 .laserLogoSummary((Objects.equals(item.getCustomProcessingType(), "20")
@@ -332,9 +320,7 @@ public class StatementOfAccountServiceImpl extends ServiceImpl<StatementOfAccoun
                                 .deliveryMaterialsFeeSummary(item.getDeliveryMaterialsFee().multiply(item.getQuantity()))
                                 .packingLaborSummary(item.getPackingLabor().multiply(item.getQuantity()))
                                 .managementFeeSummary(item.getManagementFee().multiply(item.getQuantity()))
-                                .build();
-                    }
-                })
+                                .build())
                 .peek(item -> item.setSubtotal(
                         item.getUnitPrice()
                                 .multiply(item.getQuantity())
@@ -346,6 +332,13 @@ public class StatementOfAccountServiceImpl extends ServiceImpl<StatementOfAccoun
                                 .add(item.getManagementFeeSummary())
                 ))
                 .peek(item -> item.setTotal(item.getSubtotal()))
+                .peek(item -> {
+                    // 判断是否是委外订单,如果是委外订单时将bom数量修改为0
+                    OrderInfo orderInfo = orderService.getOne(q -> q.eq(OrderInfo::getId, item.getOrderId()).eq(OrderInfo::getType, 2));
+                    if (ObjectUtil.isNotEmpty(orderInfo)) {
+                        item.setQuantity(BigDecimal.ZERO);
+                    }
+                })
                 .collect(Collectors.toList());
 
         // 赋值主材bom品名品号
@@ -537,10 +530,7 @@ public class StatementOfAccountServiceImpl extends ServiceImpl<StatementOfAccoun
                         .orderSkuId(item.getId())
                         .skuSpecId(item.getSkuSpecId())
                         // 判断是否是委外订单,如果是委外订单时将bom数量修改为0
-                        .quantity(ObjectUtil.isNotEmpty(
-                                orderService.getOne(q -> q
-                                        .eq(OrderInfo::getId, item.getOrderId()).eq(OrderInfo::getType, 2)))
-                                ? BigDecimal.ZERO : item.getQuantity())
+                        .quantity(item.getQuantity())
                         .unitPrice(item.getUnitPrice()
                                 .add(item.getCustomProcessingFee())
                                 .add(item.getLssueFee())
@@ -551,6 +541,13 @@ public class StatementOfAccountServiceImpl extends ServiceImpl<StatementOfAccoun
                         .build())
                 .peek(item -> item.setSubtotal(item.getQuantity().multiply(item.getUnitPrice())))
                 .peek(item -> item.setTotal(item.getSubtotal()))
+                .peek(item -> {
+                    // 判断是否是委外订单,如果是委外订单时将bom数量修改为0
+                    OrderInfo orderInfo = orderService.getOne(q -> q.eq(OrderInfo::getId, item.getOrderId()).eq(OrderInfo::getType, 2));
+                    if (ObjectUtil.isNotEmpty(orderInfo)) {
+                        item.setQuantity(BigDecimal.ZERO);
+                    }
+                })
                 .collect(Collectors.toList());
 
         skuSpecService.attributeAssign(skuSpecList, DocumentByOrderVo.SkuSpec::getSkuSpecId, (item, skuSpec) -> {