diff --git a/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderController.java b/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderController.java index 13f5e9f6..8b241844 100644 --- a/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderController.java +++ b/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderController.java @@ -420,6 +420,39 @@ public class OrderController extends BaseController { od.setOrderType(om.getOrderType()); if (request.getIsQuicklyDelivery()!=null&&request.getIsQuicklyDelivery()==1){ od.setOrderStatus(OrderStatus.SERVER.code()); + + // 立即发货时,计算确认截止时间并设置到confirmStartTime字段 + Date now = new Date(); + long waitTimeMillis; + String logType; + + // 根据发货类型判断等待时间 + if (om.getDeliveryType() != null) { + if (om.getDeliveryType() == 2 || om.getDeliveryType() == 3) { + // 送货上门或自提:8小时 + waitTimeMillis = 8 * 60 * 60 * 1000L; // 8小时的毫秒数 + logType = om.getDeliveryType() == 2 ? "送货上门" : "自提"; + } else if (om.getDeliveryType() == 1) { + // 发快递/物流:4天 + waitTimeMillis = 4 * 24 * 60 * 60 * 1000L; // 4天的毫秒数 + logType = "发快递/物流"; + } else { + // 未知发货类型,默认8小时 + waitTimeMillis = 8 * 60 * 60 * 1000L; + logType = "未知类型(默认8小时)"; + logger.warn("订单[{}]发货类型未知[{}],使用默认8小时", od.getCode(), om.getDeliveryType()); + } + + // 计算确认截止时间 + Date confirmDeadlineTime = new Date(now.getTime() + waitTimeMillis); + od.setConfirmStartTime(confirmDeadlineTime); + + logger.info("立即发货订单[{}]发货类型[{}],确认截止时间:{}", + od.getCode(), logType, + com.ghy.common.utils.DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", confirmDeadlineTime)); + } else { + logger.warn("订单[{}]发货类型为null,未设置确认截止时间", od.getCode()); + } }else{ od.setOrderStatus(request.getWorkerId().equals(om.getWorkerId()) ? OrderStatus.GOING.code() : OrderStatus.RECEIVE.code()); } diff --git a/ghy-order/src/main/java/com/ghy/order/domain/OrderDetail.java b/ghy-order/src/main/java/com/ghy/order/domain/OrderDetail.java index 429d5020..bed70f97 100644 --- a/ghy-order/src/main/java/com/ghy/order/domain/OrderDetail.java +++ b/ghy-order/src/main/java/com/ghy/order/domain/OrderDetail.java @@ -73,6 +73,15 @@ public class OrderDetail extends BaseEntity { private String orderImgs; + @Excel(name = "交货图片", cellType = Excel.ColumnType.STRING) + private String deliveryImages; + + @Excel(name = "交货备注", cellType = Excel.ColumnType.STRING) + private String deliveryRemark; + + @Excel(name = "进入确认中时间", cellType = Excel.ColumnType.STRING) + private Date confirmStartTime; + // 商品归属师傅 private Worker goodsWorker; // 接单师傅 diff --git a/ghy-order/src/main/resources/mapper/order/OrderDetailMapper.xml b/ghy-order/src/main/resources/mapper/order/OrderDetailMapper.xml index 2b76168a..a45ab7f2 100644 --- a/ghy-order/src/main/resources/mapper/order/OrderDetailMapper.xml +++ b/ghy-order/src/main/resources/mapper/order/OrderDetailMapper.xml @@ -30,6 +30,9 @@ + + + @@ -60,6 +63,9 @@ create_time, update_time, remark, + delivery_images, + delivery_remark, + confirm_start_time, timeout_, timeout_fine_times, after_timeout @@ -91,6 +97,9 @@ od.create_time, od.update_time, od.remark, + od.delivery_images, + od.delivery_remark, + od.confirm_start_time, od.draw_cash_status, od.timeout_, od.timeout_fine_times, @@ -354,6 +363,9 @@ draw_cash_status = #{drawCashStatus}, clock_in_location = #{clockInLocation}, remark = #{remark}, + delivery_images = #{deliveryImages}, + delivery_remark = #{deliveryRemark}, + confirm_start_time = #{confirmStartTime}, update_by = #{updateBy}, ledger_account_status = #{ledgerAccountStatus}, timeout_ = #{timeout}, @@ -412,6 +424,9 @@ worker_id, rev_time, remark, + delivery_images, + delivery_remark, + confirm_start_time, expect_time_start, expect_time_end, work_begin_time, @@ -428,6 +443,9 @@ #{workerId}, #{revTime}, #{remark}, + #{deliveryImages}, + #{deliveryRemark}, + #{confirmStartTime}, #{expectTimeStart}, #{expectTimeEnd}, #{workBeginTime}, 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 afcf4412..ef6f2fce 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 @@ -1428,6 +1428,7 @@ public class OrderServiceImpl implements OrderService { // 计算应该转为确认中的时间 Date targetTime = new Date(updateTime.getTime() + waitTimeMillis); + orderDetail.setConfirmStartTime(targetTime); // 检查是否到达目标时间 if (now.after(targetTime)) { log.info("订单[{}]发货类型[{}]已到达等待时间,开始转为确认中状态", orderDetail.getCode(), logType); 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 437e132e..4bdae57c 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 @@ -73,7 +73,7 @@ public class OrderTask { */ public void orderServerToFinishCheck() { try { - orderService.AfterSalesAndShelveOrder(); + orderService.orderServerToFinishCheck(); } catch (Exception e) { log.error(e.getMessage(), e); }