From aa5d2f68e1d97f7a1b20fa15e1bde9195544bb3e Mon Sep 17 00:00:00 2001
From: ZengTao <2773468879@qq.com>
Date: 星期二, 11 十一月 2025 15:15:06 +0800
Subject: [PATCH] 1、钢化查询添加显示工程名称 2、中空任务界面缺片详情修改
---
hangzhoumesParent/moduleService/hollowGlassModule/src/main/resources/mapper/HollowGlassRelationInfoMapper.xml | 294 +++++++++++++++++++++++++++++++++++-----------------------
1 files changed, 179 insertions(+), 115 deletions(-)
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/resources/mapper/HollowGlassRelationInfoMapper.xml b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/resources/mapper/HollowGlassRelationInfoMapper.xml
index 0d655b2..4d66e4d 100644
--- a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/resources/mapper/HollowGlassRelationInfoMapper.xml
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/resources/mapper/HollowGlassRelationInfoMapper.xml
@@ -2,133 +2,197 @@
<!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"/>
- <result column="films_id" property="filmsId"/>
- <result column="first_length" property="width"/>
- <result column="second_Length" property="height"/>
+ <result column="glass_type" property="glassType"/>
+ <result column="filmsid" property="filmsId"/>
+ <result column="width" property="width"/>
+ <result column="height" property="height"/>
<result column="thickness" property="thickness"/>
- <result column="lack_cout" property="lackCount"/>
+ <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 *
- from result
- </select>
- <select id="queryLackByFlowCard" resultMap="lackBaseMap">
- with relation_length as (
- select flow_card_id,
- layer,
- tempering_layout_id,
- tempering_feed_sequence,
- GREATEST(width, height) as first_length,
- LEAST(width, height) as second_Length,
- width,
- height,
- thickness,
- films_id
- from hollow_glass_relation_info
- where flow_card_id = #{flowCardId}
- and tempering_layout_id is null
- and tempering_feed_sequence is null
+ <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>
)
- select flow_card_id, layer, first_length, films_id, second_Length, thickness, count(*) as lack_cout
- from relation_length
- group by flow_card_id, layer, films_id, first_length, second_Length, thickness
+ , 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 damage_latest
+
+ </select>
+ <select id="queryAllLackByFlowCard" resultMap="lackBaseMap">
+ WITH flow_card_id_info AS (
+ SELECT DISTINCT flow_card_id
+ FROM hollow_big_storage_cage_details
+ WHERE state = 100
+ ),
+ glass_temp AS (
+ SELECT t.*
+ FROM glass_info t
+ INNER JOIN flow_card_id_info t1 ON t.flow_card_id = t1.flow_card_id
+ ),
+ detail_temp AS (
+ SELECT t.*
+ FROM glass_temp t
+ WHERE NOT EXISTS(
+ SELECT 1
+ FROM hollow_big_storage_cage_details t1
+ WHERE t1.glass_id = t.glass_id
+ AND t1.state NOT IN (8, 9)
+ )
+ ),
+ damage_latest AS (
+ SELECT dr.glass_id,
+ dr.type,
+ dr.status
+ FROM (
+ SELECT t1.glass_id,
+ t1.type,
+ t1.status,
+ 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.flow_card_id = t1.process_id
+ ) dr
+ WHERE dr.rn = 1
+ ),
+ result_temp AS (
+ SELECT t.flow_card_id,
+ t.layer,
+ t.glass_type,
+ t.thickness,
+ t.filmsId,
+ t.width,
+ t.height,
+ COUNT(DISTINCT t.glass_id) as lack_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 t.flow_card_id,
+ t.layer,
+ t.glass_type,
+ t.thickness,
+ t.filmsId,
+ t.width,
+ t.height
+ )
+ SELECT *
+ FROM result_temp
+ ORDER BY flow_card_id, layer;
</select>
<select id="queryLayerByFlowCardId" resultType="java.lang.Integer">
select count(distinct layer)
from hollow_glass_relation_info
where flow_card_id = #{flowCardId}
</select>
+ <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.*
+ from glass_temp t
+ left join hollow_big_storage_cage_details t1 on t.glass_id = t1.glass_id and t1.state not in (8, 9)
+ 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 damage_latest
+ </select>
+ <select id="queryLackByFlowCardByERP" resultType="com.mes.hollow.entity.dto.LackDetailsDTO">
+ WITH RECURSIVE nums(n) AS (
+ SELECT 1
+ UNION ALL
+ SELECT n + 1 FROM nums WHERE n < (SELECT MAX(quantity) FROM (
+ <foreach collection="flowCardIdList" item="item" separator="UNION ALL">
+ SELECT #{item.lackQuantity} AS quantity
+ </foreach>
+ ) t)
+ )
+ <foreach collection="flowCardIdList" item="item" separator="UNION ALL">
+ SELECT t1.*
+ FROM (
+ SELECT
+ g.flow_card_id AS flowCardId,
+ g.layer AS layer,
+ g.glass_type AS glassType,
+ g.filmsid AS filmsId,
+ g.width AS width,
+ g.height AS height,
+ g.thickness AS thickness
+ FROM glass_info g
+ WHERE g.flow_card_id = #{item.processId}
+ AND g.layer = #{item.technologyNumber}
+ AND g.glass_type = #{item.orderNumber}
+ LIMIT 1
+ ) t1
+ CROSS JOIN nums
+ WHERE nums.n <= #{item.lackQuantity}
+ </foreach>
+ </select>
+
<update id="clearDirtyFlowCardData">
update hollow_glass_relation_info
--
Gitblit v1.8.0