From 774eae4b6ec65670a36ad74e561b09aca59a45c7 Mon Sep 17 00:00:00 2001
From: 廖井涛 <2265517004@qq.com>
Date: 星期三, 17 九月 2025 09:18:45 +0800
Subject: [PATCH] 修改物料修改问题

---
 north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml |  292 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 285 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 8606fb4..1b27a76 100644
--- a/north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
+++ b/north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
@@ -1255,6 +1255,8 @@
                fc.order_number,
                ogd.technology_number,
                ogd.glass_address,
+               ogd.child_width,
+               ogd.child_height,
                pl.patch_num,
                pl.patch_area,
                pl.responsible_team,
@@ -1268,7 +1270,8 @@
                fc.print_status,
                pl.reporting_work_id,
                JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01'))                AS glassNumber,
-               pl.patch_id
+               pl.patch_id,
+               date(pl.create_time) as create_time
 
         from flow_card as fc
                  left join sd.order_glass_detail as ogd
@@ -1359,6 +1362,87 @@
                  left join sd.product_detail as pd on pd.prod_id = p.id and pd.sort_num = od.order_number
         where pl.process_id = #{processId}
             and pl.order_sort=#{orderNumber}
+          and pl.technology_number = #{technologyNumber}
+          and pl.reporting_work_id = #{reportingWorkId}
+        group by od.order_number, width, height
+        order by IF(fc.sort != NULL or fc.sort != '', fc.sort, pl.order_sort)
+    </select>
+
+
+    <select id="getReworkPrintCustomData">
+        select o.order_id                                            as orderId,
+               o.project,
+               o.customer_id                                         as customerId,
+               o.customer_name                                       as customerName,
+               o.order_type                                          as orderType,
+               o.order_classify                                      as orderClassify,
+               o.batch,
+               o.icon,
+               o.pack_type                                           as packType,
+               o.delivery_date                                       as deliveryDate,
+               o.al_type                                             as alType,
+               o.money,
+               contract_id                                           as contractId,
+               customer_batch                                           customerBatch,
+               contacts,
+               o.delivery_address                                    as deliveryAddress,
+               od.processing_note                                    as processingNote,
+               od.width,
+               od.height,
+               pl.rework_num                                          as quantity,
+               pl.order_sort                                         as orderNumber,
+               pl.technology_number                                  as technologyNumber,
+               od.building_number                                    as buildingNumber,
+               od.product_name                                       as productName,
+               od.edging_type                                        as edgingType,
+               p.remarks,
+               c.customer_abbreviation                               as customerAbbreviation,
+               p.product_abbreviation                                as productAbbreviation,
+               fc.process_id                                         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,
+               JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S03')) AS colourCeramicGlaze,
+               JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')) AS remarks1,
+               JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S05')) AS remarks2,
+               JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S06')) AS remarks3,
+               JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S07')) AS remarks4,
+               JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S08')) AS remarks5,
+               p.remarks                                             as filmNumber,
+               od.bend_radius                                        as bendRadius,
+               CONCAT(
+                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(width AS CHAR))),
+                       ' X ',
+                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(height AS CHAR))),
+                       ' = ',pl.rework_num )      as size,
+               CONCAT(
+                       od.order_number,')      ',
+                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(width   AS CHAR))),
+                       ' X ',
+                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(height    AS CHAR))),
+                       ' = ',pl.rework_num )      as numberSize,
+               CONCAT(
+                       od.order_number,')','   ',
+                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(width   AS CHAR))),
+                       ' X ',
+                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(height    AS CHAR))))      as numberSizeQuantity,
+               '鏂囨湰' as custom1,
+               '鏂囨湰' as custom2,
+               '鏂囨湰' as custom3,
+               '鏂囨湰' as custom4,
+               '鏂囨湰' as custom5
+        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
+            od.order_number = fc.order_number
+            left join rework as pl on pl.process_id = fc.process_id and pl.order_sort = fc.order_number and
+            pl.technology_number = fc.technology_number
+            left join sd.product as p on p.id = od.product_id
+            left join sd.customer as c on c.id = o.customer_id
+            left join sd.product_detail as pd on pd.prod_id = p.id and pd.sort_num = od.order_number
+        where pl.process_id = #{processId}
+          and pl.order_sort=#{orderNumber}
           and pl.technology_number = #{technologyNumber}
           and pl.reporting_work_id = #{reportingWorkId}
         group by od.order_number, width, height
