From dd51d48a453d156496344abac3a2fad9fd7a95f1 Mon Sep 17 00:00:00 2001 From: cb <275647614@qq.com> Date: Mon, 22 Dec 2025 17:42:16 +0800 Subject: [PATCH] no message --- .../web/controller/order/OrderController.java | 38 ++++++++++++++----- .../mapper/order/OrderMasterMapper.xml | 6 ++- .../quartz/service/impl/OrderServiceImpl.java | 3 +- 3 files changed, 34 insertions(+), 13 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 6b8a874c..bf648473 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 @@ -1234,7 +1234,7 @@ public class OrderController extends BaseController { orderListRequest.setDeptId(request.getDeptId()); orderListRequest.setTimeout(1); orderListRequest.setWorkerId(request.getWorkerId()); - orderListRequest.setIsMonitoredOrder(true); + // orderListRequest.setIsMonitoredOrder(true); orderListRequest.setNeedImgs(false); orderListRequest.setOrderType(request.getOrderType()); response.setOverTimeOrderNum(this.appMixOrderCount(orderListRequest)); @@ -1337,38 +1337,52 @@ public class OrderController extends BaseController { List filteredMasterList = new ArrayList(); for (OrderMaster master : allList) { boolean isKeep = false; - // 查询该主单下所有售后中的子单 + // 查询该主单下所有子单(使用与统计子单相同的查询条件) OrderDetail detailAfterListOfMasterQry = new OrderDetail(); detailAfterListOfMasterQry.setOrderMasterCode(master.getCode()); + BeanUtils.copyProperties(orderListRequest, detailAfterListOfMasterQry); + detailAfterListOfMasterQry.setOrderMasterCode(master.getCode()); // 确保使用主单code List tmpDetailListOfMasters = orderDetailService .selectOrderDetailList(detailAfterListOfMasterQry); + + // 如果主单下没有符合条件的子单,保留主单(因为子单没有被统计,不存在重复计数) + if (CollectionUtils.isEmpty(tmpDetailListOfMasters)) { + filteredMasterList.add(master); + continue; + } + List detailListOfMasters = new ArrayList<>(); tmpDetailListOfMasters.forEach(model -> { OrderListResponse response = new OrderListResponse(); BeanUtils.copyProperties(model, response); detailListOfMasters.add(response); }); + + // 检查是否有其他师傅的子单(排除同个师傅的主单子单同时出现) for (OrderListResponse detailListOfMaster : detailListOfMasters) { - if (!detailListOfMaster.getWorkerId().equals(orderListRequest.getWorkerId())) { + // 修复空指针问题:检查workerId是否为null + if (detailListOfMaster.getWorkerId() != null + && orderListRequest.getWorkerId() != null + && !detailListOfMaster.getWorkerId().equals(orderListRequest.getWorkerId())) { isKeep = true; break; } } - logger.info("主单id{},子单数据{},{}", master.getId(), CollectionUtils.isEmpty(tmpDetailListOfMasters), - isKeep); - if (isKeep || CollectionUtils.isEmpty(tmpDetailListOfMasters)) { + + logger.info("主单id{},符合条件的子单数量{},是否有其他师傅的子单:{}", master.getId(), detailListOfMasters.size(), isKeep); + + // 如果有其他师傅的子单,保留主单 + // 如果所有子单都是同一个师傅(等于请求的workerId),且这些子单已经在前面统计过了,排除主单(避免重复计数) + if (isKeep) { filteredMasterList.add(master); } - + // 如果所有子单都是同一个师傅,且这些子单已经在前面统计过了,不添加到filteredMasterList(排除主单) } count += filteredMasterList.size(); mateIds = filteredMasterList.stream().map(OrderMaster::getId) .collect(Collectors.toList()); logger.info("主单filteredMasterList超时数量{}总数{},filteredMasterList的id集合{}", filteredMasterList.size(), count, mateIds); - if (CollectionUtils.isEmpty(filteredMasterList)) { - count += masterList.size(); - } } else { count += masterList.size(); } @@ -2076,6 +2090,10 @@ public class OrderController extends BaseController { if (orderMaster.getOrderStatus() != null && OrderStatus.PLAIN.code() == orderMaster.getOrderStatus()) { orderMaster.setHasDispatchedAll(0); } + + if(orderMaster.getTimeout()!=null && orderMaster.getTimeout()>0){ + orderMaster.setOrderStatuses("1,2,4"); + } List list = orderMasterService.selectOrderMasterList(orderMaster); List orderMasterIds = list.stream().map(OrderMaster::getId).collect(Collectors.toList()); // 缓存 orderDetailMap diff --git a/ghy-order/src/main/resources/mapper/order/OrderMasterMapper.xml b/ghy-order/src/main/resources/mapper/order/OrderMasterMapper.xml index 1347bac0..9e7585c4 100644 --- a/ghy-order/src/main/resources/mapper/order/OrderMasterMapper.xml +++ b/ghy-order/src/main/resources/mapper/order/OrderMasterMapper.xml @@ -719,8 +719,10 @@ #{shareAccountCountdownDuration}, #{refundPayStatus}, 0, - SYSDATE(), - SYSDATE() + #{createTime}, + SYSDATE(), + #{updateTime}, + 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 a6002ea9..d6c67b6a 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 @@ -242,7 +242,8 @@ public class OrderServiceImpl implements OrderService { if (order.getGoodsOrderMasterId()==null) { orderMasterService.removeWorker(order.getId()); } - orderMasterService.updateCreateTime(order.getId()); +// orderMasterService.up; + // 移除 updateCreateTime 调用:创建时间不应该被修改,它代表订单最初创建的时间 } return; }