Forráskód Böngészése

订单产品包装调整

fgd 1 éve
szülő
commit
e0cf0f5de2

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

@@ -509,14 +509,15 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, OrderInfo> implem
         }
 
         // 更新订单产品包装信息
-        if (ObjectUtil.isNotEmpty(dto.getOrderPackageBomList())) {
-            List<OrderPackageBomDto> tempOrderPackageBomList = dto.getOrderPackageBomList();
-            List<OrderPackageBom> orderPackageBomList = tempOrderPackageBomList.stream()
-                    .peek(item -> item.setOrderId(dto.getId()))
-                    .map(item -> (OrderPackageBom) item)
-                    .collect(Collectors.toList());
-            orderPackageBomService.editLinked(orderPackageBomList, OrderPackageBom::getOrderId, dto.getId());
+        List<OrderPackageBomDto> tempOrderPackageBomList = dto.getOrderPackageBomList();
+        if (tempOrderPackageBomList == null) {
+            tempOrderPackageBomList = new ArrayList<>();
         }
+        List<OrderPackageBom> orderPackageBomList = tempOrderPackageBomList.stream()
+                .peek(item -> item.setOrderId(dto.getId()))
+                .map(item -> (OrderPackageBom) item)
+                .collect(Collectors.toList());
+        orderPackageBomService.editLinked(orderPackageBomList, OrderPackageBom::getOrderId, dto.getId());
 
         // 订单操作日志
         if (dto.getUpdateType() != null) {
@@ -570,6 +571,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, OrderInfo> implem
                     .add(dto.getPackingLabor())
                     .add(dto.getPackagingMaterialCost())
                     .add(dto.getManagementFee()));
+            // 清空订单快递包材
+            dto.setOrderPackageBomList(null);
         } else if (Objects.equals(dto.getType(), 1)) {
             // 拥有采购角色的账号创建的自主订单为采购订单
             Long userId = dto.getCreateUser();
@@ -650,14 +653,15 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, OrderInfo> implem
         }
 
         // 更新订单产品包装信息
-        if (ObjectUtil.isNotEmpty(dto.getOrderPackageBomList())) {
-            List<OrderPackageBomDto> tempOrderPackageBomList = dto.getOrderPackageBomList();
-            List<OrderPackageBom> orderPackageBomList = tempOrderPackageBomList.stream()
-                    .peek(item -> item.setOrderId(dto.getId()))
-                    .map(item -> (OrderPackageBom) item)
-                    .collect(Collectors.toList());
-            orderPackageBomService.editLinked(orderPackageBomList, OrderPackageBom::getOrderId, dto.getId());
+        List<OrderPackageBomDto> tempOrderPackageBomList = dto.getOrderPackageBomList();
+        if (tempOrderPackageBomList == null) {
+            tempOrderPackageBomList = new ArrayList<>();
         }
+        List<OrderPackageBom> orderPackageBomList = tempOrderPackageBomList.stream()
+                .peek(item -> item.setOrderId(dto.getId()))
+                .map(item -> (OrderPackageBom) item)
+                .collect(Collectors.toList());
+        orderPackageBomService.editLinked(orderPackageBomList, OrderPackageBom::getOrderId, dto.getId());
 
         // 更新产品不干胶图稿
         for (OrderSkuDto item : orderSkuList) {
@@ -1226,6 +1230,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, OrderInfo> implem
         // 生产中和生产完成的订单快递包材归还入库
         if (ObjectUtil.equals(orderInfo.getStatus(), OrderStatusEnum.IN_PRODUCTION.getKey())
                 || ObjectUtil.equals(orderInfo.getStatus(), OrderStatusEnum.COMPLETION_PRODUCTION.getKey())) {
+            dto.setCode(orderInfo.getCode());
+            dto.setWlnCode(orderInfo.getWlnCode());
             this.orderPackageBomInOutStorage(dto);
         }
 

+ 18 - 19
sd-wln/src/main/java/com/sd/wln/service/impl/WlnOrderServiceImpl.java

@@ -418,7 +418,7 @@ public class WlnOrderServiceImpl implements WlnOrderService {
         Map<Long, Map<Integer, List<SkuSpecLink>>> linkBomSpecMap = context.getSkuSpecLinkBomSpecMap();
         Map<Long, BomSpecBo> bomBoMap = context.getBomSpecBoMap();
 
-        Map<Long, OrderPackageBom> orderPackageBomMap = new HashMap<>();
+        List<OrderPackageBom> orderPackageBomList = new ArrayList<>();
 
         Map<Integer, List<SkuSpecLink>> map = linkBomSpecMap.getOrDefault(orderSku.getSkuSpecId(), Collections.emptyMap());
         List<SkuSpecLink> skuSpecLinkList = map.getOrDefault(2, Collections.emptyList());
@@ -426,28 +426,27 @@ public class WlnOrderServiceImpl implements WlnOrderService {
         for (SkuSpecLink skuSpecLink : skuSpecLinkList) {
             Long bomSpecId = skuSpecLink.getBomSpecId();
 
-            OrderPackageBom orderPackageBom = orderPackageBomMap.computeIfAbsent(bomSpecId, item -> {
-                OrderPackageBom tempOrderPackageBom = new OrderPackageBom();
-                tempOrderPackageBom.setOrderId(orderSku.getOrderId());
-                tempOrderPackageBom.setBomSpecId(bomSpecId);
-                tempOrderPackageBom.setQuantity(BigDecimal.ZERO);
-                BomSpecBo bomSpecBo = bomBoMap.get(bomSpecId);
-                if (bomSpecBo == null) {
-                    tempOrderPackageBom.setCostPrice(BigDecimal.ZERO);
-                    tempOrderPackageBom.setInternalSellingPrice(BigDecimal.ZERO);
-                } else {
-                    tempOrderPackageBom.setCostPrice(bomSpecBo.getCostPrice());
-                    tempOrderPackageBom.setInternalSellingPrice(bomSpecBo.getInternalSellingPrice());
-                }
-                return tempOrderPackageBom;
-            });
+            OrderPackageBom orderPackageBom = new OrderPackageBom();
+            orderPackageBom.setOrderId(orderSku.getOrderId());
+            orderPackageBom.setBomSpecId(bomSpecId);
+            BomSpecBo bomSpecBo = bomBoMap.get(bomSpecId);
+            if (bomSpecBo == null) {
+                orderPackageBom.setCostPrice(BigDecimal.ZERO);
+                orderPackageBom.setInternalSellingPrice(BigDecimal.ZERO);
+            } else {
+                orderPackageBom.setCostPrice(bomSpecBo.getCostPrice());
+                orderPackageBom.setInternalSellingPrice(bomSpecBo.getInternalSellingPrice());
+            }
+            orderPackageBom.setQuantity(orderSku.getQuantity().multiply(skuSpecLink.getQuantity()));
 
-            orderPackageBom.setQuantity(orderPackageBom.getQuantity().add(orderSku.getQuantity().multiply(skuSpecLink.getQuantity())));
-            BigDecimal deliveryMaterialsFee = orderPackageBom.getInternalSellingPrice().multiply(orderPackageBom.getQuantity());
+            // 计算订单sku的快递包材费
+            BigDecimal deliveryMaterialsFee = orderPackageBom.getInternalSellingPrice().multiply(skuSpecLink.getQuantity());
             orderSku.setDeliveryMaterialsFee(orderSku.getDeliveryMaterialsFee().add(deliveryMaterialsFee));
+
+            orderPackageBomList.add(orderPackageBom);
         }
 
-        return new ArrayList<>(orderPackageBomMap.values());
+        return orderPackageBomList;
     }
 
     /**