@@ -2284,6 +2368,92 @@
         order by IF(fc.sort != NULL or fc.sort != '', fc.sort, pl.order_sort)
     </select>
 
+    <select id="getReworkPrintCustomDataSemi">
+        select o.order_id                                            as orderId,
+               o.project,
+               o.customer_id                                         as customerId,
+               o.customer_name                                       as customerName,
+               o.order_type                                          as orderType,
+               o.order_classify                                      as orderClassify,
+               o.batch,
+               o.icon,
+               o.pack_type                                           as packType,
+               o.delivery_date                                       as deliveryDate,
+               o.al_type                                             as alType,
+               o.money,
+               contract_id                                           as contractId,
+               customer_batch                                           customerBatch,
+               contacts,
+               o.delivery_address                                    as deliveryAddress,
+               od.processing_note                                    as processingNote,
+               ogd.child_width                                as width,
+               ogd.child_height                              as height,
+               pl.rework_num                                          as quantity,
+               pl.order_sort                                         as orderNumber,
+               pl.technology_number                                  as technologyNumber,
+               od.building_number                                    as buildingNumber,
+               od.product_name                                       as productName,
+               od.edging_type                                        as edgingType,
+               p.remarks,
+               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,
+               JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S03')) AS colourCeramicGlaze,
+               JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')) AS remarks1,
+               JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S05')) AS remarks2,
+               JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S06')) AS remarks3,
+               JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S07')) AS remarks4,
+               JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S08')) AS remarks5,
+               p.remarks                                             as filmNumber,
+               od.bend_radius                                        as bendRadius,
+               ogd.glass_child                                       as glassChild,
+               ogd.glass_address                                     as glassAddress,
+               JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.color'))  AS color,
+               CONCAT(
+                       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))),
+                       ' = ',pl.rework_num )      as size,
+               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))),
+                       ' = ',pl.rework_num )      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,
+               '鏂囨湰' as custom1,
+               '鏂囨湰' as custom2,
+               '鏂囨湰' as custom3,
+               '鏂囨湰' as custom4,
+               '鏂囨湰' as custom5
+        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
+            od.order_number = fc.order_number
+            left join rework as pl on pl.process_id = fc.process_id and pl.order_sort = fc.order_number and
+            pl.technology_number = fc.technology_number
+            left join sd.product as p on p.id = od.product_id
+            left join sd.customer as c on c.id = o.customer_id
+            left join sd.product_detail as pd on pd.prod_id = p.id and pd.sort_num = od.order_number
+            left join sd.order_glass_detail ogd
+            on ogd.order_id = o.order_id and ogd.order_number = od.order_number and
+            ogd.technology_number = fc.technology_number
+        where pl.process_id = #{processId}
+          and pl.order_sort=#{orderNumber}
+          and pl.technology_number = #{technologyNumber}
+          and pl.reporting_work_id = #{reportingWorkId}
+        group by od.order_number, width, height
+        order by IF(fc.sort != NULL or fc.sort != '', fc.sort, pl.order_sort)
+    </select>
+
     <select id="selectPrintAllMp">
         select *
         from ((select fc.id,
@@ -2443,7 +2613,8 @@
                #{technologyNumber}                             as technologyNumber,
                concat(fc.process_id, '/', #{technologyNumber}) as processIdNumber,
                concat('瀵瑰簲鎴戝徃鍗曞彿', o.batch)                 AS otherRemarks,
-               fc.technology_number                            as qrcode
+               fc.technology_number                            as qrcode,
+               o.other_remarks
         from flow_card as fc
                  left join sd.order_glass_detail as ogd
                            on fc.order_id = ogd.order_id and fc.order_number = ogd.order_number and
@@ -2489,7 +2660,8 @@
                JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01'))                  AS glassNumber,
                od.order_number,
                od.width,
-               od.height
+               od.height,
+               od.building_number
         from flow_card as fc
                  left join sd.order_glass_detail as ogd
                            on ogd.order_id = fc.order_id and ogd.order_number = fc.order_number and
@@ -2528,7 +2700,8 @@
                 JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S02')) AS S02,
                 JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S03')) AS S03,
                 JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')) AS S04,
-                JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S05')) AS S05
+                JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S05')) AS S05,
+                od.building_number
         from flow_card as fc
                  left join sd.order_glass_detail as ogd
                            on ogd.order_id = fc.order_id and ogd.order_number = fc.order_number and
@@ -2789,6 +2962,7 @@
 
     <select id="getPrintCustomDataProjectDetail">
         select
+            opt.glass_id                                          as heat_layout_sort ,
             o.order_id                                            as orderId,
             project,
             customer_id                                           as customerId,
@@ -2808,7 +2982,23 @@
             od.processing_note                                    as processingNote,
             od.width,
             od.height,
-            fc.quantity as flowQuantity,
+            opl.glass_count as flowQuantity,
+            CONCAT(
+                    TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(od.width AS CHAR))),
+                    ' X ',
+                    TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(od.height AS CHAR))),
+                    ' = ',opl.glass_count )      as size,
+               CONCAT(
+                       od.order_number,')      ',
+                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(od.width   AS CHAR))),
+                       ' X ',
+                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(od.height    AS CHAR))),
+                       ' = ',opl.glass_count )      as numberSize,
+               CONCAT(
+                       od.order_number,')','   ',
+                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(od.width   AS CHAR))),
+                       ' X ',
+                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(od.height    AS CHAR))))      as numberSizeQuantity,
             od.order_number                                       as orderNumber,
             fc.technology_number                                  as technologyNumber,
             od.building_number                                    as buildingNumber,
