From b03389088870daf55208b44f627a538df077e91b Mon Sep 17 00:00:00 2001
From: ZengTao <2773468879@qq.com>
Date: 星期六, 11 十月 2025 08:39:22 +0800
Subject: [PATCH] 1、中空部分直接查询ERP数据库修改为使用OrderServices

---
 hangzhoumesParent/common/servicebase/src/main/resources/mapper/OrderMapper.xml |  108 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 108 insertions(+), 0 deletions(-)

diff --git a/hangzhoumesParent/common/servicebase/src/main/resources/mapper/OrderMapper.xml b/hangzhoumesParent/common/servicebase/src/main/resources/mapper/OrderMapper.xml
index 7eafcca..0cc59de 100644
--- a/hangzhoumesParent/common/servicebase/src/main/resources/mapper/OrderMapper.xml
+++ b/hangzhoumesParent/common/servicebase/src/main/resources/mapper/OrderMapper.xml
@@ -10,6 +10,14 @@
         <result column="create_time" property="createTime"/>
         <result column="percent" property="percent"/>
     </resultMap>
+    <resultMap id="baseMapHollowDetail" type="com.mes.order.entity.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>
     <select id="selectOrderPercent" resultMap="baseMap">
         SELECT a.order_id,
                a.customer_name,
@@ -32,4 +40,104 @@
         where a.warehousing != 2 and a.warehousing >= 0
         ORDER BY  a.order_id desc
     </select>
+    <select id="queryOrderByFlowCardId" resultType="com.mes.order.entity.HollowOrderDTO">
+        select t1.*
+        from pp.flow_card t
+                 inner join sd.order t1 on t.order_id = t1.order_id
+        where t.process_id = #{flowCardId}
+            limit 1
+    </select>
+    <select id="queryFlowCardIdMaxLayerGlassInfo" resultType="com.mes.order.entity.HollowGlassDetailsDTO">
+        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="baseMapHollowDetail">
+        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="queryProductNameByFlowCardId" resultType="com.mes.order.entity.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}
+        )
+            limit 1
+    </select>
 </mapper>

--
Gitblit v1.8.0