From 594cfe56c8713b78e12894f6281923684385f927 Mon Sep 17 00:00:00 2001 From: huliguo <2023611923@qq.com> Date: 星期二, 05 八月 2025 09:32:23 +0800 Subject: [PATCH] 优化 --- pt-errand/src/main/java/com/ruoyi/errand/service/impl/CourierServiceImpl.java | 51 +++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 43 insertions(+), 8 deletions(-) diff --git a/pt-errand/src/main/java/com/ruoyi/errand/service/impl/CourierServiceImpl.java b/pt-errand/src/main/java/com/ruoyi/errand/service/impl/CourierServiceImpl.java index c5930db..3300fc0 100644 --- a/pt-errand/src/main/java/com/ruoyi/errand/service/impl/CourierServiceImpl.java +++ b/pt-errand/src/main/java/com/ruoyi/errand/service/impl/CourierServiceImpl.java @@ -17,10 +17,7 @@ import com.ruoyi.errand.object.dto.sys.AddCourierDTO; import com.ruoyi.errand.object.dto.sys.CourierPageListDTO; import com.ruoyi.errand.object.dto.sys.EditCourierDTO; -import com.ruoyi.errand.object.vo.app.CompleteOrderDTO; -import com.ruoyi.errand.object.vo.app.CourierInfoVO; -import com.ruoyi.errand.object.vo.app.CourierOrderListVO; -import com.ruoyi.errand.object.vo.app.CourierStatisticsVO; +import com.ruoyi.errand.object.vo.app.*; import com.ruoyi.errand.object.vo.sys.AllCourierListVO; import com.ruoyi.errand.object.vo.sys.AppUserPageListVO; import com.ruoyi.errand.object.vo.sys.CourierPageListVO; @@ -40,10 +37,7 @@ import java.time.LocalDateTime; import java.time.LocalTime; import java.time.temporal.TemporalAdjusters; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -import java.util.Objects; +import java.util.*; import java.util.stream.Collectors; @Service @@ -458,6 +452,47 @@ } + @Override + public WorkNumberVO getWorkNumber() { + AppUser appuser = (AppUser) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); + if (appuser.getCourierId()==null){ + throw new ServiceException("您还不是跑腿员"); + } + CommunityCourier communityCourier = communityCourierMapper.selectOne(new LambdaUpdateWrapper<CommunityCourier>() + .eq(CommunityCourier::getCourierId, appuser.getCourierId())); + if(communityCourier==null){ + throw new ServiceException("您未绑定小区"); + } + //查询订单 + List<Order> orderList = orderMapper.selectList(new LambdaQueryWrapper<Order>() + .eq(Order::getCourierId, communityCourier.getCourierId()) + .eq(Order::getDelFlag, DelFlagConstant.UNDELETE) + .eq(Order::getPayStatus,2) + ); + Map<Integer, List<Order>> orderStatusMap = orderList.stream().collect(Collectors.groupingBy(Order::getOrderStatus)); + Integer totalNum=orderList.size(); + Integer inProgressNumber = orderStatusMap.getOrDefault(2, Collections.emptyList()).size(); + Integer completedNumber = orderStatusMap.getOrDefault(4, Collections.emptyList()).size(); + completedNumber += orderStatusMap.getOrDefault(5, Collections.emptyList()).size(); + + //待接单 + Integer waitNumber = Math.toIntExact(orderMapper.selectCount( + new LambdaQueryWrapper<Order>() + .eq(Order::getDelFlag, 0) + .eq(Order::getOrderStatus, 1) + .eq(Order::getPayStatus, 2) + .eq(Order::getCommunityId, communityCourier.getCommunityId()) + )); + totalNum += waitNumber; + + WorkNumberVO workNumberVO = new WorkNumberVO(); + workNumberVO.setTotalNumber(totalNum); + workNumberVO.setCompletedNumber(completedNumber); + workNumberVO.setInProgressNumber(inProgressNumber); + workNumberVO.setWaitNumber(waitNumber); + return workNumberVO; + } + private static long countByTimeRange(List<Order> orderList, LocalDateTime start, LocalDateTime end) { return orderList.stream() .filter(order -> order.getReceivingTime() != null) // 过滤空时间 -- Gitblit v1.7.1