@@ -2839,6 +3029,7 @@
             '鏂囨湰' as custom5,
             od.quantity
         from optimize_detail as opt
+            left join optimize_layout as opl on opl.project_no=opt.project_no and opl.stock_id=opt.stock_id
                  left join flow_card as fc on opt.project_no=fc.project_no and opt.process_id=fc.process_id and opt.layer=fc.technology_number and opt.order_sort=fc.order_number
                  left join sd.order as o on o.order_id=fc.order_id
                  left join sd.order_detail as od on fc.order_id = od.order_id and od.order_number = fc.order_number
@@ -3085,7 +3276,9 @@
                               a.quantity as 'baiscQuantity',
                               #{glassThickness} as 'thickness',
         IF(a.height >= a.width, a.height, a.width) as 'long',
-        IF(a.height &lt; a.width, a.height, a.width) as 'short'
+        IF(a.height &lt; a.width, a.height, a.width) as 'short',
+        IF(a.height >= a.width, a.height, a.width) as 'longSide',
+        IF(a.height &lt; a.width, a.height, a.width) as 'shortSide'
         from sd.order_detail as a
         left join sd.order_glass_detail as b
         on a.order_id = b.order_id and a.order_number = b.order_number
@@ -3420,7 +3613,7 @@
                od.processing_note                                    as processingNote,
                ogd.child_width                                as width,
                ogd.child_height                              as height,
-               #{printQuantity} as quantity,
+               fc.quantity,
                CONCAT(ogd.child_width  , ' X ', ogd.child_height   ,' = ',fc.quantity )           as size,
                od.order_number                                       as orderNumber,
                fc.technology_number                                  as technologyNumber,
@@ -3557,4 +3750,89 @@
         SELECT max(reporting_work_num) FROM  sd.`order_process_detail`
         where process_id=#{processId} and order_number=#{orderNumber} and process=#{interceptProcess}
     </select>
