Jelajahi Sumber

同步物流定时任务

wjj 4 hari lalu
induk
melakukan
3878876808

+ 17 - 0
fs-admin/src/main/java/com/fs/his/task/Task.java

@@ -1945,6 +1945,23 @@ public class Task {
         }
     }
 
+    //互医订单查询同步物流信息
+    public void queryExpress(){
+        List<Long> orderIds = fsStoreOrderMapper.selectSyncExpress();
+        if (CollectionUtils.isNotEmpty(orderIds)) {
+            for (Long orderId : orderIds) {
+                logger.info("同步物流订单号:{}",orderId);
+                try {
+                    fsStoreOrderService.syncExpress(orderId);
+                    Thread.sleep(2000);
+                } catch (Exception e) {
+                    logger.info("同步物流失败,订单号:{}", orderId);
+                    continue;
+                    //throw new RuntimeException(e);
+                }
+            }
+        }
+    }
 
 
 }

+ 3 - 0
fs-service/src/main/java/com/fs/his/mapper/FsStoreOrderMapper.java

@@ -1197,4 +1197,7 @@ public interface FsStoreOrderMapper
 
 
     FsStoreOrderAmountStatsDetailVo selectFsStoreOrderAmountStats(FsStoreOrderAmountStatsQueryDto queryDto);
+
+    @Select("SELECT order_id FROM fs_store_order WHERE `status` = 3 AND refund_status = 0")
+    List<Long> selectSyncExpress();
 }

+ 15 - 1
fs-service/src/main/java/com/fs/hisStore/service/impl/FsStoreOrderScrmServiceImpl.java

@@ -2458,6 +2458,20 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
             }
         }
         ExpressInfoDTO dto = expressService.getExpressInfo(order.getOrderCode(), order.getDeliverySn(), order.getDeliveryId(), lastFourNumber);
+        log.info("快递鸟查询dto:{}", JSONUtil.toJsonStr(dto));
+        if (!dto.isSuccess()) {
+            return R.error(dto.getReason());
+        }
+        if ("0".equals(dto.getStateEx()) && "0".equals(dto.getState())) {
+            lastFourNumber = "19923690275";
+            if (order.getDeliveryCode().equals(com.fs.his.enums.ShipperCodeEnum.SF.getValue())) {
+                lastFourNumber = order.getUserPhone();
+                if (lastFourNumber.length() == 11) {
+                    lastFourNumber = StrUtil.sub(lastFourNumber, lastFourNumber.length(), -4);
+                }
+            }
+            dto = expressService.getExpressInfo(order.getOrderCode(), order.getDeliveryCode(), order.getDeliverySn(), lastFourNumber);
+        }
         FsStoreOrderScrm map = new FsStoreOrderScrm();
         map.setDeliveryStatus(Integer.parseInt(dto.getState()));
         map.setId(order.getId());
@@ -2467,7 +2481,7 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
         if (dto.getState().equals("3") && (dto.getStateEx().equals("301") || dto.getStateEx().equals("302") || dto.getStateEx().equals("304") || dto.getStateEx().equals("311"))) {
             finishOrder(order.getId());
         }
-        return null;
+        return R.ok();
     }
 
     @Override