From 30ce7a2a9747789aee95ada4679e3e56201c3026 Mon Sep 17 00:00:00 2001
From: ZengTao <2773468879@qq.com>
Date: 星期二, 04 十一月 2025 13:13:33 +0800
Subject: [PATCH] 1、菜单查询添加排序 2、两个大理片笼信息查询修改 3、大理片,卧理添加报警信息

---
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/resources/mapper/HollowBigStorageCageDetailsMapper.xml |  196 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 194 insertions(+), 2 deletions(-)

diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/resources/mapper/HollowBigStorageCageDetailsMapper.xml b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/resources/mapper/HollowBigStorageCageDetailsMapper.xml
index dda21d7..ab2c8e4 100644
--- a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/resources/mapper/HollowBigStorageCageDetailsMapper.xml
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/resources/mapper/HollowBigStorageCageDetailsMapper.xml
@@ -207,8 +207,8 @@
     <select id="queryHollowbigStorageCageDetail" resultType="com.mes.base.entity.vo.BigStorageVO">
         select hbsc.device_id, hbsc.slot, count(hbscd.glass_id) as count
         from hollow_big_storage_cage hbsc
-                 left join hollow_big_storage_cage_details hbscd
-                           on hbsc.slot = hbscd.slot and hbscd.state in (100, 102, 103, 104)
+            left join hollow_big_storage_cage_details hbscd
+        on hbsc.slot = hbscd.slot and hbscd.state in (100, 102, 103, 104)
         group by hbsc.device_id, hbsc.slot
         order by hbsc.device_id, hbsc.slot
     </select>
@@ -252,4 +252,196 @@
         where state in (100, 102, 103, 104)
         group by flow_card_id, layer
     </select>
