From d6c51743b0796ec783ad7f998c1d7a2101857502 Mon Sep 17 00:00:00 2001
From: zhaoqiaobo <583671871@qq.com>
Date: Tue, 18 Mar 2025 16:55:28 +0800
Subject: [PATCH] =?UTF-8?q?feat(all):=20=E9=85=8D=E9=80=81=E7=AD=BE?=
 =?UTF-8?q?=E6=94=B6=E7=8E=87=E7=BB=9F=E8=AE=A1?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

1 修改配送签收率分组条件
---
 .../mapper/QualityDispatchNumberMapper.xml    | 77 ++++++++++++++++---
 .../query/QualityDispatchNumberQuery.java     |  2 +
 .../QualityDispatchNumberServiceImpl.java     |  8 +-
 3 files changed, 72 insertions(+), 15 deletions(-)

diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/QualityDispatchNumberMapper.xml b/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/QualityDispatchNumberMapper.xml
index be02e5fea..a1db885e3 100644
--- a/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/QualityDispatchNumberMapper.xml
+++ b/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/QualityDispatchNumberMapper.xml
@@ -4,10 +4,15 @@
 
     <select id="number" resultType="com.logpm.report.vo.qulity.dispatch.QualityDispatchNumberVO">
         select
-        t.warehouse_name,
-        <if test="query.deliveryType != null and query.deliveryType != ''">
-               t.delivery_type,
-        </if>
+            <if test="query.warehouseName != null and query.warehouseName != ''">
+                t.warehouse_name,
+            </if>
+            <if test="query.warehouseName == null or query.warehouseName == ''">
+                '全部' warehouse_name,
+            </if>
+            <if test="query.deliveryType != null and query.deliveryType != ''">
+                   t.delivery_type,
+            </if>
                sum(ifnull(t.plan_num, 0))                                                             plan_num,
                sum(ifnull(t.stock_num, 0))                                                            stock_num,
                sum(ifnull(t.load_num, 0))                                                             load_num,
@@ -84,6 +89,12 @@
                       #{item}
                   </foreach>
               </if>
+              <if test="query.authWarehouseName != null and query.authWarehouseName != ''">
+                  and t.warehouse_name in
+                  <foreach collection="query.authWarehouseName.split(',')" item="item" separator="," open="(" close=")">
+                      #{item}
+                  </foreach>
+              </if>
               <if test="query.deliveryType != null and query.deliveryType != ''">
                   and t.delivery_type in
                   <foreach collection="query.deliveryType.split(',')" item="item" separator="," open="(" close=")">
@@ -226,7 +237,13 @@
     </select>
 
     <select id="exceptionNumber" resultType="com.logpm.report.vo.qulity.dispatch.QualityDispatchNumberVO">
-        select t.warehouse_name
+        select
+        <if test="query.warehouseName == null or query.warehouseName == ''">
+            '全部' warehouse_name
+        </if>
+        <if test="query.warehouseName != null and query.warehouseName != ''">
+            t.warehouse_name
+        </if>
         <if test="query.deliveryType != null and query.deliveryType != ''">
         ,t.type deliveryType
         </if>
@@ -252,6 +269,12 @@
                 #{item}
             </foreach>
         </if>
+        <if test="query.authWarehouseName != null and query.authWarehouseName != ''">
+            and t.warehouse_name in
+            <foreach collection="query.authWarehouseName.split(',')" item="item" separator="," open="(" close=")">
+                #{item}
+            </foreach>
+        </if>
         <if test="query.deliveryType != null and query.deliveryType != ''">
             and t.delivery_type in
             <foreach collection="query.deliveryType.split(',')" item="item" separator="," open="(" close=")">
@@ -266,14 +289,46 @@
                 </if>
             </foreach>
         </if>
-        group by dl.warehouse_name
-        <if test="query.deliveryType != null and query.deliveryType != ''">
-        , dl.type
+        <if test="(query.warehouseName != null and query.warehouseName != '') or (query.deliveryType != null and query.deliveryType != '')">
+            GROUP BY
+            <trim suffixOverrides=",">
+                <if test="query.warehouseName != null and query.warehouseName != ''">
+                    dl.warehouse_name,
+                </if>
+                <if test="query.deliveryType != null and query.deliveryType != ''">
+                    dl.type,
+                </if>
+            </trim>
+            order by
+            <trim suffixOverrides=",">
+                <if test="query.warehouseName != null and query.warehouseName != ''">
+                    dl.warehouse_name,
+                </if>
+                <if test="query.deliveryType != null and query.deliveryType != ''">
+                    dl.type,
+                </if>
+            </trim>
         </if>
         ) t
