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 20e773d9..fc3467ba 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 @@ -545,15 +545,21 @@ public class OrderController extends BaseController { // 校验参数 Assert.notNull(orderListRequest.getWorkerId(), "师傅id不能为空"); - // 查询主单 - OrderMaster orderMasterReq = new OrderMaster(); - BeanUtils.copyProperties(orderListRequest, orderMasterReq); - orderListResponses.addAll(this.getMasterList(orderMasterReq)); - // 查询子单 OrderDetail orderDetailReq = new OrderDetail(); BeanUtils.copyProperties(orderListRequest, orderDetailReq); - orderListResponses.addAll(this.getDetailList(orderDetailReq)); + List detailList = this.getDetailList(orderDetailReq); + orderListResponses.addAll(detailList); + + // 查询主单 + OrderMaster orderMasterReq = new OrderMaster(); + BeanUtils.copyProperties(orderListRequest, orderMasterReq); + // 超时查询需要排除同个师傅的主单子单同时出现 + if (orderListRequest.getIsOverTime()) { + List exceptWorkerIds = detailList.stream().map(OrderListResponse::getWorkerId).collect(Collectors.toList()); + orderMasterReq.setExceptWorkerIds(exceptWorkerIds); + } + orderListResponses.addAll(this.getMasterList(orderMasterReq)); // 根据预约时间倒序排列 CollectionUtils.sortIfNotEmpty(orderListResponses, new Comparator() { @@ -574,15 +580,19 @@ public class OrderController extends BaseController { // 校验参数 Assert.notNull(orderListRequest.getWorkerId(), "师傅id不能为空"); - // 查询主单 - OrderMaster orderMasterReq = new OrderMaster(); - BeanUtils.copyProperties(orderListRequest, orderMasterReq); - orderListResponses.addAll(this.getMasterAfterList(orderMasterReq)); - // 查询子单 OrderDetail orderDetailReq = new OrderDetail(); BeanUtils.copyProperties(orderListRequest, orderDetailReq); - orderListResponses.addAll(this.getDetailAfterList(orderDetailReq)); + List detailList = this.getDetailAfterList(orderDetailReq); + orderListResponses.addAll(detailList); + + // 查询主单 + OrderMaster orderMasterReq = new OrderMaster(); + BeanUtils.copyProperties(orderListRequest, orderMasterReq); + // 需要排除同个师傅的主单子单同时出现 + List exceptWorkerIds = detailList.stream().map(OrderListResponse::getWorkerId).collect(Collectors.toList()); + orderMasterReq.setExceptWorkerIds(exceptWorkerIds); + orderListResponses.addAll(this.getMasterAfterList(orderMasterReq)); // 根据预约时间倒序排列 CollectionUtils.sortIfNotEmpty(orderListResponses, new Comparator() { @@ -839,6 +849,7 @@ public class OrderController extends BaseController { orderListResponse.setGoodsLogoUrl(goods.getGoodsImgUrl()); orderListResponse.setDiscountMoney(financialDetail.getDiscountMoney()); orderListResponse.setTotalMoney(financialDetail.getTotalMoney()); + orderListResponse.setWorkerId(detail.getWorkerId()); orderListResponse.setWorkerName(workerName); orderListResponse.setWorkerPhone(worker == null ? "" : worker.getPhone()); orderListResponse.setCustomerName(customerAddress.getName()); @@ -1037,6 +1048,7 @@ public class OrderController extends BaseController { orderListResponse.setPayMoney(financialDetail.getPayMoney()); orderListResponse.setWorkerName(worker.getName()); orderListResponse.setWorkerPhone(worker == null ? "" : worker.getPhone()); + orderListResponse.setWorkerId(detail.getWorkerId()); orderListResponse.setCustomerName(customerAddress.getName()); orderListResponse.setCustomerPhone(customerAddress.getPhone()); orderListResponse.setOrderStatus(detail.getOrderStatus()); diff --git a/ghy-admin/src/main/java/com/ghy/web/pojo/vo/OrderListResponse.java b/ghy-admin/src/main/java/com/ghy/web/pojo/vo/OrderListResponse.java index e3afdd97..d517502a 100644 --- a/ghy-admin/src/main/java/com/ghy/web/pojo/vo/OrderListResponse.java +++ b/ghy-admin/src/main/java/com/ghy/web/pojo/vo/OrderListResponse.java @@ -22,6 +22,8 @@ public class OrderListResponse { private String orderDetailCode; + private Long workerId; + private String workerName; private String workerPhone; 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 7dcca024..4423fb17 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 @@ -97,4 +97,6 @@ public class OrderMaster extends BaseEntity { private List customerIds; private Boolean shelveStatus; + + private List exceptWorkerIds; } diff --git a/ghy-order/src/main/resources/mapper/order/OrderMasterMapper.xml b/ghy-order/src/main/resources/mapper/order/OrderMasterMapper.xml index c7bad953..3d015a9c 100644 --- a/ghy-order/src/main/resources/mapper/order/OrderMasterMapper.xml +++ b/ghy-order/src/main/resources/mapper/order/OrderMasterMapper.xml @@ -146,6 +146,12 @@ AND om.has_dispatched_all = #{hasDispatchedAll} + + AND om.worker_id not in + + #{workerId} + + order by om.create_time