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 7b4ce94d..ce84f52e 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 @@ -44,7 +44,7 @@ import com.ghy.worker.domain.WorkerCertification; import com.ghy.worker.service.IWorkerCertificationService; import com.ghy.worker.service.WorkerService; import com.huifu.adapay.core.exception.BaseAdaPayException; -import nonapi.io.github.classgraph.utils.CollectionUtils; +import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.exception.ExceptionUtils; import org.apache.commons.lang3.time.DateUtils; import org.springframework.beans.BeanUtils; @@ -554,15 +554,34 @@ public class OrderController extends BaseController { // 查询主单 OrderMaster orderMasterReq = new OrderMaster(); BeanUtils.copyProperties(orderListRequest, orderMasterReq); + List masterList = this.getMasterList(orderMasterReq); // 超时查询需要排除同个师傅的主单子单同时出现 if (orderListRequest.getIsOverTime() != null && orderListRequest.getIsOverTime()) { - List exceptWorkerIds = detailList.stream().map(OrderListResponse::getWorkerId).collect(Collectors.toList()); - orderMasterReq.setExceptWorkerIds(exceptWorkerIds); + // 需要排除同个师傅的主单子单同时出现 + List filteredMasterList = new ArrayList(); + for (OrderListResponse master: masterList) { + boolean isKeep = false; + // 查询该主单下所有售后中的子单 + OrderDetail detailAfterListOfMasterQry = new OrderDetail(); + detailAfterListOfMasterQry.setOrderMasterCode(master.getOrderMasterCode()); + List detailListOfMasters = this.getDetailList(detailAfterListOfMasterQry); + for (OrderListResponse detailListOfMaster: detailListOfMasters) { + if (!detailListOfMaster.getWorkerId().equals(orderListRequest.getWorkerId())) { + isKeep = true; + break; + } + } + if (isKeep) { + filteredMasterList.add(master); + } + } + orderListResponses.addAll(filteredMasterList); + } else { + orderListResponses.addAll(masterList); } - orderListResponses.addAll(this.getMasterList(orderMasterReq)); // 根据预约时间倒序排列 - CollectionUtils.sortIfNotEmpty(orderListResponses, new Comparator() { + Collections.sort(orderListResponses, new Comparator() { @Override public int compare(OrderListResponse o1, OrderListResponse o2) { return o1.getExpectTimeStart().compareTo(o2.getExpectTimeStart()); @@ -589,13 +608,29 @@ public class OrderController extends BaseController { // 查询主单 OrderMaster orderMasterReq = new OrderMaster(); BeanUtils.copyProperties(orderListRequest, orderMasterReq); + List masterList = this.getMasterAfterList(orderMasterReq); // 需要排除同个师傅的主单子单同时出现 - List exceptWorkerIds = detailList.stream().map(OrderListResponse::getWorkerId).collect(Collectors.toList()); - orderMasterReq.setExceptWorkerIds(exceptWorkerIds); - orderListResponses.addAll(this.getMasterAfterList(orderMasterReq)); + List filteredMasterList = new ArrayList(); + for (OrderListResponse master: masterList) { + boolean isKeep = false; + // 查询该主单下所有售后中的子单 + OrderDetail detailAfterListOfMasterQry = new OrderDetail(); + detailAfterListOfMasterQry.setOrderMasterCode(master.getOrderMasterCode()); + List detailAfterListOfMasters = this.getDetailAfterList(detailAfterListOfMasterQry); + for (OrderListResponse detailAfterListOfMaster: detailAfterListOfMasters) { + if (!detailAfterListOfMaster.getWorkerId().equals(orderListRequest.getWorkerId())) { + isKeep = true; + break; + } + } + if (isKeep) { + filteredMasterList.add(master); + } + } + orderListResponses.addAll(filteredMasterList); // 根据预约时间倒序排列 - CollectionUtils.sortIfNotEmpty(orderListResponses, new Comparator() { + Collections.sort(orderListResponses, new Comparator() { @Override public int compare(OrderListResponse o1, OrderListResponse o2) { return o1.getExpectTimeStart().compareTo(o2.getExpectTimeStart()); 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 4423fb17..639ebc68 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 @@ -98,5 +98,5 @@ public class OrderMaster extends BaseEntity { private Boolean shelveStatus; - private List exceptWorkerIds; + private List exceptOrderMasterIds; } diff --git a/ghy-order/src/main/resources/mapper/order/OrderDetailMapper.xml b/ghy-order/src/main/resources/mapper/order/OrderDetailMapper.xml index 1bbfc64f..3097a069 100644 --- a/ghy-order/src/main/resources/mapper/order/OrderDetailMapper.xml +++ b/ghy-order/src/main/resources/mapper/order/OrderDetailMapper.xml @@ -94,8 +94,8 @@ AND od.order_status = #{orderStatus} - - AND od.order_detail_code = #{orderMasterCode} + + AND od.order_master_code = #{orderMasterCode} AND od.worker_id = #{workerId} diff --git a/ghy-order/src/main/resources/mapper/order/OrderMasterMapper.xml b/ghy-order/src/main/resources/mapper/order/OrderMasterMapper.xml index 3d015a9c..7650dacc 100644 --- a/ghy-order/src/main/resources/mapper/order/OrderMasterMapper.xml +++ b/ghy-order/src/main/resources/mapper/order/OrderMasterMapper.xml @@ -146,10 +146,10 @@ AND om.has_dispatched_all = #{hasDispatchedAll} - - AND om.worker_id not in - - #{workerId} + + AND om.id not in + + #{id}