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 0872e651..8b8be8ac 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 @@ -17,12 +17,14 @@ import com.ghy.goods.request.AppGoodsRequest; import com.ghy.goods.service.DeptGoodsCategoryService; import com.ghy.goods.service.GoodsService; import com.ghy.goods.service.GoodsStandardService; +import com.ghy.order.domain.AfterServiceRecord; import com.ghy.order.domain.OrderDetail; import com.ghy.order.domain.OrderGoods; import com.ghy.order.domain.OrderMaster; import com.ghy.order.request.AppOrderAssignRequest; import com.ghy.order.request.AppOrderRequest; import com.ghy.order.request.SysOrderAssignRequest; +import com.ghy.order.service.IAfterServiceRecordService; import com.ghy.order.service.OrderDetailService; import com.ghy.order.service.OrderGoodsService; import com.ghy.order.service.OrderMasterService; @@ -38,6 +40,8 @@ import com.ghy.system.domain.SysArea; import com.ghy.system.service.ISysAreaService; import com.ghy.web.pojo.vo.*; import com.ghy.worker.domain.Worker; +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; @@ -108,6 +112,12 @@ public class OrderController extends BaseController { @Autowired private FinancialChangeRecordService financialChangeRecordService; + @Autowired + private IWorkerCertificationService workerCertificationService; + + @Autowired + private IAfterServiceRecordService afterServiceRecordService; + /** * 可派单商品数量 * */ @@ -430,28 +440,43 @@ public class OrderController extends BaseController { OrderDetail orderDetail = new OrderDetail(); orderDetail.setOrderStatus(OrderStatus.RECEIVE.code()); orderDetail.setWorkerId(request.getWorkerId()); + orderDetail.setShelveStatus(0); Long newMasterOrderCount = orderMasterService.countOrderMasterList(orderMaster); Long newDetailOrderCount = orderDetailService.countOrderDetailList(orderDetail); // 统计新订单的单量 response.setNewOrderNum(newMasterOrderCount + newDetailOrderCount); // 统计未排的单量 orderMaster.setOrderStatus(OrderStatus.PLAIN.code()); - orderDetail.setOrderStatus(OrderStatus.PLAIN.code()); - response.setPlanOrderNum(orderMasterService.countOrderMasterList(orderMaster) + orderDetailService.countOrderDetailList(orderDetail)); + response.setPlanOrderNum(orderMasterService.countOrderMasterList(orderMaster)); // 统计待上门单量 - orderMaster.setOrderStatus(OrderStatus.GOING.code()); orderDetail.setOrderStatus(OrderStatus.GOING.code()); - response.setWaitServOrderNum(orderMasterService.countOrderMasterList(orderMaster) + orderDetailService.countOrderDetailList(orderDetail)); + response.setWaitServOrderNum(orderDetailService.countOrderDetailList(orderDetail)); // 统计服务中单量 - orderMaster.setOrderStatus(OrderStatus.SERVER.code()); orderDetail.setOrderStatus(OrderStatus.SERVER.code()); - response.setServingOrderNum(orderMasterService.countOrderMasterList(orderMaster) + orderDetailService.countOrderDetailList(orderDetail)); + response.setServingOrderNum(orderDetailService.countOrderDetailList(orderDetail)); // 统计待确认单量 - orderMaster.setOrderStatus(OrderStatus.FINISH_CHECK.code()); orderDetail.setOrderStatus(OrderStatus.FINISH_CHECK.code()); - response.setWaitSureOrderNum(orderMasterService.countOrderMasterList(orderMaster) + orderDetailService.countOrderDetailList(orderDetail)); - // 统计超时单量 + response.setWaitSureOrderNum(orderDetailService.countOrderDetailList(orderDetail)); + // 统计已完成子单量 + orderDetail.setOrderStatus(OrderStatus.FINISH.code()); + response.setFinishedOrderNum(orderDetailService.countOrderDetailList(orderDetail)); + // 统计监控单量 + orderMaster.setOrderStatus(null); + orderMaster.setOrderStatuses("2,3,4,5"); + response.setMonitoredOrderNum(orderMasterService.countOrderMasterList(orderMaster)); + orderMaster.setOrderStatuses(null); + // 统计搁置单量 + orderDetail.setShelveStatus(1); + response.setShelvedOrderNum(orderDetailService.countOrderDetailList(orderDetail)); + orderDetail.setShelveStatus(0); + // 统计售后中单量 OrderListRequest orderListRequest = new OrderListRequest(); + orderListRequest.setWorkerId(request.getWorkerId()); + AjaxResult afterListRes = this.appMixAfterList(orderListRequest); + List afterList = (List)afterListRes.get("data"); + response.setAfterListNum(afterList.size()); + // 统计超时单量 + orderListRequest = new OrderListRequest(); orderListRequest.setIsOverTime(true); orderListRequest.setWorkerId(request.getWorkerId()); AjaxResult overTimeRes = this.appMixOrderList(orderListRequest); @@ -527,6 +552,306 @@ public class OrderController extends BaseController { return AjaxResult.success(orderListResponses); } + @PostMapping("/app/mix/after/list") + @ResponseBody + public AjaxResult appMixAfterList(@RequestBody OrderListRequest orderListRequest) { + List orderListResponses = new ArrayList<>(); + + // 校验参数 + 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)); + + // 根据预约时间倒序排列 + CollectionUtils.sortIfNotEmpty(orderListResponses, new Comparator() { + @Override + public int compare(OrderListResponse o1, OrderListResponse o2) { + return o1.getExpectTimeStart().compareTo(o2.getExpectTimeStart()); + } + }); + + return AjaxResult.success(orderListResponses); + } + + public List getMasterAfterList(OrderMaster orderMaster) { + + // 查所有售后的单 + AfterServiceRecord afterServiceRecord = new AfterServiceRecord(); + afterServiceRecord.setExcludeAfterServiceFinished(Boolean.TRUE); + List afterServiceRecordList = afterServiceRecordService.selectAfterServiceRecordList(afterServiceRecord); + // 踢重后的子单ids + List detailIds = afterServiceRecordList.stream().map(AfterServiceRecord::getOrderDetailId).distinct().collect(Collectors.toList()); + StringBuilder orderDetailIds = new StringBuilder(); + OrderDetail orderDetail = new OrderDetail(); + orderDetail.setCustomerId(orderMaster.getCustomerId()); + orderDetail.setDeptId(orderMaster.getDeptId()); + detailIds.forEach(id->{ + orderDetailIds.append(id).append(","); + }); + String ids = orderDetailIds.toString(); + if(StringUtils.isNotEmpty(ids)){ + orderDetail.setOrderDetailIds(ids.substring(0, ids.length()-1)); + }else { + orderDetail.setOrderDetailIds("0"); + } + // 所有售后的子单 + List orderDetailList = orderDetailService.selectOrderDetailList(orderDetail); + StringBuilder orderMasterIds = new StringBuilder(); + orderDetailList.stream().map(OrderDetail::getOrderMasterId).distinct() + .collect(Collectors.toList()).forEach(id->{ + orderMasterIds.append(id).append(","); + }); + String orderIds = orderMasterIds.toString(); + if(StringUtils.isNotEmpty(orderIds)){ + orderMaster.setOrderMasterIds(orderIds.substring(0, orderIds.length()-1)); + }else { + orderMaster.setOrderMasterIds("0"); + } + + List orderListResponses = new ArrayList<>(); + List list = orderMasterService.selectOrderMasterList(orderMaster); + list.forEach(master -> { + //子单 + List detailList = orderDetailService.selectByOrderMasterId(master.getId()); + + // 初始化属性 + OrderListResponse orderListResponse = new OrderListResponse(); + List standardList = new ArrayList<>(); + + // 师傅信息 + Worker worker = master.getWorkerId() != null ? workerService.selectById(master.getWorkerId()) : null; + + // 消费者信息 +// Customer customer = customerService.selectByCustomerId(master.getCustomerId()); + + // 商品规格及信息 + List orderStandardList = orderGoodsService.selectByOrderMasterId(master.getId()); + + // 商品信息 + GoodsStandard goodsStandard = goodsStandardService.selectById(orderStandardList.get(0).getGoodsStandardId()); + + Goods goods = goodsService.selectById(goodsStandard.getGoodsId()); + + // 财务信息 + FinancialMaster financialMaster = financialMasterService.selectByOrderMasterId(master.getId()); + BigDecimal totalPayMoney = financialMaster.getPayMoney(); +// BigDecimal totalChangeMoney = new BigDecimal(0); +// for (OrderDetail detail: detailList) { +// // 查询子单加价记录 +// FinancialChangeRecord changeRecordQry = new FinancialChangeRecord(); +// changeRecordQry.setOrderDetailId(detail.getId()); +// List financialChangeRecords = financialChangeRecordService.selectFinancialChangeRecordList(changeRecordQry); +// if (CollectionUtils.isNotEmpty(financialChangeRecords)) { +// totalChangeMoney = totalChangeMoney.add(financialChangeRecords.get(0).getChangeMoney()); +// } +// } +// totalPayMoney = totalPayMoney.add(totalChangeMoney); + + // 地址信息 + CustomerAddress customerAddress = addressService.selectByCustomerAddressId(master.getAddressId()); + SysArea sysArea = sysAreaService.selectById(customerAddress.getCountryId()); + String completeAddress = sysArea.getMergerName().replaceAll(",", "") + customerAddress.getAddress(); + + // 查询是否超时 + List timeoutRecords = new ArrayList<>(); + // 查询售后记录 + List afterServiceRecords = new ArrayList<>(); + List detailOrderList = orderDetailService.selectByOrderMasterId(master.getId()); + detailOrderList.stream().forEach(detail -> { + OrderTimeoutRecord timeoutRecord = orderFineRecordService.selectByDetailIdAndStatus(detail.getId(), detail.getOrderStatus()); + if (timeoutRecord != null) { + timeoutRecords.add(timeoutRecord); + } + + AfterServiceRecord afterServiceRecordQry = new AfterServiceRecord(); + afterServiceRecordQry.setOrderDetailId(detail.getId()); + List records = afterServiceRecordService.selectAfterServiceRecordList(afterServiceRecordQry); + afterServiceRecords.addAll(records); + }); + + for (OrderGoods orderGoods : orderStandardList) { + OrderStandard orderStandard = new OrderStandard(); + orderStandard.setStandardName(orderGoods.getGoodsName()); + orderStandard.setStandardNum(orderGoods.getGoodsNum()); + standardList.add(orderStandard); + } + + // 编辑返回属性 + orderListResponse.setOrderMasterId(master.getId()); + orderListResponse.setGoodsName(goods.getGoodsName()); + orderListResponse.setGoodsLogoUrl(goods.getGoodsImgUrl()); + orderListResponse.setDiscountMoney(financialMaster.getDiscountMoney()); + orderListResponse.setTotalMoney(financialMaster.getTotalMoney()); + orderListResponse.setPayMoney(totalPayMoney); +// orderListResponse.setChangeMoney(totalChangeMoney); + orderListResponse.setWorkerName(worker == null ? "" : worker.getName()); + orderListResponse.setWorkerPhone(worker == null ? "" : worker.getPhone()); + orderListResponse.setCustomerName(customerAddress.getName()); + orderListResponse.setCustomerPhone(customerAddress.getPhone()); + orderListResponse.setServerTime(master.getRevTime()); + orderListResponse.setExpectTimeStart(master.getExpectTimeStart()); + orderListResponse.setExpectTimeEnd(master.getExpectTimeEnd()); + orderListResponse.setExpectTimeStartFront(master.getExpectTimeStart()); + orderListResponse.setExpectTimeEndFront(master.getExpectTimeEnd()); + orderListResponse.setOrderStatus(master.getOrderStatus()); + orderListResponse.setPayStatus(master.getPayStatus()); + orderListResponse.setPayType(master.getPayType()); + orderListResponse.setOrderMasterCode(master.getCode()); + orderListResponse.setStandardList(standardList); + orderListResponse.setAddress(completeAddress); + orderListResponse.setRemark(goods.getRemark()); + orderListResponse.setCustomerRemark(master.getRemark()); + orderListResponse.setOrderTimeoutRecords(timeoutRecords); + orderListResponse.setAfterServiceRecordList(afterServiceRecords); + orderListResponses.add(orderListResponse); + + }); + return orderListResponses; + } + + public List getDetailAfterList(OrderDetail orderDetail) { + AfterServiceRecord afterServiceRecord = new AfterServiceRecord(); + afterServiceRecord.setExcludeAfterServiceFinished(Boolean.TRUE); + List afterServiceRecordList = afterServiceRecordService.selectAfterServiceRecordList(afterServiceRecord); + Map> detailRecordMap = afterServiceRecordList.stream().collect(Collectors.groupingBy(record->record.getOrderDetailId())); + // 踢重后的子单ids + List detailIds = afterServiceRecordList.stream().map(AfterServiceRecord::getOrderDetailId).distinct().collect(Collectors.toList()); + StringBuilder orderDetailIds = new StringBuilder(); + detailIds.forEach(id->{ + orderDetailIds.append(id).append(","); + }); + String ids = orderDetailIds.toString(); + if(StringUtils.isNotEmpty(ids)){ + orderDetail.setOrderDetailIds(ids.substring(0, ids.length()-1)); + }else { + orderDetail.setOrderDetailIds("0"); + } + List orderListResponses = new ArrayList<>(); + List list = orderDetailService.selectOrderDetailList(orderDetail); + list.forEach(detail -> { + + // 主单信息 + OrderMaster orderMaster = orderMasterService.selectById(detail.getOrderMasterId()); + // 初始化属性 + OrderListResponse orderListResponse = new OrderListResponse(); + List standardList = new ArrayList<>(); + + // 师傅信息 + Worker worker = workerService.selectById(detail.getWorkerId()); + WorkerCertification workerRealInfo = null; + String workerName = ""; + if (worker != null) { + // 师傅实名信息 + workerRealInfo = workerCertificationService.selectByWorkerId(orderMaster.getWorkerId()); + workerName = workerRealInfo == null ? worker.getName() : workerRealInfo.getName(); + } + + // 消费者信息 +// Customer customer = customerService.selectByCustomerId(detail.getCustomerId()); + + // 商品规格及信息 + List orderStandardList = orderGoodsService.selectByOrderDetailId(detail.getId()); + + // 商品信息 + GoodsStandard goodsStandard = goodsStandardService.selectById(orderStandardList.get(0).getGoodsStandardId()); + + Goods goods = goodsService.selectById(goodsStandard.getGoodsId()); + + // 财务信息 + 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()); +// List financialChangeRecords = financialChangeRecordService.selectFinancialChangeRecordList(changeRecordQry); +// if (CollectionUtils.isNotEmpty(financialChangeRecords)) { +// detailPayMoney = detailPayMoney.add(financialChangeRecords.get(0).getChangeMoney()); +// } + + // 地址信息 + CustomerAddress customerAddress = addressService.selectByCustomerAddressId(orderMaster.getAddressId()); + SysArea sysArea = sysAreaService.selectById(customerAddress.getCountryId()); + String completeAddress = sysArea.getMergerName().replaceAll(",", "") + customerAddress.getAddress(); + + for (OrderGoods orderGoods : orderStandardList) { + OrderStandard orderStandard = new OrderStandard(); + orderStandard.setStandardName(orderGoods.getGoodsName()); + orderStandard.setStandardNum(orderGoods.getGoodsNum()); + orderStandard.setServerNum(orderGoods.getServerGoodsNum()); + orderStandard.setFinishTime(orderGoods.getFinishTime()); + orderStandard.setWaitServerNum(orderGoods.getGoodsNum() - orderGoods.getServerGoodsNum()); + standardList.add(orderStandard); + } + + // 查询是否超时 + OrderTimeoutRecord orderTimeoutRecord = orderFineRecordService.selectByDetailIdAndStatus(detail.getId(), detail.getOrderStatus()); + Boolean isOverTime = orderTimeoutRecord == null ? false : true; + + if(this.checkIsOnlyServer(orderMaster.getId(), detail.getWorkerId())){ + FinancialMaster financialMaster = financialMasterService.selectByOrderMasterId(detail.getOrderMasterId()); + BigDecimal workerFee = financialMaster.getPayMoney(); + List financialDetailList = financialDetailService.selectByFinancialMasterId(financialMaster.getId()); + for (FinancialDetail param : financialDetailList) { + if (!detail.getWorkerId().equals(param.getPayeeId())) { + workerFee = workerFee.subtract(param.getPayMoney()); + } + } + orderListResponse.setPayMoney(workerFee); + orderListResponse.setIsOnlyServ(Boolean.TRUE); + }else { + orderListResponse.setPayMoney(detailPayMoney); + orderListResponse.setIsOnlyServ(Boolean.FALSE); + } + + + // 编辑返回属性 + orderListResponse.setOrderDetailId(detail.getId()); + orderListResponse.setOrderDetailCode(detail.getCode()); + orderListResponse.setOrderMasterId(detail.getOrderMasterId()); + orderListResponse.setOrderMasterCode(detail.getOrderMasterCode()); + orderListResponse.setGoodsName(goods.getGoodsName()); + orderListResponse.setGoodsLogoUrl(goods.getGoodsImgUrl()); + orderListResponse.setDiscountMoney(financialDetail.getDiscountMoney()); + orderListResponse.setTotalMoney(financialDetail.getTotalMoney()); + orderListResponse.setWorkerName(workerName); + orderListResponse.setWorkerPhone(worker == null ? "" : worker.getPhone()); + orderListResponse.setCustomerName(customerAddress.getName()); + orderListResponse.setCustomerPhone(customerAddress.getPhone()); + orderListResponse.setOrderStatus(detail.getOrderStatus()); + orderListResponse.setPayStatus(orderMaster.getPayStatus()); + orderListResponse.setPayType(orderMaster.getPayType()); + orderListResponse.setStandardList(standardList); + orderListResponse.setAddress(completeAddress); + orderListResponse.setServerTime(detail.getRevTime()); + orderListResponse.setExpectTimeStart(detail.getExpectTimeStart()); + orderListResponse.setExpectTimeEnd(detail.getExpectTimeEnd()); + orderListResponse.setExpectTimeStartFront(detail.getExpectTimeStart()); + orderListResponse.setExpectTimeEndFront(detail.getExpectTimeEnd()); + orderListResponse.setWorkBeginTime(detail.getWorkBeginTime()); + orderListResponse.setWorkFinishTime(detail.getWorkFinishTime()); + orderListResponse.setRemark(goods.getRemark()); + orderListResponse.setCustomerRemark(orderMaster.getRemark()); + orderListResponse.setOrderType(detail.getOrderType()); + orderListResponse.setIsOverTime(isOverTime); + orderListResponse.setAfterServiceRecordList(detailRecordMap.get(detail.getId())); + orderListResponse.setChangeMoney(changeMoney); + orderListResponses.add(orderListResponse); + }); + return orderListResponses; + } + public List getMasterList(OrderMaster orderMaster) { List orderListResponses = new ArrayList<>(); List list = orderMasterService.selectOrderMasterList(orderMaster); @@ -570,12 +895,19 @@ public class OrderController extends BaseController { // 查询是否超时 List timeoutRecords = new ArrayList<>(); + // 查询售后记录 + List afterServiceRecords = new ArrayList<>(); List detailOrderList = orderDetailService.selectByOrderMasterId(master.getId()); detailOrderList.stream().forEach(detail -> { OrderTimeoutRecord timeoutRecord = orderFineRecordService.selectByDetailIdAndStatus(detail.getId(), detail.getOrderStatus()); if (timeoutRecord != null) { timeoutRecords.add(timeoutRecord); } + + AfterServiceRecord afterServiceRecordQry = new AfterServiceRecord(); + afterServiceRecordQry.setOrderDetailId(detail.getId()); + List records = afterServiceRecordService.selectAfterServiceRecordList(afterServiceRecordQry); + afterServiceRecords.addAll(records); }); if (Boolean.TRUE.equals(orderMaster.getIsOverTime()) && timeoutRecords.size() == 0) continue; @@ -612,6 +944,7 @@ public class OrderController extends BaseController { orderListResponse.setCustomerRemark(master.getRemark()); orderListResponse.setOrderTimeoutRecords(timeoutRecords); orderListResponse.setChangeMoney(changeMoney); + orderListResponse.setAfterServiceRecordList(afterServiceRecords); orderListResponses.add(orderListResponse); } @@ -668,6 +1001,11 @@ public class OrderController extends BaseController { Boolean isOverTime = orderTimeoutRecord == null ? false : true; if (Boolean.TRUE.equals(orderDetail.getIsOverTime()) && !isOverTime) continue; + // 售后记录 + AfterServiceRecord afterServiceRecord = new AfterServiceRecord(); + afterServiceRecord.setOrderDetailId(detail.getId()); + List afterServiceRecordList =afterServiceRecordService.selectAfterServiceRecordList(afterServiceRecord); + // 编辑返回属性 orderListResponse.setOrderDetailId(detail.getId()); orderListResponse.setOrderDetailCode(detail.getCode()); @@ -700,8 +1038,39 @@ public class OrderController extends BaseController { orderListResponse.setOrderType(detail.getOrderType()); orderListResponse.setIsOverTime(isOverTime); orderListResponse.setChangeMoney(changeMoney); + orderListResponse.setAfterServiceRecordList(afterServiceRecordList); orderListResponses.add(orderListResponse); } return orderListResponses; } + + 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/controller/order/OrderDetailController.java b/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderDetailController.java index c1bc7de2..ad1f1b91 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 @@ -334,6 +334,11 @@ public class OrderDetailController extends BaseController { orderListResponse.setIsOnlyServ(Boolean.FALSE); } + // 售后记录 + AfterServiceRecord afterServiceRecord = new AfterServiceRecord(); + afterServiceRecord.setOrderDetailId(detail.getId()); + List afterServiceRecordList =afterServiceRecordService.selectAfterServiceRecordList(afterServiceRecord); + // 编辑返回属性 orderListResponse.setOrderDetailId(detail.getId()); orderListResponse.setOrderDetailCode(detail.getCode()); @@ -365,6 +370,7 @@ public class OrderDetailController extends BaseController { orderListResponse.setOrderType(detail.getOrderType()); orderListResponse.setIsOverTime(isOverTime); orderListResponse.setChangeMoney(changeMoney); + orderListResponse.setAfterServiceRecordList(afterServiceRecordList); 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 bc1aa980..6d46860e 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 @@ -161,12 +161,19 @@ public class OrderMasterController extends BaseController { // 查询是否超时 List timeoutRecords = new ArrayList<>(); + // 查询售后记录 + List afterServiceRecords = new ArrayList<>(); List detailOrderList = orderDetailService.selectByOrderMasterId(master.getId()); detailOrderList.stream().forEach(detail -> { OrderTimeoutRecord timeoutRecord = orderFineRecordService.selectByDetailIdAndStatus(detail.getId(), detail.getOrderStatus()); if (timeoutRecord != null) { timeoutRecords.add(timeoutRecord); } + + AfterServiceRecord afterServiceRecordQry = new AfterServiceRecord(); + afterServiceRecordQry.setOrderDetailId(detail.getId()); + List records = afterServiceRecordService.selectAfterServiceRecordList(afterServiceRecordQry); + afterServiceRecords.addAll(records); }); for (OrderGoods orderGoods : orderStandardList) { @@ -202,6 +209,7 @@ public class OrderMasterController extends BaseController { orderListResponse.setRemark(goods.getRemark()); orderListResponse.setCustomerRemark(master.getRemark()); orderListResponse.setOrderTimeoutRecords(timeoutRecords); + orderListResponse.setAfterServiceRecordList(afterServiceRecords); orderListResponses.add(orderListResponse); }); @@ -422,6 +430,10 @@ public class OrderMasterController extends BaseController { // detailPayMoney = detailPayMoney.add(financialChangeRecord.getChangeMoney()); // } + // 查询是否超时 + OrderTimeoutRecord timeoutRecord = orderFineRecordService.selectByDetailIdAndStatus(orderDetail.getId(), orderDetail.getOrderStatus()); + Boolean isOverTime = timeoutRecord != null ? Boolean.TRUE : Boolean.FALSE; + OrderStandardDetail orderStandardDetail = new OrderStandardDetail(); orderStandardDetail.setOrderDetailId(orderDetail.getId()); orderStandardDetail.setOrderDetailCode(orderDetail.getCode()); @@ -440,6 +452,7 @@ public class OrderMasterController extends BaseController { orderStandardDetail.setPayMoney(detailPayMoney); orderStandardDetail.setFinancialChangeRecord(financialChangeRecords); orderStandardDetail.setOrderStatus(orderDetail.getOrderStatus()); + orderStandardDetail.setIsOverTime(isOverTime); AfterServiceRecord afterServiceRecord = new AfterServiceRecord(); afterServiceRecord.setOrderDetailId(orderDetail.getId()); 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 64e54842..fc769b5a 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 @@ -51,4 +51,6 @@ public class OrderStandardDetail { private Integer orderStatus; private Boolean isOnlyServ; + + private Boolean isOverTime; } diff --git a/ghy-admin/src/main/java/com/ghy/web/pojo/vo/OrderStatisticsResponse.java b/ghy-admin/src/main/java/com/ghy/web/pojo/vo/OrderStatisticsResponse.java index 94503725..2357f690 100644 --- a/ghy-admin/src/main/java/com/ghy/web/pojo/vo/OrderStatisticsResponse.java +++ b/ghy-admin/src/main/java/com/ghy/web/pojo/vo/OrderStatisticsResponse.java @@ -18,4 +18,8 @@ public class OrderStatisticsResponse { private long overTimeOrderNum; private long todayOrderNum; private long tomorrowOrderNum; + private long finishedOrderNum; + private long monitoredOrderNum; + private long shelvedOrderNum; + private long afterListNum; } diff --git a/ghy-order/src/main/java/com/ghy/order/domain/OrderDetail.java b/ghy-order/src/main/java/com/ghy/order/domain/OrderDetail.java index ec360876..9b40625e 100644 --- a/ghy-order/src/main/java/com/ghy/order/domain/OrderDetail.java +++ b/ghy-order/src/main/java/com/ghy/order/domain/OrderDetail.java @@ -73,4 +73,6 @@ public class OrderDetail extends BaseEntity { private String orderDetailIds; private Boolean useTimeNotRange; + + private Integer shelveStatus; } diff --git a/ghy-order/src/main/resources/mapper/order/OrderDetailMapper.xml b/ghy-order/src/main/resources/mapper/order/OrderDetailMapper.xml index 05f47aec..616cbd46 100644 --- a/ghy-order/src/main/resources/mapper/order/OrderDetailMapper.xml +++ b/ghy-order/src/main/resources/mapper/order/OrderDetailMapper.xml @@ -111,6 +111,9 @@ AND od.id in ( ${orderDetailIds} ) + + AND od.shelve_status = ${shelveStatus} + order by od.create_time @@ -161,6 +164,9 @@ AND od.expect_time_end <= #{expectTimeEnd} + + AND od.shelve_status = ${shelveStatus} + order by od.create_time diff --git a/ghy-order/src/main/resources/mapper/order/OrderMasterMapper.xml b/ghy-order/src/main/resources/mapper/order/OrderMasterMapper.xml index 3e947ef5..ae7c3be0 100644 --- a/ghy-order/src/main/resources/mapper/order/OrderMasterMapper.xml +++ b/ghy-order/src/main/resources/mapper/order/OrderMasterMapper.xml @@ -160,6 +160,9 @@ AND om.order_status = #{orderStatus} + + AND om.order_status in (${orderStatuses}) + AND om.pay_type = #{payType}