From 9a3245380b70a7d8250079d7d941b5b82c782226 Mon Sep 17 00:00:00 2001 From: cb <275647614@qq.com> Date: Thu, 10 Jul 2025 17:12:48 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=AE=9A=E6=97=B6=E5=99=A8?= =?UTF-8?q?=E6=9D=A5=E5=A4=84=E7=90=86=20=20=E5=8F=91=E8=B4=A7=E4=B8=AD?= =?UTF-8?q?=E7=9A=84=E7=8A=B6=E6=80=81=E8=BD=AC=E4=B8=BA=E7=A1=AE=E8=AE=A4?= =?UTF-8?q?=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ghy/quartz/service/OrderService.java | 2 + .../quartz/service/impl/OrderServiceImpl.java | 60 +++++++++++++++++++ .../java/com/ghy/quartz/task/OrderTask.java | 11 ++++ 3 files changed, 73 insertions(+) diff --git a/ghy-quartz/src/main/java/com/ghy/quartz/service/OrderService.java b/ghy-quartz/src/main/java/com/ghy/quartz/service/OrderService.java index 934be024..6b756ea8 100644 --- a/ghy-quartz/src/main/java/com/ghy/quartz/service/OrderService.java +++ b/ghy-quartz/src/main/java/com/ghy/quartz/service/OrderService.java @@ -14,4 +14,6 @@ public interface OrderService { void timeOutOrder(); void AfterSalesAndShelveOrder() ; + + void orderServerToFinishCheck(); } diff --git a/ghy-quartz/src/main/java/com/ghy/quartz/service/impl/OrderServiceImpl.java b/ghy-quartz/src/main/java/com/ghy/quartz/service/impl/OrderServiceImpl.java index 76590757..afcf4412 100644 --- a/ghy-quartz/src/main/java/com/ghy/quartz/service/impl/OrderServiceImpl.java +++ b/ghy-quartz/src/main/java/com/ghy/quartz/service/impl/OrderServiceImpl.java @@ -844,6 +844,8 @@ public class OrderServiceImpl implements OrderService { } + + public long appMixOrderCount(OrderListRequest orderListRequest) { long count = 0; @@ -1391,4 +1393,62 @@ public class OrderServiceImpl implements OrderService { } + @Override + public void orderServerToFinishCheck() { + List orderDetails = orderDetailService.selectByStatus(Collections.singletonList(OrderStatus.SERVER.code())); + Date now = new Date(); + + for (OrderDetail orderDetail : orderDetails) { + try { + Date updateTime = orderDetail.getUpdateTime(); + OrderMaster orderMaster = orderMasterService.selectById(orderDetail.getOrderMasterId()); + + if (orderMaster == null || updateTime == null) { + continue; + } + + long waitTimeMillis; + String logType; + + // 根据发货类型判断等待时间 + if (orderMaster.getDeliveryType() == 2 || orderMaster.getDeliveryType() == 3) { + // 送货上门或自提:8小时 + waitTimeMillis = 8 * 60 * 60 * 1000L; // 8小时的毫秒数 + logType = orderMaster.getDeliveryType() == 2 ? "送货上门" : "自提"; + } else if (orderMaster.getDeliveryType() == 1) { + // 发快递/物流:4天 + waitTimeMillis = 4 * 24 * 60 * 60 * 1000L; // 4天的毫秒数 + logType = "发快递/物流"; + } else { + // 未知发货类型,跳过处理 + log.warn("订单[{}]发货类型未知[{}],跳过处理", orderDetail.getCode(), orderMaster.getDeliveryType()); + continue; + } + + // 计算应该转为确认中的时间 + Date targetTime = new Date(updateTime.getTime() + waitTimeMillis); + + // 检查是否到达目标时间 + if (now.after(targetTime)) { + log.info("订单[{}]发货类型[{}]已到达等待时间,开始转为确认中状态", orderDetail.getCode(), logType); + + // 更新订单状态为确认中 + int result = orderDetailService.updateStatus(orderDetail.getId(), OrderStatus.FINISH_CHECK.code()); + + if (result > 0) { + log.info("订单[{}]状态已成功更新为确认中", orderDetail.getCode()); + } else { + log.error("订单[{}]状态更新失败", orderDetail.getCode()); + } + } else { + log.debug("订单[{}]发货类型[{}]尚未到达等待时间,目标时间:{}", + orderDetail.getCode(), logType, + com.ghy.common.utils.DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", targetTime)); + } + + } catch (Exception e) { + log.error("处理订单[{}]自动转确认中状态时发生异常", orderDetail.getCode(), e); + } + } + } } diff --git a/ghy-quartz/src/main/java/com/ghy/quartz/task/OrderTask.java b/ghy-quartz/src/main/java/com/ghy/quartz/task/OrderTask.java index 79cd3d30..437e132e 100644 --- a/ghy-quartz/src/main/java/com/ghy/quartz/task/OrderTask.java +++ b/ghy-quartz/src/main/java/com/ghy/quartz/task/OrderTask.java @@ -67,4 +67,15 @@ public class OrderTask { log.error(e.getMessage(), e); } } + + /** + * 配件订单服务中转确认中 + */ + public void orderServerToFinishCheck() { + try { + orderService.AfterSalesAndShelveOrder(); + } catch (Exception e) { + log.error(e.getMessage(), e); + } + } }