-        group by t.warehouse_name
-        <if test="query.deliveryType != null and query.deliveryType != ''">
-        , t.type
+        <if test="(query.warehouseName != null and query.warehouseName != '') or (query.deliveryType != null and query.deliveryType != '')">
+            GROUP BY
+            <trim suffixOverrides=",">
+                <if test="query.warehouseName != null and query.warehouseName != ''">
+                    t.warehouse_name,
+                </if>
+                <if test="query.deliveryType != null and query.deliveryType != ''">
+                    t.type,
+                </if>
+            </trim>
+            order by
+            <trim suffixOverrides=",">
+                <if test="query.warehouseName != null and query.warehouseName != ''">
+                    t.warehouse_name,
+                </if>
+                <if test="query.deliveryType != null and query.deliveryType != ''">
+                    t.type,
+                </if>
+            </trim>
         </if>
     </select>
 
diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/query/QualityDispatchNumberQuery.java b/blade-service/logpm-report/src/main/java/com/logpm/report/query/QualityDispatchNumberQuery.java
index 6192a8d56..a8f9d8c52 100644
--- a/blade-service/logpm-report/src/main/java/com/logpm/report/query/QualityDispatchNumberQuery.java
+++ b/blade-service/logpm-report/src/main/java/com/logpm/report/query/QualityDispatchNumberQuery.java
@@ -24,6 +24,8 @@ public class QualityDispatchNumberQuery extends Query {
 	@ApiModelProperty(value = "仓库", position = 3)
 	private String warehouseName;
 
+	private String authWarehouseName;
+
 	@ApiModelProperty(value = "配送类型", position = 4)
 	private String deliveryType;
 
diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/QualityDispatchNumberServiceImpl.java b/blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/QualityDispatchNumberServiceImpl.java
index 488909f6a..6d98df6c3 100644
--- a/blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/QualityDispatchNumberServiceImpl.java
+++ b/blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/QualityDispatchNumberServiceImpl.java
@@ -61,10 +61,10 @@ public class QualityDispatchNumberServiceImpl implements QualityDispatchNumberSe
 		if (StrUtil.isEmpty(query.getWarehouseName())) {
 			BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse();
 			if (ObjectUtil.isNotEmpty(myCurrentWarehouse)) {
-				query.setWarehouseName(myCurrentWarehouse.getName());
+				query.setAuthWarehouseName(myCurrentWarehouse.getName());
 			} else {
 				List<BasicdataWarehouseEntity> warehouseEntities = warehouseClient.getMyWarehouseList();
-				query.setWarehouseName(warehouseEntities.stream().map(BasicdataWarehouseEntity::getName).collect(Collectors.joining(",")));
+				query.setAuthWarehouseName(warehouseEntities.stream().map(BasicdataWarehouseEntity::getName).collect(Collectors.joining(",")));
 			}
 		}
 		List<QualityDispatchNumberVO> list = numberMapper.number(page, query);
@@ -132,10 +132,10 @@ public class QualityDispatchNumberServiceImpl implements QualityDispatchNumberSe
 		if (StrUtil.isEmpty(query.getWarehouseName())) {
 			BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse();
 			if (ObjectUtil.isNotEmpty(myCurrentWarehouse)) {
-				query.setWarehouseName(myCurrentWarehouse.getName());
+				query.setAuthWarehouseName(myCurrentWarehouse.getName());
 			} else {
 				List<BasicdataWarehouseEntity> warehouseEntities = warehouseClient.getMyWarehouseList();
-				query.setWarehouseName(warehouseEntities.stream().map(BasicdataWarehouseEntity::getName).collect(Collectors.joining(",")));
+				query.setAuthWarehouseName(warehouseEntities.stream().map(BasicdataWarehouseEntity::getName).collect(Collectors.joining(",")));
 			}
 		}
 		List<QualityDispatchNumberVO> list = numberMapper.number(page, query);