+
+    <select id="getProcessOk">
+        SELECT
+            GROUP_CONCAT(process ORDER BY id SEPARATOR '->') AS processes
+        FROM sd.order_process_detail
+        WHERE process_id = #{processId}
+          AND order_number = #{orderNumber}
+          AND technology_number = #{technologyNumber}
+          AND reporting_work_num_count > 0;
+    </select>
+
+    <select id="getProcessDetail">
+        SELECT *
+        FROM sd.order_process_detail
+        WHERE process_id = #{processId}
+          AND order_number = #{orderNumber}
+          AND technology_number = #{technologyNumber}
+          AND reporting_work_num_count > 0
+          AND process = #{process}
+    </select>
+
+    <update id="updateOrderProcessDetail">
+        UPDATE sd.order_process_detail
+        set reporting_work_num_count = #{reportingWorkNumCount},
+            reporting_work_num = #{reportingWorkNum},
+            broken_num = #{brokenNum}
+        where process_id = #{processId} and order_number = #{orderNumber} and
+              technology_number = #{technologyNumber} and process = #{process}
+    </update>
+
+    <select id="getPrimaryListRefundHB">
+        select o.customer_name,
+               o.project,
+               if(o.batch!="",CONCAT(o.project,'(',o.batch,')'),o.project) as projectBatch,
+               ogd.process,
+               od.edging_type,
+               ogd.glass_child,
+               od.product_name,
+               o.processing_note,
+               fc.process_id,
+               pl.patch_num                                    as quantity,
+               round(SUM(ogd.total_area), 2)                   as gross_area,
+               sum(od.weight)                                  as weight,
+               #{technologyNumber}                             as technologyNumber,
+               concat(fc.process_id, '/', #{technologyNumber}) as processIdNumber,
+               dd.breakage_type,
+               dd.breakage_reason,
+               dd.responsible_process,
+               dd.responsible_team,
+               concat('瀵瑰簲鎴戝徃鍗曞彿', o.batch)                 AS otherRemarks,
+               dd.responsible_personnel,
+               #{mergeTechnologyNumber} as  mergeTechnologyNumber,
+               pl.patch_id
+        from flow_card as fc
+                 left join sd.order_glass_detail as ogd
+                           on fc.order_id = ogd.order_id and fc.order_number = ogd.order_number and
+                              fc.technology_number = ogd.technology_number
+                 left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
+                 left join sd.`order` as o on o.order_id = fc.order_id
+                 left join sd.product as p on p.id = od.product_id
+                 left join (select ogd.order_id,
+                                   ogd.order_number,
+                                   ogd.technology_number,
+                                   ogd.glass_child,
+                                   GROUP_CONCAT(glass_child SEPARATOR ' ') AS concatenated_glass_child
+                            from sd.order_glass_detail as ogd
+                            where ogd.order_id = #{orderId}
+                              and ogd.order_number = #{orderNumber}
+                              and position(ogd.technology_number in #{technologyNumber})
+                            GROUP BY order_id, order_number) as ogdc
+                           on ogdc.order_id = ogd.order_id and ogdc.order_number = ogd.order_number and
+                              ogdc.technology_number = ogd.technology_number
+                 left join patch_log as pl on pl.process_id = fc.process_id and pl.order_sort = fc.order_number and
+                                              pl.technology_number = fc.technology_number
+                 left join pp.reporting_work as rw on rw.order_id = fc.order_id and rw.process_id = fc.process_id
+                 left join pp.damage_details as dd
+                           on rw.reporting_work_id = dd.reporting_work_id and dd.order_number = fc.order_number and
+                              dd.technology_number = fc.technology_number
+        where fc.process_id = #{processId}
+          and fc.order_number = #{orderNumber}
+          and fc.technology_number = #{technologyNumber}
+          and pl.reporting_work_id = #{reportingWorkId}
+          and dd.breakage_reason = #{patchReason}
+        group by fc.process_id
+    </select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.8.0