From 87bcdda6f84a49f097edfff6dc9c4401e09a6902 Mon Sep 17 00:00:00 2001 From: cb <275647614@qq.com> Date: Thu, 11 Sep 2025 11:01:42 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/controller/order/OrderController.java | 2 ++ .../java/com/ghy/order/domain/OrderDetail.java | 14 ++++++++++++++ .../java/com/ghy/order/domain/OrderMaster.java | 13 +++++++++++++ .../mapper/order/OrderDetailMapper.xml | 16 ++++++++++++++-- .../mapper/order/OrderMasterMapper.xml | 16 ++++++++++++++-- .../quartz/service/impl/OrderServiceImpl.java | 17 ++++++++++++----- 6 files changed, 69 insertions(+), 9 deletions(-) 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 521e014f..13378577 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 @@ -470,6 +470,8 @@ public class OrderController extends BaseController { od.setExpectTimeStart(om.getExpectTimeStart()); od.setExpectTimeEnd(om.getExpectTimeEnd()); od.setWorkBeginTime(new Date()); + // 将主单的师傅备注复制到子单 + od.setWorkerRemark(om.getWorkerRemark()); orderDetailService.insertOrderDetail(od); logger.info("子订单是否创建完成{}", od); // 批量生成订单商品 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 b960d168..a3e4bab3 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 @@ -1,5 +1,6 @@ package com.ghy.order.domain; +import com.fasterxml.jackson.annotation.JsonFormat; import com.ghy.common.annotation.Excel; import com.ghy.common.core.domain.BaseEntity; import com.ghy.common.enums.OrderStatus; @@ -260,4 +261,17 @@ public class OrderDetail extends BaseEntity { */ @Excel(name = "售后状态:0-无售后,1-售后纠纷") private Integer afterServiceStatus; + + /** + * 分账倒计时结束时间 + */ + @Excel(name = "分账倒计时结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date shareAccountCountdownEndTime; + + /** + * 分账倒计时时长(小时) + */ + @Excel(name = "分账倒计时时长(小时)") + private Integer shareAccountCountdownDuration; } diff --git a/ghy-order/src/main/java/com/ghy/order/domain/OrderMaster.java b/ghy-order/src/main/java/com/ghy/order/domain/OrderMaster.java index 645c3221..7e431549 100644 --- a/ghy-order/src/main/java/com/ghy/order/domain/OrderMaster.java +++ b/ghy-order/src/main/java/com/ghy/order/domain/OrderMaster.java @@ -329,4 +329,17 @@ public class OrderMaster extends BaseEntity { */ @Excel(name = "售后状态:0-无售后,1-售后纠纷") private Integer afterServiceStatus; + + /** + * 分账倒计时结束时间(workFinishTime + 设置的倒计时字段) + */ + @Excel(name = "分账倒计时结束时间", cellType = Excel.ColumnType.STRING) + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date shareAccountCountdownEndTime; + + /** + * 分账倒计时时长(单位:小时) + */ + @Excel(name = "分账倒计时时长", cellType = Excel.ColumnType.NUMERIC) + private Integer shareAccountCountdownDuration; } diff --git a/ghy-order/src/main/resources/mapper/order/OrderDetailMapper.xml b/ghy-order/src/main/resources/mapper/order/OrderDetailMapper.xml index dbcc6b8c..f8e77418 100644 --- a/ghy-order/src/main/resources/mapper/order/OrderDetailMapper.xml +++ b/ghy-order/src/main/resources/mapper/order/OrderDetailMapper.xml @@ -43,6 +43,8 @@ + + @@ -81,7 +83,9 @@ return_reason_detail, return_images, worker_remark, - after_service_status + after_service_status, + share_account_countdown_end_time, + share_account_countdown_duration FROM order_detail @@ -122,7 +126,9 @@ od.return_reason_detail, od.return_images, od.worker_remark, - od.after_service_status + od.after_service_status, + od.share_account_countdown_end_time, + od.share_account_countdown_duration FROM order_detail od LEFT JOIN order_master om ON om.id = od.order_master_id LEFT JOIN customer_address ca ON ca.customer_address_id = om.address_id @@ -400,6 +406,8 @@ return_images = #{returnImages}, worker_remark = #{workerRemark}, after_service_status = #{afterServiceStatus}, + share_account_countdown_end_time = #{shareAccountCountdownEndTime}, + share_account_countdown_duration = #{shareAccountCountdownDuration}, update_time = SYSDATE() WHERE id = #{id} @@ -463,6 +471,8 @@ return_reason_detail, return_images, worker_remark, + share_account_countdown_end_time, + share_account_countdown_duration, expect_time_start, expect_time_end, work_begin_time, @@ -487,6 +497,8 @@ #{returnReasonDetail}, #{returnImages}, #{workerRemark}, + #{shareAccountCountdownEndTime}, + #{shareAccountCountdownDuration}, #{expectTimeStart}, #{expectTimeEnd}, #{workBeginTime}, diff --git a/ghy-order/src/main/resources/mapper/order/OrderMasterMapper.xml b/ghy-order/src/main/resources/mapper/order/OrderMasterMapper.xml index 8f3a3452..67eccf7c 100644 --- a/ghy-order/src/main/resources/mapper/order/OrderMasterMapper.xml +++ b/ghy-order/src/main/resources/mapper/order/OrderMasterMapper.xml @@ -70,6 +70,8 @@ + + @@ -137,7 +139,9 @@ return_reason_detail, return_images, worker_remark, - after_service_status + after_service_status, + share_account_countdown_end_time, + share_account_countdown_duration FROM order_master @@ -204,7 +208,9 @@ om.return_reason_detail, om.return_images, om.worker_remark, - om.after_service_status + om.after_service_status, + om.share_account_countdown_end_time, + om.share_account_countdown_duration FROM order_master om LEFT JOIN customer_address ca ON ca.customer_address_id = om.address_id LEFT JOIN goods g ON g.goods_id = om.goods_id @@ -518,6 +524,8 @@ return_images = #{returnImages}, worker_remark = #{workerRemark}, after_service_status = #{afterServiceStatus}, + share_account_countdown_end_time = #{shareAccountCountdownEndTime}, + share_account_countdown_duration = #{shareAccountCountdownDuration}, update_time = SYSDATE() WHERE id = #{id} @@ -590,6 +598,8 @@ return_reason_detail, return_images, worker_remark, + share_account_countdown_end_time, + share_account_countdown_duration, create_time )VALUES( #{deptId}, @@ -643,6 +653,8 @@ #{returnReasonDetail}, #{returnImages}, #{workerRemark}, + #{shareAccountCountdownEndTime}, + #{shareAccountCountdownDuration}, SYSDATE() ) 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 250aebb5..20d72138 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 @@ -659,7 +659,7 @@ public class OrderServiceImpl implements OrderService { List orderDetails = orderDetailService.selectByStatus(Collections.singletonList(OrderStatus.FINISH_CHECK.code())); long now = System.currentTimeMillis(); //TODO:测试完毕以后改为60分钟 - long day14ago = now - (10 * 60 * 1000L); + long day14ago = now - (60 * 60 * 1000L); // long day14ago = now - 10000L; for (OrderDetail orderDetail : orderDetails) { // 筛选符合自动确认的订单 @@ -1438,19 +1438,26 @@ public class OrderServiceImpl implements OrderService { } long waitTimeMillis; + + // 获取发货类型并检查是否为null + Integer deliveryType = orderMaster.getDeliveryType(); + if (deliveryType == null) { + log.warn("订单[{}]发货类型为null,跳过处理", orderDetail.getCode()); + continue; + } // 根据发货类型判断等待时间 - if (orderMaster.getDeliveryType() == 2 || orderMaster.getDeliveryType() == 3) { + if (deliveryType == 2 || deliveryType == 3) { // 送货上门或自提:8小时 waitTimeMillis = 8 * 60 * 60 * 1000L; // 8小时的毫秒数 - logType = orderMaster.getDeliveryType() == 2 ? "送货上门" : "自提"; - } else if (orderMaster.getDeliveryType() == 1) { + logType = deliveryType == 2 ? "送货上门" : "自提"; + } else if (deliveryType == 1) { // 发快递/物流:4天 waitTimeMillis = 4 * 24 * 60 * 60 * 1000L; // 4天的毫秒数 logType = "发快递/物流"; } else { // 未知发货类型,跳过处理 - log.warn("订单[{}]发货类型未知[{}],跳过处理", orderDetail.getCode(), orderMaster.getDeliveryType()); + log.warn("订单[{}]发货类型未知[{}],跳过处理", orderDetail.getCode(), deliveryType); continue; }