From 83f738105416c9b11e3b7c5246a0980e41b6650e Mon Sep 17 00:00:00 2001
From: zhoushihao <zsh19950802@163.com>
Date: 星期一, 13 十月 2025 16:59:48 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/resources/mapper/HollowGlassRelationInfoMapper.xml |  209 ++++++++++++++++------------------------------------
 1 files changed, 64 insertions(+), 145 deletions(-)

diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/resources/mapper/HollowGlassRelationInfoMapper.xml b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/resources/mapper/HollowGlassRelationInfoMapper.xml
index f63ee25..bdb9005 100644
--- a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/resources/mapper/HollowGlassRelationInfoMapper.xml
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/resources/mapper/HollowGlassRelationInfoMapper.xml
@@ -2,14 +2,6 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
 <mapper namespace="com.mes.hollow.mapper.HollowGlassRelationInfoMapper">
 
-    <resultMap id="baseMap" type="com.mes.hollow.entity.dto.HollowGlassDetailsDTO">
-        <result column="process_id" property="flowCardId"/>
-        <result column="child_width" property="width"/>
-        <result column="child_height" property="height"/>
-        <result column="order_number" property="orderSort"/>
-        <result column="technology_number" property="layer"/>
-        <result column="quantity" property="quantity"/>
-    </resultMap>
     <resultMap id="lackBaseMap" type="com.mes.hollow.entity.dto.LackDetailsDTO">
         <result column="flow_card_id" property="flowCardId"/>
         <result column="layer" property="layer"/>
@@ -21,89 +13,50 @@
         <result column="lack_count" property="lackCount"/>
         <result column="damage_count" property="damageCount"/>
     </resultMap>