+
+    <select id="queryHollowAllFlowCard" resultType="com.mes.hollow.entity.dto.FlowCardGlassInfoDTO">
+        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 LIKE CONCAT(
+            '%',#{flowCardId}, '%')
+        </if>
+        <if test="filmsId != null and filmsId != ''">
+            AND films_id LIKE CONCAT( '%', #{filmsId}, '%')
+        </if>
+        <if test="thickness != 0">
+            AND thickness = #{thickness}
+        </if>
+        ),
+        hollow_details_temp AS (
+        SELECT
+        flow_card_id,
+        glass_id,
+        virtual_slot,
+        sequence,
+        layer,
+        total_layer,
+        hollow_sequence
+        FROM
+        hollow_big_storage_cage_details
+        WHERE
+        state = 100
+        <if test="flowCardId != null and flowCardId != ''">
+            AND flow_card_id LIKE CONCAT(
+            '%',#{flowCardId}, '%')
+        </if>
+        <if test="filmsId != null and filmsId != ''">
+            AND films_id LIKE CONCAT( '%', #{filmsId}, '%')
+        </if>
+        <if test="thickness != 0">
+            AND thickness = #{thickness}
+        </if>
+        ),
+        hollow_through_temp AS ( SELECT flow_card_id, MIN( hollow_sequence ) AS hollow_sequence, MAX( total_layer ) AS
+        total_layer FROM hollow_details_temp GROUP BY flow_card_id ),
+        hollow_pair_temp AS (
+        SELECT
+        t1.flow_card_id,
+        COUNT(*) AS pair_count
+        FROM
+        hollow_details_temp t1
+        INNER JOIN hollow_details_temp t2 ON t1.flow_card_id = t2.flow_card_id
+        AND t1.virtual_slot = t2.virtual_slot
+        AND t1.sequence = t2.sequence
+        AND t1.layer = 1
+        AND t2.layer = 2
+        WHERE
+        NOT EXISTS ( SELECT 1 FROM hollow_through_temp ht WHERE ht.flow_card_id = t1.flow_card_id AND ht.total_layer = 3
+        )
+        OR EXISTS (
+        SELECT
+        1
+        FROM
+        hollow_details_temp t3
+        WHERE
+        t3.flow_card_id = t1.flow_card_id
+        AND t3.virtual_slot = t1.virtual_slot
+        AND t3.sequence = t1.sequence
+        AND t3.layer = 3
+        )
+        GROUP BY
+        t1.flow_card_id
+        ),
+        glass_info_temp AS (
+        SELECT
+        gi.id,
+        gi.glass_id,
+        gi.flow_card_id,
+        gi.layer,
+        gi.thickness,
+        gi.filmsId
+        FROM
+        hollow_flow_temp hft
+        INNER JOIN glass_info gi ON hft.flow_card_id = gi.flow_card_id
+        ),
+        glass_engineer_temp AS (
+        SELECT
+        distinct flow_card_id,
+        engineer_id
+        FROM
+        (
+        SELECT
+        gi.flow_card_id,
+        gi.engineer_id,
+        ROW_NUMBER() OVER ( PARTITION BY gi.flow_card_id, gi.layer ORDER BY COUNT( gi.glass_id ) DESC ) AS rn
+        FROM
+        hollow_flow_temp hft
+        INNER JOIN glass_info gi ON hft.flow_card_id = gi.flow_card_id
+        GROUP BY
+        gi.flow_card_id,
+        gi.layer,
+        gi.engineer_id
+        ) t
+        WHERE
+        rn = 1
+        ),
+        glass_result AS (
+        SELECT
+        count( t1.id ) AS sum_count,
+        t1.flow_card_id,
+        t1.layer
+        FROM
+        glass_engineer_temp t
+        INNER JOIN glass_info t1 ON t.engineer_id = t1.engineer_id
+        AND t.flow_card_id = t1.flow_card_id
+        GROUP BY
+        t1.flow_card_id,
+        t1.layer
+        ),
+        damage_ranked AS (
+        SELECT
+        d.glass_id,
+        d.type,
+        d.STATUS,
+        ROW_NUMBER() OVER ( PARTITION BY d.glass_id ORDER BY d.id DESC ) AS rn
+        FROM
+        hollow_flow_temp hft
+        INNER JOIN damage d ON hft.flow_card_id = d.process_id
+        ),
+        damage_latest AS ( SELECT glass_id, type, STATUS FROM damage_ranked WHERE rn = 1 ),
+        result_temp AS (
+        SELECT
+        t.flow_card_id,
+        t.layer,
+        t.thickness,
+        t.filmsId,
+        COUNT( DISTINCT t1.glass_id ) AS real_count,
+        COUNT( DISTINCT CASE WHEN t2.type IN ( 7, 8 ) AND t2.STATUS = 1 THEN t.glass_id END ) AS damage_count
+        FROM
+        glass_info_temp t
+        LEFT JOIN hollow_details_temp t1 ON t.glass_id = t1.glass_id
+        LEFT JOIN damage_latest t2 ON t.glass_id = t2.glass_id
+        GROUP BY
+        t.flow_card_id,
+        t.layer,
+        t.thickness,
+        t.filmsId
+        ) SELECT
+        t.*,
+        t3.sum_count,
+        t3.sum_count - t.real_count AS lack_count,
+        COALESCE ( t1.pair_count, 0 ) AS pair_count,
+        t2.hollow_sequence,
+        t2.total_layer
+        FROM
+        result_temp t
+        LEFT JOIN hollow_pair_temp t1 ON t.flow_card_id = t1.flow_card_id
+        LEFT JOIN hollow_through_temp t2 ON t.flow_card_id = t2.flow_card_id
+        LEFT JOIN glass_result t3 ON t.flow_card_id = t3.flow_card_id
+        AND t.layer = t3.layer
+        ORDER BY
+        t.flow_card_id
+    </select>
+    <select id="queryVerticalSheetCageDetailsList"
+            resultType="com.mes.hollow.entity.vo.HollowBigCageDetailsVO">
+        SELECT t.id,t.device_id,t.slot,t.remain_width ,t.enable_state,t1.virtual_slot,total_layer,t1.engineer_id,
+        t1.id as detail_id,t1.device_id as detail_device_id ,t1.slot as
+        detail_slot,t1.engineer_id,t1.glass_id,t1.tempering_layout_id,t1.tempering_feed_sequence,
+        t1.flow_card_id,t1.layer,t1.width,t1.height,t1.thickness,t1.films_id
+        FROM hollow_big_storage_cage t
+        left join hollow_big_storage_cage_details t1 on t.slot = t1.slot
+        and t1.state in (100, 102, 103, 104)
+        <if test="filmsId != null and filmsId != ''">
+            and t1.films_id like CONCAT('%', #{filmsId}, '%')
+        </if>
+        <if test="flowCardId != null and flowCardId != ''">
+            and t1.flow_card_id like CONCAT('%', #{flowCardId}, '%')
+        </if>
+        <if test="engineerId != null and engineerId != ''">
+            and t1.engineer_id like CONCAT('%', #{engineerId}, '%')
+        </if>
+        <if test="glassId != null and glassId != ''">
+            and t1.glass_id like CONCAT('%', #{glassId}, '%')
+        </if>
+        <if test="thickness != -1">
+            and t1.thickness = #{thickness}
+        </if>
+        order by t.slot
+    </select>
+
+
 </mapper>
\ No newline at end of file

--
Gitblit v1.8.0