From fec9f42e00f2df68a2a20cbf132b17bdeed8e63a Mon Sep 17 00:00:00 2001
From: 廖井涛 <2265517004@qq.com>
Date: 星期一, 25 八月 2025 09:19:52 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 north-glass-erp/src/main/resources/mapper/pp/GlassOptimize.xml |  154 ++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 146 insertions(+), 8 deletions(-)

diff --git a/north-glass-erp/src/main/resources/mapper/pp/GlassOptimize.xml b/north-glass-erp/src/main/resources/mapper/pp/GlassOptimize.xml
index 44f15fe..21931d2 100644
--- a/north-glass-erp/src/main/resources/mapper/pp/GlassOptimize.xml
+++ b/north-glass-erp/src/main/resources/mapper/pp/GlassOptimize.xml
@@ -196,13 +196,22 @@
              op.project_name,
              0 as patchState,
              c.rack AS rackNo,
-             0 as layoutId
+             0 as heatLayoutId,
+             d.process,
+             o.order_id AS orderNo,
+             o.customer_name AS customerName,
+             o.processing_note AS processingNote,
+             o.project AS projectName,
+             od.product_name AS productName,
+             od.building_number AS buildingNumber
          FROM
              pp.flow_card c
                  LEFT JOIN sd.order_glass_detail d ON c.order_id = d.order_id
                  AND c.order_number = d.order_number
                  AND c.technology_number = d.technology_number
                  INNER JOIN pp.optimize_project AS op ON op.project_no = c.project_no
+                 LEFT JOIN sd.ORDER o ON o.order_id = c.order_id
+                 LEFT JOIN order_detail od ON c.order_id = od.order_id
          WHERE
              c.project_no IS NOT NULL
            and c.project_no = #{projectNo}
@@ -226,7 +235,14 @@
                 op.project_name,
                 1 as patch_state,
                 a.id as rackNo,
-                0 as layoutId
+                0 as heatLayoutId,
+                d.process,
+                o.order_id AS orderNo,
+                o.customer_name AS customerName,
+                o.processing_note AS processingNote,
+                o.project AS projectName,
+                od.product_name AS productName,
+                od.building_number AS buildingNumber
             FROM
                 pp.patch_log c
                     LEFT JOIN sd.order_glass_detail d ON c.order_id = d.order_id
@@ -234,6 +250,8 @@
                     AND c.technology_number = d.technology_number
                     INNER JOIN pp.optimize_project AS op ON op.project_no = c.project_no
                     LEFT JOIN pp.flow_card fc ON c.process_id = fc.process_id and fc.technology_number=c.technology_number
+                    LEFT JOIN sd.ORDER o ON o.order_id = c.order_id
+                    LEFT JOIN order_detail od ON c.order_id = od.order_id
                     left join
                 (select (@row_number := @row_number + 1) as id,process_id as process_id,technology_number as technology_number from (select process_id,technology_number from pp.flow_card tt where project_no =#{projectNo} group by process_id,technology_number) tt,(select @row_number := 0) as t) a
                 on a.process_id=c.process_id and a.technology_number=c.technology_number
@@ -311,7 +329,7 @@
     <select id="computeAndOptimization">
         SELECT
             c.rack AS rackNo,
-            h.layout_id as layoutId,
+            h.layout_id as heatLayoutId,
             h.width AS width,
             h.height AS height,
             count( 1 ) AS quantity,
@@ -323,7 +341,14 @@
             c.order_number,
             h.order_sort AS orderSort,
             d.icon AS markIcon,
-            h.patch_state  AS patchState
+            h.patch_state  AS patchState,
+            d.process,
+            o.order_id AS orderNo,
+            o.customer_name AS customerName,
+            o.processing_note AS processingNote,
+            o.project AS projectName,
+            od.product_name AS productName,
+            od.building_number AS buildingNumber
         from
             pp.`optimize_heat_detail` h
                 LEFT JOIN pp.flow_card c ON h.process_id = c.process_id
@@ -332,6 +357,8 @@
                 LEFT JOIN sd.order_glass_detail d ON c.order_id = d.order_id
                 AND c.order_number = d.order_number
                 AND c.technology_number = d.technology_number
+                LEFT JOIN sd.order o on  o.order_id = c.order_id
+                LEFT JOIN order_detail od on  c.order_id = od.order_id
         WHERE
             h.project_no = #{projectNo}
         GROUP BY
@@ -1224,8 +1251,8 @@
             order_sort,
             stock_id,
             polys_id,
-            o_width,
-            o_height,
+            p_width,
+            p_height,
             width,
             height,
             x_axis,
@@ -1233,6 +1260,7 @@
             patch_state,
             mark_icon,
             isRotate,
+            glass_point,
             rack_no
             ) VALUES (
             #{projectId},
@@ -1251,6 +1279,7 @@
             #{glass.patchState},
             #{glass.markIcon},
             #{glass.isRotate},
+            #{glass.glassPoint},
             #{glass.rackNo}
             );
         </foreach>
@@ -1281,12 +1310,15 @@
             stock_id,
             width,
             height,
+            realwidth,
+            realheight,
             usage_rate,
             stock_code,
             up_trim,
             down_trim,
             left_trim,
             right_trim,
+            count,
             glass_count,
             glass_area,
             create_time
@@ -1295,13 +1327,16 @@
             #{glass.stockId},
             #{glass.width},
             #{glass.height},
+            #{glass.realWidth},
+            #{glass.realHeight},
             #{glass.usageRate},
             #{glass.stockCode},
             #{glass.upTrim},
             #{glass.downTrim},
             #{glass.leftTrim},
             #{glass.rightTrim},
-            #{glass.glassCount},
+            #{glass.count},
+            #{glass.glassQuantity},
             #{glass.glassArea},
             now()
             );
