no message

This commit is contained in:
cb 2025-07-11 20:53:39 +08:00
parent ce8015b836
commit 3cf9951bb3
1 changed files with 47 additions and 23 deletions

View File

@ -1400,15 +1400,29 @@ public class OrderServiceImpl implements OrderService {
for (OrderDetail orderDetail : orderDetails) { for (OrderDetail orderDetail : orderDetails) {
try { try {
Date updateTime = orderDetail.getUpdateTime();
OrderMaster orderMaster = orderMasterService.selectById(orderDetail.getOrderMasterId()); OrderMaster orderMaster = orderMasterService.selectById(orderDetail.getOrderMasterId());
if (orderMaster == null || updateTime == null) { if (orderMaster == null) {
continue;
}
Date targetTime;
String logType = "已设置";
// 优先使用已设置的确认截止时间
if (orderDetail.getConfirmStartTime() != null) {
targetTime = orderDetail.getConfirmStartTime();
log.debug("订单[{}]使用已设置的确认截止时间:{}", orderDetail.getCode(),
com.ghy.common.utils.DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", targetTime));
} else {
// 兼容旧数据重新计算确认截止时间
Date updateTime = orderDetail.getUpdateTime();
if (updateTime == null) {
log.warn("订单[{}]更新时间为空,跳过处理", orderDetail.getCode());
continue; continue;
} }
long waitTimeMillis; long waitTimeMillis;
String logType;
// 根据发货类型判断等待时间 // 根据发货类型判断等待时间
if (orderMaster.getDeliveryType() == 2 || orderMaster.getDeliveryType() == 3) { if (orderMaster.getDeliveryType() == 2 || orderMaster.getDeliveryType() == 3) {
@ -1425,13 +1439,23 @@ public class OrderServiceImpl implements OrderService {
continue; continue;
} }
// 计算应该转为确认中的时间 // 计算确认截止时间
Date targetTime = new Date(updateTime.getTime() + waitTimeMillis); targetTime = new Date(updateTime.getTime() + waitTimeMillis);
// 回写到数据库避免下次重复计算
OrderDetail updateOrderDetail = new OrderDetail();
updateOrderDetail.setId(orderDetail.getId());
updateOrderDetail.setConfirmStartTime(targetTime);
orderDetailService.updateOrderDetail(updateOrderDetail);
log.info("订单[{}]补充设置确认截止时间,发货类型[{}],截止时间:{}",
orderDetail.getCode(), logType,
com.ghy.common.utils.DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", targetTime));
}
orderDetail.setConfirmStartTime(targetTime);
// 检查是否到达目标时间 // 检查是否到达目标时间
if (now.after(targetTime)) { if (now.after(targetTime)) {
log.info("订单[{}]发货类型[{}]已到达等待时间,开始转为确认中状态", orderDetail.getCode(), logType); log.info("订单[{}]确认截止时间已到,开始转为确认中状态", orderDetail.getCode());
// 更新订单状态为确认中 // 更新订单状态为确认中
int result = orderDetailService.updateStatus(orderDetail.getId(), OrderStatus.FINISH_CHECK.code()); int result = orderDetailService.updateStatus(orderDetail.getId(), OrderStatus.FINISH_CHECK.code());
@ -1442,8 +1466,8 @@ public class OrderServiceImpl implements OrderService {
log.error("订单[{}]状态更新失败", orderDetail.getCode()); log.error("订单[{}]状态更新失败", orderDetail.getCode());
} }
} else { } else {
log.debug("订单[{}]发货类型[{}]尚未到达等待时间,目标时间:{}", log.debug("订单[{}]尚未到达确认截止时间,截止时间:{}",
orderDetail.getCode(), logType, orderDetail.getCode(),
com.ghy.common.utils.DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", targetTime)); com.ghy.common.utils.DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", targetTime));
} }