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;
}