From 6bbcdd0d1beeca74251f63ea42b9ee8349e97902 Mon Sep 17 00:00:00 2001
From: chenlu <1320612696@qq.com>
Date: 星期二, 15 七月 2025 10:19:54 +0800
Subject: [PATCH] 优化在制品查询速度
---
north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml | 3307 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 3,157 insertions(+), 150 deletions(-)
diff --git a/north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml b/north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
index 9d82870..47ba248 100644
--- a/north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
+++ b/north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
@@ -9,6 +9,9 @@
<result column="quantity" property="quantity"/>
<result column="founder" property="founder"/>
<result column="create_time" property="createTime"/>
+ <result column="layout_status" property="layoutStatus"/>
+ <result column="merge" property="merge"/>
+ <result column="rack" property="rack"/>
<!--鎺ユ敹鍏朵粬澶栭敭瀹炰綋绫绘暟鎹�-->
<association property="order" javaType="com.example.erp.entity.sd.Order">
<result column="project" property="project"/>
@@ -48,6 +51,8 @@
<result column="g_type" property="glassTypes.type"/>-->
</resultMap>
+
+
<!-- 娴佺▼鍗$鐞嗘煡璇�-->
<select id="selectFlowCard" resultMap="flowCardMap">
select
@@ -56,32 +61,100 @@
c.product_id,
c.product_name,
b.project,
- a.quantity,
- c.compute_gross_area,
+ sum(a.quantity) as quantity,
+ sum(a.quantity) * c.area as compute_gross_area,
a.founder,
- c.processing_note
+ c.processing_note,
+ b.customer_name,
+ layout_status as layout_status,
+ a.merge,
+ a.rack,
+ b.batch
+ from (select id,order_id,process_id,order_number, quantity,founder,max(layout_status) as layout_status,create_time,max(merge) as merge,rack from flow_card
+ group by process_Id,order_number) as a
+ left join sd.`order` as b on a.order_Id=b.order_id
+ left join sd.order_detail as c on a.order_Id=c.order_id and a.order_Number=c.order_number
+ where date(a.create_time)>=#{selectTime1} and date(a.create_time) <= #{selectTime2}
+ and b.create_order>0
+ <if test="flowCard.orderId != null and flowCard.orderId != ''">
+ and a.order_id regexp #{flowCard.orderId}
+ </if>
+ <if test="flowCard.processId != null and flowCard.processId != ''">
+ and a.process_Id regexp #{flowCard.processId}
+ </if>
+ <if test="flowCard.orderDetail.productId != null and flowCard.orderDetail.productId != ''">
+ and c.product_id regexp #{flowCard.orderDetail.productId}
+ </if>
+ <if test="flowCard.orderDetail.productName != null and flowCard.orderDetail.productName!= ''">
+ and c.product_name regexp #{flowCard.orderDetail.productName}
+ </if>
+
+ <if test="flowCard.order.project != null and flowCard.order.project!= ''">
+ and b.project regexp #{flowCard.order.project}
+ </if>
+ <if test="flowCard.layoutStatus != null and flowCard.layoutStatus != '' and flowCard.layoutStatus == '涓嶅彲鎺掔増'">
+ and a.layout_status regexp 0
+ </if>
+ <if test="flowCard.layoutStatus != null and flowCard.layoutStatus != '' and flowCard.layoutStatus == '鍙帓鐗�'">
+ and a.layout_status regexp 1
+ </if>
+ <if test="flowCard.layoutStatus != null and flowCard.layoutStatus != '' and flowCard.layoutStatus == '宸叉帓鐗�'">
+ and a.layout_status regexp 2
+ </if>
+ <if test="flowCard.merge != null">
+ and a.merge regexp #{flowCard.merge}
+ </if>
+ <if test="flowCard.rack != null and flowCard.rack != ''">
+ and a.rack regexp #{flowCard.rack}
+ </if>
+ <if test="flowCard.order.customerName != null and flowCard.order.customerName!= ''">
+ and b.customer_name regexp #{flowCard.order.customerName}
+ </if>
+ group by a.process_Id
+ ORDER BY a.id desc
+ limit #{offset},#{pageSize};
+ </select>
+
+
+ <select id="getPageTotal">
+ select
+ CEILING(count(a.process_Id)/#{pageSize}) as 'pageTotal',
+ count(distinct a.process_Id) as 'total'
from flow_card as a left join sd.`order` as b on a.order_Id=b.order_id
left join sd.order_detail as c on a.order_Id=c.order_id and a.order_Number=c.order_number
- where a.create_time between #{selectTime1} and #{selectTime2}
- <if test="flowCard.orderId != null and flowCard.orderId != ''">
- and a.order_id regexp #{flowCard.orderId}
- </if>
- <if test="flowCard.productionId != null and flowCard.productionId != ''">
- and a.process_Id regexp #{flowCard.productionId}
- </if>
- <if test="flowCard.orderDetail.productId != null and flowCard.orderDetail.productId != ''">
- and c.product_id regexp #{flowCard.orderDetail.productId}
- </if>
- <if test="flowCard.orderDetail.productName != null and flowCard.orderDetail.productName!= ''">
- and c.product_name regexp #{flowCard.orderDetail.productName}
- </if>
+ where date(a.create_time)>=#{selectTime1} and date(a.create_time) <= #{selectTime2}
+ and b.create_order>0
+ <if test="flowCard.orderId != null and flowCard.orderId != ''">
+ and a.order_id regexp #{flowCard.orderId}
+ </if>
+ <if test="flowCard.processId != null and flowCard.processId != ''">
+ and a.process_Id regexp #{flowCard.processId}
+ </if>
+ <if test="flowCard.orderDetail.productId != null and flowCard.orderDetail.productId != ''">
+ and c.product_id regexp #{flowCard.orderDetail.productId}
+ </if>
+ <if test="flowCard.orderDetail.productName != null and flowCard.orderDetail.productName!= ''">
+ and c.product_name regexp #{flowCard.orderDetail.productName}
+ </if>
- <if test="flowCard.order.project != null and flowCard.order.project!= ''">
- and b.project regexp #{flowCard.order.project}
- </if>
+ <if test="flowCard.order.project != null and flowCard.order.project!= ''">
+ and b.project regexp #{flowCard.order.project}
+ </if>
+ <if test="flowCard.layoutStatus != null and flowCard.layoutStatus != '' and flowCard.layoutStatus == '涓嶅彲鎺掔増'">
+ and a.layout_status regexp 0
+ </if>
+ <if test="flowCard.layoutStatus != null and flowCard.layoutStatus != '' and flowCard.layoutStatus == '鍙帓鐗�'">
+ and a.layout_status regexp 1
+ </if>
+ <if test="flowCard.layoutStatus != null and flowCard.layoutStatus != '' and flowCard.layoutStatus == '宸叉帓鐗�'">
+ and a.layout_status regexp 2
+ </if>
+ <if test="flowCard.merge != null">
+ and a.merge regexp #{flowCard.merge}
+ </if>
-
- group by a.process_Id;
+ ORDER BY a.id desc
+ limit #{offset},#{pageSize};
</select>
<!--鍒嗘灦鏌ヨ-->
@@ -98,7 +171,8 @@
o.delivery_address
from sd.`order` as o
left join sd.order_glass_detail ogd on o.order_id = ogd.order_id
- where o.production_order=2 and ogd.splitting_status=0 and o.create_time between #{selectTime1} and #{selectTime2}
+ where o.production_order=2 and ogd.splitting_status=0 and
+ date(o.create_time)>=#{selectTime1} and date(o.create_time) <= #{selectTime2}
<if test="flowCard.order.orderId != null and flowCard.order.orderId != ''">
and o.order_id regexp #{flowCard.order.orderId}
@@ -127,195 +201,3128 @@
and o.salesman regexp #{flowCard.order.salesman}
</if>
group by o.order_id
+ order by o.id desc
;
</select>
-<!-- 鍒嗘灦鏄庣粏鏌ヨ-->
- <select id="DetailsSelectMp" resultMap="flowCardMap">
- select od.order_id,
- ogd.production_id,
- od.product_id,
- od.product_name,
- SUM( od.quantity) as quantity,
- SUM(od.compute_gross_area) as compute_gross_area,
- od.perimeter
- from sd.order_detail as od left join sd.order_glass_detail as ogd
- on od.order_id=ogd.order_id and od.order_number=ogd.order_number
- where od.order_id = #{orderId} and ogd.splitting_status=0
- <if test="flowCard.orderDetail.orderId != null and flowCard.orderDetail.orderId != ''">
- and od.order_id regexp #{flowCard.orderDetail.orderId}
- </if>
- <if test="flowCard.orderGlassDetail.productionId != null and flowCard.orderGlassDetail.productionId != ''">
- and ogd.production_id regexp #{flowCard.orderGlassDetail.productionId}
- </if>
- <if test="flowCard.orderDetail.productId != null and flowCard.orderDetail.productId != ''">
- and od.product_id regexp #{flowCard.orderDetail.productId}
- </if>
- <if test="flowCard.orderDetail.productName != null and flowCard.orderDetail.productName != ''">
- and od.product_name regexp #{flowCard.orderDetail.productName}
- </if>
- group by od.order_id, ogd.production_id
+ <!-- 鍒嗘灦鏄庣粏鏌ヨ-->
+ <select id="detailsSelectMp">
+ SELECT
+ od.order_id,
+ ogd.production_id,
+ od.product_id,
+ od.product_name,
+ ROUND(SUM(od.quantity) - IFNULL(SUM(fc.quantity), 0)) AS quantity,
+ SUM(od.compute_gross_area) AS compute_gross_area,
+ ROUND(SUM(od.perimeter), 2) AS perimeter
+ FROM sd.order_detail AS od
+ LEFT JOIN (
+ SELECT order_id, order_number, production_id, splitting_status,
+ technology_number
+ FROM sd.order_glass_detail
+ GROUP BY order_id, order_number, production_id, splitting_status
+ ) AS ogd
+ ON od.order_id = ogd.order_id
+ AND od.order_number = ogd.order_number
+ LEFT JOIN (
+ SELECT order_id, order_number, technology_number, SUM(quantity) AS quantity, layers_number
+ FROM flow_card
+ GROUP BY order_id, order_number, technology_number
+ ) AS fc
+ ON fc.order_id = od.order_id
+ AND fc.order_number = od.order_number
+ AND fc.technology_number = ogd.technology_number
+ WHERE od.order_id = #{orderId}
+ AND ogd.splitting_status = 0
+ GROUP BY od.order_id, ogd.production_id, od.product_id, od.product_name
+ ORDER BY od.order_id DESC;
+
</select>
<!-- 鏇存柊鍒嗘灦鐘舵��-->
- <update id="UpdateDeleteState">
+ <update id="updateDeleteState">
update
- sd.order_glass_detail as ogd left join flow_card as fc
- on ogd.order_id=fc.order_id and ogd.order_number=fc.order_number
+ sd.order_glass_detail as ogd left join pp.flow_card as fc
+ on ogd.order_id = fc.order_id and ogd.order_number = fc.order_number
set ogd.splitting_status=0
- where ogd.order_id=#{orderId} and fc.process_id=#{processId}
+ where
+ <if test="processId=='all'">
+ ogd.order_id = #{orderId}
+ </if>
+ <if test="processId!='all'">
+ fc.process_id = #{processId}
+ </if>
+
</update>
<!-- 鍒犻櫎娴佺▼鍗�-->
- <update id="DeleteFlowCardMp">
- delete from flow_card as fc where fc.process_id=#{processId}
+ <update id="deleteFlowCardMp">
+ delete
+ from pp.flow_card as fc
+ where
+ <if test="processId=='all'">
+ fc.order_id = #{orderId}
+ </if>
+ <if test="processId!='all'">
+ fc.process_id = #{processId}
+ </if>
</update>
<!-- 鍒嗘灦鏂板鏄庣粏鏌ヨ-->
<!--resultMap="flowCardMap"-->
- <select id="SelectNoCardMp" >
+ <select id="selectNoCardMp">
- select
- od.order_number,
- od.order_number AS 'orderNumber',
- od.width,
- od.height,
- od.shape,
- od.quantity,
- od.compute_gross_area,
- p.total_thickness,
- od.quantity as baiscQuantity,
- od.compute_gross_area as 'computeGrossArea',
- p.total_thickness AS 'totalThickness',
- p.thickness,
- od.weight
- from
- sd.order_detail as od
- left join sd.order_glass_detail as ogd on od.order_id=ogd.order_id and od.order_number=ogd.order_number
- left join sd.product as p on od.product_name=p.product_name
- where od.order_id=#{orderId} and ogd.production_id=#{productionId} and ogd.splitting_status=0
- GROUP BY od.order_number;
-
+ select od.order_number,
+ od.order_number AS 'orderNumber',
+ od.width,
+ od.height,
+ od.shape,
+ od.quantity,
+ od.compute_gross_area,
+ p.total_thickness,
+ ROUND(od.quantity-IFNULL(sum(fc.quantity)/fc.layers_number,0)) as baiscQuantity,
+ od.compute_gross_area as 'computeGrossArea',
+ p.total_thickness AS 'totalThickness',
+ ifnull(p.thickness,'') as thickness,
+ od.weight,
+ od.remarks,
+ od.processing_note,
+ ifnull(od.bend_radius,'') as bend_radius,
+ ods.S01,
+ ods.S02,
+ ods.S03,
+ ods.S04,
+ ods.S05,
+ od.building_number
+ from sd.order_detail as od
+ left join sd.order_glass_detail as ogd
+ on od.order_id = ogd.order_id and od.order_number = ogd.order_number
+ left join sd.product as p on od.product_id = p.id
+ left join (SELECT order_id,
+ order_number,
+ JSON_UNQUOTE(JSON_EXTRACT(other_columns, '$.S01')) AS S01,
+ JSON_UNQUOTE(JSON_EXTRACT(other_columns, '$.S02')) AS S02,
+ JSON_UNQUOTE(JSON_EXTRACT(other_columns, '$.S03')) AS S03,
+ JSON_UNQUOTE(JSON_EXTRACT(other_columns, '$.S04')) AS S04,
+ JSON_UNQUOTE(JSON_EXTRACT(other_columns, '$.S05')) AS S05
+ FROM sd.order_detail
+ WHERE order_id = #{orderId}) as ods
+ on ods.order_id = od.order_id and ods.order_number = od.order_number
+ left join flow_card as fc on fc.order_id = od.order_id and fc.order_number = od.order_number
+ and fc.technology_number=ogd.technology_number
+ where od.order_id = #{orderId}
+ and ogd.production_id = #{productionId}
+ and ogd.splitting_status = 0
+ GROUP BY od.order_number
+ order by od.id
</select>
<!--淇敼鎺掔増鐘舵��-->
- <update id="UpdateLayoutStatusMp">
+ <update id="updateLayoutStatusMp">
update flow_card as fc
- set fc.layout_status=2
+ set fc.layout_status=#{state}
where fc.process_id = #{processId}
</update>
-<!-- 鏌ヨ瀵瑰簲娴佺▼鍗″彿鎺掔増鐘舵��-->
- <select id="SelectLayoutStatus">
+ <!-- 鏌ヨ瀵瑰簲娴佺▼鍗″彿鎺掔増鐘舵��-->
+ <select id="selectLayoutStatus">
select fc.layout_status
from flow_card as fc
where fc.process_id = #{processId}
LIMIT 1
</select>
-<!-- 鏌ヨ鎶ュ伐琛ㄥ唴鏄惁鏈夊搴旀祦绋嬪崱-->
- <select id="ReportingWorkCount">
+ <!-- 鏌ヨ鎶ュ伐琛ㄥ唴鏄惁鏈夊搴旀祦绋嬪崱-->
+ <select id="reportingWorkCount">
select COUNT(rw.process_id)
from reporting_work as rw
- where rw.process_id = #{processId}
+ where rw.process_id = #{processId} and reviewed_state>=0
</select>
-<!-- 鎻掑叆Flow_card琛�-->
- <insert id="AddFlowCardMp">
- insert into
- flow_card (
- order_id,
- production_id,
- process_id,
- landing_sequence,
- order_number,
- technology_number,
- quantity,
- founder,
- layers_number,
- splitFrame_time,
- create_time
- )
- select
- ogd.order_id,
- ogd.production_id,
- #{processId},
- #{landingSequence},
- ogd.order_number,
- ogd.technology_number,
- #{quantity},
- #{userName},
- #{layer},
- NOW(),
- NOW()
+ <!-- 鏌ヨ鎶ュ伐琛ㄥ唴鏄惁鏈夊搴旀祦绋嬪崱-->
+ <select id="reportingWorkCountByOrderId">
+ select COUNT(rw.process_id)
+ from pp.reporting_work as rw
+ where rw.order_id = #{orderId} and reviewed_state>=0
+ </select>
+ <!-- 鎻掑叆Flow_card琛�-->
+ <insert id="addFlowCardMp">
+ insert into flow_card (order_id,
+ production_id,
+ process_id,
+ landing_sequence,
+ order_number,
+ technology_number,
+ quantity,
+ founder,
+ layers_number,
+ splitFrame_time,
+ create_time)
+ select ogd.order_id,
+ ogd.production_id,
+ #{processId},
+ #{landingSequence},
+ ogd.order_number,
+ ogd.technology_number,
+ #{quantity},
+ #{userName},
+ #{layer},
+ NOW(),
+ NOW()
from sd.order_glass_detail as ogd
- where ogd.production_id=#{productionId} and ogd.order_number=#{orderNumber}
+ where ogd.production_id = #{productionId}
+ and ogd.order_number = #{orderNumber}
GROUP BY ogd.technology_number
</insert>
-<!-- 鏇存柊鍒嗘灦鐘舵��-->
- <update id="UpdateFlowState">
+ <!-- 鏇存柊鍒嗘灦鐘舵��-->
+ <update id="updateFlowState">
update sd.order_glass_detail as ogd
set ogd.splitting_status=1
- where ogd.production_id=#{productionId} and ogd.order_number=#{orderNumber}
+ where ogd.production_id = #{productionId}
+ and ogd.order_number = #{orderNumber}
</update>
-<!-- 鏌ヨ鏈垎鏋剁殑鏉℃暟-->
- <select id="SelectFlowCount">
+ <!-- 鏌ヨ鏈垎鏋剁殑鏉℃暟-->
+ <select id="selectFlowCount">
select COUNT(*)
from sd.order_glass_detail as ogd
- where ogd.order_id = left(#{productionId},10)
+ where ogd.order_id = #{orderId}
and ogd.splitting_status = 0
</select>
-<!-- 淇敼璁㈠崟琛ㄥ垎鏋剁姸鎬�-->
- <update id="UpdateProcessingCard">
+ <!-- 淇敼璁㈠崟琛ㄥ垎鏋剁姸鎬�-->
+ <update id="updateProcessingCard">
update sd.`order` as o
set o.processing_card=#{state}
- where o.order_id=left(#{productionId},10)
+ where o.order_id = #{productionId}
</update>
-<!-- 鏌ヨ宸叉帓鐗堟暟鎹�-->
- <select id="SelectOkSchedulingMp">
- select od.order_id,o.customer_name,o.project,od.order_number,od.width,od.height,od.quantity,
- round(od.width*od.height*od.quantity/1000000,2),
- (od.quantity-IFNULL(ps.scheduling_quantity,0)),
- round(od.width*od.height*(od.quantity-IFNULL(ps.scheduling_quantity,0))/1000000,2),
- IFNULL(ps.scheduling_quantity,0),
- round(od.width*od.height*(IFNULL(ps.scheduling_quantity,0))/1000000,2),
- od.product_name,od.shape
- from sd.order_detail as od left join sd.order as o on od.order_id=o.order_id
- left join production_scheduling as ps on ps.order_id=od.order_id and ps.order_number=od.order_number
- where od.order_id=#{orderId} and ps.processes=#{processes} and ps.scheduling_id IS NOT NULL
+ <!-- 鏌ヨ宸叉帓鐗堟暟鎹�-->
+ <select id="selectOkSchedulingMp">
+ select od.order_id,
+ o.customer_name,
+ o.project,
+ od.order_number,
+ od.width,
+ od.height,
+ od.quantity,
+ round(od.width * od.height * od.quantity / 1000000, 2),
+ (od.quantity - IFNULL(ps.scheduling_quantity, 0)),
+ round(od.width * od.height * (od.quantity - IFNULL(ps.scheduling_quantity, 0)) / 1000000, 2),
+ IFNULL(ps.scheduling_quantity, 0),
+ round(od.width * od.height * (IFNULL(ps.scheduling_quantity, 0)) / 1000000, 2),
+ od.product_name,
+ od.shape
+ from sd.order_detail as od
+ left join sd.order as o on od.order_id = o.order_id
+ left join production_scheduling as ps
+ on ps.order_id = od.order_id and ps.order_number = od.order_number
+ where od.order_id = #{orderId}
+ and ps.processes = #{processes}
+ and ps.scheduling_id IS NOT NULL
+ order by ps.id desc
+ </select>
+ <!-- 鏌ヨ鏈帓鐗堟暟鎹�-->
+ <select id="selectNoSchedulingMp">
</select>
-<!-- 鏌ヨ鏈帓鐗堟暟鎹�-->
- <select id="SelectNoSchedulingMp">
-
- </select>
-<!-- 棣栨鏌ヨ鎺掔増鏁版嵁-->
+ <!-- 棣栨鏌ヨ鎺掔増鏁版嵁-->
<select id="selectLastSchedulingMp">
- select od.order_id,o.customer_name,o.project,od.order_number,od.width,od.height,od.quantity,
- round(od.width*od.height*od.quantity/1000000,2) as area,
- (od.quantity-IFNULL(ps.scheduling_quantity,0)) as pendingProductionQuantity,
- round(od.width*od.height*(od.quantity-IFNULL(ps.scheduling_quantity,0))/1000000,2) as pendingProductionArea,
- IFNULL(ps.scheduling_quantity,0) as productionScheduledQuantity,
- round(od.width*od.height*(IFNULL(ps.scheduling_quantity,0))/1000000,2) as productionScheduledArea,
- od.product_name,od.shape
- from sd.order_detail as od left join sd.order as o on od.order_id=o.order_id
- left join production_scheduling as ps on ps.order_id=od.order_id and ps.order_number=od.order_number
- where od.create_time between #{selectTime1} and #{selectTime2}
+ select od.order_id,
+ o.customer_name,
+ o.project,
+ od.order_number,
+ od.width,
+ od.height,
+ od.quantity,
+ round(od.width * od.height * od.quantity / 1000000, 2) as area,
+ (od.quantity - IFNULL(ps.scheduling_quantity, 0)) as pendingProductionQuantity,
+ round(od.width * od.height * (od.quantity - IFNULL(ps.scheduling_quantity, 0)) / 1000000,
+ 2) as pendingProductionArea,
+ IFNULL(ps.scheduling_quantity, 0) as productionScheduledQuantity,
+ round(od.width * od.height * (IFNULL(ps.scheduling_quantity, 0)) / 1000000,
+ 2) as productionScheduledArea,
+ od.product_name,
+ od.shape
+ from sd.order_detail as od
+ left join sd.order as o on od.order_id = o.order_id
+ left join production_scheduling as ps
+ on ps.order_id = od.order_id and ps.order_number = od.order_number
+ where date(od.create_time)>=#{selectTime1} and date(od.create_time) <= #{selectTime2}
</select>
-<!-- 鏌ヨ瀵瑰簲搴忓彿鐨勫眰鏁�-->
- <select id="SelectLayer">
+ <!-- 鏌ヨ瀵瑰簲搴忓彿鐨勫眰鏁�-->
+ <select id="selectLayer">
select COUNT(ogd.order_number)
from sd.order_glass_detail as ogd
where ogd.production_id = #{productionId}
- and ogd.order_number=#{orderNumber}
+ and ogd.order_number = #{orderNumber}
+ </select>
+ <!-- 鏌ヨ璇ヨ鍗曟祦绋嬪崱鏉℃暟 -->
+ <select id="selectFlowCardCount">
+ select COUNT(*)
+ from flow_card
+ where order_id = #{orderId}
+ </select>
+
+ <select id="flowCardDetailMp">
+ select fc.order_id,
+ fc.process_id,
+ fc.order_number,
+ fc.technology_number,
+ fc.quantity,
+ ogd.child_width,
+ ogd.child_height,
+ round(ogd.child_width * ogd.child_height * fc.quantity / 1000000, 2) as area,
+ od.product_name,
+ ogd.glass_child,
+ fc.founder,
+ date(fc.splitFrame_time) as splitFrame_time,
+ ogd.process,
+ c.concatNumber
+ from flow_card as fc
+ left join sd.order_glass_detail as ogd
+ on fc.order_id = ogd.order_id and fc.order_number = ogd.order_number and
+ fc.technology_number = ogd.technology_number
+ left join sd.order_detail as od on od.order_id = ogd.order_id and od.order_number = ogd.order_number
+ left join (
+ select process_id,technology_number, GROUP_CONCAT(order_number) as concatNumber from
+ flow_card where process_id = #{processId} GROUP BY process_id,technology_number
+ ) as c on c.process_id=fc.process_id
+ where fc.process_id = #{processId}
+ GROUP BY fc.order_id, fc.process_id, fc.order_number, fc.technology_number
+ order by fc.order_number, fc.technology_number
+ </select>
+
+ <delete id="deleteReportingWork">
+ delete
+ from sd.order_process_detail
+ where process_id = #{processId}
+ </delete>
+
+ <delete id="deleteReportingWorkByOrderId">
+ delete
+ from sd.order_process_detail
+ where order_id = #{orderId}
+ </delete>
+
+
+
+ <select id="selectPrintFlowCardMp">
+ select order_id,
+ project,
+ customer_name,
+ quantity,
+ area,
+ order_type,
+ pack_type,
+ batch
+ from sd.order
+ where date(create_time)>=#{selectTime1} and date(create_time) <= #{selectTime2}
+ and position(#{orderId} in order_id)
+ and position(#{project} in project)
+ and if(#{state}=0,(order_review >0 and processing_card =0),processing_card >0)
+ order by create_time desc
+ </select>
+
+ <select id="selectPrintFlowCard">
+ select op.project_no,glass_total,glass_total_area,labelPrintNum,processPrintNum,glass_type,glass_thickness
+ from pp.optimize_project as op
+ left join pp.flow_card as fc on op.project_no=fc.project_no
+ left join sd.`order` as o on o.order_id=fc.order_id
+ where date(op.create_time)>=#{selectTime1} and date(op.create_time) <= #{selectTime2}
+ and state >= 20 and (o.create_order>0 or o.create_order is null)
+ GROUP BY op.project_no
+ order by op.create_time desc
+ </select>
+
+ <select id="selectPrintMp">
+ SELECT result.*,fcc.print_status from ( select *
+ from ((select fc.id,
+ fc.order_id,
+ fc.process_id,
+ o.customer_name,
+ o.project,
+ ogdss.technology_number,
+ ogd.glass_address,
+ ROUND(sum(fc.quantity) / (count(DISTINCT fc.technology_number))) as quantity,
+ # sum(ogd.total_area) as total_area,
+ ROUND(SUM(ogd.child_width*ogd.child_height*fc.quantity)/1000000/(count(DISTINCT fc.technology_number)),2) as total_area,
+ od.product_name,
+ ogdss.concatenated_glass_child as glass_child,
+ fc.founder,
+ date(fc.splitFrame_time) as splitFrame_time,
+ processed_part as process,
+ merge
+
+ from flow_card as fc
+ left join sd.order_glass_detail as ogd
+ on ogd.order_id = fc.order_id and ogd.order_number = fc.order_number and
+ ogd.technology_number = fc.technology_number
+ left join sd.order_detail as od
+ on od.order_id = fc.order_id and od.order_number = fc.order_number
+ left join sd.`order` as o on o.order_id = fc.order_id
+ left join (select ogds.order_id,
+ ogds.order_number,
+ GROUP_CONCAT(ogds.technology_number SEPARATOR '') AS technology_number,
+ ogds.glass_child AS concatenated_glass_child,
+ process AS processed_part,
+ ogds.child_width,
+ ogds.child_height,
+ ogds.group
+ from sd.order_glass_detail as ogds
+ where ogds.order_id = #{orderId}
+ GROUP BY order_id, order_number, ogds.glass_child, process,ogds.group) as ogdss
+ on fc.order_id = ogdss.order_id and ogdss.order_number = fc.order_number
+ where fc.order_id = #{orderId}
+ GROUP BY fc.process_id, ogdss.concatenated_glass_child, ogdss.processed_part,ogdss.group
+ order by fc.process_id, ogdss.technology_number)
+
+ UNION
+
+ (select fc.id,
+ fc.order_id,
+ fc.process_id,
+ o.customer_name,
+ o.project,
+ ogdss.technology_number,
+ ogd.glass_address,
+ ROUND(sum(fc.quantity) / (count(DISTINCT fc.technology_number))) as quantity,
+ # sum(ogd.total_area) as total_area,
+ ROUND(SUM(ogd.child_width*ogd.child_height*fc.quantity)/1000000/(count(DISTINCT fc.technology_number)),2) as total_area,
+ od.product_name,
+ ogdss.concatenated_glass_child as glass_child,
+ fc.founder,
+ date(fc.splitFrame_time) as splitFrame_time,
+ processed_part as process,
+ merge
+
+ from flow_card as fc
+ left join sd.order_glass_detail as ogd
+ on ogd.order_id = fc.order_id and ogd.order_number = fc.order_number and
+ ogd.technology_number = fc.technology_number
+ left join sd.order_detail as od
+ on od.order_id = fc.order_id and od.order_number = fc.order_number
+ left join sd.`order` as o on o.order_id = fc.order_id
+ left join (select ogds.order_id,
+ ogds.order_number,
+ GROUP_CONCAT(ogds.technology_number SEPARATOR '') AS technology_number,
+ ogds.glass_child,
+ GROUP_CONCAT(ogds.glass_child SEPARATOR '+') AS concatenated_glass_child,
+ SUBSTRING(process, LOCATE(bd.basic_name, process)) AS processed_part
+ from sd.order_glass_detail as ogds
+ left join sd.basic_data as bd on bd.nickname='stepC'
+ where ogds.order_id = #{orderId}
+ and LOCATE(bd.basic_name, ogds.process) > 0
+ GROUP BY order_id, order_number, ogds.group) as ogdss
+ on fc.order_id = ogdss.order_id and ogdss.order_number = fc.order_number
+ where fc.order_id = #{orderId}
+ GROUP BY fc.process_id, ogdss.technology_number
+ order by fc.process_id)
+ UNION
+ (select fc.id,
+ fc.order_id,
+ fc.process_id,
+ o.customer_name,
+ o.project,
+ ogdss.technology_number,
+ ogd.glass_address,
+ ROUND(sum(fc.quantity) / (count(DISTINCT fc.technology_number))) as quantity,
+ ROUND(SUM(ogd.child_width*ogd.child_height*fc.quantity)/1000000/(count(DISTINCT fc.technology_number)),2) as total_area,
+ od.product_name,
+ ogdss.concatenated_glass_child as glass_child,
+ fc.founder,
+ date(fc.splitFrame_time) as splitFrame_time,
+ processed_part as process,
+ merge
+
+ from flow_card as fc
+ left join sd.order_glass_detail as ogd
+ on ogd.order_id = fc.order_id and ogd.order_number = fc.order_number and
+ ogd.technology_number = fc.technology_number
+ left join sd.order_detail as od
+ on od.order_id = fc.order_id and od.order_number = fc.order_number
+ left join sd.`order` as o on o.order_id = fc.order_id
+ left join (select ogds.order_id,
+ ogds.order_number,
+ GROUP_CONCAT(pds.glass_sort SEPARATOR '') AS technology_number,
+ ogds.glass_child,
+ GROUP_CONCAT(ogds.glass_child SEPARATOR '+') AS concatenated_glass_child,
+ SUBSTRING(ogds.process, LOCATE(bd.basic_name, ogds.process)) AS processed_part
+ from sd.order_glass_detail as ogds
+ left join sd.order_detail as ods
+ on ods.order_id = ogds.order_id and ods.order_number = ogds.order_number
+ left join sd.product_detail as pds on pds.prod_id = ods.product_id and
+ pds.glass_sort =
+ ogds.technology_number
+ left join sd.basic_data as bd on bd.nickname='stepD'
+ where ogds.order_id = #{orderId}
+ GROUP BY order_id, order_number) as ogdss
+ on fc.order_id = ogdss.order_id and ogdss.order_number = fc.order_number
+ where fc.order_id = #{orderId}
+ GROUP BY fc.process_id
+ order by fc.process_id)) AS combined_results
+ where process is not null
+ and process != ""
+ GROUP BY order_id, process_id, technology_number, process
+ order by order_id, process_id, length(technology_number)) as result
+ LEFT JOIN (SELECT * from flow_card GROUP BY process_id,technology_number) as fcc
+ on result.process_id = fcc.process_id and result.technology_number = fcc.technology_number
+ </select>
+
+ <select id="getPrimaryList">
+ select o.customer_name,
+ o.project,
+ #{process} process,
+ od.edging_type,
+ #{glassChild} as glass_child,
+ od.product_name,
+ o.processing_note,
+ fc.process_id,
+ SUM(od.quantity) as quantity,
+ round(SUM(ogd.total_area), 2) as gross_area,
+ sum(od.weight) as weight,
+ #{technologyNumber} as technologyNumber,
+ concat(fc.process_id, '/', #{technologyNumber}) as processIdNumber,
+ concat('瀵瑰簲鎴戝徃鍗曞彿', o.batch) AS otherRemarks,
+ '' as qrcode,
+ ifnull(rack,"") as rack
+ from flow_card as fc
+ left join sd.order_glass_detail as ogd
+ on fc.order_id = ogd.order_id and fc.order_number = ogd.order_number and
+ fc.technology_number = ogd.technology_number
+ left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
+ left join sd.`order` as o on o.order_id = fc.order_id
+ left join sd.product as p on p.id = od.product_id
+ left join (select ogd.order_id,
+ ogd.order_number,
+ ogd.technology_number,
+ ogd.glass_child,
+ GROUP_CONCAT(glass_child SEPARATOR ' ') AS concatenated_glass_child
+ from sd.order_glass_detail as ogd
+ where ogd.order_id = #{orderId}
+ and position(ogd.technology_number in #{technologyNumber})
+ GROUP BY order_id, order_number) as ogdc
+ on ogdc.order_id = ogd.order_id and ogdc.order_number = ogd.order_number and
+ ogdc.technology_number = ogd.technology_number
+ where fc.process_id = #{processId}
+ and position(fc.technology_number in #{technologyNumber})
+ group by fc.process_id
+ </select>
+
+ <select id="getPrimaryLists">
+ select o.customer_name,
+ o.project,
+ #{process} process,
+ od.edging_type,
+ #{glassChild} as glass_child,
+ od.product_name,
+ o.processing_note,
+ fc.process_id,
+ #{quantity} as quantity,
+ round(od.width*od.height*#{quantity}/1000000, 2) as gross_area,
+ sum(od.weight) as weight,
+ #{technologyNumber} as technologyNumber,
+ concat(fc.process_id, '/', #{technologyNumber}) as processIdNumber,
+ concat('瀵瑰簲鎴戝徃鍗曞彿', o.batch) AS otherRemarks,
+ '' as qrcode
+ from flow_card as fc
+ left join sd.order_glass_detail as ogd
+ on fc.order_id = ogd.order_id and fc.order_number = ogd.order_number and
+ fc.technology_number = ogd.technology_number
+ left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
+ left join sd.`order` as o on o.order_id = fc.order_id
+ left join sd.product as p on p.id = od.product_id
+ left join (select ogd.order_id,
+ ogd.order_number,
+ ogd.technology_number,
+ ogd.glass_child,
+ GROUP_CONCAT(glass_child SEPARATOR ' ') AS concatenated_glass_child
+ from sd.order_glass_detail as ogd
+ where ogd.order_id = #{orderId}
+ and position(ogd.technology_number in #{technologyNumber})
+ GROUP BY order_id, order_number) as ogdc
+ on ogdc.order_id = ogd.order_id and ogdc.order_number = ogd.order_number and
+ ogdc.technology_number = ogd.technology_number
+ where fc.process_id = #{processId}
+ and position(fc.technology_number in #{technologyNumber})
+ group by fc.process_id
+ </select>
+
+ <select id="getDetailList">
+ select fc.order_number,
+ concat(IF(ROUND(ogd.child_width, 1) = FLOOR(ogd.child_width), FLOOR(ogd.child_width), ROUND(ogd.child_width, 1)), "*", IF(ROUND(child_height, 1) = FLOOR(child_height), FLOOR(child_height), ROUND(child_height, 1))) as child_width,
+ fc.quantity,
+ round(ogd.total_area, 2) as total_area,
+ od.perimeter,
+ if(od.bend_radius!=null || od.bend_radius!='',od.bend_radius,if(od.shape=2,JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')),'')) as bend_radius,
+ concat(IFNULL(od.processing_note, ''), IFNULL(od.remarks, '')) as remarks,
+ od.other_columns,
+ round(ogd.child_width) as width,
+ round(ogd.child_height) as height,
+ pd.separation,
+ fc.technology_number,
+ IFNULL(JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S02')),'') as mapNumber,
+ od.building_number
+ from flow_card as fc
+ left join sd.order_glass_detail as ogd
+ on fc.order_id = ogd.order_id and fc.order_number = ogd.order_number and
+ fc.technology_number = ogd.technology_number
+ left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
+ left join sd.product_detail as pd
+ on pd.prod_id = od.product_id and pd.glass_sort = ogd.technology_number
+ left join flow_card_sort as fcs
+ on fcs.process_id = fc.process_id and fcs.order_number = fc.order_number and
+ fcs.technology_number = fc.technology_number
+ and fcs.process = #{process}
+ where fc.process_id = #{processId}
+ and position(fc.technology_number in #{technologyNumber})
+ group by fc.process_id, fc.order_number
+ <choose>
+ <!-- 褰� landingSequence != 1 涓� flashback != 1 鏃讹紝鎸� landing_sequence 鍊掑簭 -->
+ <when test="landingSequence != 1 and flashback != 1">
+ ORDER BY landing_sequence,fc.id desc
+ </when>
+ <!-- landingSequence != 1 鏃讹紝浼樺厛鎸� landing_sequence 鍊掑簭 -->
+ <when test="landingSequence != 1">
+ ORDER BY landing_sequence DESC
+ </when>
+ <!-- flashback = 1 鏃舵搴� -->
+ <when test="flashback == 1">
+ ORDER BY
+ CASE
+ WHEN fcs.sort IS NOT NULL AND fcs.sort <> '' THEN fcs.sort
+ ELSE fc.order_number
+ END ASC
+ </when>
+ <!-- flashback != 1 鏃跺�掑簭 -->
+ <otherwise>
+ ORDER BY
+ CASE
+ WHEN fcs.sort IS NOT NULL AND fcs.sort <> '' THEN fcs.sort
+ ELSE fc.order_number
+ END DESC
+ </otherwise>
+ </choose>
+ </select>
+
+ <select id="getDetailLists">
+ select fc.order_number,
+ concat(round(ogd.child_width), "*", round(ogd.child_height)) as child_width,
+ fc.quantity,
+ round(ogd.total_area, 2) as total_area,
+ od.perimeter,
+ if(od.shape=2,JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')),od.bend_radius) as bend_radius,
+ concat(IFNULL(od.processing_note, ''), IFNULL(od.remarks, '')) as remarks,
+ od.other_columns,
+ round(ogd.child_width) as width,
+ round(ogd.child_height) as height,
+ pd.separation,
+ fc.technology_number,
+ IFNULL(JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S02')),'') as mapNumber,
+ od.building_number
+ from flow_card as fc
+ left join sd.order_glass_detail as ogd
+ on fc.order_id = ogd.order_id and fc.order_number = ogd.order_number and
+ fc.technology_number = ogd.technology_number
+ left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
+ left join sd.product_detail as pd
+ on pd.prod_id = od.product_id and pd.glass_sort = ogd.technology_number
+ left join flow_card_sort as fcs
+ on fcs.process_id = fc.process_id and fcs.order_number = fc.order_number and
+ fcs.technology_number = fc.technology_number
+ and fcs.process = #{process}
+ where fc.process_id = #{processId}
+ and position(fc.technology_number in #{technologyNumber})
+ and fc.order_sort = #{orderNumber}
+ group by fc.process_id, fc.order_number
+ order by IF(fcs.sort != NULL or fcs.sort != '', fcs.sort, fc.order_number)
+ </select>
+
+ <select id="getProcessList">
+ select *
+ from sd.order_process_detail
+ where process_id = #{processId}
+ and technology_number = #{technologyNumber}
+ group by process
+ </select>
+
+ <update id="updateInventory">
+ update flow_card
+ set inventory_quantity=#{completedQuantity}
+ where process_id = #{processId}
+ and order_number = #{orderNumber}
+ and technology_number = #{technologyNumber}
+ </update>
+
+ <!-- 澶嶉�夋淇敼鎺掔増鐘舵��-->
+ <update id="updateComposing">
+ update flow_card as fc
+ set fc.layout_status=1
+ where fc.process_id = #{processId}
+ </update>
+
+ <!-- 澶嶉�夋淇敼娴佺▼鍗″悎鏋�-->
+ <update id="updateProcessCardRack">
+ update flow_card as fc
+ set fc.rack=#{rack}
+ where fc.process_id = #{processId} and fc.technology_number=#{technologyNumber}
+ </update>
+
+ <select id="getPrintLabel">
+ select o.order_id,
+ c.customer_abbreviation as customer_name,
+ o.project,
+ od.building_number,
+ od.processing_note,
+ opd.o_width as width,
+ opd.o_height as height,
+ ogd.glass_child,
+ ogd.process,
+ e.type_name,
+ opd.stock_id,
+ opd.polys_id,
+ IFNULL(od.quantity,1) as quantity,
+ od.other_columns,
+ od.bend_radius,
+ ifnull(od.order_number,0) as heat_layout_id,
+ ifnull(a.id,0) as heat_layout_sort,
+ od.product_name,
+ opd.process_id
+ from pp.optimize_detail opd
+ left join sd.`order` o on SUBSTR(opd.process_id, 1, 10) = o.order_id
+ left join sd.order_detail od
+ on SUBSTR(opd.process_id, 1, 10) = od.order_id and opd.order_sort = od.order_number
+ left join sd.order_glass_detail ogd
+ on SUBSTR(opd.process_id, 1, 10) = ogd.order_id and opd.order_sort = ogd.order_number and
+ opd.layer = ogd.technology_number
+ left join sd.product p on od.product_id = p.id
+ left join sd.basic_glass_type e on e.type_id = p.type_id
+ left join sd.customer c on c.id = o.customer_id
+ left join
+ (select (@row_number := @row_number + 1) as id,process_id as process_id from (select process_id from pp.optimize_detail tt where project_no =#{projectNo} group by process_id) tt,(select @row_number := 0) as t) a
+ on a.process_id=opd.process_id
+ where opd.project_no = #{projectNo}
+ order by opd.stock_id,opd.polys_id
+ </select>
+
+ <select id="getPrintLabel2">
+ select o.order_id,
+ c.customer_abbreviation as customer_name,
+ o.project,
+ od.building_number,
+ od.processing_note,
+ ogd.child_width as width,
+ ogd.child_height as height,
+ ogd.glass_child,
+ ogd.process,
+ e.type_name,
+ opd.stock_id,
+ opd.polys_id,
+ od.quantity,
+ od.other_columns,
+ od.bend_radius,
+ opd.heat_layout_id,
+ opd.heat_layout_sort,
+ od.product_name,
+ opd.process_id
+ from pp.optimize_detail opd
+ left join sd.`order` o on SUBSTR(opd.process_id, 1, 10) = o.order_id
+ left join sd.order_detail od
+ on SUBSTR(opd.process_id, 1, 10) = od.order_id and opd.order_sort = od.order_number
+ left join sd.order_glass_detail ogd
+ on SUBSTR(opd.process_id, 1, 10) = ogd.order_id and opd.order_sort = ogd.order_number and
+ opd.layer = ogd.technology_number
+ left join sd.product p on od.product_id = p.id
+ left join sd.basic_glass_type e on e.type_id = p.type_id
+ left join sd.customer c on c.id = o.customer_id
+ where opd.project_no = #{projectNo} and o.order_id is not null
+ order by opd.heat_layout_id, opd.heat_layout_sort desc
+ </select>
+
+ <select id="getPrintLabel1">
+ select o.order_id,
+ o.project,
+ o.customer_id,
+ ogd.child_width as width,
+ ogd.child_height as height,
+ fc.quantity,
+ od.order_number as orderNumber,
+ fc.technology_number as technologyNumber,
+ ogd.glass_child,
+ ogd.process,
+ c.customer_abbreviation as customer_name,
+ ifnull(od.processing_note, '') as processing_note,
+ bgt.type_name,
+ od.other_columns,
+ od.building_number,
+ od.bend_radius
+ from sd.order as o
+ left join sd.order_detail as od on o.order_id = od.order_id
+ left join sd.order_glass_detail as ogd
+ on ogd.order_id = od.order_id and ogd.order_number = od.order_number
+ left join pp.flow_card as fc on o.order_id = fc.order_id and
+ od.order_number = fc.order_number and
+ fc.technology_number = ogd.technology_number
+ left join sd.product pt on pt.id = od.product_id
+ left join sd.customer c on c.id = o.customer_id
+ left join sd.basic_glass_type bgt on bgt.type_id = pt.type_id
+ where fc.process_id = #{processId}
+ and fc.technology_number = #{technologyNumber}
+ group by od.order_number, od.width, od.height
+ </select>
+
+ <select id="getPrintLabelDetail">
+ select o.order_id,
+ o.project,
+ o.customer_id,
+ ogd.child_width as width,
+ ogd.child_height as height,
+ fc.quantity,
+ od.order_number as orderNumber,
+ fc.technology_number as technologyNumber,
+ ogd.glass_child,
+ ogd.process,
+ c.customer_abbreviation as customer_name,
+ ifnull(od.processing_note, '') as processing_note,
+ bgt.type_name,
+ od.other_columns,
+ od.building_number,
+ od.bend_radius
+ from sd.order as o
+ left join sd.order_detail as od on o.order_id = od.order_id
+ left join sd.order_glass_detail as ogd
+ on ogd.order_id = od.order_id and ogd.order_number = od.order_number
+ left join pp.flow_card as fc on o.order_id = fc.order_id and
+ od.order_number = fc.order_number and
+ fc.technology_number = ogd.technology_number
+ left join sd.product pt on pt.id = od.product_id
+ left join sd.customer c on c.id = o.customer_id
+ left join sd.basic_glass_type bgt on bgt.type_id = pt.type_id
+ <where>
+ and fc.process_id = #{flowCard.processId}
+ and fc.order_number = #{flowCard.orderNumber}
+ <if test="flowCard.technologyNumber != null and flowCard.technologyNumber != ''">
+ and fc.technology_number = #{flowCard.technologyNumber}
+ </if>
+ </where>
+ group by od.order_number,fc.technology_number, od.width, od.height
+ </select>
+
+ <select id="printFlowCardDetailsMp">
+ SELECT fc.process_id,
+ fc.order_number,
+ fc.technology_number,
+ ogd.glass_address,
+ ogd.child_width,
+ ogd.child_height,
+ sum(fc.quantity) as quantity,
+ ROUND(ogd.child_width * ogd.child_height * fc.quantity / 1000000, 2) as area,
+ ifnull(fcs.sort, '') as sort,
+ ogd.glass_child,
+ #{process} as process,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')) AS glassNumber,
+ if(od.shape=2,JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')),od.bend_radius) as bend_radius
+ FROM flow_card AS fc
+ LEFT JOIN sd.order_glass_detail AS ogd ON fc.order_id = ogd.order_id
+ AND fc.order_number = ogd.order_number
+ AND fc.technology_number = ogd.technology_number
+ left join flow_card_sort as fcs
+ on fcs.process_id = fc.process_id and fcs.order_number = fc.order_number and
+ fcs.technology_number = fc.technology_number
+ and fcs.process = #{process}
+ left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
+ where fc.process_id = #{processId}
+ and position(fc.technology_number in #{technologyNumber})
+ GROUP BY fc.process_id,fc.order_number,fc.technology_number
+ order by IF(fcs.sort != NULL or fcs.sort != '', fcs.sort, fc.order_number)
+ </select>
+
+ <update id="printSortMp">
+ update flow_card
+ set sort = #{sort}
+ where process_id = #{processId}
+ and order_number = #{orderNumber}
+ and technology_number = #{technologyNumber}
+ </update>
+
+ <select id="selectType">
+ select *
+ from pp.tag_style
+ </select>
+ <select id="getPrintTitle">
+ select value
+ from pp.tag_style as a
+ where a.name = #{type}
+ </select>
+
+ <select id="getCustomLabelDetailMp">
+ select #{name}
+ from #{form}
+ where order_id = #{id}
+ </select>
+
+ <resultMap id="orderDetial" type="com.example.erp.entity.sd.OrderDetail">
+ <result column="width" property="width"/>
+ <result column="height" property="height"/>
+ <result column="order_id" property="order.orderId"/>
+ <result column="project" property="order.project"/>
+ <result column="customer_id" property="order.customerId"/>
+ <result column="customer_name" property="order.customerName"/>
+ <result column="order_type" property="order.orderType"/>
+ <result column="order_classify" property="order.orderClassify"/>
+ <result column="batch" property="order.batch"/>
+ <result column="icon" property="order.icon"/>
+ <result column="pack_type" property="order.packType"/>
+ <result column="delivery_date" property="order.deliveryDate"/>
+ <result column="al_type" property="order.alType"/>
+ <result column="money" property="order.money"/>
+ <result column="contract_id" property="order.contractId"/>
+ <result column="customer_batch" property="order.customerBatch"/>
+ <result column="contacts" property="order.contacts"/>
+ <result column="delivery_address" property="order.deliveryAddress"/>
+ <result column="processing_note" property="processingNote"/>
+ <result column="quantity" property="quantity"/>
+ <result column="edging_type" property="edgingType"/>
+ <result column="product_name" property="productName"/>
+ <result column="building_number" property="buildingNumber"/>
+ </resultMap>
+
+ <select id="getPrintCustomData">
+ select o.order_id as orderId,
+ project,
+ customer_id as customerId,
+ o.customer_name as customerName,
+ order_type as orderType,
+ order_classify as orderClassify,
+ batch,
+ o.icon,
+ pack_type as packType,
+ delivery_date as deliveryDate,
+ al_type as alType,
+ money,
+ contract_id as contractId,
+ customer_batch customerBatch,
+ contacts,
+ delivery_address as deliveryAddress,
+ od.processing_note as processingNote,
+ width,
+ height,
+ fc.quantity,
+ od.order_number as orderNumber,
+ fc.technology_number as technologyNumber,
+ od.building_number as buildingNumber,
+ od.product_name as productName,
+ od.edging_type as edgingType,
+ od.remarks,
+ c.customer_abbreviation as customerAbbreviation,
+ p.product_abbreviation as productAbbreviation,
+ fc.process_id as processId,
+ o.create_time as createTime,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')) AS glassNumber,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S02')) AS figureNumber,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S03')) AS colourCeramicGlaze,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')) AS remarks1,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S05')) AS remarks2,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S06')) AS remarks3,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S07')) AS remarks4,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S08')) AS remarks5,
+ p.remarks as filmNumber,
+ od.bend_radius as bendRadius,
+ od.other_columns,
+ ogd.glass_child as glassChild,
+ ogd.glass_address as glassAddress,
+ JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.color')) AS color
+ from sd.order as o
+ left join sd.order_detail as od on o.order_id = od.order_id
+ left join flow_card as fc on o.order_id = fc.order_id and
+ od.order_number = fc.order_number
+ left join sd.product as p on p.id = od.product_id
+ left join sd.customer as c on c.id = o.customer_id
+ left join sd.product_detail as pd on pd.prod_id = p.id and pd.sort_num = od.order_number and
+ pd.glass_sort = fc.technology_number
+ left join sd.order_glass_detail as ogd
+ on ogd.order_id = fc.order_id and ogd.order_number = fc.order_number and
+ ogd.technology_number = fc.technology_number
+ where fc.process_id = #{processId}
+ and fc.order_number = #{orderNumber}
+ group by od.order_number, width, height
+ order by fc.process_id
+ </select>
+
+ <select id="getPrintCustomData2">
+ select o.order_id as orderId,
+ project,
+ customer_id as customerId,
+ o.customer_name as customerName,
+ order_type as orderType,
+ order_classify as orderClassify,
+ batch,
+ o.icon,
+ pack_type as packType,
+ delivery_date as deliveryDate,
+ al_type as alType,
+ money,
+ contract_id as contractId,
+ customer_batch customerBatch,
+ contacts,
+ delivery_address as deliveryAddress,
+ od.processing_note as processingNote,
+ width,
+ height,
+ fc.quantity,
+ od.order_number as orderNumber,
+ fc.technology_number as technologyNumber,
+ od.building_number as buildingNumber,
+ od.product_name as productName,
+ od.edging_type as edgingType,
+ od.remarks,
+ c.customer_abbreviation as customerAbbreviation,
+ p.product_abbreviation as productAbbreviation,
+ fc.process_id as processId,
+ o.create_time as createTime,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')) AS glassNumber,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S02')) AS figureNumber,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S03')) AS colourCeramicGlaze,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')) AS remarks1,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S05')) AS remarks2,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S06')) AS remarks3,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S07')) AS remarks4,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S08')) AS remarks5,
+ p.remarks as filmNumber,
+ od.bend_radius as bendRadius,
+ od.other_columns,
+ ogd.glass_child as glassChild,
+ ogd.glass_address as glassAddress,
+ JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.color')) AS color
+ from sd.order as o
+ left join sd.order_detail as od on o.order_id = od.order_id
+ left join flow_card as fc on o.order_id = fc.order_id and
+ od.order_number = fc.order_number
+ left join sd.product as p on p.id = od.product_id
+ left join sd.customer as c on c.id = o.customer_id
+ left join sd.product_detail as pd on pd.prod_id = p.id and pd.sort_num = od.order_number and
+ pd.glass_sort = fc.technology_number
+ left join sd.order_glass_detail as ogd
+ on ogd.order_id = fc.order_id and ogd.order_number = fc.order_number and
+ ogd.technology_number = fc.technology_number
+ where fc.process_id = #{processId}
+ group by od.order_number
+ order by fc.process_id
+ </select>
+
+ <select id="selectReplenishPrintMp">
+ select fc.id,
+ fc.order_id,
+ fc.process_id,
+ o.customer_name,
+ o.project,
+ fc.order_number,
+ ogd.technology_number,
+ ogd.glass_address,
+ pl.patch_num,
+ pl.patch_area,
+ pl.responsible_team,
+ pl.responsible_equipment,
+ pl.responsible_personnel,
+ pl.patch_type,
+ pl.patch_reason,
+ pl.patch_processes,
+ od.product_name,
+ ogd.glass_child,
+ fc.print_status,
+ pl.reporting_work_id,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')) AS glassNumber,
+ pl.patch_id
+
+ from flow_card as fc
+ left join sd.order_glass_detail as ogd
+ on ogd.order_id = fc.order_id and ogd.order_number = fc.order_number and
+ ogd.technology_number = fc.technology_number
+ left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
+ left join sd.`order` as o on o.order_id = fc.order_id
+ left join patch_log as pl on pl.order_id = fc.order_id and pl.process_id = fc.process_id and
+ pl.order_sort = fc.order_number and
+ pl.technology_number = fc.technology_number
+ where date(pl.create_time)>=#{selectTime1} and date(pl.create_time) <= #{selectTime2}
+ and pl.review_status > 0
+ GROUP BY pl.id, fc.process_id, ogd.technology_number
+ order by pl.id desc, fc.process_id, ogd.technology_number
+ </select>
+
+ <select id="getRepairPrintCustomData">
+ select o.order_id as orderId,
+ o.project,
+ o.customer_id as customerId,
+ o.customer_name as customerName,
+ o.order_type as orderType,
+ o.order_classify as orderClassify,
+ o.batch,
+ o.icon,
+ o.pack_type as packType,
+ o.delivery_date as deliveryDate,
+ o.al_type as alType,
+ o.money,
+ contract_id as contractId,
+ customer_batch customerBatch,
+ contacts,
+ o.delivery_address as deliveryAddress,
+ od.processing_note as processingNote,
+ od.width,
+ od.height,
+ pl.patch_num as quantity,
+ pl.order_sort as orderNumber,
+ pl.technology_number as technologyNumber,
+ od.building_number as buildingNumber,
+ od.product_name as productName,
+ od.edging_type as edgingType,
+ p.remarks,
+ c.customer_abbreviation as customerAbbreviation,
+ p.product_abbreviation as productAbbreviation,
+ fc.process_id as processId,
+ o.create_time as createTime,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')) AS glassNumber,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S02')) AS figureNumber,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S03')) AS colourCeramicGlaze,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')) AS remarks1,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S05')) AS remarks2,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S06')) AS remarks3,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S07')) AS remarks4,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S08')) AS remarks5,
+ p.remarks as filmNumber,
+ od.bend_radius as bendRadius,
+ CONCAT(
+ TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(width AS CHAR))),
+ ' X ',
+ TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(height AS CHAR))),
+ ' = ',pl.patch_num ) as size,
+
+ CONCAT(
+ od.order_number,') ',
+ TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(width AS CHAR))),
+ ' X ',
+ TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(height AS CHAR))),
+ ' = ',pl.patch_num ) as numberSize
+ from sd.order as o
+ left join sd.order_detail as od on o.order_id = od.order_id
+ left join flow_card as fc on o.order_id = fc.order_id and
+ od.order_number = fc.order_number
+ left join patch_log as pl on pl.process_id = fc.process_id and pl.order_sort = fc.order_number and
+ pl.technology_number = fc.technology_number
+ left join sd.product as p on p.id = od.product_id
+ left join sd.customer as c on c.id = o.customer_id
+ left join sd.product_detail as pd on pd.prod_id = p.id and pd.sort_num = od.order_number
+ where pl.process_id = #{processId}
+ and pl.order_sort=#{orderNumber}
+ and pl.technology_number = #{technologyNumber}
+ and pl.reporting_work_id = #{reportingWorkId}
+ group by od.order_number, width, height
+ order by IF(fc.sort != NULL or fc.sort != '', fc.sort, pl.order_sort)
+ </select>
+
+ <select id="getGlassNumber">
+ select other_columns
+ from sd.order_detail as od
+ left join flow_card as fc on od.order_id = fc.order_id and od.order_number = fc.order_number
+ where fc.process_id = #{processId}
+ and POSITION(fc.technology_number in #{technologyNumber})
+ GROUP BY other_columns
+ order by IF(fc.sort != NULL or fc.sort != '', fc.sort, fc.order_number)
+ </select>
+
+ <update id="updatePrintStateMp">
+ update pp.flow_card
+ set print_status = print_status + 1
+ where process_id = #{processId}
+ and technology_number = #{technologyNumber}
+ </update>
+
+ <select id="printFlowCardOrderSortMp">
+ SELECT fc.process_id,
+ fc.order_number,
+ fc.technology_number,
+ ogd.glass_address,
+ ogd.child_width,
+ ogd.child_height,
+ fc.quantity,
+ ROUND(ogd.child_width * ogd.child_height * fc.quantity / 1000000, 2) as area,
+ fc.sort,
+ ogd.process,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')) AS glassNumber
+ FROM flow_card AS fc
+ LEFT JOIN sd.order_glass_detail AS ogd ON fc.order_id = ogd.order_id
+ AND fc.order_number = ogd.order_number
+ AND fc.technology_number = ogd.technology_number
+ left join sd.order_detail as od on fc.order_id = od.order_id and fc.order_number = od.order_number
+ where fc.order_id = #{orderId}
+ order by IF(fc.sort != NULL or fc.sort != '', fc.sort, fc.technology_number)
+ </select>
+
+ <update id="printOrderSortMp">
+ update flow_card
+ set sort = #{sort}
+ where process_id = #{processId}
+ and order_number = #{orderNumber}
+ and technology_number = #{technologyNumber}
+ </update>
+
+ <select id="getPrimaryListMerge">
+ select o.customer_name,
+ o.project,
+ ogd.process,
+ od.edging_type,
+ ogdc.concatenated_glass_child as glass_child,
+ od.product_name,
+ o.processing_note,
+ fc.process_id,
+ SUM(od.quantity) as quantity,
+ round(SUM(ogd.total_area), 2) as gross_area,
+ sum(od.weight) as weight,
+ #{technologyNumber} as technologyNumber,
+ concat(fc.process_id, '/', #{technologyNumber}) as processIdNumber,
+ concat('瀵瑰簲鎴戝徃鍗曞彿', o.batch) AS otherRemarks
+ from flow_card as fc
+ left join sd.order_glass_detail as ogd
+ on fc.order_id = ogd.order_id and fc.order_number = ogd.order_number and
+ fc.technology_number = ogd.technology_number
+ left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
+ left join sd.`order` as o on o.order_id = fc.order_id
+ left join sd.product as p on p.id = od.product_id
+ left join (select ogd.order_id,
+ ogd.order_number,
+ ogd.technology_number,
+ ogd.glass_child,
+ GROUP_CONCAT(glass_child SEPARATOR ' ') AS concatenated_glass_child
+ from sd.order_glass_detail as ogd
+ where ogd.order_id = #{orderId}
+ and position(ogd.technology_number in #{technologyNumber})
+ GROUP BY order_id, order_number) as ogdc
+ on ogdc.order_id = ogd.order_id and ogdc.order_number = ogd.order_number and
+ ogdc.technology_number = ogd.technology_number
+ where fc.process_id = #{processId}
+ and position(fc.technology_number in #{technologyNumber})
+ and ogdc.concatenated_glass_child is NOT null
+ group by fc.process_id, fc.technology_number
+ </select>
+
+ <select id="selectorderOtherMoney">
+ select *
+ from sd.basic_other_money
+ where id between 21 and 35
+ </select>
+
+ <select id="selectReworkPrintMp">
+ select fc.id,
+ fc.order_id,
+ fc.process_id,
+ o.customer_name,
+ o.project,
+ fc.order_number,
+ ogd.technology_number,
+ ogd.glass_address,
+ pl.rework_num,
+ pl.rework_area,
+ pl.rework_team,
+ pl.responsible_equipment,
+ pl.responsible_personnel,
+ pl.rework_type,
+ pl.rework_reason,
+ pl.rework_processes,
+ od.product_name,
+ ogd.glass_child,
+ pl.reporting_work_id,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')) AS glassNumber
+ from flow_card as fc
+ left join sd.order_glass_detail as ogd
+ on ogd.order_id = fc.order_id and ogd.order_number = fc.order_number and
+ ogd.technology_number = fc.technology_number
+ left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
+ left join sd.`order` as o on o.order_id = fc.order_id
+ left join rework as pl on pl.order_id = fc.order_id and pl.process_id = fc.process_id and
+ pl.order_sort = fc.order_number and
+ pl.technology_number = fc.technology_number
+ where date(pl.create_time)>=#{selectTime1} and date(pl.create_time) <= #{selectTime2}
+ GROUP BY fc.process_id,fc.order_number, ogd.technology_number, pl.reporting_work_id
+ order by pl.id desc, fc.process_id, ogd.technology_number
+ </select>
+
+ <select id="getDetailListLike">
+ select fc.order_number,
+ concat(IF(ROUND(ogd.child_width, 1) = FLOOR(ogd.child_width), FLOOR(ogd.child_width), ROUND(ogd.child_width, 1)), "*", IF(ROUND(child_height, 1) = FLOOR(child_height), FLOOR(child_height), ROUND(child_height, 1))) as child_width,
+ fc.quantity,
+ round(ogd.total_area, 2) as total_area,
+ od.perimeter,
+ if(od.bend_radius!=null || od.bend_radius!='',od.bend_radius,if(od.shape=2,JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')),'')) as bend_radius,
+ concat(IFNULL(od.processing_note, ''), IFNULL(od.remarks, '')) as remarks,
+ od.other_columns,
+ round(ogd.child_width) as width,
+ round(ogd.child_height) as height,
+ pd.separation,
+ fc.technology_number,
+ IFNULL(JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S02')),'') as mapNumber,
+ od.building_number
+ from flow_card as fc
+ left join sd.order_glass_detail as ogd
+ on fc.order_id = ogd.order_id and fc.order_number = ogd.order_number and
+ fc.technology_number = ogd.technology_number
+ left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
+ left join sd.product_detail as pd
+ on pd.prod_id = od.product_id and pd.glass_sort = ogd.technology_number
+ left join flow_card_sort as fcs
+ on fcs.process_id = fc.process_id and fcs.order_number = fc.order_number and
+ fcs.technology_number = fc.technology_number
+ and fcs.process = #{process}
+ where fc.process_id = #{processId}
+ and position(fc.technology_number in #{technologyNumber})
+ group by fc.process_id, fc.order_number, fc.technology_number
+ <choose>
+ <when test="landingSequence != 1 and flashback != 1">
+ ORDER BY landing_sequence,fc.id desc
+ </when>
+ <!-- landingSequence != 1 鏃讹紝浼樺厛鎸� landing_sequence 鍊掑簭 -->
+ <when test="landingSequence != 1">
+ ORDER BY landing_sequence DESC
+ </when>
+ <!-- flashback = 1 鏃舵搴� -->
+ <when test="flashback == 1">
+ ORDER BY
+ CASE
+ WHEN fcs.sort IS NOT NULL AND fcs.sort <> '' THEN fcs.sort
+ ELSE fc.order_number
+ END ASC
+ </when>
+ <!-- flashback != 1 鏃跺�掑簭 -->
+ <otherwise>
+ ORDER BY
+ CASE
+ WHEN fcs.sort IS NOT NULL AND fcs.sort <> '' THEN fcs.sort
+ ELSE fc.order_number
+ END DESC
+ </otherwise>
+ </choose>
+ </select>
+
+ <select id="getDetailListMerge">
+ select fc.order_number,
+ concat(IF(ROUND(ogd.child_width, 1) = FLOOR(ogd.child_width), FLOOR(ogd.child_width), ROUND(ogd.child_width, 1)), "*", IF(ROUND(child_height, 1) = FLOOR(child_height), FLOOR(child_height), ROUND(child_height, 1))) as child_width,
+ sum(fc.quantity) as quantity,
+ round(ogd.total_area, 2) as total_area,
+ od.perimeter,
+ if(od.bend_radius!=null || od.bend_radius!='',od.bend_radius,if(od.shape=2,JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')),'')) as bend_radius,
+ concat(IFNULL(od.processing_note, ''), IFNULL(od.remarks, '')) as remarks,
+ od.other_columns,
+ round(ogd.child_width) as width,
+ round(ogd.child_height) as height,
+ pd.separation,
+ fc.technology_number,
+ IFNULL(JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S02')),'') as mapNumber,
+ od.building_number,
+ fc.merge as merge
+ from flow_card as fc
+ left join sd.order_glass_detail as ogd
+ on fc.order_id = ogd.order_id and fc.order_number = ogd.order_number and
+ fc.technology_number = ogd.technology_number
+ left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
+ left join sd.product_detail as pd
+ on pd.prod_id = od.product_id and pd.glass_sort = ogd.technology_number
+ left join flow_card_sort as fcs
+ on fcs.process_id = fc.process_id and fcs.order_number = fc.order_number and
+ fcs.technology_number = fc.technology_number
+ and fcs.process = #{process}
+ where fc.process_id = #{processId} and fc.`merge`=1
+ group by fc.process_id, fc.order_number
+ <choose>
+ <when test="landingSequence != 1 and flashback != 1">
+ ORDER BY landing_sequence,fc.id desc
+ </when>
+ <!-- landingSequence != 1 鏃讹紝浼樺厛鎸� landing_sequence 鍊掑簭 -->
+ <when test="landingSequence != 1">
+ ORDER BY landing_sequence DESC
+ </when>
+ <!-- flashback = 1 鏃舵搴� -->
+ <when test="flashback == 1">
+ ORDER BY
+ CASE
+ WHEN fcs.sort IS NOT NULL AND fcs.sort <> '' THEN fcs.sort
+ ELSE fc.order_number
+ END ASC
+ </when>
+ <!-- flashback != 1 鏃跺�掑簭 -->
+ <otherwise>
+ ORDER BY
+ CASE
+ WHEN fcs.sort IS NOT NULL AND fcs.sort <> '' THEN fcs.sort
+ ELSE fc.order_number
+ END DESC
+ </otherwise>
+ </choose>
+ </select>
+
+ <select id="getDetailListLikes">
+ select fc.order_number,
+ concat(round(ogd.child_width), "*", round(ogd.child_height)) as child_width,
+ count(*) as quantity,
+ round(ogd.child_width*ogd.child_height*count(*)/1000000, 2) as total_area,
+ round((ogd.child_width+ogd.child_height)*2*count(*)/1000, 2) as perimeter,
+ if(od.shape=2,JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')),od.bend_radius) as bend_radius,
+ concat(IFNULL(od.processing_note, ''), IFNULL(od.remarks, '')) as remarks,
+ od.other_columns,
+ round(ogd.child_width) as width,
+ round(ogd.child_height) as height,
+ pd.separation,
+ fc.technology_number,
+ IFNULL(JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S02')),'') as mapNumber,
+ od.building_number
+ from optimize_detail opt left join flow_card as fc on opt.process_id = fc.process_id and opt.order_sort = fc.order_number and
+ opt.layer = fc.technology_number
+ left join sd.order_glass_detail as ogd
+ on fc.order_id = ogd.order_id and fc.order_number = ogd.order_number and
+ fc.technology_number = ogd.technology_number
+ left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
+ left join sd.product_detail as pd
+ on pd.prod_id = od.product_id and pd.glass_sort = ogd.technology_number
+ left join flow_card_sort as fcs
+ on fcs.process_id = fc.process_id and fcs.order_number = fc.order_number and
+ fcs.technology_number = fc.technology_number
+ and fcs.process = #{process}
+ where opt.process_id = #{processId} and opt.project_no=#{printProject}
+ and position(fc.technology_number in #{technologyNumber})
+ group by fc.process_id, fc.order_number, fc.technology_number
+ order by IF(fcs.sort != NULL or fcs.sort != '', fcs.sort, fc.order_number)
+ </select>
+
+ <select id="getPrimaryListMergeRefund">
+ select o.customer_name,
+ o.project,
+ ogd.process,
+ od.edging_type,
+ ogdc.concatenated_glass_child as glass_child,
+ od.product_name,
+ o.processing_note,
+ fc.process_id,
+ pl.patch_num as quantity,
+ round(SUM(ogd.total_area), 2) as gross_area,
+ sum(od.weight) as weight,
+ #{technologyNumber} as technologyNumber,
+ concat(fc.process_id, '/', #{technologyNumber}) as processIdNumber
+ from flow_card as fc
+ left join sd.order_glass_detail as ogd
+ on fc.order_id = ogd.order_id and fc.order_number = ogd.order_number and
+ fc.technology_number = ogd.technology_number
+ left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
+ left join sd.`order` as o on o.order_id = fc.order_id
+ left join sd.product as p on p.id = od.product_id
+ left join (select ogd.order_id,
+ ogd.order_number,
+ ogd.technology_number,
+ ogd.glass_child,
+ GROUP_CONCAT(glass_child SEPARATOR ' ') AS concatenated_glass_child
+ from sd.order_glass_detail as ogd
+ where ogd.order_id = #{orderId}
+ and ogd.order_number = #{orderNumber}
+ and position(ogd.technology_number in #{technologyNumber})
+ GROUP BY order_id, order_number) as ogdc
+ on ogdc.order_id = ogd.order_id and ogdc.order_number = ogd.order_number and
+ ogdc.technology_number = ogd.technology_number
+ left join patch_log as pl on pl.process_id = fc.process_id and pl.order_sort = fc.order_number and
+ pl.technology_number = fc.technology_number
+ where fc.process_id = #{processId}
+ and fc.order_number = #{orderNumber}
+ and position(fc.technology_number in #{technologyNumber})
+ and ogdc.concatenated_glass_child is NOT null
+ group by fc.process_id, fc.technology_number
+ </select>
+
+ <select id="getDetailListRefund">
+ select fc.order_number,
+ concat(round(ogd.child_width), "*", round(ogd.child_height)) as child_width,
+ sum(pl.patch_num) as quantity,
+ round(ogd.total_area, 2) as total_area,
+ od.perimeter,
+ if(od.bend_radius!=null || od.bend_radius!='',od.bend_radius,if(od.shape=2,JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')),'')) as bend_radius,
+ concat(IFNULL(od.processing_note, ''), IFNULL(od.remarks, '')) as remarks,
+ od.other_columns,
+ round(ogd.child_width) as width,
+ round(ogd.child_height) as height,
+ pd.separation,
+ fc.technology_number,
+ pl.patch_type,
+ pl.patch_reason,
+ pl.patch_processes,
+ pl.responsible_team,
+ pl.responsible_personnel
+ from flow_card as fc
+ left join sd.order_glass_detail as ogd
+ on fc.order_id = ogd.order_id and fc.order_number = ogd.order_number and
+ fc.technology_number = ogd.technology_number
+ left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
+ left join sd.product_detail as pd
+ on pd.prod_id = od.product_id and pd.glass_sort = ogd.technology_number
+ left join patch_log as pl on pl.process_id = fc.process_id and pl.order_sort = fc.order_number and
+ pl.technology_number = fc.technology_number
+ where fc.process_id = #{processId}
+ and fc.order_number = #{orderNumber}
+ and position(fc.technology_number in #{technologyNumber})
+ and pl.reporting_work_id = #{reportingWorkId}
+ and pl.patch_reason = #{patchReason}
+ group by fc.process_id, fc.order_number, fc.technology_number,pl.id
+ order by IF(sort != NULL and sort != '', sort, fc.order_number)
+ </select>
+
+ <select id="getPrimaryListRefund">
+ select o.customer_name,
+ o.project,
+ ogd.process,
+ od.edging_type,
+ ogd.glass_child,
+ od.product_name,
+ o.processing_note,
+ fc.process_id,
+ pl.patch_num as quantity,
+ round(SUM(ogd.total_area), 2) as gross_area,
+ sum(od.weight) as weight,
+ #{technologyNumber} as technologyNumber,
+ concat(fc.process_id, '/', #{technologyNumber}) as processIdNumber,
+ dd.breakage_type,
+ dd.breakage_reason,
+ dd.responsible_process,
+ dd.responsible_team,
+ concat('瀵瑰簲鎴戝徃鍗曞彿', o.batch) AS otherRemarks,
+ dd.responsible_personnel,
+ #{mergeTechnologyNumber} as mergeTechnologyNumber,
+ pl.patch_id
+ from flow_card as fc
+ left join sd.order_glass_detail as ogd
+ on fc.order_id = ogd.order_id and fc.order_number = ogd.order_number and
+ fc.technology_number = ogd.technology_number
+ left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
+ left join sd.`order` as o on o.order_id = fc.order_id
+ left join sd.product as p on p.id = od.product_id
+ left join (select ogd.order_id,
+ ogd.order_number,
+ ogd.technology_number,
+ ogd.glass_child,
+ GROUP_CONCAT(glass_child SEPARATOR ' ') AS concatenated_glass_child
+ from sd.order_glass_detail as ogd
+ where ogd.order_id = #{orderId}
+ and ogd.order_number = #{orderNumber}
+ and position(ogd.technology_number in #{technologyNumber})
+ GROUP BY order_id, order_number) as ogdc
+ on ogdc.order_id = ogd.order_id and ogdc.order_number = ogd.order_number and
+ ogdc.technology_number = ogd.technology_number
+ left join patch_log as pl on pl.process_id = fc.process_id and pl.order_sort = fc.order_number and
+ pl.technology_number = fc.technology_number
+ left join pp.reporting_work as rw on rw.order_id = fc.order_id and rw.process_id = fc.process_id
+ left join pp.damage_details as dd
+ on rw.reporting_work_id = dd.reporting_work_id and dd.order_number = fc.order_number and
+ dd.technology_number = fc.technology_number
+ where fc.process_id = #{processId}
+ and fc.order_number = #{orderNumber}
+ and fc.technology_number = #{technologyNumber}
+ and pl.reporting_work_id = #{reportingWorkId}
+ and dd.breakage_reason = #{patchReason}
+ group by fc.process_id, fc.technology_number
+ </select>
+
+ <select id="getDetailListLikeRefund">
+ select fc.order_number,
+ concat(round(ogd.child_width), "*", round(ogd.child_height)) as child_width,
+ pl.patch_num as quantity,
+ round(ogd.total_area, 2) as total_area,
+ od.perimeter,
+ od.bend_radius,
+ concat(IFNULL(od.processing_note, ''), IFNULL(od.remarks, '')) as remarks,
+ od.other_columns,
+ round(ogd.child_width) as width,
+ round(ogd.child_height) as height,
+ pd.separation,
+ fc.technology_number
+ from flow_card as fc
+ left join sd.order_glass_detail as ogd
+ on fc.order_id = ogd.order_id and fc.order_number = ogd.order_number and
+ fc.technology_number = ogd.technology_number
+ left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
+ left join sd.product_detail as pd
+ on pd.prod_id = od.product_id and pd.glass_sort = ogd.technology_number
+ left join patch_log as pl on pl.process_id = fc.process_id and pl.order_sort = fc.order_number and
+ pl.technology_number = fc.technology_number
+ where fc.process_id = #{processId}
+ and fc.order_number = #{orderNumber}
+ and position(fc.technology_number in #{technologyNumber})
+ and pl.reporting_work_id = #{reportingWorkId}
+ group by fc.process_id, fc.order_number, fc.technology_number
+ order by IF(sort != NULL and sort != '', sort, fc.order_number)
+ </select>
+
+ <select id="getPrimaryListRework">
+ select o.customer_name,
+ o.project,
+ ogd.process,
+ od.edging_type,
+ ogd.glass_child,
+ od.product_name,
+ o.processing_note,
+ fc.process_id,
+ pl.rework_num as quantity,
+ round(SUM(ogd.total_area), 2) as gross_area,
+ sum(od.weight) as weight,
+ #{technologyNumber} as technologyNumber,
+ concat(fc.process_id, '/', #{technologyNumber}) as processIdNumber,
+ dd.breakage_type,
+ dd.breakage_reason,
+ dd.responsible_process,
+ dd.responsible_team,
+ concat('瀵瑰簲鎴戝徃鍗曞彿', o.batch) AS otherRemarks,
+ dd.responsible_personnel,
+ pl.rework_id as patch_id
+ from flow_card as fc
+ left join sd.order_glass_detail as ogd
+ on fc.order_id = ogd.order_id and fc.order_number = ogd.order_number and
+ fc.technology_number = ogd.technology_number
+ left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
+ left join sd.`order` as o on o.order_id = fc.order_id
+ left join sd.product as p on p.id = od.product_id
+ left join (select ogd.order_id,
+ ogd.order_number,
+ ogd.technology_number,
+ ogd.glass_child,
+ GROUP_CONCAT(glass_child SEPARATOR ' ') AS concatenated_glass_child
+ from sd.order_glass_detail as ogd
+ where ogd.order_id = #{orderId}
+ and ogd.order_number = #{orderNumber}
+ and position(ogd.technology_number in #{technologyNumber})
+ GROUP BY order_id, order_number) as ogdc
+ on ogdc.order_id = ogd.order_id and ogdc.order_number = ogd.order_number and
+ ogdc.technology_number = ogd.technology_number
+ left join rework as pl on pl.process_id = fc.process_id and pl.order_sort = fc.order_number and
+ pl.technology_number = fc.technology_number
+ left join pp.reporting_work as rw on rw.order_id = fc.order_id and rw.process_id = fc.process_id
+ left join pp.damage_details as dd
+ on rw.reporting_work_id = dd.reporting_work_id and dd.order_number = fc.order_number and
+ dd.technology_number = fc.technology_number
+ where fc.process_id = #{processId}
+ and fc.order_number = #{orderNumber}
+ and fc.technology_number = #{technologyNumber}
+ and rw.reporting_work_id = #{reportingWorkId}
+ group by fc.process_id, fc.technology_number
+ </select>
+
+ <select id="getDetailListRework">
+ select fc.order_number,
+ concat(round(ogd.child_width), "*", round(ogd.child_height)) as child_width,
+ (pl.rework_num) as quantity,
+ round(ogd.total_area, 2) as total_area,
+ od.perimeter,
+ if(od.shape=2,JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')),od.bend_radius) as bend_radius,
+ concat(od.processing_note, od.remarks) as remarks,
+ od.other_columns,
+ round(ogd.child_width) as width,
+ round(ogd.child_height) as height,
+ pd.separation,
+ fc.technology_number,
+ pl.rework_type as patch_type,
+ pl.rework_reason as patch_reason,
+ pl.rework_processes as patch_processes,
+ pl.responsible_team,
+ pl.rework_team,
+ pl.responsible_personnel
+ from flow_card as fc
+ left join sd.order_glass_detail as ogd
+ on fc.order_id = ogd.order_id and fc.order_number = ogd.order_number and
+ fc.technology_number = ogd.technology_number
+ left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
+ left join sd.product_detail as pd
+ on pd.prod_id = od.product_id and pd.glass_sort = ogd.technology_number
+ left join rework as pl on pl.process_id = fc.process_id and pl.order_sort = fc.order_number and
+ pl.technology_number = fc.technology_number
+ where fc.process_id = #{processId}
+ and fc.order_number = #{orderNumber}
+ and position(fc.technology_number in #{technologyNumber})
+ and pl.reporting_work_id = #{reportingWorkId}
+ group by fc.process_id, fc.order_number, fc.technology_number
+ order by IF(sort != NULL and sort != '', sort, fc.order_number)
+ </select>
+
+ <select id="getPrimaryListMergeRework">
+ select o.customer_name,
+ o.project,
+ ogd.process,
+ od.edging_type,
+ ogdc.concatenated_glass_child as glass_child,
+ od.product_name,
+ o.processing_note,
+ fc.process_id,
+ pl.rework_num as quantity,
+ round(SUM(ogd.total_area), 2) as gross_area,
+ sum(od.weight) as weight,
+ #{technologyNumber} as technologyNumber,
+ concat(fc.process_id, '/', #{technologyNumber}) as processIdNumber
+ from flow_card as fc
+ left join sd.order_glass_detail as ogd
+ on fc.order_id = ogd.order_id and fc.order_number = ogd.order_number and
+ fc.technology_number = ogd.technology_number
+ left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
+ left join sd.`order` as o on o.order_id = fc.order_id
+ left join sd.product as p on p.id = od.product_id
+ left join (select ogd.order_id,
+ ogd.order_number,
+ ogd.technology_number,
+ ogd.glass_child,
+ GROUP_CONCAT(glass_child SEPARATOR ' ') AS concatenated_glass_child
+ from sd.order_glass_detail as ogd
+ where ogd.order_id = #{orderId}
+ and ogd.order_number = #{orderNumber}
+ and position(ogd.technology_number in #{technologyNumber})
+ GROUP BY order_id, order_number) as ogdc
+ on ogdc.order_id = ogd.order_id and ogdc.order_number = ogd.order_number and
+ ogdc.technology_number = ogd.technology_number
+ left join rework as pl on pl.process_id = fc.process_id and pl.order_sort = fc.order_number and
+ pl.technology_number = fc.technology_number
+ where fc.process_id = #{processId}
+ and fc.order_number = #{orderNumber}
+ and position(fc.technology_number in #{technologyNumber})
+ and ogdc.concatenated_glass_child is NOT null
+ group by fc.process_id, fc.technology_number
+ </select>
+
+ <select id="getDetailListLikeRework">
+ select fc.order_number,
+ concat(round(ogd.child_width), "*", round(ogd.child_height)) as child_width,
+ pl.rework_num as quantity,
+ round(ogd.total_area, 2) as total_area,
+ od.perimeter,
+ od.bend_radius,
+ concat(od.processing_note, od.remarks) as remarks,
+ od.other_columns,
+ round(ogd.child_width) as width,
+ round(ogd.child_height) as height,
+ pd.separation,
+ fc.technology_number
+ from flow_card as fc
+ left join sd.order_glass_detail as ogd
+ on fc.order_id = ogd.order_id and fc.order_number = ogd.order_number and
+ fc.technology_number = ogd.technology_number
+ left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
+ left join sd.product_detail as pd
+ on pd.prod_id = od.product_id and pd.glass_sort = ogd.technology_number
+ left join rework as pl on pl.process_id = fc.process_id and pl.order_sort = fc.order_number and
+ pl.technology_number = fc.technology_number
+ where fc.process_id = #{processId}
+ and fc.order_number = #{orderNumber}
+ and position(fc.technology_number in #{technologyNumber})
+ and pl.reporting_work_id = #{reportingWorkId}
+ group by fc.process_id, fc.order_number, fc.technology_number
+ order by IF(sort != NULL or sort != '', sort, fc.order_number)
+ </select>
+
+ <select id="getPrintCustomDataSemi">
+ select o.order_id as orderId,
+ project,
+ customer_id as customerId,
+ o.customer_name as customerName,
+ order_type as orderType,
+ order_classify as orderClassify,
+ batch,
+ o.icon,
+ pack_type as packType,
+ delivery_date as deliveryDate,
+ al_type as alType,
+ money,
+ contract_id as contractId,
+ customer_batch customerBatch,
+ contacts,
+ delivery_address as deliveryAddress,
+ od.processing_note as processingNote,
+ ogd.child_width as width,
+ ogd.child_height as height,
+ fc.quantity,
+ CONCAT(ogd.child_width , ' X ', ogd.child_height ,' = ',fc.quantity ) as size,
+ od.order_number as orderNumber,
+ fc.technology_number as technologyNumber,
+ od.building_number as buildingNumber,
+ od.product_name as productName,
+ od.edging_type as edgingType,
+ od.remarks,
+ c.customer_abbreviation as customerAbbreviation,
+ p.product_abbreviation as productAbbreviation,
+ CONCAT(fc.process_id, '/', fc.technology_number) as processId,
+ SUBSTRING(fc.process_id,12 ) as processIdAD ,/*-娴佺▼鍗$畝鍐�-*/
+ o.create_time as createTime,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')) AS glassNumber,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S02')) AS figureNumber,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S03')) AS colourCeramicGlaze,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')) AS remarks1,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S05')) AS remarks2,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S06')) AS remarks3,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S07')) AS remarks4,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S08')) AS remarks5,
+ p.remarks as filmNumber,
+ od.bend_radius as bendRadius,
+ ogd.glass_child as glassChild,
+ ogd.glass_address as glassAddress,
+ JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.color')) AS color,
+ CONCAT(
+ od.order_number,') ',
+ TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(ogd.child_width AS CHAR))),
+ ' X ',
+ TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(ogd.child_height AS CHAR))),
+ ' = ',fc.quantity ) as numberSize,
+ CONCAT(
+ od.order_number,')',' ',
+ TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(ogd.child_width AS CHAR))),
+ ' X ',
+ TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(ogd.child_height AS CHAR)))) as numberSizeQuantity
+ from sd.order as o
+ left join sd.order_detail as od on o.order_id = od.order_id
+ left join flow_card as fc on o.order_id = fc.order_id and
+ od.order_number = fc.order_number
+ left join sd.product as p on p.id = od.product_id
+ left join sd.customer as c on c.id = o.customer_id
+ left join sd.product_detail as pd on pd.prod_id = p.id and pd.sort_num = od.order_number
+ left join sd.order_glass_detail ogd
+ on ogd.order_id = o.order_id and ogd.order_number = od.order_number and
+ ogd.technology_number = fc.technology_number
+ left join flow_card_sort as fcs
+ on fcs.process_id = fc.process_id and fcs.order_number = fc.order_number and
+ fcs.technology_number = fc.technology_number
+ and fcs.process = #{process}
+ where fc.process_id = #{processId}
+ and fc.order_number = #{orderNumber}
+ and position(fc.technology_number in #{technologyNumber})
+ group by fc.process_id,od.order_number, ogd.technology_number, ogd.child_width, ogd.child_height
+ order by IF(fcs.sort != NULL or fcs.sort != '', fcs.sort, fc.order_number)
+ </select>
+
+ <select id="selectPrintNotMp">
+ select fc.id,
+ fc.order_id,
+ fc.process_id,
+ o.customer_name,
+ o.project,
+ fc.order_number,
+ ogd.technology_number,
+ ogd.glass_address,
+ sum(fc.quantity) as quantity,
+ round(sum(ogd.child_width * ogd.child_height * fc.quantity / 1000000), 2) as total_area,
+ od.product_name,
+ ogd.glass_child,
+ fc.founder,
+ date(fc.splitFrame_time) as splitFrame_time,
+ /* if(fc.print_status=0,'鏈墦鍗�','宸叉墦鍗�') as print_status*/
+ fc.print_status,
+ ogd.process,
+ merge
+ from flow_card as fc
+ left join sd.order_glass_detail as ogd
+ on ogd.order_id = fc.order_id and ogd.order_number = fc.order_number and
+ ogd.technology_number = fc.technology_number
+ left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
+ left join sd.`order` as o on o.order_id = fc.order_id
+ where fc.order_id = #{orderId}
+ GROUP BY fc.process_id, ogd.technology_number
+ order by fc.process_id, ogd.technology_number
+ </select>
+
+ <select id="selectPrintNotMergeMp">
+ select *
+ from ((select fc.id,
+ fc.order_id,
+ fc.process_id,
+ o.customer_name,
+ o.project,
+ fc.order_number,
+ ogd.technology_number,
+ ogd.glass_address,
+ sum(od.quantity) as quantity,
+ sum(ogd.total_area) as total_area,
+ od.product_name,
+ ogd.glass_child,
+ fc.founder,
+ date(fc.splitFrame_time) as splitFrame_time,
+ /* if(fc.print_status=0,'鏈墦鍗�','宸叉墦鍗�') as print_status*/
+ fc.print_status,
+ ogd.process
+ from flow_card as fc
+ left join sd.order_glass_detail as ogd
+ on ogd.order_id = fc.order_id and ogd.order_number = fc.order_number and
+ ogd.technology_number = fc.technology_number
+ left join sd.order_detail as od
+ on od.order_id = fc.order_id and od.order_number = fc.order_number
+ left join sd.`order` as o on o.order_id = fc.order_id
+ where fc.order_id = #{orderId}
+ GROUP BY fc.process_id, ogd.technology_number
+ order by fc.process_id, ogd.technology_number)
+
+ UNION
+
+ (select fc.id,
+ fc.order_id,
+ fc.process_id,
+ o.customer_name,
+ o.project,
+ ogdss.technology_number,
+ ogd.glass_address,
+ ROUND(sum(fc.quantity) / (count(DISTINCT fc.technology_number))) as quantity,
+ sum(ogd.total_area) as total_area,
+ # SUM(ogd.child_width*child_height*fc.quantity/(count(DISTINCT ogd.technology_number))) as total_area,
+ od.product_name,
+ ogdss.concatenated_glass_child as glass_child,
+ fc.founder,
+ date(fc.splitFrame_time) as splitFrame_time,
+ fc.print_status,
+ processed_part as process
+
+ from flow_card as fc
+ left join sd.order_glass_detail as ogd
+ on ogd.order_id = fc.order_id and ogd.order_number = fc.order_number and
+ ogd.technology_number = fc.technology_number
+ left join sd.order_detail as od
+ on od.order_id = fc.order_id and od.order_number = fc.order_number
+ left join sd.`order` as o on o.order_id = fc.order_id
+ left join (select ogds.order_id,
+ ogds.order_number,
+ GROUP_CONCAT(ogds.technology_number SEPARATOR '') AS technology_number,
+ ogds.glass_child,
+ GROUP_CONCAT(ogds.glass_child SEPARATOR ' ') AS concatenated_glass_child,
+ SUBSTRING(process, LOCATE('澶硅兌', process)) AS processed_part
+ from sd.order_glass_detail as ogds
+ where ogds.order_id = #{orderId}
+ and LOCATE('澶硅兌', ogds.process) > 0
+ GROUP BY order_id, order_number, ogds.group) as ogdss
+ on fc.order_id = ogdss.order_id and ogdss.order_number = fc.order_number
+ where fc.order_id = #{orderId}
+ GROUP BY fc.process_id, ogdss.technology_number
+ order by fc.process_id)
+ UNION
+ (select fc.id,
+ fc.order_id,
+ fc.process_id,
+ o.customer_name,
+ o.project,
+ ogdss.technology_number,
+ ogd.glass_address,
+ ROUND(sum(fc.quantity) / (count(DISTINCT fc.technology_number))) as quantity,
+ sum(ogd.total_area) as total_area,
+ od.product_name,
+ ogdss.concatenated_glass_child as glass_child,
+ fc.founder,
+ date(fc.splitFrame_time) as splitFrame_time,
+ fc.print_status,
+ processed_part as process
+
+ from flow_card as fc
+ left join sd.order_glass_detail as ogd
+ on ogd.order_id = fc.order_id and ogd.order_number = fc.order_number and
+ ogd.technology_number = fc.technology_number
+ left join sd.order_detail as od
+ on od.order_id = fc.order_id and od.order_number = fc.order_number
+ left join sd.`order` as o on o.order_id = fc.order_id
+ left join (select ogds.order_id,
+ ogds.order_number,
+ GROUP_CONCAT(pds.glass_sort SEPARATOR '') AS technology_number,
+ ogds.glass_child,
+ GROUP_CONCAT(ogds.glass_child SEPARATOR ' ') AS concatenated_glass_child,
+ SUBSTRING(pds.process, LOCATE('涓┖', pds.process)) AS processed_part
+ from sd.order_glass_detail as ogds
+ left join sd.order_detail as ods
+ on ods.order_id = ogds.order_id and ods.order_number = ogds.order_number
+ left join sd.product_detail as pds on pds.prod_id = ods.product_id and
+ pds.glass_sort =
+ ogds.technology_number
+ where ogds.order_id = #{orderId}
+ GROUP BY order_id, order_number) as ogdss
+ on fc.order_id = ogdss.order_id and ogdss.order_number = fc.order_number
+ where fc.order_id = #{orderId}
+ GROUP BY fc.process_id
+ order by fc.process_id)) AS combined_results
+ where process is not null
+ and process != ""
+ </select>
+
+ <select id="getRepairPrintCustomDataSemi">
+ select o.order_id as orderId,
+ o.project,
+ o.customer_id as customerId,
+ o.customer_name as customerName,
+ o.order_type as orderType,
+ o.order_classify as orderClassify,
+ o.batch,
+ o.icon,
+ o.pack_type as packType,
+ o.delivery_date as deliveryDate,
+ o.al_type as alType,
+ o.money,
+ contract_id as contractId,
+ customer_batch customerBatch,
+ contacts,
+ o.delivery_address as deliveryAddress,
+ od.processing_note as processingNote,
+ ogd.child_width as width,
+ ogd.child_height as height,
+ pl.patch_num as quantity,
+ pl.order_sort as orderNumber,
+ pl.technology_number as technologyNumber,
+ od.building_number as buildingNumber,
+ od.product_name as productName,
+ od.edging_type as edgingType,
+ p.remarks,
+ c.customer_abbreviation as customerAbbreviation,
+ p.product_abbreviation as productAbbreviation,
+ CONCAT(fc.process_id, '/', fc.technology_number) as processId,
+ o.create_time as createTime,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')) AS glassNumber,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S02')) AS figureNumber,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S03')) AS colourCeramicGlaze,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')) AS remarks1,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S05')) AS remarks2,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S06')) AS remarks3,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S07')) AS remarks4,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S08')) AS remarks5,
+ p.remarks as filmNumber,
+ od.bend_radius as bendRadius,
+ ogd.glass_child as glassChild,
+ ogd.glass_address as glassAddress,
+ JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.color')) AS color,
+ CONCAT(
+ TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(ogd.child_width AS CHAR))),
+ ' X ',
+ TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(ogd.child_height AS CHAR))),
+ ' = ',pl.patch_num ) as size,
+
+ CONCAT(
+ od.order_number,') ',
+ TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(ogd.child_width AS CHAR))),
+ ' X ',
+ TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(ogd.child_height AS CHAR))),
+ ' = ',pl.patch_num ) as numberSize
+ from sd.order as o
+ left join sd.order_detail as od on o.order_id = od.order_id
+ left join flow_card as fc on o.order_id = fc.order_id and
+ od.order_number = fc.order_number
+ left join patch_log as pl on pl.process_id = fc.process_id and pl.order_sort = fc.order_number and
+ pl.technology_number = fc.technology_number
+ left join sd.product as p on p.id = od.product_id
+ left join sd.customer as c on c.id = o.customer_id
+ left join sd.product_detail as pd on pd.prod_id = p.id and pd.sort_num = od.order_number
+ left join sd.order_glass_detail ogd
+ on ogd.order_id = o.order_id and ogd.order_number = od.order_number and
+ ogd.technology_number = fc.technology_number
+ where pl.process_id = #{processId}
+ and pl.order_sort=#{orderNumber}
+ and pl.technology_number = #{technologyNumber}
+ and pl.reporting_work_id = #{reportingWorkId}
+ group by od.order_number, width, height
+ order by IF(fc.sort != NULL or fc.sort != '', fc.sort, pl.order_sort)
+ </select>
+
+ <select id="selectPrintAllMp">
+ select *
+ from ((select fc.id,
+ fc.order_id,
+ fc.process_id,
+ o.customer_name,
+ o.project,
+ ogd.technology_number,
+ ogd.glass_address,
+ sum(fc.quantity) as quantity,
+ round(sum(ogd.child_width * ogd.child_height * fc.quantity / 1000000), 2) as total_area,
+ od.product_name,
+ ogd.glass_child,
+ fc.founder,
+ date(fc.splitFrame_time) as splitFrame_time,
+ /* if(fc.print_status=0,'鏈墦鍗�','宸叉墦鍗�') as print_status*/
+ fc.print_status,
+ ogd.process,
+ merge
+ from flow_card as fc
+ left join sd.order_glass_detail as ogd
+ on ogd.order_id = fc.order_id and ogd.order_number = fc.order_number and
+ ogd.technology_number = fc.technology_number
+ left join sd.order_detail as od
+ on od.order_id = fc.order_id and od.order_number = fc.order_number
+ left join sd.`order` as o on o.order_id = fc.order_id
+ where fc.order_id = #{orderId}
+ GROUP BY fc.process_id, ogd.technology_number
+ order by fc.process_id, ogd.technology_number)
+
+ UNION
+
+ (select fc.id,
+ fc.order_id,
+ fc.process_id,
+ o.customer_name,
+ o.project,
+ ogdss.technology_number,
+ ogd.glass_address,
+ ROUND(sum(fc.quantity) / (count(DISTINCT fc.technology_number))) as quantity,
+ sum(ogd.total_area) as total_area,
+ # SUM(ogd.child_width*child_height*fc.quantity/(count(DISTINCT ogd.technology_number))) as total_area,
+ od.product_name,
+ ogdss.concatenated_glass_child as glass_child,
+ fc.founder,
+ date(fc.splitFrame_time) as splitFrame_time,
+ fc.print_status,
+ processed_part as process,
+ merge
+
+ from flow_card as fc
+ left join sd.order_glass_detail as ogd
+ on ogd.order_id = fc.order_id and ogd.order_number = fc.order_number and
+ ogd.technology_number = fc.technology_number
+ left join sd.order_detail as od
+ on od.order_id = fc.order_id and od.order_number = fc.order_number
+ left join sd.`order` as o on o.order_id = fc.order_id
+ left join (select ogds.order_id,
+ ogds.order_number,
+ GROUP_CONCAT(ogds.technology_number SEPARATOR '') AS technology_number,
+ ogds.glass_child,
+ GROUP_CONCAT(ogds.glass_child SEPARATOR '+') AS concatenated_glass_child,
+ SUBSTRING(process, LOCATE(bd.basic_name, process)) AS processed_part
+ from sd.order_glass_detail as ogds
+ left join sd.basic_data as bd on bd.nickname='stepC'
+ where ogds.order_id = #{orderId}
+ and LOCATE(bd.basic_name, ogds.process) > 0
+ GROUP BY order_id, order_number, ogds.group) as ogdss
+ on fc.order_id = ogdss.order_id and ogdss.order_number = fc.order_number
+ where fc.order_id = #{orderId}
+ GROUP BY fc.process_id, ogdss.technology_number
+ order by fc.process_id)
+ UNION
+ (select fc.id,
+ fc.order_id,
+ fc.process_id,
+ o.customer_name,
+ o.project,
+ ogdss.technology_number,
+ ogd.glass_address,
+ ROUND(sum(fc.quantity) / (count(DISTINCT fc.technology_number))) as quantity,
+ sum(ogd.total_area) as total_area,
+ od.product_name,
+ ogdss.concatenated_glass_child as glass_child,
+ fc.founder,
+ date(fc.splitFrame_time) as splitFrame_time,
+ fc.print_status,
+ processed_part as process,
+ merge
+
+ from flow_card as fc
+ left join sd.order_glass_detail as ogd
+ on ogd.order_id = fc.order_id and ogd.order_number = fc.order_number and
+ ogd.technology_number = fc.technology_number
+ left join sd.order_detail as od
+ on od.order_id = fc.order_id and od.order_number = fc.order_number
+ left join sd.`order` as o on o.order_id = fc.order_id
+ left join (select ogds.order_id,
+ ogds.order_number,
+ GROUP_CONCAT(pds.glass_sort SEPARATOR '') AS technology_number,
+ ogds.glass_child,
+ GROUP_CONCAT(ogds.glass_child SEPARATOR '+') AS concatenated_glass_child,
+ SUBSTRING(pds.process, LOCATE(bd.basic_name, pds.process)) AS processed_part
+ from sd.order_glass_detail as ogds
+ left join sd.order_detail as ods
+ on ods.order_id = ogds.order_id and ods.order_number = ogds.order_number
+ left join sd.product_detail as pds on pds.prod_id = ods.product_id and
+ pds.glass_sort =
+ ogds.technology_number
+ left join sd.basic_data as bd on bd.nickname='stepD'
+ where ogds.order_id = #{orderId}
+ GROUP BY order_id, order_number) as ogdss
+ on fc.order_id = ogdss.order_id and ogdss.order_number = fc.order_number
+ where fc.order_id = #{orderId}
+ GROUP BY fc.process_id
+ order by fc.process_id)) AS combined_results
+ where process is not null
+ and process != ""
+ GROUP BY order_id, process_id, technology_number, process
+ order by order_id, process_id, length(technology_number)
+ </select>
+
+ <insert id="printAddSortMp">
+ insert into flow_card_sort (process_id, order_number, technology_number, process, sort, create_time)
+ values (#{processId}, #{orderNumber}, #{technologyNumber}, #{process}, #{sort}, now())
+ </insert>
+ <select id="printAddSortCountMp">
+ select count(*)
+ from flow_card_sort
+ where process_id = #{processId}
+ and order_number = #{orderNumber}
+ and technology_number = #{technologyNumber}
+ and process = #{process}
+ </select>
+ <update id="printUpdateSortMp">
+ update flow_card_sort
+ set sort = #{sort}
+ where process_id = #{processId}
+ and order_number = #{orderNumber}
+ and technology_number = #{technologyNumber}
+ and process = #{process}
+ </update>
+
+ <select id="getPrimaryListLimt">
+ select o.customer_name,
+ o.project,
+ #{process} process,
+ od.edging_type,
+ #{glassChild} as glass_child,
+ od.product_name,
+ o.processing_note,
+ fc.process_id,
+ SUM(od.quantity) as quantity,
+ round(SUM(ogd.total_area), 2) as gross_area,
+ sum(od.weight) as weight,
+ #{technologyNumber} as technologyNumber,
+ concat(fc.process_id, '/', #{technologyNumber}) as processIdNumber,
+ concat('瀵瑰簲鎴戝徃鍗曞彿', o.batch) AS otherRemarks,
+ fc.technology_number as qrcode
+ from flow_card as fc
+ left join sd.order_glass_detail as ogd
+ on fc.order_id = ogd.order_id and fc.order_number = ogd.order_number and
+ fc.technology_number = ogd.technology_number
+ left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
+ left join sd.`order` as o on o.order_id = fc.order_id
+ left join sd.product as p on p.id = od.product_id
+ left join (select ogd.order_id,
+ ogd.order_number,
+ ogd.technology_number,
+ ogd.glass_child,
+ GROUP_CONCAT(glass_child SEPARATOR ' ') AS concatenated_glass_child
+ from sd.order_glass_detail as ogd
+ where ogd.order_id = #{orderId}
+ and position(ogd.technology_number in #{technologyNumber})
+ GROUP BY order_id, order_number) as ogdc
+ on ogdc.order_id = ogd.order_id and ogdc.order_number = ogd.order_number and
+ ogdc.technology_number = ogd.technology_number
+ where fc.process_id = #{processId}
+ and position(fc.technology_number in #{technologyNumber})
+ group by fc.process_id
+ limit 1
+ </select>
+
+ <select id="selectPrintDetailsMp">
+ select fc.id,
+ fc.order_id,
+ fc.process_id,
+ o.customer_name,
+ o.project,
+ /*ogd.technology_number,*/
+ ogd.glass_address,
+ (fc.quantity) as quantity,
+ (fc.quantity) as printQuantity,
+ round((ogd.child_width * ogd.child_height * fc.quantity / 1000000), 2) as total_area,
+ od.product_name,
+ ogd.glass_child,
+ fc.founder,
+ date(fc.splitFrame_time) as splitFrame_time,
+ /* if(fc.print_status=0,'鏈墦鍗�','宸叉墦鍗�') as print_status*/
+ ifnull(fc.print_number,0) as print_status,
+ ogd.process,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')) AS glassNumber,
+ od.order_number,
+ od.width,
+ od.height
+ from flow_card as fc
+ left join sd.order_glass_detail as ogd
+ on ogd.order_id = fc.order_id and ogd.order_number = fc.order_number and
+ ogd.technology_number = fc.technology_number
+ left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
+ left join sd.`order` as o on o.order_id = fc.order_id
+ where fc.order_id = #{orderId}
+ GROUP BY fc.process_id, od.order_number
+ order by fc.process_id, od.order_number
+ </select>
+
+ <select id="selectPrintDetailsMp1">
+ select fc.id,
+ fc.order_id,
+ fc.process_id,
+ o.customer_name,
+ o.project,
+ ogd.technology_number,
+ ogd.glass_address,
+ (fc.quantity) as quantity,
+ (fc.quantity) as printQuantity,
+ round((ogd.child_width * ogd.child_height * fc.quantity / 1000000), 2) as total_area,
+ od.product_name,
+ ogd.glass_child,
+ fc.founder,
+ date(fc.splitFrame_time) as splitFrame_time,
+ /* if(fc.print_status=0,'鏈墦鍗�','宸叉墦鍗�') as print_status*/
+ ifnull(fc.print_number,0) as print_status,
+ ogd.process,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')) AS glassNumber,
+ od.order_number,
+ ogd.child_width as width,
+ ogd.child_height as height,
+ ifnull(JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')),'') AS glassNumber,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')) AS S01,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S02')) AS S02,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S03')) AS S03,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')) AS S04,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S05')) AS S05
+ from flow_card as fc
+ left join sd.order_glass_detail as ogd
+ on ogd.order_id = fc.order_id and ogd.order_number = fc.order_number and
+ ogd.technology_number = fc.technology_number
+ left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
+ left join sd.`order` as o on o.order_id = fc.order_id
+ where fc.order_id = #{orderId}
+ GROUP BY fc.process_id, od.order_number,fc.technology_number
+ order by fc.process_id, od.order_number,fc.technology_number
+ </select>
+
+ <select id="getPrintCustomDataDetails">
+ select o.order_id as orderId,
+ project,
+ customer_id as customerId,
+ o.customer_name as customerName,
+ order_type as orderType,
+ order_classify as orderClassify,
+ batch,
+ o.icon,
+ pack_type as packType,
+ delivery_date as deliveryDate,
+ al_type as alType,
+ money,
+ contract_id as contractId,
+ customer_batch customerBatch,
+ contacts,
+ delivery_address as deliveryAddress,
+ od.processing_note as processingNote,
+ width,
+ height,
+ #{printQuantity} as quantity,
+ CONCAT(
+ TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(width AS CHAR))),
+ ' X ',
+ TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(height AS CHAR))),
+ ' = ',#{printQuantity} ) as size,
+
+ CONCAT(
+ od.order_number,') ',
+ TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(width AS CHAR))),
+ ' X ',
+ TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(height AS CHAR))),
+ ' = ',#{printQuantity} ) as numberSize,
+ CONCAT(
+ od.order_number,')',' ',
+ TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(width AS CHAR))),
+ ' X ',
+ TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(height AS CHAR)))) as numberSizeQuantity,
+ od.order_number as orderNumber,
+ fc.technology_number as technologyNumber,
+ od.building_number as buildingNumber,
+ od.product_name as productName,
+ od.edging_type as edgingType,
+ od.remarks,
+ c.customer_abbreviation as customerAbbreviation,
+ p.product_abbreviation as productAbbreviation,
+ fc.process_id as processId,
+ SUBSTRING(fc.process_id,12 ) as processIdAD ,/*-娴佺▼鍗$畝鍐�-*/
+ o.create_time as createTime,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')) AS glassNumber,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S02')) AS figureNumber,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S03')) AS colourCeramicGlaze,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')) AS remarks1,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S05')) AS remarks2,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S06')) AS remarks3,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S07')) AS remarks4,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S08')) AS remarks5,
+ p.remarks as filmNumber,
+ od.bend_radius as bendRadius,
+ od.other_columns,
+ ogd.glass_child as glassChild,
+ ogd.glass_address as glassAddress,
+ JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.color')) AS color,
+ '鏂囨湰' as custom1,
+ '鏂囨湰' as custom2,
+ '鏂囨湰' as custom3,
+ '鏂囨湰' as custom4,
+ '鏂囨湰' as custom5,
+ od.quantity
+ from sd.order as o
+ left join sd.order_detail as od on o.order_id = od.order_id
+ left join flow_card as fc on o.order_id = fc.order_id and
+ od.order_number = fc.order_number
+ left join sd.product as p on p.id = od.product_id
+ left join sd.customer as c on c.id = o.customer_id
+ left join sd.product_detail as pd on pd.prod_id = p.id and pd.sort_num = od.order_number and
+ pd.glass_sort = fc.technology_number
+ left join sd.order_glass_detail as ogd
+ on ogd.order_id = fc.order_id and ogd.order_number = fc.order_number and
+ ogd.technology_number = fc.technology_number
+ where fc.process_id = #{processId}
+ and fc.order_number = #{orderNumber}
+ group by fc.process_id,od.order_number, width, height
+ order by fc.process_id
+ </select>
+
+ <select id="getPrintCustomDataProjectNo">
+ select
+ o.order_id as orderId,
+ project,
+ customer_id as customerId,
+ o.customer_name as customerName,
+ order_type as orderType,
+ order_classify as orderClassify,
+ batch,
+ o.icon,
+ pack_type as packType,
+ delivery_date as deliveryDate,
+ al_type as alType,
+ money,
+ contract_id as contractId,
+ customer_batch customerBatch,
+ contacts,
+ delivery_address as deliveryAddress,
+ od.processing_note as processingNote,
+ od.width,
+ od.height,
+ fc.quantity as flowQuantity,
+ od.order_number as orderNumber,
+ fc.technology_number as technologyNumber,
+ od.building_number as buildingNumber,
+ od.product_name as productName,
+ od.edging_type as edgingType,
+ od.remarks,
+ c.customer_abbreviation as customerAbbreviation,
+ p.product_abbreviation as productAbbreviation,
+ fc.process_id as processId,
+ o.create_time as createTime,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')) AS glassNumber,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S02')) AS figureNumber,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S03')) AS colourCeramicGlaze,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')) AS remarks1,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S05')) AS remarks2,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S06')) AS remarks3,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S07')) AS remarks4,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S08')) AS remarks5,
+ p.remarks as filmNumber,
+ od.bend_radius as bendRadius,
+ od.other_columns,
+ JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.color')) AS color,
+ '鏂囨湰' as custom1,
+ '鏂囨湰' as custom2,
+ '鏂囨湰' as custom3,
+ '鏂囨湰' as custom4,
+ '鏂囨湰' as custom5,
+ od.quantity
+ from optimize_detail as opt
+ left join flow_card as fc on opt.project_no=fc.project_no and opt.process_id=fc.process_id and opt.layer=fc.technology_number and opt.order_sort=fc.order_number
+ left join sd.order as o on o.order_id=fc.order_id
+ left join sd.order_detail as od on fc.order_id = od.order_id and od.order_number = fc.order_number
+ left join sd.product as p on p.id = od.product_id
+ left join sd.customer as c on c.id = o.customer_id
+ left join sd.product_detail as pd on pd.prod_id = p.id and pd.sort_num = od.order_number and
+ pd.glass_sort = fc.technology_number
+ where opt.project_no=#{projectNo}
+ order by opt.stock_id,opt.polys_id
+ </select>
+
+ <select id="selectUserMp">
+ select role_id
+ from erp_user_info.`user` as u
+ left join erp_user_info.user_role as ur on u.id = ur.user_id
+ where u.login_name = #{userId}
+ </select>
+
+ <select id="selectSortTableMp">
+ select fcs.sort,
+ fcs.process_id,
+ fcs.order_number,
+ fcs.technology_number,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')) AS glassNumber,
+ fcs.process
+ from
+ flow_card as fc
+ left join flow_card_sort as fcs on fcs.process_id=fc.process_id
+ and fcs.order_number=fc.order_number and fcs.technology_number=fc.technology_number
+ left join sd.order_detail as od
+ on od.order_id = fc.order_id and od.order_number = fcs.order_number
+ where fc.order_id = #{orderId}
+ GROUP BY fcs.process_id,
+ fcs.order_number,
+ fcs.technology_number,
+ fcs.process
+ ORDER BY fcs.sort,process_id,
+ fcs.order_number,
+ fcs.technology_number
+ </select>
+
+ <select id="countFlowCard">
+ select count(distinct process_id) from flow_card where order_id = #{orderId}
+ </select>
+
+ <select id="remakList">
+ SELECT
+ ifnull(JSON_UNQUOTE(JSON_EXTRACT(other_columns, '$.S01')),'') AS S01,
+ ifnull(JSON_UNQUOTE(JSON_EXTRACT(other_columns, '$.S04')),'') AS S02,
+ ifnull(JSON_UNQUOTE(JSON_EXTRACT(other_columns, '$.S05')),'') AS S03,
+ ifnull(JSON_UNQUOTE(JSON_EXTRACT(other_columns, '$.S06')),'') AS S04,
+ ifnull(JSON_UNQUOTE(JSON_EXTRACT(other_columns, '$.S07')),'') AS S05
+ FROM flow_card as fc left join sd.order_detail as od on fc.order_id = od.order_id
+ and fc.order_number = od.order_number
+ WHERE fc.process_id=#{processId}
+ GROUP BY fc.order_number
+ </select>
+
+ <select id="selectMaxFlowCard">
+ select ifnull((select fc.process_id
+ from sd.order_detail as od
+ left join sd.order_glass_detail as ogd
+ on od.order_id = ogd.order_id and od.order_number = ogd.order_number
+ left join flow_card as fc on fc.order_id=od.order_id and fc.order_number=od.order_number and fc.technology_number=ogd.technology_number
+ where od.order_id = #{orderId}
+ and ogd.production_id = #{productionId}
+ GROUP BY od.order_number
+ order by fc.process_id desc LIMIT 1),'') as process_id
+ </select>
+
+ <select id="selectFlowCardMerge">
+ select *,GROUP_CONCAT(DISTINCT fc.technology_number) as count1,count(DISTINCT fc.technology_number) as count2
+ from pp.flow_card as fc
+ left join sd.order_glass_detail as ogd
+ on fc.order_id = ogd.order_id and fc.order_number = ogd.order_number and
+ fc.technology_number = ogd.technology_number
+ left join sd.order_detail as od on od.order_id = ogd.order_id and od.order_number = ogd.order_number
+ where fc.process_id = #{processId}
+ GROUP BY fc.order_id, fc.process_id, ogd.glass_child
+ </select>
+
+ <update id="updateFlowCardMerge">
+ update pp.flow_card fc set fc.merge=#{index}
+ where fc.process_id = #{processId} and fc.technology_number in
+ <foreach item="technologyNumber" collection="technologyNumbers" open="(" separator="," close=")">
+ #{technologyNumber}
+ </foreach>
+ </update>
+
+ <delete id="deleteflowCardSort">
+ delete from flow_card_sort where process_id = #{processId}
+ </delete>
+
+ <delete id="deleteflowCardSortByOrderId">
+ delete from pp.flow_card_sort
+ where process_id =(
+ select process_id from pp.flow_card
+ where order_id=#{orderId}
+ group by process_id
+ )
+ </delete>
+
+ <select id="getPrintProjectDetailsMp">
+ SELECT opd.project_no,opd.stock_id,opl.glass_count FROM optimize_detail as opd left join optimize_layout as opl on opl.project_no=opd.project_no and opl.stock_id=opd.stock_id
+ where opd.project_no=#{projectNo}
+ GROUP BY opd.stock_id
+ ORDER BY opd.stock_id
+ </select>
+
+ <select id="getPrintCustomDataProjectDetail">
+ select
+ o.order_id as orderId,
+ project,
+ customer_id as customerId,
+ o.customer_name as customerName,
+ order_type as orderType,
+ order_classify as orderClassify,
+ batch,
+ o.icon,
+ pack_type as packType,
+ delivery_date as deliveryDate,
+ al_type as alType,
+ money,
+ contract_id as contractId,
+ customer_batch customerBatch,
+ contacts,
+ delivery_address as deliveryAddress,
+ od.processing_note as processingNote,
+ od.width,
+ od.height,
+ fc.quantity as flowQuantity,
+ od.order_number as orderNumber,
+ fc.technology_number as technologyNumber,
+ od.building_number as buildingNumber,
+ od.product_name as productName,
+ od.edging_type as edgingType,
+ od.remarks,
+ c.customer_abbreviation as customerAbbreviation,
+ p.product_abbreviation as productAbbreviation,
+ fc.process_id as processId,
+ o.create_time as createTime,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')) AS glassNumber,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S02')) AS figureNumber,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S03')) AS colourCeramicGlaze,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')) AS remarks1,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S05')) AS remarks2,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S06')) AS remarks3,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S07')) AS remarks4,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S08')) AS remarks5,
+ p.remarks as filmNumber,
+ od.bend_radius as bendRadius,
+ od.other_columns,
+ JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.color')) AS color,
+ '鏂囨湰' as custom1,
+ '鏂囨湰' as custom2,
+ '鏂囨湰' as custom3,
+ '鏂囨湰' as custom4,
+ '鏂囨湰' as custom5,
+ od.quantity
+ from optimize_detail as opt
+ left join flow_card as fc on opt.project_no=fc.project_no and opt.process_id=fc.process_id and opt.layer=fc.technology_number and opt.order_sort=fc.order_number
+ left join sd.order as o on o.order_id=fc.order_id
+ left join sd.order_detail as od on fc.order_id = od.order_id and od.order_number = fc.order_number
+ left join sd.product as p on p.id = od.product_id
+ left join sd.customer as c on c.id = o.customer_id
+ left join sd.product_detail as pd on pd.prod_id = p.id and pd.sort_num = od.order_number and
+ pd.glass_sort = fc.technology_number
+ where opt.project_no=#{projectNo} and opt.stock_id=#{stockId}
+ order by opt.stock_id,opt.polys_id
+ </select>
+
+ <select id="getPrintCustomDataProject">
+ select
+ o.order_id as orderId,
+ project,
+ customer_id as customerId,
+ o.customer_name as customerName,
+ order_type as orderType,
+ order_classify as orderClassify,
+ batch,
+ o.icon,
+ pack_type as packType,
+ delivery_date as deliveryDate,
+ al_type as alType,
+ money,
+ contract_id as contractId,
+ customer_batch customerBatch,
+ contacts,
+ delivery_address as deliveryAddress,
+ od.processing_note as processingNote,
+ od.width,
+ od.height,
+ fc.quantity as flowQuantity,
+ od.order_number as orderNumber,
+ fc.technology_number as technologyNumber,
+ od.building_number as buildingNumber,
+ od.product_name as productName,
+ od.edging_type as edgingType,
+ od.remarks,
+ c.customer_abbreviation as customerAbbreviation,
+ p.product_abbreviation as productAbbreviation,
+ fc.process_id as processId,
+ o.create_time as createTime,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')) AS glassNumber,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S02')) AS figureNumber,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S03')) AS colourCeramicGlaze,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')) AS remarks1,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S05')) AS remarks2,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S06')) AS remarks3,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S07')) AS remarks4,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S08')) AS remarks5,
+ p.remarks as filmNumber,
+ od.bend_radius as bendRadius,
+ od.other_columns,
+ JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.color')) AS color,
+ '鏂囨湰' as custom1,
+ '鏂囨湰' as custom2,
+ '鏂囨湰' as custom3,
+ '鏂囨湰' as custom4,
+ '鏂囨湰' as custom5,
+ od.quantity,
+ o.order_id,
+ c.customer_abbreviation as customer_name,
+ od.building_number,
+ od.processing_note,
+ ogd.child_width as childWidth,
+ ogd.child_height as childHeight,
+ ogd.glass_child as glassChild,
+ ogd.process,
+ e.type_name,
+ opt.stock_id,
+ od.bend_radius,
+ a.id as flow_card_sort,
+ concat(opt.heat_layout_id,'') as heat_layout_id ,
+ opt.heat_layout_sort
+ from optimize_detail as opt
+ left join flow_card as fc on opt.project_no=fc.project_no and opt.process_id=fc.process_id and opt.layer=fc.technology_number and opt.order_sort=fc.order_number
+ left join sd.order as o on o.order_id=fc.order_id
+ left join sd.order_detail as od on fc.order_id = od.order_id and od.order_number = fc.order_number
+ left join sd.order_glass_detail as ogd on ogd.order_id=o.order_id and ogd.order_number=od.order_number and ogd.technology_number=fc.technology_number
+ left join sd.product as p on p.id = od.product_id
+ left join sd.basic_glass_type e on e.type_id = p.type_id
+ left join sd.customer as c on c.id = o.customer_id
+ left join sd.product_detail as pd on pd.prod_id = p.id and pd.sort_num = od.order_number and
+ pd.glass_sort = fc.technology_number
+ left join (select (@row_number := @row_number + 1) as id,process_id as process_id from (select process_id from pp.optimize_detail tt where project_no =#{projectNo} group by process_id) tt,(select @row_number := 0) as t) a
+ on a.process_id=opt.process_id
+ where opt.project_no=#{projectNo}
+ order by opt.heat_layout_id, opt.heat_layout_sort desc
+ </select>
+
+ <select id="getPrintLabel3">
+ select o.order_id,
+ c.customer_abbreviation as customer_name,
+ o.project,
+ od.building_number,
+ od.processing_note,
+ ogd.child_width as width,
+ ogd.child_height as height,
+ od.product_name as glass_child,
+ ogd.process,
+ e.type_name,
+ opd.stock_id,
+ opd.polys_id,
+ od.quantity,
+ od.other_columns,
+ od.bend_radius,
+ od.order_number as heat_layout_id,
+ a.id as heat_layout_sort
+ from pp.optimize_detail opd
+ left join sd.`order` o on SUBSTR(opd.process_id, 1, 10) = o.order_id
+ left join sd.order_detail od
+ on SUBSTR(opd.process_id, 1, 10) = od.order_id and opd.order_sort = od.order_number
+ left join sd.order_glass_detail ogd
+ on SUBSTR(opd.process_id, 1, 10) = ogd.order_id and opd.order_sort = ogd.order_number and
+ opd.layer = ogd.technology_number
+ left join sd.product p on od.product_id = p.id
+ left join sd.basic_glass_type e on e.type_id = p.type_id
+ left join sd.customer c on c.id = o.customer_id
+ left join
+ (select (@row_number := @row_number + 1) as id,process_id as process_id from (select process_id from pp.optimize_detail tt where project_no =#{projectNo} group by process_id) tt,(select @row_number := 0) as t) a
+ on a.process_id=opd.process_id
+ where opd.project_no = #{projectNo} and o.order_id is not null
+ group by order_id,od.order_number
+ order by ogd.child_width desc,ogd.child_height desc
+ </select>
+
+ <delete id="deleteProcessMp">
+ delete from sd.order_process_detail where process_id = #{processId} and technology_number= #{technologyNumber}
+ </delete>
+
+ <insert id="updateProcessMp">
+ insert into sd.order_process_detail (order_id,
+ process_id,
+ order_number,
+ technology_number,
+ process,
+ create_time)
+ select fc.order_id,
+ fc.process_id,
+ fc.order_number,
+ #{technologyNumber},
+ #{process},
+ NOW()
+ from pp.flow_card as fc
+ where fc.process_id = #{processId}
+ and fc.order_number = #{number}
+ and fc.technology_number = #{technologyNumber}
+ GROUP BY fc.order_number
+ </insert>
+
+ <update id="updateOrderProcessMp">
+ update sd.order_glass_detail set process=#{orderprocess}
+ where order_id=#{orderId} and order_number=#{number} and technology_number=#{technologyNumber}
+ </update>
+
+ <select id="getFlowCardListPrintProject">
+ select
+ od.order_id,
+ fc.process_id,
+ o.customer_name,
+ o.project,
+ od.order_number,
+ ogd.technology_number,
+ ogd.glass_address,
+ fc.quantity ,
+ round(sum(ogd.child_width * ogd.child_height * fc.quantity / 1000000), 2) as total_area,
+ od.product_name,
+ ogd.glass_child,
+ fc.patch_state,
+ ogd.process,
+ fcd.merge
+ from (select process_id,count(*) as quantity,order_sort,project_no,layer,patch_state from pp.optimize_detail where project_no = #{printProject} group by process_id,layer) as fc
+ left join sd.order_glass_detail as ogd
+ on ogd.order_id = SUBSTRING(fc.process_id,1,10) and ogd.order_number = fc.order_sort and
+ ogd.technology_number = fc.layer
+ left join sd.order_detail as od on od.order_id = SUBSTRING(fc.process_id,1,10) and od.order_number = fc.order_sort
+ left join sd.`order` as o on o.order_id = SUBSTRING(fc.process_id,1,10)
+ left join pp.`flow_card` as fcd on fcd.process_id=fc.process_id and fcd.technology_number=ogd.technology_number and fcd.order_number=od.order_number
+ where fc.project_no = #{printProject} and fc.process_id is not null and fc.process_id!=""
+ GROUP BY fc.process_id, ogd.technology_number
+ order by fc.process_id, ogd.technology_number
+ </select>
+
+ <update id="updateProjectLabelPrintCount">
+ update optimize_project set labelPrintNum=labelPrintNum+1 where project_no=#{projectNo}
+ </update>
+
+ <select id="selectProjectLabelPrintCount">
+ select labelPrintNum from optimize_project where project_no=#{projectNo}
+ </select>
+
+ <update id="updateProjectProcessPrintCount">
+ update optimize_project set processPrintNum=processPrintNum+1 where project_no=#{projectNo}
+ </update>
+
+ <select id="selectProjectProcessPrintCount">
+ select processPrintNum from optimize_project where project_no=#{projectNo}
+ </select>
+
+ <select id="flowCardToOptimizeCount">
+ select count(*) from pp.flow_card where order_id = #{orderId} and project_no is not null
+ </select>
+
+ <select id="getFlowCardDetail" >
+ select
+ a.order_id,
+ a.process_id,
+ a.technology_number,
+ a.order_number,
+ c.product_id,
+ c.product_name,
+ b.project,
+ sum(a.quantity) as quantity,
+ sum(c.compute_gross_area) as compute_gross_area,
+ a.founder,
+ c.processing_note,
+ b.customer_name,
+ a.merge,
+ a.rack
+ from pp.flow_card a
+ left join sd.`order` as b on a.order_id=b.order_id
+ left join sd.order_detail as c on a.order_id=c.order_id and a.order_number=c.order_number
+ where
+ a.process_id regexp #{processId}
+ group by a.process_id,a.technology_number
+
+ </select>
+
+ <select id="getGlassThicknessByProdutionId">
+ select total_thickness as 'totalThickness',thickness as 'thickness' from sd.product
+ where id = (
+ select distinct b.product_id from sd.order_glass_detail as a
+ left join sd.order_detail as b
+ on a.order_id = b.order_id and a.order_number = b.order_number
+ where a.order_id = #{orderId}
+ and a.production_id = #{productionId}
+ )
+ </select>
+
+ <select id="getOrderDetailByProductionId">
+ select * from (select a.*,
+ a.quantity as 'baiscQuantity',
+ #{glassThickness} as 'thickness',
+ IF(a.height >= a.width, a.height, a.width) as 'long',
+ IF(a.height < a.width, a.height, a.width) as 'short'
+ from sd.order_detail as a
+ left join sd.order_glass_detail as b
+ on a.order_id = b.order_id and a.order_number = b.order_number
+ where a.order_id = #{orderId} and b.production_id = #{productionId}
+
+ group by a.order_number) as c
+ <if test="type=='scope'">
+ where c.`long` <= #{inLenMax}
+ and c.`long` >= #{inLenMin}
+ and c.`short` >= #{inShortMin}
+ and c.`short` <= #{inShortMax}
+ </if>
+ <if test="type=='notScope'">
+ where !(c.`long` <= #{inLenMax}
+ and c.`long` >= #{inLenMin}
+ and c.`short` >= #{inShortMin}
+ and c.`short` <= #{inShortMax})
+ </if>
+ order by c.`long` desc
+ </select>
+
+ <!-- 澶嶉�夋淇敼鎺掔増鐘舵��-->
+ <update id="revokeComposing">
+ update flow_card as fc
+ set fc.layout_status=0
+ where fc.process_id = #{processId}
+ </update>
+
+ <select id="selectProjectNo">
+ SELECT COUNT(*)
+ FROM flow_card
+ WHERE process_id= #{processId} and project_no IS not NULL;
+ </select>
+
+ <select id="selectPrintDetailsMp2">
+ select ogd.id,
+ ogd.order_id,
+ o.customer_name,
+ o.project,
+ ogd.technology_number,
+ ogd.glass_address,
+ (od.quantity) as quantity,
+ (od.quantity) as printQuantity,
+ round((ogd.child_width * ogd.child_height * od.quantity / 1000000), 2) as total_area,
+ od.product_name,
+ ogd.glass_child,
+ ogd.process,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')) AS glassNumber,
+ od.order_number,
+ ogd.child_width as width,
+ ogd.child_height as height
+ from sd.order_glass_detail as ogd
+ left join sd.order_detail as od on od.order_id = ogd.order_id and od.order_number = ogd.order_number
+ left join sd.`order` as o on o.order_id = ogd.order_id
+ where ogd.order_id = #{orderId}
+ GROUP BY od.order_number
+ order by od.order_number
+ </select>
+
+ <select id="getPrintOrderDataDetails">
+ select o.order_id as orderId,
+ project,
+ customer_id as customerId,
+ o.customer_name as customerName,
+ order_type as orderType,
+ order_classify as orderClassify,
+ batch,
+ o.icon,
+ pack_type as packType,
+ delivery_date as deliveryDate,
+ al_type as alType,
+ money,
+ contract_id as contractId,
+ customer_batch customerBatch,
+ contacts,
+ delivery_address as deliveryAddress,
+ od.processing_note as processingNote,
+ width,
+ height,
+ #{printQuantity} as quantity,
+ CONCAT(
+ TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(width AS CHAR))),
+ ' X ',
+ TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(height AS CHAR))),
+ ' = ',#{printQuantity} ) as size,
+
+ CONCAT(
+ od.order_number,') ',
+ TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(width AS CHAR))),
+ ' X ',
+ TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(height AS CHAR))),
+ ' = ',#{printQuantity} ) as numberSize,
+ od.order_number as orderNumber,
+ ogd.technology_number as technologyNumber,
+ od.building_number as buildingNumber,
+ od.product_name as productName,
+ od.edging_type as edgingType,
+ od.remarks,
+ c.customer_abbreviation as customerAbbreviation,
+ p.product_abbreviation as productAbbreviation,
+ '' as processId,
+ o.create_time as createTime,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')) AS glassNumber,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S02')) AS figureNumber,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S03')) AS colourCeramicGlaze,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')) AS remarks1,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S05')) AS remarks2,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S06')) AS remarks3,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S07')) AS remarks4,
+ JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S08')) AS remarks5,
+ p.remarks as filmNumber,
+ od.bend_radius as bendRadius,
+ od.other_columns,
+ ogd.glass_child as glassChild,
+ ogd.glass_address as glassAddress,
+ JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.color')) AS color,
+ '鏂囨湰' as custom1,
+ '鏂囨湰' as custom2,
+ '鏂囨湰' as custom3,
+ '鏂囨湰' as custom4,
+ '鏂囨湰' as custom5,
+ od.quantity
+ from sd.order as o
+ left join sd.order_detail as od on o.order_id = od.order_id
+ left join sd.product as p on p.id = od.product_id
+ left join sd.customer as c on c.id = o.customer_id
+ left join sd.order_glass_detail as ogd
+ on ogd.order_id = od.order_id and ogd.order_number = od.order_number
+ left join sd.product_detail as pd on pd.prod_id = p.id and pd.sort_num = od.order_number and
+ pd.glass_sort = ogd.technology_number
+
+ where od.order_id = #{orderId}
+ and od.order_number = #{orderNumber}
+ group by od.order_number, width, height
+ order by od.order_id
+ </select>
+
+ <select id="updatePrintNumberMp">
+ update pp.flow_card
+ set print_number = ifnull(print_number,0) + 1
+ where process_id = #{processId}
+ and order_number = #{orderNumber}
+ </select>
+
+ <select id="getOrderIdByProcessId">
+ select order_id from pp.flow_card where process_id = #{processId} limit 1;
+ </select>
+
+ <select id="flowCardDetailMergeMp">
+ select merge from pp.flow_card where process_id = #{processId} group by id ORDER BY merge desc LIMIT 1
+ </select>
+
+ <update id="updateFlowCardIsMerge">
+ update pp.flow_card fc set fc.merge=0
+ where fc.process_id = #{processId}
+ </update>
+
+ <select id="getProcessName">
+ select IFNULL(nickname,'') from sd.basic_data where basic_category='process' and basic_name=#{processSub}
+ </select>
+
+ <select id="getProcessNameList">
+ SELECT id,basic_name,IFNULL(nickname,"") as nickname FROM sd.`basic_data` where basic_category='process'
+ </select>
+
+ <select id="exportDateProcessMp">
+ select
+ a.order_Id,
+ a.process_Id,
+ c.product_id,
+ c.product_name,
+ b.project,
+ sum(a.quantity) as quantity,
+ sum(a.quantity) * c.area as compute_gross_area,
+ a.founder,
+ c.processing_note,
+ b.customer_name,
+ layout_status as layout_status,
+ a.merge,
+ a.rack,
+ b.batch
+ from (select id,order_id,process_id,order_number, quantity,founder,max(layout_status) as layout_status,create_time,max(merge) as merge,rack from flow_card
+ group by process_Id,order_number) as a
+ left join sd.`order` as b on a.order_Id=b.order_id
+ left join sd.order_detail as c on a.order_Id=c.order_id and a.order_Number=c.order_number
+ where date(a.create_time) >= #{date[0]}
+ and date(a.create_time) <= #{date[1]}
+ and b.create_order>0
+ group by a.process_Id
+ ORDER BY a.id desc
+ </select>
+
+ <select id="getSumQuantity">
+ select quantity from sd.`order` where order_id=#{orderId}
+ </select>
+
+ <select id="getDetailCompoundList">
+ select fc.order_number,
+ concat(IF(ROUND(ogd.child_width, 1) = FLOOR(ogd.child_width), FLOOR(ogd.child_width), ROUND(ogd.child_width, 1)), "*", IF(ROUND(child_height, 1) = FLOOR(child_height), FLOOR(child_height), ROUND(child_height, 1))) as child_width,
+ SUM(fc.quantity) as quantity,
+ round(SUM(ogd.total_area), 2) as total_area,
+ SUM(od.perimeter) as perimeter,
+ if(od.bend_radius!=null || od.bend_radius!='',od.bend_radius,if(od.shape=2,JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')),'')) as bend_radius,
+ concat(IFNULL(od.processing_note, ''), IFNULL(od.remarks, '')) as remarks,
+ od.other_columns,
+ round(ogd.child_width) as width,
+ round(ogd.child_height) as height,
+ pd.separation,
+ #{compound} as technology_number,
+ IFNULL(JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S02')),'') as mapNumber,
+ od.building_number
+ from flow_card as fc
+ left join sd.order_glass_detail as ogd
+ on fc.order_id = ogd.order_id and fc.order_number = ogd.order_number and
+ fc.technology_number = ogd.technology_number
+ left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
+ left join sd.product_detail as pd
+ on pd.prod_id = od.product_id and pd.glass_sort = ogd.technology_number
+ left join flow_card_sort as fcs
+ on fcs.process_id = fc.process_id and fcs.order_number = fc.order_number and
+ fcs.technology_number = fc.technology_number
+ and fcs.process = #{process}
+ where fc.process_id = #{processId}
+ and position(fc.technology_number in #{compound})
+ group by fc.process_id, fc.order_number
+ <choose>
+ <when test="landingSequence != 1 and flashback != 1">
+ ORDER BY landing_sequence,fc.id desc
+ </when>
+ <!-- landingSequence != 1 鏃讹紝浼樺厛鎸� landing_sequence 鍊掑簭 -->
+ <when test="landingSequence != 1">
+ ORDER BY landing_sequence DESC
+ </when>
+ <!-- flashback = 1 鏃舵搴� -->
+ <when test="flashback == 1">
+ ORDER BY
+ CASE
+ WHEN fcs.sort IS NOT NULL AND fcs.sort <> '' THEN fcs.sort
+ ELSE fc.order_number
+ END ASC
+ </when>
+ <!-- flashback != 1 鏃跺�掑簭 -->
+ <otherwise>
+ ORDER BY
+ CASE
+ WHEN fcs.sort IS NOT NULL AND fcs.sort <> '' THEN fcs.sort
+ ELSE fc.order_number
+ END DESC
+ </otherwise>
+ </choose>
+ </select>
+
+ <select id="getDetailListLikeCompound">
+ select fc.order_number,
+ concat(IF(ROUND(ogd.child_width, 1) = FLOOR(ogd.child_width), FLOOR(ogd.child_width), ROUND(ogd.child_width, 1)), "*", IF(ROUND(child_height, 1) = FLOOR(child_height), FLOOR(child_height), ROUND(child_height, 1))) as child_width,
+ sum(fc.quantity) as quantity,
+ round(sum(ogd.total_area), 2) as total_area,
+ sum(od.perimeter) as perimeter,
+ if(od.bend_radius!=null || od.bend_radius!='',od.bend_radius,if(od.shape=2,JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')),'')) as bend_radius,
+ concat(IFNULL(od.processing_note, ''), IFNULL(od.remarks, '')) as remarks,
+ od.other_columns,
+ round(ogd.child_width) as width,
+ round(ogd.child_height) as height,
+ pd.separation,
+ #{compound} as technology_number,
+ IFNULL(JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S02')),'') as mapNumber,
+ od.building_number
+ from flow_card as fc
+ left join sd.order_glass_detail as ogd
+ on fc.order_id = ogd.order_id and fc.order_number = ogd.order_number and
+ fc.technology_number = ogd.technology_number
+ left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
+ left join sd.product_detail as pd
+ on pd.prod_id = od.product_id and pd.glass_sort = ogd.technology_number
+ left join flow_card_sort as fcs
+ on fcs.process_id = fc.process_id and fcs.order_number = fc.order_number and
+ fcs.technology_number = fc.technology_number
+ and fcs.process = #{process}
+ where fc.process_id = #{processId}
+ and position(fc.technology_number in #{compound})
+ group by fc.process_id, fc.order_number
+ <choose>
+ <when test="landingSequence != 1 and flashback != 1">
+ ORDER BY landing_sequence,fc.id desc
+ </when>
+ <!-- landingSequence != 1 鏃讹紝浼樺厛鎸� landing_sequence 鍊掑簭 -->
+ <when test="landingSequence != 1">
+ ORDER BY landing_sequence DESC
+ </when>
+ <!-- flashback = 1 鏃舵搴� -->
+ <when test="flashback == 1">
+ ORDER BY
+ CASE
+ WHEN fcs.sort IS NOT NULL AND fcs.sort <> '' THEN fcs.sort
+ ELSE fc.order_number
+ END ASC
+ </when>
+ <!-- flashback != 1 鏃跺�掑簭 -->
+ <otherwise>
+ ORDER BY
+ CASE
+ WHEN fcs.sort IS NOT NULL AND fcs.sort <> '' THEN fcs.sort
+ ELSE fc.order_number
+ END DESC
+ </otherwise>
+ </choose>
</select>
</mapper>
\ No newline at end of file
--
Gitblit v1.8.0