<?xml version="1.0" encoding="UTF-8" ?>
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
|
<mapper namespace="com.mes.hollowtask.mapper.HollowBigStorageCageHistoryTaskMapper">
|
|
<resultMap id="baseMap" type="com.mes.largenscreen.entity.DailyProductionVO">
|
<result column="date" property="date"/>
|
<result column="count_out_one" property="countOutOne"/>
|
<result column="total_area_out_one" property="totalAreaOutOne"/>
|
<result column="count_out_two" property="countOutTwo"/>
|
<result column="total_area_out_two" property="totalAreaOutTwo"/>
|
<result column="count_in" property="countIn"/>
|
<result column="total_area_in" property="totalAreaIn"/>
|
<result column="count_out" property="countOut"/>
|
<result column="total_area_out" property="totalAreaOut"/>
|
<result column="hollow_count_out_one" property="hollowCountOutOne"/>
|
<result column="hollow_total_area_out_one" property="hollowTotalAreaOutOne"/>
|
<result column="hollow_count_out_two" property="hollowCountOutTwo"/>
|
<result column="hollow_total_area_out_two" property="hollowTotalAreaOutTwo"/>
|
</resultMap>
|
|
<select id="queryHollowDailyProduction" resultMap="baseMap">
|
with hollow_out_one_temp as (
|
select count(t.glass_id) as hollow_count_out_one,
|
round(sum(t1.width * t1.height) / 1000000, 2) as hollow_total_area_out_one
|
from hollow_big_storage_cage_history_task t
|
INNER JOIN glass_info t1 on t.glass_id = t1.glass_id
|
where t.task_type = 5
|
and t.target_slot = 930
|
<if test="beginDate != null and beginDate != ''">
|
AND STR_TO_DATE( t.create_time, '%Y-%m-%d' ) BETWEEN #{beginDate}
|
AND #{endDate}
|
</if>
|
),
|
hollow_out_two_temp as (
|
select count(t.glass_id) as hollow_count_out_two,
|
round(sum(t1.width * t1.height) / 1000000, 2) as hollow_total_area_out_two
|
from hollow_big_storage_cage_history_task t
|
INNER JOIN glass_info t1 on t.glass_id = t1.glass_id
|
where t.task_type = 5
|
and t.target_slot = 931
|
<if test="beginDate != null and beginDate != ''">
|
AND STR_TO_DATE( t.create_time, '%Y-%m-%d' ) BETWEEN #{beginDate}
|
AND #{endDate}
|
</if>
|
)
|
select *
|
from hollow_out_one_temp
|
inner join hollow_out_two_temp on 1 = 1
|
</select>
|
<select id="queryRunTimes" resultType="com.mes.largenscreen.entity.RunTime">
|
WITH big_storage_cage_history_task_temp AS
|
(SELECT DISTINCT create_time
|
FROM hollow_big_storage_cage_history_task
|
WHERE task_type = 5 AND DATE ( create_time ) = '${days}' ),
|
time_temp AS (
|
SELECT
|
date (create_time) AS day_time,
|
MIN(create_time) AS start_timestamp,
|
MAX(create_time) AS end_timestamp
|
FROM
|
hollow_big_storage_cage_history_task
|
WHERE
|
Date ( create_time ) = '${days}'
|
GROUP BY
|
date ( create_time )
|
),
|
result_temp AS (
|
SELECT
|
date ( t1.create_time ) AS day_time,
|
t1.create_time AS first_timestamp,
|
t2.create_time AS second_timestamp,
|
TIMESTAMPDIFF( MINUTE, t1.create_time, t2.create_time ) AS diff_minutes
|
FROM
|
( SELECT create_time, LEAD( create_time ) OVER ( ORDER BY create_time ) AS next_timestamp FROM big_storage_cage_history_task_temp ) t1
|
JOIN ( SELECT create_time, LEAD( create_time ) OVER ( ORDER BY create_time ) AS next_timestamp FROM big_storage_cage_history_task_temp ) t2
|
ON t1.next_timestamp = t2.create_time
|
WHERE
|
TIMESTAMPDIFF( MINUTE
|
, t1.create_time
|
, t2.create_time ) BETWEEN 11
|
AND 500
|
GROUP BY
|
t1.create_time,
|
t2.create_time
|
),
|
result AS (
|
SELECT first_timestamp, second_timestamp, diff_minutes, start_timestamp, end_timestamp
|
FROM time_temp t1 LEFT JOIN result_temp t2
|
ON t1.day_time = t2.day_time )
|
SELECT *
|
FROM result
|
</select>
|
</mapper>
|