Browse Source

委外订单金额修改

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

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

@@ -303,12 +303,37 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, OrderInfo> implem
                 orderDto.setClassify(OrderClassifyEnum.PURCHASE_ORDER.getKey());
             }
         }
+        // 委外订单修改金额
+        if (ObjectUtil.equals(orderDto.getType(), 2)) {
+            orderDto.setProductTotalAmount(BigDecimal.ZERO);
+            orderDto.setLssueFee(BigDecimal.ZERO);
+            orderDto.setDeliveryMaterialsFee(BigDecimal.ZERO);
+            orderDto.setManagementFee(BigDecimal.ZERO);
+            orderDto.setPackingLabor(orderDto.getPackingLabor().multiply(new BigDecimal(2)));
+            orderDto.setTotalAmount(orderDto.getProductTotalAmount()
+                    .add(orderDto.getCustomProcessingFee())
+                    .add(orderDto.getLssueFee())
+                    .add(orderDto.getDeliveryMaterialsFee())
+                    .add(orderDto.getPackingLabor())
+                    .add(orderDto.getPackagingMaterialCost())
+                    .add(orderDto.getManagementFee()));
+        }
         this.save(orderDto);
 
         // 新增订单产品包材配件
         List<OrderSku> tempOrderSkuList = orderSkuList.stream()
                 .peek(item -> item.setOrderId(orderDto.getId()))
                 .peek(item -> item.setStockPreparationStatus(StatusConstant.NO))
+                .peek(item -> {
+                    // 委外订单修改金额
+                    if (ObjectUtil.equals(orderDto.getType(), 2)) {
+                        item.setUnitPrice(BigDecimal.ZERO);
+                        item.setLssueFee(BigDecimal.ZERO);
+                        item.setDeliveryMaterialsFee(BigDecimal.ZERO);
+                        item.setManagementFee(BigDecimal.ZERO);
+                        item.setPackingLabor(item.getPackingLabor().multiply(new BigDecimal(2)));
+                    }
+                })
                 .map(item -> (OrderSku) item)
                 .collect(Collectors.toList());
         orderSkuService.saveBatch(tempOrderSkuList);
@@ -517,9 +542,21 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, OrderInfo> implem
 
         // 更新订单
         dto.setStatus(OrderStatusEnum.STOCK_PREPARATION.getKey());
-        // 订单为委外订单时,订单分类为委外订单
+        // 订单为委外订单时,订单分类为委外订单,订单费用修改
         if (Objects.equals(dto.getType(), 2)) {
             dto.setClassify(OrderClassifyEnum.OUTSOURCE_ORDER.getKey());
+            dto.setProductTotalAmount(BigDecimal.ZERO);
+            dto.setLssueFee(BigDecimal.ZERO);
+            dto.setDeliveryMaterialsFee(BigDecimal.ZERO);
+            dto.setManagementFee(BigDecimal.ZERO);
+            dto.setPackingLabor(dto.getPackingLabor().multiply(new BigDecimal(2)));
+            dto.setTotalAmount(dto.getProductTotalAmount()
+                    .add(dto.getCustomProcessingFee())
+                    .add(dto.getLssueFee())
+                    .add(dto.getDeliveryMaterialsFee())
+                    .add(dto.getPackingLabor())
+                    .add(dto.getPackagingMaterialCost())
+                    .add(dto.getManagementFee()));
         } else if (Objects.equals(dto.getType(), 1)) {
             // 拥有采购角色的账号创建的自主订单为采购订单
             Long userId = dto.getCreateUser();
@@ -534,6 +571,16 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, OrderInfo> implem
         List<OrderSku> tempOrderSkuList = orderSkuList.stream()
                 .peek(item -> item.setOrderId(dto.getId()))
                 .peek(item -> item.setStockPreparationStatus(StatusConstant.NO))
+                .peek(item -> {
+                    // 委外订单修改金额
+                    if (ObjectUtil.equals(dto.getType(), 2)) {
+                        item.setUnitPrice(BigDecimal.ZERO);
+                        item.setLssueFee(BigDecimal.ZERO);
+                        item.setDeliveryMaterialsFee(BigDecimal.ZERO);
+                        item.setManagementFee(BigDecimal.ZERO);
+                        item.setPackingLabor(item.getPackingLabor().multiply(new BigDecimal(2)));
+                    }
+                })
                 .map(item -> (OrderSku) item)
                 .collect(Collectors.toList());
         orderSkuService.editLinked(tempOrderSkuList, OrderSku::getOrderId, dto.getId());