Browse Source

订单同步

24282 1 năm trước cách đây
mục cha
commit
5393bee5f9

+ 11 - 5
sd-wln/src/main/java/com/sd/wln/service/impl/WlnOrderServiceImpl.java

@@ -5,7 +5,9 @@ import cn.hutool.core.util.ObjectUtil;
 import com.alibaba.fastjson2.JSONObject;
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.ruoyi.common.constant.StatusConstant;
+import com.ruoyi.common.core.domain.BaseIdPo;
 import com.sd.business.entity.bom.bo.BomBo;
+import com.sd.business.entity.bom.po.BomSpec;
 import com.sd.business.entity.department.po.Department;
 import com.sd.business.entity.order.enums.OrderStatusEnum;
 import com.sd.business.entity.order.po.OrderInfo;
@@ -15,6 +17,7 @@ import com.sd.business.entity.order.po.OrderSkuBom;
 import com.sd.business.entity.price.po.PriceBillingStandardDetail;
 import com.sd.business.entity.sku.po.SkuSpec;
 import com.sd.business.entity.sku.po.SkuSpecLink;
+import com.sd.business.service.bom.BomSpecService;
 import com.sd.business.service.order.OrderPackageBomService;
 import com.sd.business.service.order.OrderService;
 import com.sd.business.service.order.OrderSkuBomService;
@@ -62,6 +65,9 @@ public class WlnOrderServiceImpl implements WlnOrderService {
     @Autowired
     private SkuSpecLinkService skuSpecLinkService;
 
+    @Autowired
+    private BomSpecService bomSpecService;
+
     @Override
     public void syncOrder() {
 
@@ -237,8 +243,8 @@ public class WlnOrderServiceImpl implements WlnOrderService {
         Map<Long, List<SkuSpecLink>> skuSpecLinkMap = list.stream().collect(Collectors.groupingBy(SkuSpecLink::getSkuSpecId));
 
         // 根据sku规格id获取bomId和bom规格id
-        List<Long> skuSpecIdList = list.stream().map(SkuSpecLink::getSkuSpecId).distinct().collect(Collectors.toList());
-        Map<Long, BomBo> bomBoMap = skuSpecService.getBomBySkuSpecIdList(skuSpecIdList);
+        List<Long> bomSpecIdList = list.stream().map(SkuSpecLink::getBomSpecId).filter(Objects::nonNull).distinct().collect(Collectors.toList());
+        Map<Long, BomSpec> map = bomSpecService.mapKEntity(BaseIdPo::getId, q -> q.in(BaseIdPo::getId, bomSpecIdList));
 
         return orderSkuList.stream().flatMap(orderSku -> {
 
@@ -253,11 +259,11 @@ public class WlnOrderServiceImpl implements WlnOrderService {
                 orderSkuBom.setBomSpecId(item.getBomSpecId());
                 orderSkuBom.setQuantity(item.getQuantity());
 
-                BomBo bomBo = bomBoMap.get(item.getBomSpecId());
-                if (bomBo == null) {
+                BomSpec bomSpec = map.get(item.getBomSpecId());
+                if (bomSpec == null) {
                     orderSkuBom.setUnitPrice(BigDecimal.ZERO);
                 } else {
-                    orderSkuBom.setUnitPrice(ObjectUtil.defaultIfNull(bomBo.getInternalSellingPrice(), BigDecimal.ZERO));
+                    orderSkuBom.setUnitPrice(ObjectUtil.defaultIfNull(bomSpec.getInternalSellingPrice(), BigDecimal.ZERO));
                 }
 
                 return orderSkuBom;