From 347bde69a521797568a7e22f55853935dbd05a99 Mon Sep 17 00:00:00 2001
From: zhoushihao <zsh19950802@163.com>
Date: 星期一, 12 五月 2025 18:18:03 +0800
Subject: [PATCH] 1、大屏数据导出
---
hangzhoumesParent/common/servicebase/src/main/resources/mapper/LargenScreenMapper.xml | 161 +++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 161 insertions(+), 0 deletions(-)
diff --git a/hangzhoumesParent/common/servicebase/src/main/resources/mapper/LargenScreenMapper.xml b/hangzhoumesParent/common/servicebase/src/main/resources/mapper/LargenScreenMapper.xml
index 14a179a..f505063 100644
--- a/hangzhoumesParent/common/servicebase/src/main/resources/mapper/LargenScreenMapper.xml
+++ b/hangzhoumesParent/common/servicebase/src/main/resources/mapper/LargenScreenMapper.xml
@@ -136,6 +136,167 @@
t6.product_date
order by t.date
</select>
+ <select id="exportDailyProduction" resultType="com.mes.largenscreen.entity.DailyProductionData">
+ with edg_storage_history_temp as (
+ select t.glass_id_in as glass_id, t.create_time, STR_TO_DATE(t.create_time, '%Y-%m-%d') as product_date
+ from edg_storage_device_task_history t
+ where t.task_type in
+ (1, 3)
+ and STR_TO_DATE(t.create_time, '%Y-%m-%d') BETWEEN #{beginDate} and #{endDate}
+ )
+ , big_storage_cage_history_temp as (
+ select t.glass_id, t.create_time, STR_TO_DATE(t.create_time, '%Y-%m-%d') as product_date
+ from big_storage_cage_history_task t
+ where t.task_type = 2
+ and STR_TO_DATE(t.create_time, '%Y-%m-%d') BETWEEN #{beginDate} and #{endDate}
+ )
+ , hollow_big_storage_cage_history_temp as (
+ select t.glass_id, t.create_time, STR_TO_DATE(t.create_time, '%Y-%m-%d') as product_date
+ from hollow_big_storage_cage_history_task t
+ where t.task_type = 5
+ and STR_TO_DATE(t.create_time, '%Y-%m-%d') BETWEEN #{beginDate} and #{endDate}
+ )
+ , engineer_temp as (
+ select STR_TO_DATE(create_time, '%Y-%m-%d') as product_date, engineer_id, glass_total, glass_total_area
+ from engineering
+ where STR_TO_DATE(create_time, '%Y-%m-%d') BETWEEN #{beginDate} and #{endDate}
+ )
+ , edg_temp as (
+ select t.product_date,
+ count(t.glass_id) as
+ count_out,
+ round(sum(t1.width * t1.height) / 1000000, 1) as total_area_out
+ from edg_storage_history_temp t
+ inner join glass_info t1 on t.glass_id = t1.glass_id
+ group by product_date
+ )
+ , edg_time_one as (
+ select product_date,
+ min(create_time) as edg_begin_time,
+ max(create_time) as edg_end_time,
+ TIMESTAMPDIFF(MINUTE, min(create_time), max(create_time)) AS edg_time_total
+ from edg_storage_history_temp
+ group by product_date
+ )
+ , edg_time_two as (
+ SELECT t1.product_date,
+ sum(TIMESTAMPDIFF(MINUTE, t1.create_time, t2.create_time)) AS edg_time_free
+ FROM (SELECT product_date,
+ create_time,
+ LEAD(create_time) OVER (ORDER BY create_time) AS next_timestamp
+ FROM edg_storage_history_temp
+ ) t1
+ JOIN
+ (SELECT create_time,
+ LEAD(create_time) OVER (ORDER BY create_time) AS next_timestamp
+ FROM edg_storage_history_temp) t2 ON t1.next_timestamp = t2.create_time
+ WHERE TIMESTAMPDIFF(MINUTE, t1.create_time, t2.create_time) between 6 and 500
+ group by t1.product_date
+ )
+ , big_storage_temp as (
+ select t.product_date,
+ count(distinct t1.engineer_id, t1.tempering_layout_id) as tempering_layout_count,
+ count(distinct t1.glass_id) as tempering_glass_count,
+ round(sum(t1.width * t1.height) / 1000000, 1) as tempering_area
+ from big_storage_cage_history_temp t
+ inner join glass_info t1
+ on t.glass_id = t1.glass_id
+ group by t.product_date
+ )
+ , big_storage_time_base as (
+ select distinct product_date, create_time from big_storage_cage_history_temp
+ )
+ , big_storage_time_one as (select product_date,
+ min(create_time) as big_begin_time,
+ max(create_time) as big_end_time,
+ TIMESTAMPDIFF(MINUTE, min(create_time), max(create_time)) AS big_time_total
+ from big_storage_time_base
+ group by product_date)
+ , big_storage_time_two as (
+ SELECT t1.product_date,
+ IFNULL(sum(TIMESTAMPDIFF(MINUTE, t1.create_time, t2.create_time)), 0) AS big_time_free
+ FROM (SELECT product_date,
+ create_time,
+ LEAD(create_time) OVER (ORDER BY create_time) AS next_timestamp
+ FROM big_storage_time_base) t1
+ JOIN
+ (SELECT create_time,
+ LEAD(create_time) OVER (ORDER BY create_time) AS next_timestamp
+ FROM big_storage_time_base) t2 ON t1.next_timestamp = t2.create_time
+ WHERE TIMESTAMPDIFF(MINUTE, t1.create_time, t2.create_time) between 11 and 500
+ group by t1.product_date
+ )
+ , hollow_big_storage_temp as (
+ select t.product_date,
+ count(distinct t1.glass_id) as hollow_glass_count,
+ round(sum(t1.width * t1.height) / 1000000, 1) as hollow_area
+ from hollow_big_storage_cage_history_temp t
+ inner join glass_info t1
+ on t.glass_id = t1.glass_id
+ group by t.product_date
+ )
+ , hollow_big_storage_time_base as (
+ select distinct product_date, create_time from hollow_big_storage_cage_history_temp
+ )
+ , hollow_big_storage_time_one as (select product_date,
+ min(create_time) as hollow_begin_time,
+ max(create_time) as hollow_end_time,
+ TIMESTAMPDIFF(MINUTE, min(create_time), max(create_time)) AS hollow_time_total
+ from hollow_big_storage_time_base
+ group by product_date)
+ , hollow_big_storage_time_two as (
+ SELECT t1.product_date,
+ IFNULL(sum(TIMESTAMPDIFF(MINUTE, t1.create_time, t2.create_time)), 0) AS hollow_time_free
+ FROM (SELECT product_date,
+ create_time,
+ LEAD(create_time) OVER (ORDER BY create_time) AS next_timestamp
+ FROM hollow_big_storage_time_base) t1
+ JOIN
+ (SELECT create_time,
+ LEAD(create_time) OVER (ORDER BY create_time) AS next_timestamp
+ FROM hollow_big_storage_time_base) t2 ON t1.next_timestamp = t2.create_time
+ WHERE TIMESTAMPDIFF(MINUTE, t1.create_time, t2.create_time) between 11 and 500
+ group by t1.product_date
+ )
+ , result as (
+ select t.count_out,
+ t.total_area_out,
+ t1.*,
+ t2.edg_time_free,
+ t1.edg_time_total - t2.edg_time_free as edg_time_diff,
+ t3.tempering_layout_count,
+ t3.tempering_glass_count,
+ t3.tempering_area,
+ t4.big_begin_time,
+ t4.big_end_time,
+ t4.big_time_total,
+ t5.big_time_free,
+ t4.big_time_total - t5.big_time_free as big_time_diff,
+ t6.hollow_glass_count,
+ t6.hollow_area,
+ t7.hollow_begin_time,
+ t7.hollow_end_time,
+ t7.hollow_time_total,
+ t8.hollow_time_free,
+ t7.hollow_time_total - t8.hollow_time_free as hollow_time_diff,
+ t9.engineer_id,
+ t9.glass_total,
+ t9.glass_total_area
+ from edg_temp t
+ LEFT JOIN edg_time_one t1 on t.product_date = t1.product_date
+ LEFT JOIN edg_time_two t2 on t.product_date = t2.product_date
+ LEFT JOIN big_storage_temp t3 on t.product_date = t3.product_date
+ LEFT JOIN big_storage_time_one t4 on t.product_date = t4.product_date
+ LEFT JOIN big_storage_time_two t5 on t.product_date = t5.product_date
+ LEFT JOIN hollow_big_storage_temp t6 on t.product_date = t6.product_date
+ LEFT JOIN hollow_big_storage_time_one t7 on t.product_date = t7.product_date
+ LEFT JOIN hollow_big_storage_time_two t8 on t.product_date = t8.product_date
+ LEFT JOIN engineer_temp t9 on t.product_date = t9.product_date
+ )
+ select *
+ from result
+ order by product_date
+ </select>
</mapper>
\ No newline at end of file
--
Gitblit v1.8.0