Kaynağa Gözat

订单同步bug修改

24282 1 yıl önce
ebeveyn
işleme
73e30d6d9e

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

@@ -132,22 +132,32 @@ public class WlnOrderServiceImpl implements WlnOrderService {
 
             // 创建订单
             orderInfo = createOrder(wlnOrder, department);
-            saveOrderList.add(orderInfo);
+            List<OrderSku> tempOrderSkuList = new ArrayList<>();
+            List<OrderSkuBom> tempOrderSkuBomList = new ArrayList<>();
+
+            boolean isSave = true;
 
             // 创建订单sku
             for (JSONObject wlnOrderSku : wlnOrder.getJSONArray("orders").toJavaList(JSONObject.class)) {
                 String sysSpecUid = wlnOrderSku.getString("sys_spec_uid");
                 SkuSpec skuSpec = skuSpecMap.get(sysSpecUid);
                 if (skuSpec == null) {
-                    log.error("没有通过万里牛sys_spec_uid找到sku规格");
-                    continue;
+                    isSave = false;
+                    log.error("没有通过万里牛sys_spec_uid: {} 找到sku规格", sysSpecUid);
+                    break;
                 }
 
                 OrderSku orderSku = createOrderSku(wlnOrderSku, orderInfo, skuSpec);
-                saveOrderSkuList.add(orderSku);
+                tempOrderSkuList.add(orderSku);
 
                 List<OrderSkuBom> orderSkuBomList = createOrderSkuBoom(orderInfo, orderSku);
-                saveOrderSkuBomList.addAll(orderSkuBomList);
+                tempOrderSkuBomList.addAll(orderSkuBomList);
+            }
+
+            if (isSave) {
+                saveOrderList.add(orderInfo);
+                saveOrderSkuList.addAll(tempOrderSkuList);
+                saveOrderSkuBomList.addAll(tempOrderSkuBomList);
             }
 
         }

+ 8 - 4
sd-wln/src/main/java/com/sd/wln/service/impl/WlnSkuServiceImpl.java

@@ -3,9 +3,9 @@ package com.sd.wln.service.impl;
 import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson2.JSONObject;
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
-import com.ruoyi.common.annotation.LogicIgnore;
 import com.ruoyi.common.core.domain.BaseIdPo;
 import com.ruoyi.common.exception.ServiceException;
+import com.ruoyi.framework.mybatis.holder.LogicHolder;
 import com.sd.business.entity.sku.po.Sku;
 import com.sd.business.entity.sku.po.SkuClassify;
 import com.sd.business.entity.sku.po.SkuSpec;
@@ -39,7 +39,6 @@ public class WlnSkuServiceImpl implements WlnSkuService {
     @Autowired
     private SkuSpecService skuSpecService;
 
-    @LogicIgnore
     @Override
     public boolean syncSkuClassify() {
         List<JSONObject> list;
@@ -53,7 +52,10 @@ public class WlnSkuServiceImpl implements WlnSkuService {
         }
 
         // 查询数据库sku分类
+        LogicHolder.setLogicHolder(new LogicHolder());
         List<SkuClassify> mysqlSkuClassifyList = skuClassifyService.list();
+        LogicHolder.clear();
+
         Map<String, SkuClassify> skuClassifyMap = mysqlSkuClassifyList.stream()
                 .collect(Collectors.toMap(SkuClassify::getWlnCatagoryId, Function.identity()));
 
@@ -87,7 +89,6 @@ public class WlnSkuServiceImpl implements WlnSkuService {
         return true;
     }
 
-    @LogicIgnore
     @Transactional(rollbackFor = Exception.class)
     @Override
     public boolean syncSku() {
@@ -106,6 +107,8 @@ public class WlnSkuServiceImpl implements WlnSkuService {
             }
         } while (size >= 200);
 
+        LogicHolder.setLogicHolder(new LogicHolder());
+
         // 产品分类map
         Map<String, Long> skuClassifyMap = skuClassifyService.mapKV(SkuClassify::getWlnCatagoryId, BaseIdPo::getId, null);
 
@@ -116,6 +119,8 @@ public class WlnSkuServiceImpl implements WlnSkuService {
         Map<Long, Map<String, SkuSpec>> specMap = skuSpecService.list().stream().collect(
                 Collectors.groupingBy(SkuSpec::getSkuId, Collectors.toMap(SkuSpec::getWlnUid, Function.identity())));
 
+        LogicHolder.clear();
+
         List<Sku> newSkuList = new ArrayList<>();
         List<SkuSpec> newSkuSpecList = new ArrayList<>();
 
@@ -142,7 +147,6 @@ public class WlnSkuServiceImpl implements WlnSkuService {
         return true;
     }
 
-
     private Sku createSku(JSONObject wlnSku, Map<String, Long> skuClassifyMap) {
         String catagoryId = wlnSku.getString("catagory_id");
         Long skuClassifyId = skuClassifyMap.get(catagoryId);