|
|
@@ -164,6 +164,90 @@ public class LiveTask {
|
|
|
@Autowired
|
|
|
private FsJstAftersalePushScrmService fsJstAftersalePushScrmService;
|
|
|
|
|
|
+ /**
|
|
|
+ * 查询被拆分的订单,然后查询拆分订单的物流信息
|
|
|
+ */
|
|
|
+ public void querySplitOrderDelivery() {
|
|
|
+ try {
|
|
|
+ // 查询状态为6(被拆分)的订单
|
|
|
+ List<LiveOrder> splitOrders = liveOrderMapper.selectSplitOrders();
|
|
|
+ if (splitOrders == null || splitOrders.isEmpty()) {
|
|
|
+ log.debug("没有找到被拆分的订单");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ log.info("找到 {} 个被拆分的订单,开始查询拆分订单的物流信息", splitOrders.size());
|
|
|
+
|
|
|
+ IErpOrderService erpOrderService = getErpOrderService();
|
|
|
+ if (erpOrderService == null) {
|
|
|
+ log.warn("ERP服务未配置,无法查询拆分订单物流信息");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ for (LiveOrder splitOrder : splitOrders) {
|
|
|
+ try {
|
|
|
+ // 查询该订单的所有拆分订单(通过原订单号查询)
|
|
|
+ List<LiveOrder> childOrders = liveOrderMapper.selectChildOrdersByParentOrderCode(splitOrder.getOrderCode());
|
|
|
+ if (childOrders == null || childOrders.isEmpty()) {
|
|
|
+ log.debug("订单 {} 没有找到拆分订单", splitOrder.getOrderCode());
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 遍历拆分订单,查询物流信息
|
|
|
+ for (LiveOrder childOrder : childOrders) {
|
|
|
+ if (StringUtils.isEmpty(childOrder.getExtendOrderId())) {
|
|
|
+ log.debug("拆分订单 {} 没有扩展订单ID,跳过", childOrder.getOrderCode());
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 查询ERP订单信息
|
|
|
+ ErpOrderQueryRequert request = new ErpOrderQueryRequert();
|
|
|
+ request.setCode(childOrder.getExtendOrderId());
|
|
|
+ ErpOrderQueryResponse response = erpOrderService.getLiveOrder(request);
|
|
|
+
|
|
|
+ if (!response.getSuccess()) {
|
|
|
+ if ("429".equals(response.getCode())) {
|
|
|
+ log.warn("ERP接口限流,停止查询");
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ log.warn("查询拆分订单物流信息失败, orderCode={}, error={}", childOrder.getOrderCode(), response.getCode());
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 更新物流信息
|
|
|
+ if (response.getOrders() != null && !response.getOrders().isEmpty()) {
|
|
|
+ for (ErpOrderQuery orderQuery : response.getOrders()) {
|
|
|
+ if (orderQuery.getDeliverys() != null && !orderQuery.getDeliverys().isEmpty()) {
|
|
|
+ for (ErpDeliverys delivery : orderQuery.getDeliverys()) {
|
|
|
+ if (delivery.getDelivery() && StringUtils.isNotEmpty(delivery.getMail_no())) {
|
|
|
+ // 更新订单物流信息
|
|
|
+ childOrder.setDeliverySn(delivery.getMail_no());
|
|
|
+ childOrder.setDeliveryCode(delivery.getExpress_code());
|
|
|
+ childOrder.setDeliveryName(delivery.getExpress_name());
|
|
|
+ if (childOrder.getStatus() == 2) { // 待发货状态
|
|
|
+ childOrder.setStatus(3); // 更新为待收货
|
|
|
+ }
|
|
|
+ childOrder.setUpdateTime(new Date());
|
|
|
+ liveOrderMapper.updateLiveOrder(childOrder);
|
|
|
+ log.info("拆分订单物流信息已更新, orderCode={}, deliverySn={}, expressName={}",
|
|
|
+ childOrder.getOrderCode(), delivery.getMail_no(), delivery.getExpress_name());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("处理拆分订单物流信息异常, orderCode={}", splitOrder.getOrderCode(), e);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ log.info("拆分订单物流信息查询完成");
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("查询拆分订单物流信息任务异常", e);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
// 聚水潭 推送售后信息
|
|
|
public void pushJst(){
|
|
|
fsJstAftersalePushScrmService.pushJst();
|