Jelajahi Sumber

快递包材计算调整

fgd 1 tahun lalu
induk
melakukan
79f23b502d

+ 2 - 2
sd-business/src/main/java/com/sd/business/service/order/impl/OrderServiceImpl.java

@@ -1247,10 +1247,10 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, OrderInfo> implem
         }
         orderInfo.setDeliveryMaterialsFee(newDeliveryMaterialsFee);
         List<OrderSku> orderSkuList = orderSkuService.list(q -> q.eq(OrderSku::getOrderId, orderInfo.getId()));
+        BigDecimal quantity = orderSkuList.stream().map(OrderSku::getQuantity).reduce(BigDecimal.ZERO, BigDecimal::add);
         orderSkuList.forEach(item ->
                 item.setDeliveryMaterialsFee(orderInfo.getDeliveryMaterialsFee()
-                        .divide(new BigDecimal(orderSkuList.size()), 2, RoundingMode.HALF_UP)
-                        .divide(item.getQuantity(), 2, RoundingMode.HALF_UP))
+                        .divide(quantity, 4, RoundingMode.HALF_UP))
         );
         orderInfo.setTotalAmount(totalAmount.subtract(oldDeliveryMaterialsFee).add(newDeliveryMaterialsFee));
         this.updateById(orderInfo);

+ 7 - 4
sd-business/src/main/java/com/sd/business/service/sku/impl/SkuServiceImpl.java

@@ -329,7 +329,6 @@ public class SkuServiceImpl extends ServiceImpl<SkuMapper, Sku> implements SkuSe
     public void replacePackagingMaterial(ReplacePackagingMaterialDto dto) {
 
         IWrapper<Object> wrapper = IWrapper.getWrapper()
-                .eq("sslt", SkuSpecLink::getType, 1)
                 .eq("s", Sku::getCode, dto.getSkuCode())
                 .like("ss", SkuSpec::getCode, dto.getSkuSpecCode())
                 .eq("bs", BomSpec::getCode, dto.getBomSpecCode())
@@ -346,7 +345,7 @@ public class SkuServiceImpl extends ServiceImpl<SkuMapper, Sku> implements SkuSe
         List<Long> skuSpecIdList = list.stream().map(ReplacePackagingMaterialVo::getSkuSpecId).collect(Collectors.toList());
 
         List<SkuSpecLink> skuSpecLinkList = skuSpecLinkService.list(q ->
-                q.in(SkuSpecLink::getSkuSpecId, skuSpecIdList).eq(SkuSpecLink::getType, 1));
+                q.in(SkuSpecLink::getSkuSpecId, skuSpecIdList));
 
         Map<Long, List<SkuSpecLink>> map = skuSpecLinkList.stream().collect(Collectors.groupingBy(SkuSpecLink::getSkuSpecId));
 
@@ -361,6 +360,10 @@ public class SkuServiceImpl extends ServiceImpl<SkuMapper, Sku> implements SkuSe
         if (replaceBomSpecBo == null) {
             throw new ServiceException("没有找到替换包材bom规格");
         }
+        Integer type = 1;
+        if (Objects.equals(replaceBomSpecBo.getClassifyId(), 1682221528948760578L)) {
+            type = 2;
+        }
 
         List<SkuSpecLink> addOrEditSkuSpecLinkList = new ArrayList<>();
         List<Long> removeSkuSpecLinkIdList = new ArrayList<>();
@@ -373,7 +376,7 @@ public class SkuServiceImpl extends ServiceImpl<SkuMapper, Sku> implements SkuSe
                 skuSpecLink.setSkuId(record.getSkuId());
                 skuSpecLink.setSkuSpecId(record.getSkuSpecId());
                 skuSpecLink.setBomSpecId(replaceBomSpecId);
-                skuSpecLink.setType(1);
+                skuSpecLink.setType(type);
                 skuSpecLink.setQuantity(BigDecimal.ONE);
                 addOrEditSkuSpecLinkList.add(skuSpecLink);
                 continue;
@@ -404,7 +407,7 @@ public class SkuServiceImpl extends ServiceImpl<SkuMapper, Sku> implements SkuSe
                 skuSpecLink.setSkuId(record.getSkuId());
                 skuSpecLink.setSkuSpecId(record.getSkuSpecId());
                 skuSpecLink.setBomSpecId(replaceBomSpecId);
-                skuSpecLink.setType(1);
+                skuSpecLink.setType(type);
                 skuSpecLink.setQuantity(BigDecimal.ONE);
                 addOrEditSkuSpecLinkList.add(skuSpecLink);
             }