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