From 67bcaeb7e16e5701a8455b34e2a9f3083ae78016 Mon Sep 17 00:00:00 2001
From: chenlu <1320612696@qq.com>
Date: 星期五, 07 二月 2025 09:56:34 +0800
Subject: [PATCH] 进度报表动态求和,优化流程卡半径显示
---
north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml | 225 +++++++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 206 insertions(+), 19 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 e43b65a..0697cf3 100644
--- a/north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
+++ b/north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
@@ -68,9 +68,11 @@
if(a.layout_status=0,'涓嶅彲鎺掔増',if(a.layout_status=1,'鍙帓鐗�','宸叉帓鐗�')) as layout_status,
a.merge
from (select id,order_id,process_id,order_number, quantity,founder,max(layout_status) as layout_status,create_time,merge from flow_card
- group by process_Id,order_number) as a left join sd.`order` as b on a.order_Id=b.order_id
+ 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>
@@ -115,6 +117,7 @@
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 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>
@@ -484,15 +487,18 @@
</select>
<select id="selectPrintFlowCard">
- select project_no,glass_total,glass_total_area
- from pp.optimize_project
- where date(create_time)>=#{selectTime1} and date(create_time) <= #{selectTime2}
- and state >= 20
- order by create_time desc
+ select op.project_no,glass_total,glass_total_area,labelPrintNum,processPrintNum
+ 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
+ GROUP BY op.project_no
+ order by op.create_time desc
</select>
<select id="selectPrintMp">
- select *
+ SELECT result.*,fcc.print_status from ( select *
from ((select fc.id,
fc.order_id,
fc.process_id,
@@ -507,7 +513,6 @@
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
@@ -549,7 +554,6 @@
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
@@ -587,7 +591,6 @@
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
@@ -602,7 +605,7 @@
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
+ SUBSTRING(ogds.process, LOCATE('涓┖', 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
@@ -618,7 +621,9 @@
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)
+ 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">
@@ -660,7 +665,78 @@
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,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
+ order by IF(fcs.sort != NULL or fcs.sort != '', fcs.sort, fc.order_number)
+ </select>
+
+ <select id="getDetailLists">
select fc.order_number,
concat(round(ogd.child_width), "*", round(ogd.child_height)) as child_width,
fc.quantity,
@@ -688,6 +764,7 @@
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>
@@ -861,7 +938,7 @@
ogd.glass_child,
#{process} as process,
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')) AS glassNumber,
- od.bend_radius
+ 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
@@ -984,7 +1061,7 @@
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.technology_number = #{technologyNumber}
+ and fc.order_number = #{orderNumber}
group by od.order_number, width, height
order by fc.process_id
</select>
@@ -1068,7 +1145,19 @@
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.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
@@ -1079,6 +1168,7 @@
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
@@ -1213,11 +1303,11 @@
<select id="getDetailListLike">
select fc.order_number,
- concat(round(ogd.child_width), "*", round(ogd.child_height)) as child_width,
+ 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.shape=2,JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')),od.bend_radius) as bend_radius,
+ if(od.bend_radius!=null,od.bend_radius,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,
@@ -1238,6 +1328,39 @@
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
+ order by IF(fcs.sort != NULL or fcs.sort != '', fcs.sort, fc.order_number)
+ </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)
@@ -1291,7 +1414,7 @@
sum(pl.patch_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,
+ if(od.bend_radius!=null,od.bend_radius,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,
@@ -1820,7 +1943,19 @@
od.bend_radius as bendRadius,
ogd.glass_child as glassChild,
ogd.glass_address as glassAddress,
- JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.color')) AS color
+ 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
@@ -1834,6 +1969,7 @@
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
@@ -2106,6 +2242,13 @@
' 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,
fc.technology_number as technologyNumber,
od.building_number as buildingNumber,
@@ -2509,4 +2652,48 @@
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
+ 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)
+ where fc.project_no = #{printProject}
+ 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>
+
+
</mapper>
\ No newline at end of file
--
Gitblit v1.8.0