From b804d88d626d1df675a3278c859b37758c55432b Mon Sep 17 00:00:00 2001
From: ZengTao <2773468879@qq.com>
Date: 星期四, 18 十二月 2025 13:42:06 +0800
Subject: [PATCH] 1、增加流程卡进度查询,可根据工程号,流程卡号,玻璃id查看进度情况 2、钢化界面增加颜色对应注释,版图增加落架顺序 3、两个大理片界面笼子上色块显示修改为根据玻璃宽度显示 4、中空大理片右侧缺片情况显示优化 5、是否除膜从领取工程取消,在中空领取任务时选择除膜膜系(不除膜时不选择膜系),当配方中是需要除膜时并且选择的膜系与小片膜系一样时发送除膜信息 6、中空领取任务界面流程卡数量不等于已配对数量时高亮显示 7、磨边队列当后面玻璃磨边完成扫码但前面玻璃还未扫到码时高亮显示

---
 hangzhoumesParent/common/servicebase/src/main/resources/mapper/DamageMapper.xml |  136 +++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 135 insertions(+), 1 deletions(-)

diff --git a/hangzhoumesParent/common/servicebase/src/main/resources/mapper/DamageMapper.xml b/hangzhoumesParent/common/servicebase/src/main/resources/mapper/DamageMapper.xml
index 223b6c4..3638fd3 100644
--- a/hangzhoumesParent/common/servicebase/src/main/resources/mapper/DamageMapper.xml
+++ b/hangzhoumesParent/common/servicebase/src/main/resources/mapper/DamageMapper.xml
@@ -6,12 +6,14 @@
         SELECT glass_id,
                order_number,
                technology_number,
-               working_procedure
+               working_procedure,
+               type
         FROM (
                  SELECT glass_id,
                         order_number,
                         technology_number,
                         working_procedure,
+                        type,
                         ROW_NUMBER() OVER (
       PARTITION BY glass_id
       ORDER BY damage_time DESC
@@ -45,4 +47,136 @@
             </if>
         </where>
     </select>
+    <select id="queryProgress" resultType="com.mes.damage.entity.vo.GlassDamageVO">
+        SELECT
+        t.glass_id,
+        t.glass_type,
+        t.flow_card_id,
+        t.layer,
+        t1.damage_time,
+        t.width,
+        t.height,
+        t.thickness,
+        t.filmsid,
+        t1.working_procedure,
+        t1.device_name,
+        t1.type
+        FROM glass_info t
+        LEFT JOIN damage t1 ON t.glass_id = t1.glass_id
+        WHERE
+        <!-- 鎶界澶氬瓧娈礗N鏉′欢锛氫娇鐢ㄥ弬鏁版浛鎹㈠浐瀹氬�� -->
+        (t.flow_card_id, t.layer, t.glass_type) IN
+        <foreach collection="conditionList" item="item" open="(" separator="," close=")">
+            (#{item.flowCardId}, #{item.layer}, #{item.glassType})
+        </foreach>
+        <!-- 鎶界t1.type鏉′欢 -->
+        AND t1.type IN
+        <foreach collection="typeList" item="item" open="(" separator="," close=")">
+            #{item}
+        </foreach>
+        AND t1.working_procedure IN
+        <foreach collection="workingProcedureList" item="item" open="(" separator="," close=")">
+            #{item}
+        </foreach>
+        <if test="glassId != null and glassId != ''">
+            AND t1.glass_id = #{glassId}
+        </if>
+    </select>
+    <select id="queryFlowCardIdProgress" resultType="com.mes.damage.entity.vo.FlowCardDamageVO">
+        WITH glass_info_result AS (
+        SELECT
+        engineer_id,
+        flow_card_id,
+        layer,
+        glass_type,
+        thickness,
+        filmsid,
+        width,
+        height,
+        count(*) AS total_quantity
+        FROM
+        glass_info
+        WHERE
+        1=1
+        <if test="flowCardId != null and flowCardId != ''">
+            AND flow_card_id = #{flowCardId}
+        </if>
+        <if test="engineerId != null and engineerId != ''">
+            AND engineer_id = #{engineerId}
+        </if>
+        <if test="glassId != null and glassId != ''">
+            and (flow_card_id, layer, glass_type) IN (select flow_card_id, layer, glass_type from glass_info where
+            glass_id=#{glassId} )
+        </if>
+        GROUP BY
+        engineer_id,
+        flow_card_id,
+        layer,
+        glass_type,
+        thickness,
+        filmsid,
+        width,
+        height
+        ),
+        damage_result AS (
+        SELECT
+        engineer_id,
+        process_id,
+        technology_number,
+        order_number,
+        working_procedure,
+        type,
+        count(*) AS report_quantity
+        FROM
+        damage
+        WHERE
+        1=1
+        <if test="flowCardId != null and flowCardId != ''">
+            AND process_id = #{flowCardId}
+        </if>
+        <if test="engineerId != null and engineerId != ''">
+            AND engineer_id = #{engineerId}
+        </if>
+        <if test="glassId != null and glassId != ''">
+            AND (process_id, technology_number, order_number) IN (select flow_card_id, layer, glass_type from glass_info
+            where glass_id=#{glassId} )
+        </if>
+        GROUP BY
+        engineer_id,
+        process_id,
+        technology_number,
+        order_number,
+        working_procedure,
+        type
+        ),
+        final_result AS (
+        SELECT
+        t.*,
+        sum( CASE WHEN t1.working_procedure = "鍒囧壊" AND t1.type = 1 THEN report_quantity ELSE 0 END ) -
+        sum( CASE WHEN (t1.working_procedure = "纾ㄨ竟" or t1.working_procedure="閽㈠寲" or t1.working_procedure="涓┖") AND
+        t1.type = 8 THEN report_quantity ELSE 0 END ) AS cutting,
+        sum( CASE WHEN t1.working_procedure = "纾ㄨ竟" AND t1.type = 1 THEN report_quantity ELSE 0 END ) -
+        sum( CASE WHEN (t1.working_procedure="閽㈠寲" or t1.working_procedure="涓┖") AND t1.type = 8 THEN report_quantity
+        ELSE 0 END ) AS edging,
+        sum( CASE WHEN t1.working_procedure = "閽㈠寲" AND t1.type = 1 THEN report_quantity ELSE 0 END ) -
+        sum( CASE WHEN (t1.working_procedure="涓┖") AND t1.type = 8 THEN report_quantity ELSE 0 END ) AS temping
+        FROM
+        glass_info_result t
+        LEFT JOIN damage_result t1 ON t.engineer_id = t1.engineer_id
+        AND t.flow_card_id = t1.process_id
+        AND t.layer = t1.technology_number
+        AND t.glass_type = t1.order_number
+        GROUP BY
+        t.engineer_id,
+        t.flow_card_id,
+        t.layer,
+        t.glass_type,
+        t.thickness,
+        t.filmsid,
+        t.width,
+        t.height,
+        t.total_quantity
+        )
+        select * from final_result;
+    </select>
 </mapper>

--
Gitblit v1.8.0