From 6bbcdd0d1beeca74251f63ea42b9ee8349e97902 Mon Sep 17 00:00:00 2001
From: chenlu <1320612696@qq.com>
Date: 星期二, 15 七月 2025 10:19:54 +0800
Subject: [PATCH] 优化在制品查询速度

---
 north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml |   63 ++++++++++++++++++++++++++++---
 1 files changed, 56 insertions(+), 7 deletions(-)

diff --git a/north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml b/north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
index 8c32341..47ba248 100644
--- a/north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
+++ b/north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
@@ -784,6 +784,14 @@
           and position(fc.technology_number in #{technologyNumber})
         group by fc.process_id, fc.order_number
         <choose>
+            <!-- 褰� landingSequence != 1 涓� flashback != 1 鏃讹紝鎸� landing_sequence 鍊掑簭 -->
+            <when test="landingSequence != 1 and flashback != 1">
+                ORDER BY landing_sequence,fc.id desc
+            </when>
+            <!-- landingSequence != 1 鏃讹紝浼樺厛鎸� landing_sequence 鍊掑簭 -->
+            <when test="landingSequence != 1">
+                ORDER BY landing_sequence DESC
+            </when>
             <!-- flashback = 1 鏃舵搴� -->
             <when test="flashback == 1">
                 ORDER BY
@@ -1013,7 +1021,7 @@
                ogd.glass_address,
                ogd.child_width,
                ogd.child_height,
-               fc.quantity,
+               sum(fc.quantity) as quantity,
                ROUND(ogd.child_width * ogd.child_height * fc.quantity / 1000000, 2) as area,
                ifnull(fcs.sort, '')                                                 as sort,
                ogd.glass_child,
@@ -1473,6 +1481,13 @@
           and position(fc.technology_number in #{technologyNumber})
         group by fc.process_id, fc.order_number, fc.technology_number
         <choose>
+            <when test="landingSequence != 1 and flashback != 1">
+                ORDER BY landing_sequence,fc.id desc
+            </when>
+            <!-- landingSequence != 1 鏃讹紝浼樺厛鎸� landing_sequence 鍊掑簭 -->
+            <when test="landingSequence != 1">
+                ORDER BY landing_sequence DESC
+            </when>
             <!-- flashback = 1 鏃舵搴� -->
             <when test="flashback == 1">
                 ORDER BY
@@ -1522,6 +1537,13 @@
         where fc.process_id = #{processId} and fc.`merge`=1
         group by fc.process_id, fc.order_number
         <choose>
+            <when test="landingSequence != 1 and flashback != 1">
+                ORDER BY landing_sequence,fc.id desc
+            </when>
+            <!-- landingSequence != 1 鏃讹紝浼樺厛鎸� landing_sequence 鍊掑簭 -->
+            <when test="landingSequence != 1">
+                ORDER BY landing_sequence DESC
+            </when>
             <!-- flashback = 1 鏃舵搴� -->
             <when test="flashback == 1">
                 ORDER BY
@@ -1916,10 +1938,10 @@
                contacts,
                delivery_address                                      as deliveryAddress,
                od.processing_note                                    as processingNote,
-               round(ogd.child_width)                                as width,
-               round(ogd.child_height)                               as height,
+              ogd.child_width                                as width,
+               ogd.child_height                              as height,
                fc.quantity,
-               CONCAT(round(ogd.child_width)  , ' X ', round(ogd.child_height)   ,' = ',fc.quantity )           as size,
+               CONCAT(ogd.child_width  , ' X ', ogd.child_height   ,' = ',fc.quantity )           as size,
                od.order_number                                       as orderNumber,
                fc.technology_number                                  as technologyNumber,
                od.building_number                                    as buildingNumber,
@@ -1929,6 +1951,7 @@
                c.customer_abbreviation                               as customerAbbreviation,
                p.product_abbreviation                                as productAbbreviation,
                CONCAT(fc.process_id, '/', fc.technology_number)      as processId,
+               SUBSTRING(fc.process_id,12  )                                        as processIdAD ,/*-娴佺▼鍗$畝鍐�-*/
                o.create_time                                         as createTime,
                JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')) AS glassNumber,
                JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S02')) AS figureNumber,
@@ -1942,7 +1965,18 @@
                od.bend_radius                                        as bendRadius,
                ogd.glass_child                                       as glassChild,
                ogd.glass_address                                     as glassAddress,
-               JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.color'))  AS color
+               JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.color'))  AS color,
+               CONCAT(
+                       od.order_number,')      ',
+                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(ogd.child_width   AS CHAR))),
+                       ' X ',
+                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(ogd.child_height    AS CHAR))),
+                       ' = ',fc.quantity )      as numberSize,
+               CONCAT(
+                       od.order_number,')','   ',
+                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(ogd.child_width   AS CHAR))),
+                       ' X ',
+                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(ogd.child_height    AS CHAR))))      as numberSizeQuantity
         from sd.order as o
                  left join sd.order_detail as od on o.order_id = od.order_id
                  left join flow_card as fc on o.order_id = fc.order_id and
@@ -1958,6 +1992,7 @@
                               fcs.technology_number = fc.technology_number
                                and fcs.process = #{process}
         where fc.process_id = #{processId}
+          and fc.order_number = #{orderNumber}
           and position(fc.technology_number in #{technologyNumber})
         group by fc.process_id,od.order_number, ogd.technology_number, ogd.child_width, ogd.child_height
         order by IF(fcs.sort != NULL or fcs.sort != '', fcs.sort, fc.order_number)
@@ -2127,8 +2162,8 @@
                contacts,
                o.delivery_address                                    as deliveryAddress,
                od.processing_note                                    as processingNote,
-               round(ogd.child_width)                                as width,
-               round(ogd.child_height)                               as height,
+               ogd.child_width                                as width,
+               ogd.child_height                              as height,
                pl.patch_num                                          as quantity,
                pl.order_sort                                         as orderNumber,
                pl.technology_number                                  as technologyNumber,
@@ -3209,6 +3244,13 @@
         and position(fc.technology_number in #{compound})
         group by fc.process_id, fc.order_number
         <choose>
+            <when test="landingSequence != 1 and flashback != 1">
+                ORDER BY landing_sequence,fc.id desc
+            </when>
+            <!-- landingSequence != 1 鏃讹紝浼樺厛鎸� landing_sequence 鍊掑簭 -->
+            <when test="landingSequence != 1">
+                ORDER BY landing_sequence DESC
+            </when>
             <!-- flashback = 1 鏃舵搴� -->
             <when test="flashback == 1">
                 ORDER BY
@@ -3258,6 +3300,13 @@
         and position(fc.technology_number in #{compound})
         group by fc.process_id, fc.order_number
         <choose>
+            <when test="landingSequence != 1 and flashback != 1">
+                ORDER BY landing_sequence,fc.id desc
+            </when>
+            <!-- landingSequence != 1 鏃讹紝浼樺厛鎸� landing_sequence 鍊掑簭 -->
+            <when test="landingSequence != 1">
+                ORDER BY landing_sequence DESC
+            </when>
             <!-- flashback = 1 鏃舵搴� -->
             <when test="flashback == 1">
                 ORDER BY

--
Gitblit v1.8.0