diff --git a/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderDetailController.java b/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderDetailController.java index c571400b..c1bc7de2 100644 --- a/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderDetailController.java +++ b/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderDetailController.java @@ -137,6 +137,7 @@ public class OrderDetailController extends BaseController { WorkerCertification workerRealInfo = null; String workerName = ""; String masterWorkerName = ""; + String masterCompanyName = ""; if (worker != null) { // 师傅实名信息 workerRealInfo = workerCertificationService.selectByWorkerId(orderMaster.getWorkerId()); @@ -149,6 +150,7 @@ public class OrderDetailController extends BaseController { // 大师傅实名信息 workerRealInfo = workerCertificationService.selectByWorkerId(orderMaster.getWorkerId()); masterWorkerName = workerRealInfo == null ? masterWorker.getName() : workerRealInfo.getName(); + masterCompanyName = workerRealInfo == null ? null : workerRealInfo.getCompanyName(); } // 消费者信息 @@ -206,8 +208,10 @@ public class OrderDetailController extends BaseController { } } orderListResponse.setPayMoney(workerFee); + orderListResponse.setIsOnlyServ(Boolean.TRUE); }else { orderListResponse.setPayMoney(detailPayMoney); + orderListResponse.setIsOnlyServ(Boolean.FALSE); } // 编辑返回属性 orderListResponse.setOrderDetailId(detail.getId()); @@ -221,6 +225,7 @@ public class OrderDetailController extends BaseController { orderListResponse.setWorkerName(workerName); orderListResponse.setWorkerPhone(worker == null ? "" : worker.getPhone()); orderListResponse.setMasterWorkerName(masterWorkerName); + orderListResponse.setMasterCompanyName(masterCompanyName); orderListResponse.setMasterWorkerPhone(masterWorker == null ? "" : masterWorker.getPhone()); orderListResponse.setCustomerName(customerAddress.getName()); orderListResponse.setCustomerPhone(customerAddress.getPhone()); @@ -323,8 +328,10 @@ public class OrderDetailController extends BaseController { } } orderListResponse.setPayMoney(workerFee); + orderListResponse.setIsOnlyServ(Boolean.TRUE); }else { orderListResponse.setPayMoney(detailPayMoney); + orderListResponse.setIsOnlyServ(Boolean.FALSE); } // 编辑返回属性 @@ -417,6 +424,10 @@ public class OrderDetailController extends BaseController { // 财务信息 FinancialDetail financialDetail = financialDetailService.selectByOrderDetailId(detail.getId()); BigDecimal detailPayMoney = financialDetail.getPayMoney(); + + // 查询子单加价记录 + FinancialChangeRecord financialChangeRecord = financialChangeRecordService.selectNotPayRecordByDetailId(detail.getId()); + BigDecimal changeMoney = financialChangeRecord == null ? BigDecimal.ZERO : financialChangeRecord.getChangeMoney(); // 查询子单加价记录 // FinancialChangeRecord changeRecordQry = new FinancialChangeRecord(); // changeRecordQry.setOrderDetailId(detail.getId()); @@ -454,8 +465,10 @@ public class OrderDetailController extends BaseController { } } orderListResponse.setPayMoney(workerFee); + orderListResponse.setIsOnlyServ(Boolean.TRUE); }else { orderListResponse.setPayMoney(detailPayMoney); + orderListResponse.setIsOnlyServ(Boolean.FALSE); } @@ -489,6 +502,7 @@ public class OrderDetailController extends BaseController { orderListResponse.setOrderType(detail.getOrderType()); orderListResponse.setIsOverTime(isOverTime); orderListResponse.setAfterServiceRecordList(detailRecordMap.get(detail.getId())); + orderListResponse.setChangeMoney(changeMoney); orderListResponses.add(orderListResponse); }); return voDataTable(orderListResponses, list); diff --git a/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderMasterController.java b/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderMasterController.java index c40a9bf9..bc1aa980 100644 --- a/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderMasterController.java +++ b/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderMasterController.java @@ -60,6 +60,7 @@ import org.springframework.web.bind.annotation.*; import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; +import java.util.Objects; import java.util.stream.Collectors; /** @@ -183,7 +184,6 @@ public class OrderMasterController extends BaseController { orderListResponse.setTotalMoney(financialMaster.getTotalMoney()); orderListResponse.setPayMoney(totalPayMoney); orderListResponse.setChangeMoney(totalChangeMoney); -// orderListResponse.setPaidMoney(totalPayMoney.subtract(totalChangeMoney)); orderListResponse.setWorkerName(worker == null ? "" : worker.getName()); orderListResponse.setWorkerPhone(worker == null ? "" : worker.getPhone()); orderListResponse.setCustomerName(customerAddress.getName()); @@ -446,6 +446,8 @@ public class OrderMasterController extends BaseController { List records =afterServiceRecordService.selectAfterServiceRecordList(afterServiceRecord); orderStandardDetail.setAfterServiceRecordList(records); + orderStandardDetail.setIsOnlyServ(this.checkIsOnlyServer(orderMaster.getId(), orderDetail.getWorkerId()) ? Boolean.TRUE : Boolean.FALSE); + orderStandardDetails.add(orderStandardDetail); } @@ -489,6 +491,26 @@ public class OrderMasterController extends BaseController { standardList.add(orderStandard); } + // 查询是否超时 + List timeoutRecords = new ArrayList<>(); + List detailOrderList = orderDetailService.selectByOrderMasterId(orderMaster.getId()); + detailOrderList.stream().forEach(detail -> { + OrderTimeoutRecord timeoutRecord = orderFineRecordService.selectByDetailIdAndStatus(detail.getId(), detail.getOrderStatus()); + if (timeoutRecord != null) { + timeoutRecords.add(timeoutRecord); + } + }); + + // 查询主单师傅的最终收益 + FinancialDetail fdQry = new FinancialDetail(); + fdQry.setPayeeId(orderMaster.getWorkerId()); + fdQry.setFinancialMasterId(financialMaster.getId()); + List financialDetailList = financialDetailService.selectFinancialDetailList(fdQry); + BigDecimal finalRecvMoney = BigDecimal.ZERO; + for (FinancialDetail financialDetail: financialDetailList) { + finalRecvMoney = finalRecvMoney.add(financialDetail.getPayMoney()); + } + // 编辑返回属性 orderListResponse.setOrderMasterId(orderMaster.getId()); orderListResponse.setOrderMasterCode(orderMaster.getCode()); @@ -515,6 +537,8 @@ public class OrderMasterController extends BaseController { orderListResponse.setRemark(goods.getRemark()); orderListResponse.setCustomerRemark(orderMaster.getRemark()); orderListResponse.setOrderStandardDetailList(orderStandardDetails); + orderListResponse.setOrderTimeoutRecords(timeoutRecords); + orderListResponse.setFinalRecvMoney(finalRecvMoney); return AjaxResult.success(orderListResponse); } catch (Exception e) { @@ -713,4 +737,34 @@ public class OrderMasterController extends BaseController { return AjaxResult.error(ExceptionUtil.getExceptionMessage(e)); } } + + private boolean checkIsOnlyServer(Long orderMasterId, Long workId){ + // 找出原单的数量 + List orderGoodsList = orderGoodsService.selectByOrderMasterId(orderMasterId); + // 找出原单关联的细单的商品数量 + List orderDetailList = orderDetailService.selectByOrderMasterId(orderMasterId); + for (OrderDetail detail : orderDetailList){ + // 非一个师傅接单 + if(!workId.equals(detail.getWorkerId())){ + return false; + } + // 子单数量 + List orderDetailGoodsList = orderGoodsService.selectByOrderDetailId(detail.getId()); + // 计算剩余未分配的商品数量 + for (OrderGoods detailGoods : orderDetailGoodsList) { + for(OrderGoods masterGoods : orderGoodsList){ + if(Objects.equals(masterGoods.getGoodsStandardId(), detailGoods.getGoodsStandardId())){ + masterGoods.setGoodsNum(masterGoods.getGoodsNum() - detailGoods.getGoodsNum()); + } + } + } + } + // 有单派完. + for (OrderGoods orderGoods : orderGoodsList) { + if (orderGoods.getGoodsNum() > 0) { + return false; + } + } + return true; + } } 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 f2cf22b1..c306ebff 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 @@ -29,6 +29,8 @@ public class OrderListResponse { private String masterWorkerPhone; + private String masterCompanyName; + private String customerName; private String customerPhone; @@ -69,7 +71,7 @@ public class OrderListResponse { private BigDecimal payMoney; - private BigDecimal paidMoney; + private BigDecimal finalRecvMoney; private BigDecimal changeMoney; @@ -95,4 +97,5 @@ public class OrderListResponse { private List afterServiceRecordList; + private Boolean isOnlyServ; } diff --git a/ghy-admin/src/main/java/com/ghy/web/pojo/vo/OrderStandardDetail.java b/ghy-admin/src/main/java/com/ghy/web/pojo/vo/OrderStandardDetail.java index f42c9273..64e54842 100644 --- a/ghy-admin/src/main/java/com/ghy/web/pojo/vo/OrderStandardDetail.java +++ b/ghy-admin/src/main/java/com/ghy/web/pojo/vo/OrderStandardDetail.java @@ -50,4 +50,5 @@ public class OrderStandardDetail { private Integer orderStatus; + private Boolean isOnlyServ; }