-
-    <select id="queryFlowCardIdMaxLayerGlassInfo" resultMap="baseMap">
-        with temp_flow as (SELECT t.process_id,
-                                  t.order_id,
-                                  t.order_number,
-                                  t.technology_number,
-                                  t.quantity,
-                                  t1.child_width,
-                                  t1.child_height
-
-                           from pp.flow_card t
-                                    LEFT JOIN sd.order_glass_detail t1
-                                              on t.order_id = t1.order_id
-                                                  and t.order_number = t1.order_number
-                                                  and t.technology_number = t1.technology_number
-                           where t.process_id = #{flowCardId}),
-             glass_info_temp as (
-                 select process_id,
-                        order_id,
-                        GREATEST(child_width, child_height) as first_length,
-                        least(child_width, child_height)    as second_length,
-                        child_width,
-                        child_height,
-                        order_number,
-                        technology_number,
-                        quantity
-                 from temp_flow
-                 where technology_number = #{totalLayer}
-             )
-        select row_number() over (order by second_length desc,first_length desc) as rn, t.*
-        from glass_info_temp t
-    </select>
-
-    <select id="queryFlowCardIdLayerGlassInfo" resultMap="baseMap">
-        with temp_flow as (SELECT t.process_id,
-                                  t.order_id,
-                                  t.order_number,
-                                  t.technology_number,
-                                  t.quantity,
-                                  t1.child_width,
-                                  t1.child_height
-                           from pp.flow_card t
-                                    LEFT JOIN sd.order_glass_detail t1
-                                              on t.order_id = t1.order_id
-                                                  and t.order_number = t1.order_number
-                                                  and t.technology_number = t1.technology_number
-                           where t.process_id = #{flowCardId}),
-             glass_info_max_layer_temp as (
-                 select process_id,
-                        order_id,
-                        GREATEST(child_width, child_height) as first_length,
-                        least(child_width, child_height)    as second_length,
-                        child_width,
-                        child_height,
-                        order_number,
-                        technology_number,
-                        quantity
-                 from temp_flow
-                 where technology_number = #{totalLayer}
-             ),
-             glass_info_layer_temp as (
-                 select process_id,
-                        order_id,
-                        GREATEST(child_width, child_height) as first_length,
-                        least(child_width, child_height)    as second_length,
-                        child_width,
-                        child_height,
-                        order_number,
-                        technology_number,
-                        quantity
-                 from temp_flow
-                 where technology_number = #{layer}
-             ),
-             max_layer_sequence as (
-                 select row_number() over (order by second_length desc,first_length desc) as rn, t.order_number
-                 from glass_info_max_layer_temp t
-             ),
-             result as (select t.*
-                        from glass_info_layer_temp t
-                                 INNER join max_layer_sequence t1 on t.order_number = t1.order_number
-                        order by t1.rn)
+    <select id="queryLackByFlowCard" resultType="com.mes.hollow.entity.dto.LackDetailsDTO">
+        with hollow_flow_temp AS (
+        SELECT DISTINCT flow_card_id
+        FROM hollow_big_storage_cage_details
+        WHERE state = 100
+        <if test="flowCardId != null and flowCardId != ''">
+            and flow_card_id = #{flowCardId}
+        </if>
+        )
+        , glass_temp as (
+        select t1.*
+        from hollow_flow_temp t
+        INNER JOIN glass_info t1 on t.flow_card_id = t1.flow_card_id
+        )
+        , detail_temp as (
+        select t.*
+        from glass_temp t
+        left join hollow_big_storage_cage_details t1 on t.glass_id = t1.glass_id
+        where t1.glass_id is null
+        )
+        , damage_ranked AS (
+        SELECT t.flow_card_id,
+        t.layer,
+        t.glass_id,
+        t.glass_type,
+        t.width,
+        t.height,
+        t.filmsId,
+        t.thickness,
+        case
+        when type in (8, 9) and status = 1 then ''
+        else t1.working_procedure end as working_procedure,
+        ROW_NUMBER() OVER (PARTITION BY t1.glass_id ORDER BY t1.id DESC) as rn
+        FROM detail_temp t
+        inner join damage t1 on t.glass_id = t1.glass_id
+        )
+        , damage_latest AS (
+        SELECT *
+        FROM damage_ranked
+        WHERE rn = 1
+        )
         select *
-        from result
+        from damage_latest
+
     </select>
     <select id="queryAllLackByFlowCard" resultMap="lackBaseMap">
         WITH flow_card_id_info AS (
@@ -152,7 +105,7 @@
                      t.width,
                      t.height,
                      COUNT(DISTINCT t.glass_id) as lack_count,
-                     COUNT(DISTINCT CASE WHEN t1.type IN (7,8) AND t1.status = 1 THEN t.glass_id END) as damage_count
+                     COUNT(DISTINCT CASE WHEN t1.type IN (8,9) AND t1.status = 1 THEN t.glass_id END) as damage_count
                  FROM detail_temp t
                           LEFT JOIN damage_latest t1 ON t.glass_id = t1.glass_id
                  GROUP BY
@@ -173,50 +126,13 @@
         from hollow_glass_relation_info
         where flow_card_id = #{flowCardId}
     </select>
-    <select id="queryProductNameByFlowCardId" resultType="com.mes.hollow.entity.dto.OrderDetailsDTO">
-        select t.product_name, t1.customer_name
-        from sd.order_detail t
-        inner join sd.order t1 on t.order_id = t1.order_id
-        where (t.order_id, t.order_number) = (
-        select min(order_id) as order_id, min(order_number) as order_number
-        from pp.flow_card
-        where process_id = #{flowCardId}
-        <if test="productName != null and productName != ''">
-            and t.product_name like concat('%', #{productName}, '%')
-        </if>
-        <if test="customerName != null and customerName != ''">
-            and t1.customer_name like concat('%', #{customerName}, '%')
-        </if>
-        )
-        limit 1
-    </select>
-    <select id="queryLackGlassByFlowCard" resultType="com.mes.glassinfo.entity.GlassInfo">
-        with glass_id_info as (
-        select glass_id,order_sort from hollow_glass_relation_info where flow_card_id=#{flowCardId} and
-        order_sort=#{orderSort} and layer=#{layer} and glass_id is not null
-        ),
-        damage_glass_id as (
-        select glass_id from damage where process_id=#{flowCardId} and order_number=#{orderSort} and
-        technology_number=#{layer} and type=8 and status &lt; 3 and glass_id is not null
-        )
-        select t.* from glass_info t left join glass_id_info t1 on t.glass_id=t1.glass_id
-        left join damage_glass_id t2 on t.glass_id=t2.glass_id
-        where t.flow_card_id=#{flowCardId} and t.glass_type=#{orderSort} and t.layer=#{layer} and t1.glass_id is null
-        and t2.glass_id is null
-    </select>
-    <select id="queryLackByFlowCard" resultType="com.mes.hollow.entity.dto.LackDetailsDTO">
-        with hollow_flow_temp AS (
-            SELECT DISTINCT flow_card_id
-            FROM hollow_big_storage_cage_details
-            WHERE state = 100
-        <if test="flowCardId != null and flowCardId != ''">
-            and flow_card_id = #{flowCardId}
-        </if>
-        )
-           , glass_temp as (
-            select t1.*
-            from hollow_flow_temp t
-                     INNER JOIN glass_info t1 on t.flow_card_id = t1.flow_card_id
+    <select id="queryLackGlassByFlowCard" resultType="com.mes.hollow.entity.dto.LackDetailsDTO">
+        with glass_temp as (
+            select *
+            from glass_info
+            where flow_card_id = #{flowCardId}
+              and glass_type = #{orderSort}
+              and layer = #{layer}
         )
            , detail_temp as (
             select t.*
@@ -234,9 +150,9 @@
                    t.filmsId,
                    t.thickness,
                    case
-                       when type in (7, 8) and status = 1 then ''
-                       else t1.working_procedure end                                as working_procedure,
-                   ROW_NUMBER() OVER (PARTITION BY t1.glass_id ORDER BY t1.id DESC) as rn
+                       when type in (8, 9) and status = 1 then ''
+                       else t1.working_procedure end as working_procedure,
+                   ROW_NUMBER()                         OVER (PARTITION BY t1.glass_id ORDER BY t1.id DESC) as rn
             FROM detail_temp t
                      inner join damage t1 on t.glass_id = t1.glass_id
         )
@@ -247,18 +163,21 @@
         )
         select *
         from damage_latest
-
     </select>
 
+
     <update id="clearDirtyFlowCardData">
-        update tempering_glass_relation_info
-        set shelf_order = null
-          , state       = 0
+        update hollow_glass_relation_info
+        set glass_id                = null,
+            tempering_layout_id     = null,
+            tempering_feed_sequence = null,
+            engineer_id             = null,
+            state                   = 0
         where flow_card_id = #{flowCardId}
           and layer = #{layer}
-          and shelf_order not in (
-            select shelf_order
-            from vertical_sheet_cage_details
+          and glass_id not in (
+            select glass_id
+            from hollow_big_storage_cage_details
             where flow_card_id = #{flowCardId}
               and layer = #{layer}
               and state in (100, 102, 103, 104)

--
Gitblit v1.8.0