Kaynağa Gözat

fix:发货逻辑调整

xdd 2 hafta önce
ebeveyn
işleme
03843fe4b4

+ 1 - 32
fs-admin/src/main/java/com/fs/task/StoreTask.java

@@ -508,38 +508,8 @@ public class StoreTask {
         List<FsStoreOrder> list = fsStoreOrderMapper.selectUpdateExpress();
 
         for (FsStoreOrder order : list) {
-
             try{
-                logger.info("[发货任务] 当前单号: {}",order.getOrderCode());
-                ErpOrderQueryRequert request = new ErpOrderQueryRequert();
-                request.setCode(order.getExtendOrderId());
-                // 根据仓库code找erp
-                if(com.fs.common.utils.StringUtils.isNotBlank(order.getStoreHouseCode())){
-                    String erp = fsWarehousesMapper.selectErpByCode(order.getStoreHouseCode());
-                    ErpContextHolder.setErpType(erp);
-                }
-
-                ErpOrderQueryResponse response = erpOrderService.getOrder(request);
-                if (CollectionUtils.isNotEmpty(response.getOrders())) {
-                    for (ErpOrderQuery orderQuery : response.getOrders()) {
-                        // 部分发货或者全部发货
-                        if (ObjectUtils.equals(orderQuery.getDelivery_state(), 1) || ObjectUtils.equals(orderQuery.getDelivery_state(), 2)) {
-                            // 订单状态变更
-                            orderStatusService.create(order.getId(), OrderLogEnum.DELIVERY_GOODS.getValue(),
-                                    OrderLogEnum.DELIVERY_GOODS.getDesc());
-
-                            redisCache.deleteObject(DELIVERY + ":" + order.getExtendOrderId());
-
-                            for (ErpDeliverys delivery : orderQuery.getDeliverys()) {
-                                if (delivery.getDelivery()) {
-                                    orderService.deliveryOrder(order.getOrderCode(), delivery.getMail_no(),
-                                            delivery.getExpress_code(), delivery.getExpress_name());
-                                }
-                            }
-
-                        }
-                    }
-                }
+                orderService.syncDeliveryOrder(order);
             }catch (Exception e) {
                 logger.error("获取订单是否发货失败!原因: ",e);
             }
@@ -547,5 +517,4 @@ public class StoreTask {
 
     }
 
-
 }

+ 1 - 0
fs-service-system/src/main/java/com/fs/store/service/IFsStoreOrderService.java

@@ -112,6 +112,7 @@ public interface IFsStoreOrderService
 
     void deliveryOrder(String orderCode,String deliveryId,String deliverCode,String deliverName);
 
+    void syncDeliveryOrder(FsStoreOrder order);
     void updateDeliveryOrder(Long id,String deliveryId,String deliverCode,String deliverName);
 
     List<FsMyStoreOrderListQueryVO> selectFsMyStoreOrderListVO(FsMyStoreOrderQueryParam param);

+ 36 - 0
fs-service-system/src/main/java/com/fs/store/service/impl/FsStoreOrderServiceImpl.java

@@ -93,6 +93,7 @@ import com.fs.wx.service.ShippingService;
 import lombok.Synchronized;
 import me.chanjar.weixin.common.error.WxErrorException;
 import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.lang.ObjectUtils;
 import org.apache.http.util.Asserts;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -1215,6 +1216,41 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
         }
     }
 
+    @Override
+    @Transactional(propagation = Propagation.REQUIRED,rollbackFor = Exception.class)
+    public void syncDeliveryOrder(FsStoreOrder order) {
+        logger.info("[发货任务] 当前单号: {}", order.getOrderCode());
+        ErpOrderQueryRequert request = new ErpOrderQueryRequert();
+        request.setCode(order.getExtendOrderId());
+        // 根据仓库code找erp
+        if(com.fs.common.utils.StringUtils.isNotBlank(order.getStoreHouseCode())){
+            String erp = fsWarehousesMapper.selectErpByCode(order.getStoreHouseCode());
+            ErpContextHolder.setErpType(erp);
+        }
+
+        ErpOrderQueryResponse response = erpOrderService.getOrder(request);
+        if (CollectionUtils.isNotEmpty(response.getOrders())) {
+            for (ErpOrderQuery orderQuery : response.getOrders()) {
+                // 部分发货或者全部发货
+                if (ObjectUtils.equals(orderQuery.getDelivery_state(), 1) || ObjectUtils.equals(orderQuery.getDelivery_state(), 2)) {
+                    // 订单状态变更
+                    orderStatusService.create(order.getId(), OrderLogEnum.DELIVERY_GOODS.getValue(),
+                            OrderLogEnum.DELIVERY_GOODS.getDesc());
+
+                    redisCache.deleteObject(DELIVERY + ":" + order.getExtendOrderId());
+
+                    for (ErpDeliverys delivery : orderQuery.getDeliverys()) {
+                        if (delivery.getDelivery()) {
+                            orderService.deliveryOrder(order.getOrderCode(), delivery.getMail_no(),
+                                    delivery.getExpress_code(), delivery.getExpress_name());
+                        }
+                    }
+
+                }
+            }
+        }
+    }
+
     @Override
     public void updateDeliveryOrder(Long id, String deliveryId, String deliverCode, String deliverName) {
         FsStoreOrder order = fsStoreOrderMapper.selectFsStoreOrderById(id);