Quellcode durchsuchen

fix(statistics): 调整分账状态查询逻辑以包含状态2

- 修改了 profit_sharing_status 的查询条件,从 (0,1) 扩展为 (0, 1, 2)- 更新了已结算金额的计算逻辑,将状态2纳入统计
-优化了SQL语句格式,提升可读性
SheepHy vor 2 Tagen
Ursprung
Commit
6127b6a3ac

+ 39 - 30
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/mapper/xml/StatisticsMapper.xml

@@ -256,25 +256,30 @@
 
     <select id="findShopAccountOverview" resultType="map">
         SELECT
-            a.id,
-            a.name,
-            a.cover,
-            COALESCE(settled.toBeSettled, 0) AS to_be_settled,
-            COALESCE(settled.received, 0) AS received,
-            settled.update_time AS updateTime
-        FROM nm_site a
-                 LEFT JOIN (
-            SELECT
-                o.org_code,
-                SUM(CASE WHEN o.profit_sharing_status = 0 THEN b.pre_amount ELSE 0 END) / 100 AS toBeSettled,
-                SUM(CASE WHEN o.profit_sharing_status = 1 THEN b.pre_amount ELSE 0 END) / 100 AS received,
-                MAX(b.create_time) AS update_time
-            FROM nm_order o
-                     LEFT JOIN nm_profit_sharing_info b ON o.org_code = b.org_code
-            WHERE o.profit_sharing_status IN (0, 1)
-            GROUP BY o.org_code
+        a.id,
+        a.NAME,
+        a.cover,
+        COALESCE(settled.toBeSettled, 0) AS to_be_settled,
+        COALESCE(settled.received, 0) AS received,
+        settled.update_time AS updateTime
+        FROM
+        nm_site a
+        LEFT JOIN (
+        SELECT
+        o.org_code,
+        SUM(CASE WHEN o.profit_sharing_status = 0 THEN b.pre_amount ELSE 0 END) / 100 AS toBeSettled,
+        SUM(CASE WHEN o.profit_sharing_status = 2 THEN b.pre_amount ELSE 0 END) / 100 AS received,
+        MAX(b.create_time) AS update_time
+        FROM
+        nm_order o
+        LEFT JOIN nm_profit_sharing_info b ON o.org_code = b.org_code
+        WHERE
+        o.profit_sharing_status IN (0, 1, 2)
+        GROUP BY
+        o.org_code
         ) settled ON a.org_code = settled.org_code
-        WHERE 1=1
+        WHERE
+        1 = 1
         <if test="name != null and name != ''">
             AND a.name LIKE CONCAT('%',#{name}, '%')
         </if>
@@ -285,18 +290,22 @@
             COALESCE(settled.to_be_settled, 0) AS toBeSettled,
             COALESCE(settled.to_be_settled, 0) AS available,
             COALESCE(settled.received, 0) AS received
-        FROM nm_site a
-                 LEFT JOIN (
-            SELECT
-                o.org_code,
-                SUM(CASE WHEN o.profit_sharing_status = 0 THEN b.pre_amount ELSE 0 END) / 100 AS to_be_settled,
-                SUM(CASE WHEN o.profit_sharing_status = 1 THEN b.pre_amount ELSE 0 END) / 100 AS received,
-                MAX(b.create_time) AS update_time
-            FROM nm_order o
-                     LEFT JOIN nm_profit_sharing_info b ON o.org_code = b.org_code
-            WHERE o.profit_sharing_status IN (0, 1)
-            GROUP BY o.org_code
-        ) settled ON a.org_code = settled.org_code
+        FROM
+            nm_site a
+                LEFT JOIN (
+                SELECT
+                    o.org_code,
+                    SUM(CASE WHEN o.profit_sharing_status = 0 THEN b.pre_amount ELSE 0 END) / 100 AS to_be_settled,
+                    SUM(CASE WHEN o.profit_sharing_status = 2 THEN b.pre_amount ELSE 0 END) / 100 AS received,
+                    MAX(b.create_time) AS update_time
+                FROM
+                    nm_order o
+                        LEFT JOIN nm_profit_sharing_info b ON o.org_code = b.org_code
+                WHERE
+                    o.profit_sharing_status IN (0, 1, 2)
+                GROUP BY
+                    o.org_code
+            ) settled ON a.org_code = settled.org_code
         WHERE a.org_code = #{orgCode}
     </select>