From f198eb8efc4cc3c53e6b5839dabb4aae4c68510c Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期三, 08 一月 2025 17:16:55 +0800
Subject: [PATCH] bug修改

---
 ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/OrderController.java    |    6 +-
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/entity/Order.java                  |   25 ++++++++++++
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java |   51 +++++++++----------------
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/OrderMapper.java            |    2 
 ruoyi-service/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml                  |   10 ++++-
 5 files changed, 55 insertions(+), 39 deletions(-)

diff --git a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/OrderController.java b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/OrderController.java
index 9a81d69..f7787ac 100644
--- a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/OrderController.java
+++ b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/OrderController.java
@@ -189,13 +189,13 @@
 
 
         Page<Order> data = orderClient.queryPage(orderQueryRequest).getData();
+        List<MasterWorker> list = masterWorkerService.lambdaQuery()
+                .eq(MasterWorker::getIsDelete, 0).list();
         if (null != data) {
             for (Order record : data.getRecords()) {
                 // 回收服务信息
                 Integer serverId = record.getServerId();
-                MasterWorker masterWorker = masterWorkerService.lambdaQuery()
-                        .eq(MasterWorker::getId, serverId)
-                        .eq(MasterWorker::getIsDelete, 0).one();
+                MasterWorker masterWorker = list.stream().filter(e -> e.getId().equals(serverId)).findFirst().orElse(null);
                 if (null != masterWorker) {
                     record.setServerName(masterWorker.getRealName());
                     record.setServerPhone(masterWorker.getPhone());
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/entity/Order.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/entity/Order.java
index 2918b8e..6f5d07f 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/entity/Order.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/entity/Order.java
@@ -177,6 +177,31 @@
     @TableField(exist = false)
     private String applyReason;
 
+    @ApiModelProperty("代派单")
+    @TableField(exist = false)
+    private Integer toBeDispatched=0;
+    @ApiModelProperty("待上门")
+    @TableField(exist = false)
+    private Integer stayDoorstep=0;
+    @ApiModelProperty("带完工")
+    @TableField(exist = false)
+    private Integer toBeCompleted=0;
+    @ApiModelProperty("已完结")
+    @TableField(exist = false)
+    private Integer completed=0;
+    @ApiModelProperty("已取消")
+    @TableField(exist = false)
+    private Integer canceled =0;
+    @ApiModelProperty("再投数量")
+    @TableField(exist = false)
+    private Integer reInvestment=0;
+
+
+
+
+
+
+
     @ApiModelProperty("是否为再投单")
     @TableField("is_reinvest")
     private Integer isReinvest;
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/OrderMapper.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/OrderMapper.java
index 0263b89..6747f6a 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/OrderMapper.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/OrderMapper.java
@@ -112,7 +112,7 @@
      * @param orderQueryRequest 筛选参数
      * @return 统计数量
      */
-    List<Order> orderPageCount(@Param("data") OrderQueryRequest orderQueryRequest);
+    Order orderPageCount(@Param("data") OrderQueryRequest orderQueryRequest);
 
     /**
      * 根据所选id查询
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java
index 42de2ee..1f61d32 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java
@@ -1,4 +1,5 @@
 package com.ruoyi.order.service.impl;
+import java.util.Date;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -131,12 +132,12 @@
         Page<Order> page = Page.of(orderQueryRequest.getPageNum(), orderQueryRequest.getPageSize());
         // 基础查询
         Page<Order> pageList = baseMapper.queryPage(orderQueryRequest, page);
+        List<ChangeDispatch> list = changeDispatchService.lambdaQuery()
+                .eq(ChangeDispatch::getIsDelete, 0)
+                .orderByDesc(ChangeDispatch::getCreateTime).list();
         for (Order order : pageList.getRecords()) {
-            ChangeDispatch changeDispatch = changeDispatchService.lambdaQuery()
-                    .eq(ChangeDispatch::getOrderId, order.getId())
-                    .eq(ChangeDispatch::getIsDelete, 0)
-                    .orderByDesc(ChangeDispatch::getCreateTime)
-                    .last("limit 1").one();
+            ChangeDispatch changeDispatch = list.stream().filter(e -> e.getOrderId().equals(order.getId()))
+                    .findFirst().orElse(null);
             if (null != changeDispatch) {
                 order.setApplyReason(changeDispatch.getApplyReason());
             }
@@ -160,34 +161,18 @@
 
     @Override
     public OrderPageCountVO orderPageCount(OrderQueryRequest orderQueryRequest) {
-        List<Order> orderList = baseMapper.orderPageCount(orderQueryRequest);
-        int total = 0;
-        int toBeDispatched = 0;
-        int stayDoorstep = 0;
-        int toBeCompleted = 0;
-        int completed = 0;
-        int canceled = 0;
-        int reInvestment = 0;
-        for (Order order : orderList) {
-            total++;
-            Integer state = order.getState();
-            if (Constants.ZERO.equals(state)) {
-                toBeDispatched++;
-            } else if (Constants.ONE.equals(state)) {
-                stayDoorstep++;
-            } else if (Constants.TWO.equals(state)) {
-                toBeCompleted++;
-            } else if (Constants.THREE.equals(state)) {
-                completed++;
-            } else if (Constants.FOUR.equals(state)) {
-                canceled++;
-            }
-            if (order.getState().equals(Constants.SIX)) {
-                reInvestment++;
-            }
-        }
-        return new OrderPageCountVO(total, toBeDispatched, stayDoorstep,
-                toBeCompleted, completed, canceled, reInvestment);
+        Order order = baseMapper.orderPageCount(orderQueryRequest);
+
+            Integer toBeDispatched = order.getToBeDispatched();
+            Integer stayDoorstep = order.getStayDoorstep();
+            Integer toBeCompleted = order.getToBeCompleted();
+            Integer completed = order.getCompleted();
+            Integer canceled = order.getCanceled();
+            Integer reInvestment = order.getReInvestment();
+            int total = toBeDispatched + stayDoorstep + toBeCompleted + completed + canceled + reInvestment;
+            return new OrderPageCountVO(total, toBeDispatched, stayDoorstep,
+                    toBeCompleted, completed, canceled, reInvestment);
+
     }
 
     @Override
diff --git a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml
index 450257e..463026a 100644
--- a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml
+++ b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml
@@ -377,8 +377,14 @@
         order by o.createTime desc
     </select>
 
-    <select id="orderPageCount" resultMap="BaseResultMap">
-        select o.*
+    <select id="orderPageCount" resultType="com.ruoyi.order.entity.Order">
+        select
+        sum(case when o.state = 0 then 1 end) as toBeDispatched,
+        sum(case when o.state = 1 then 1 end) as stayDoorstep,
+        sum(case when o.state = 2 then 1 end) as toBeCompleted,
+        sum(case when o.state = 3 then 1 end) as completed,
+        sum(case when o.state = 4 then 1 end) as canceled,
+        sum(case when o.state = 6 then 1 end) as reInvestment
         from t_order o
         <where>
             o.is_delete = 0

--
Gitblit v1.7.1