From cd8f015ef7ccda50f884c8a793032c04ddd14e23 Mon Sep 17 00:00:00 2001
From: 廖井涛 <2265517004@qq.com>
Date: 星期二, 08 四月 2025 10:46:39 +0800
Subject: [PATCH] erp优化部分修改
---
north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml | 94 +++++++++++++++++++++++++++++++----------------
1 files changed, 62 insertions(+), 32 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 5d3fedf..d324b3d 100644
--- a/north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
+++ b/north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
@@ -68,7 +68,8 @@
b.customer_name,
if(a.layout_status=0,'涓嶅彲鎺掔増',if(a.layout_status=1,'鍙帓鐗�','宸叉帓鐗�')) as layout_status,
a.merge,
- a.rack
+ 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
@@ -207,26 +208,36 @@
<!-- 鍒嗘灦鏄庣粏鏌ヨ-->
<select id="detailsSelectMp">
- select od.order_id,
- ogd.production_id,
- od.product_id,
- od.product_name,
- ROUND(SUM(od.quantity)-IFNULL(sum(fc.quantity)/count(fc.technology_number),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,technology_number, production_id, splitting_status
- from sd.order_glass_detail
- GROUP BY order_id, order_number) 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.splitting_status = 0
+ SELECT
+ od.order_id,
+ ogd.production_id,
+ od.product_id,
+ od.product_name,
+ ROUND(SUM(od.quantity) - IFNULL(SUM(fc.quantity) / fc.layers_number, 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;
- group by od.order_id, ogd.production_id
- order by od.id desc
</select>
<!-- 鏇存柊鍒嗘灦鐘舵��-->
@@ -272,7 +283,7 @@
od.quantity,
od.compute_gross_area,
p.total_thickness,
- ROUND(od.quantity-IFNULL(sum(fc.quantity)/count(fc.technology_number),0)) as baiscQuantity,
+ 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,
@@ -289,7 +300,7 @@
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
+ 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,
@@ -520,7 +531,7 @@
</select>
<select id="selectPrintFlowCard">
- select op.project_no,glass_total,glass_total_area,labelPrintNum,processPrintNum
+ 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
@@ -842,18 +853,18 @@
o.project,
od.building_number,
od.processing_note,
- ogd.child_width as width,
- ogd.child_height as height,
+ opd.o_width as width,
+ opd.o_height as height,
ogd.glass_child,
ogd.process,
e.type_name,
opd.stock_id,
opd.polys_id,
- od.quantity,
+ IFNULL(od.quantity,1) as quantity,
od.other_columns,
od.bend_radius,
- od.order_number as heat_layout_id,
- a.id as heat_layout_sort,
+ ifnull(od.order_number,0) as heat_layout_id,
+ ifnull(a.id,0) as heat_layout_sort,
od.product_name
from pp.optimize_detail opd
left join sd.`order` o on SUBSTR(opd.process_id, 1, 10) = o.order_id
@@ -901,7 +912,7 @@
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}
+ where opd.project_no = #{projectNo} and o.order_id is not null
order by opd.heat_layout_id, opd.heat_layout_sort desc
</select>
@@ -2779,7 +2790,7 @@
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}
+ 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>
@@ -2858,7 +2869,7 @@
</select>
<select id="flowCardToOptimizeCount">
- select count(*) from pp.flow_card where order_id = #{orderId} and engineering_occupancy=1
+ select count(*) from pp.flow_card where order_id = #{orderId} and project_no is not null
</select>
<select id="getFlowCardDetail" >
@@ -2899,13 +2910,28 @@
<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>
@@ -2938,7 +2964,7 @@
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')) AS glassNumber,
od.order_number,
ogd.child_width as width,
- ogd.child_height as height,
+ 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
@@ -3031,4 +3057,8 @@
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>
</mapper>
\ No newline at end of file
--
Gitblit v1.8.0