@@ -1365,6 +1400,26 @@
         #{glassThickness}
 
         )
+    </insert>
+    <insert id="addUpdateOffcut">
+        INSERT INTO pp.optimize_offcut (
+            project_no,
+            stock_id,
+            width,
+            height,
+            x_axis,
+            y_axis,
+            model,
+            thickness
+        ) VALUES (
+                     #{processId},
+                     1,
+                     #{detail.width},
+                     #{detail.height},
+                     #{detail.x},
+                     #{detail.y},
+                     #{glassType},
+                     #{glassThickness})
     </insert>
 
 
@@ -1464,6 +1519,14 @@
         UPDATE pp.flow_card
         SET rack = #{rackValue}
         WHERE process_id = #{processId} AND technology_number = #{technologyNumber}
+    </update>
+    <update id="updateNormalDetails">
+        UPDATE pp.optimize_detail
+        SET
+            x_axis = #{detail.x},
+            y_axis = #{detail.y}
+        WHERE
+            project_no = #{processId} AND polys_id = #{detail.polySort}
     </update>
 
     <select id="simulatedTypesettingUsingOpt">
@@ -1659,6 +1722,16 @@
         delete from pp.other_flow_card
         where project_no = #{projectNumber}
     </delete>
+    <delete id="deleteOptimizeOffcut">
+        DELETE
+        FROM
+            pp.optimize_offcut
+        WHERE
+            project_no = #{projectNumber}
+    </delete>
+    <delete id="deleteOffcutDetails">
+        delete from pp.optimize_offcut where project_no = #{processId}
+    </delete>
 
 
     <select id="selectOptimizeProject">
@@ -1703,7 +1776,9 @@
             opd.glass_id as glassId,
             opd.project_no as engineerId,
             opd.process_id as flowCardId,
-            opd.order_sort as orderNumber,
+            od.order_id as orderNumber,
+            opd.order_sort as productSortNumber,
+            IF(LOCATE('涓┖', ogd.process ) > 0, JSON_UNQUOTE(JSON_EXTRACT(pd.separation, "$.lowE")), 0) as hollowCombineDirection,
             opd.o_width as width,
             opd.o_height as height,
             op.glass_thickness as thickness,
@@ -1742,6 +1817,7 @@
                 and ogd.technology_number = fc.technology_number
                 left join pp.optimize_heat_detail ohd on ohd.layout_id = opd.heat_layout_id
                 and ohd.sort = opd.heat_layout_sort and ohd.project_no=opd.project_no
+                left join sd.product_detail pd on od.product_id=pd.prod_id and opd.layer=pd.glass_sort
         where
             opd.project_no = #{projectNo}
     </select>
@@ -1783,6 +1859,68 @@
         where
             project_no = #{projectId}
     </select>
+    <select id="getOptimizeLayoutsInfo" resultType="java.util.Map">
+        SELECT
+            width,
+            height,
+            realwidth,
+            realheight,
+            stock_id AS stockId,
+            stock_code AS stockCode,
+            usage_rate AS usageRate,
+            up_trim AS upTrim,
+            down_trim AS downTrim,
+            left_trim AS leftTrim,
+            right_trim AS rightTrim,
+            count AS quantity,
+            glass_count AS glassQuantity
+        FROM
+            pp.optimize_layout
+        where
+            project_no = #{projectId}
+    </select>
+    <select id="getOptimizeDetailsInfo" resultType="java.util.Map">
+        SELECT
+            0 As isRemain,
+            width AS realWidth,
+            height AS realHeight,
+            p_width AS width,
+            p_height AS height,
+            process_id AS processId,
+            layer,
+            total_layer AS totalLayer,
+            order_sort As orderSort,
+            stock_id AS layoutId,
+            stock_number AS glassSort,
+            x_axis AS x,
+            y_axis AS y,
+            mark_icon AS markIcon,
+            isRotate,
+            glass_point AS glassPoint,
+            rack_no As rackNo
+        FROM
+            pp.optimize_detail
+        WHERE
+            project_no = #{projectId}
+    </select>
+    <select id="getOptimizeOffsetsInfo" resultType="java.util.Map">
+        SELECT
+            1 AS isRemain,
+            0 AS isRotate,
+            width AS realWidth,
+            height AS realHeight,
+            width AS width,
+            height AS height,
+            stock_id AS stockSort,
+            x_axis AS x,
+            y_axis AS y,
+            model AS glassType,
+            thickness AS glassThickness
+        FROM
+            pp.optimize_offcut
+        WHERE
+            project_no = #{projectId}
+    </select>
 
 
 </mapper>
\ No newline at end of file

--
Gitblit v1.8.0