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/ReportingWork.xml | 36 ++++++++++++++++++++----------------
1 files changed, 20 insertions(+), 16 deletions(-)
diff --git a/north-glass-erp/src/main/resources/mapper/pp/ReportingWork.xml b/north-glass-erp/src/main/resources/mapper/pp/ReportingWork.xml
index 10a06e5..ff495d4 100644
--- a/north-glass-erp/src/main/resources/mapper/pp/ReportingWork.xml
+++ b/north-glass-erp/src/main/resources/mapper/pp/ReportingWork.xml
@@ -519,13 +519,10 @@
GROUP BY c.order_number,c.technology_number
</select>
<select id="selectReportingWorkMp" resultMap="reportingWorkMap">
- SELECT a.*,
- round(ogd.child_width*ogd.child_height * a.this_completed_quantity/1000000,2) as completedArea,
- round(ogd.child_width*ogd.child_height * a.this_worn_quantity/1000000,2) as wornArea
- from (select rw.reporting_work_id,
+ select rw.reporting_work_id,
(rw.reporting_work_time) as reporting_work_time,
o.order_id,
- CONCAT(rw.process_id,'/',GROUP_CONCAT(distinct rwd.technology_number SEPARATOR '')) as process_id,
+ CONCAT(rw.process_id,'/',rwd.goup) as process_id,
o.project,
o.batch,
rw.this_process,
@@ -536,11 +533,15 @@
rw.reviewed_state,
rw.notes,
rw.reviewed,
- rwd.order_number,
- rwd.technology_number
+ round(rwd.completedArea/LENGTH(rwd.goup),2) as completedArea,
+ rwd.wornArea
# (IF(rw.reviewed_state = 0, '鏈鏍�', IF(rw.reviewed_state = 1, '瀹℃牳閫氳繃', '瀹℃牳涓嶉�氳繃'))) as reviewed_state
from
- reporting_work as rw left join reporting_work_detail as rwd on rw.reporting_work_id=rwd.reporting_work_id
+ reporting_work as rw
+ left join (
+ SELECT cc.reporting_work_id,cc.goup,round(sum(cc.completedArea),2) as completedArea ,round(sum(cc.wornArea),2) as wornArea from (SELECT rwds.reporting_work_id, GROUP_CONCAT(distinct rwds.technology_number SEPARATOR '') as goup,
+ sum(rwds.child_width*rwds.child_height*completed_quantity/1000000)as completedArea,
+ sum(rwds.child_width*rwds.child_height*rwds.breakage_quantity/1000000) as wornArea from reporting_work_detail as rwds GROUP BY rwds.reporting_work_id,order_number ) as cc GROUP BY cc.reporting_work_id)as rwd on rw.reporting_work_id=rwd.reporting_work_id
left join sd.`order` as o on o.order_id=rw.order_id
where rw.reviewed_state != 2
@@ -575,9 +576,7 @@
</if>
GROUP BY rw.reporting_work_id
ORDER BY rw.reporting_work_id desc
- limit #{offset},#{pageSize} ) as a
- left join sd.order_glass_detail as ogd on ogd.order_id=a.order_id and ogd.order_number=a.order_number and ogd.technology_number=a.technology_number
- GROUP BY a.reporting_work_id
+ limit #{offset},#{pageSize}
</select>
<select id="getPageTotal">
@@ -1023,14 +1022,19 @@
<select id="getFootSum">
SELECT
- SUM(rwd.completed_quantity) AS thisCompletedQuantity,
- ROUND(SUM(rwd.child_width * rwd.child_height * rwd.completed_quantity / 1000000), 2) AS completedArea,
- SUM(rwd.breakage_quantity) AS thisWornQuantity,
- ROUND(SUM(rwd.child_width * rwd.child_height * rwd.breakage_quantity / 1000000), 2) AS wornArea,
+ SUM(rw.this_completed_quantity) AS thisCompletedQuantity,
+ ROUND(SUM(rwd.completedArea/length(goup)), 2) AS completedArea,
+ SUM(rw.this_worn_quantity) AS thisWornQuantity,
+ ROUND(SUM(rwd.wornArea), 2) AS wornArea,
CEILING(count(rw.reporting_work_id)/#{pageSize}) as 'pageTotal',
count(distinct rw.reporting_work_id) as 'total'
FROM reporting_work AS rw
- LEFT JOIN reporting_work_detail AS rwd ON rw.reporting_work_id = rwd.reporting_work_id
+ LEFT JOIN
+ (SELECT cc.reporting_work_id,cc.goup,round(sum(cc.completedArea),2) as completedArea ,round(sum(cc.wornArea),2) as wornArea from (SELECT rwds.reporting_work_id, GROUP_CONCAT(distinct rwds.technology_number SEPARATOR '') as goup,
+ sum(rwds.child_width*rwds.child_height*completed_quantity/1000000)as completedArea,
+ sum(rwds.child_width*rwds.child_height*rwds.breakage_quantity/1000000) as wornArea from reporting_work_detail as rwds GROUP BY rwds.reporting_work_id,order_number ) as cc GROUP BY cc.reporting_work_id)
+ AS rwd
+ ON rw.reporting_work_id = rwd.reporting_work_id
/*LEFT JOIN sd.order_glass_detail AS ogd ON ogd.order_id = rw.order_id
AND ogd.order_number = rwd.order_number
AND ogd.technology_number = rwd.technology_number*/
--
Gitblit v1.8.0