|
|
@@ -123,7 +123,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|
|
FROM gxt_repair_order_flow f
|
|
|
LEFT JOIN gxt_repair_order ro
|
|
|
ON ro.id = f.order_id
|
|
|
- WHERE f.action_type IN ('approved', 'resume', 'auto_suspend', 'auto_resume')
|
|
|
+ WHERE ro.work_order_status IN ('completed','archived')
|
|
|
+ AND ro.real_start_time IS NOT NULL AND ro.real_end_time IS NOT NULL
|
|
|
+ AND f.action_type IN ('approved', 'resume', 'auto_suspend', 'auto_resume')
|
|
|
) t
|
|
|
</select>
|
|
|
|
|
|
@@ -148,7 +150,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|
|
FROM gxt_repair_order_flow f
|
|
|
LEFT JOIN gxt_repair_order ro
|
|
|
ON ro.id = f.order_id
|
|
|
- WHERE f.action_type IN ('approved', 'resume', 'auto_suspend', 'auto_resume')
|
|
|
+ WHERE ro.work_order_status IN ('completed','archived')
|
|
|
+ AND ro.real_start_time IS NOT NULL AND ro.real_end_time IS NOT NULL
|
|
|
+ AND f.action_type IN ('approved', 'resume', 'auto_suspend', 'auto_resume')
|
|
|
ORDER BY f.order_id, f.action_time
|
|
|
</insert>
|
|
|
|
|
|
@@ -165,14 +169,22 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|
|
SELECT
|
|
|
t0.order_id,
|
|
|
COALESCE(SUM(CASE
|
|
|
- WHEN t1.action_time <![CDATA[<]]> t1.real_start_time
|
|
|
+ WHEN wo0.real_start_time>t2.action_time AND wo0.real_end_time>wo0.real_start_time
|
|
|
THEN TIMESTAMPDIFF(SECOND, t1.action_time, t2.action_time)
|
|
|
+ WHEN wo0.real_start_time>t1.action_time AND t2.action_time>wo0.real_start_time AND wo0.real_end_time>wo0.real_start_time
|
|
|
+ THEN TIMESTAMPDIFF(SECOND, t1.action_time, wo0.real_start_time)
|
|
|
ELSE 0
|
|
|
END), 0) AS total_before_start_suspend_seconds,
|
|
|
|
|
|
COALESCE(SUM(CASE
|
|
|
- WHEN t1.action_time >= t1.real_start_time
|
|
|
+ WHEN t1.action_time>wo0.real_start_time AND wo0.real_end_time>wo0.real_start_time AND wo0.real_end_time>=t2.action_time
|
|
|
THEN TIMESTAMPDIFF(SECOND, t1.action_time, t2.action_time)
|
|
|
+ WHEN wo0.real_start_time>t1.action_time AND t2.action_time>wo0.real_start_time AND wo0.real_end_time>wo0.real_start_time AND wo0.real_end_time>=t2.action_time
|
|
|
+ THEN TIMESTAMPDIFF(SECOND, wo0.real_start_time, t2.action_time)
|
|
|
+ WHEN t1.action_time>wo0.real_start_time AND wo0.real_end_time>wo0.real_start_time AND t2.action_time>wo0.real_end_time AND wo0.real_end_time>=t1.action_time
|
|
|
+ THEN TIMESTAMPDIFF(SECOND, t1.action_time, wo0.real_end_time)
|
|
|
+ WHEN wo0.real_start_time>t1.action_time AND t2.action_time>wo0.real_start_time AND wo0.real_end_time>wo0.real_start_time AND t2.action_time>wo0.real_end_time
|
|
|
+ THEN TIMESTAMPDIFF(SECOND, wo0.real_start_time, wo0.real_end_time)
|
|
|
ELSE 0
|
|
|
END), 0) AS total_in_work_suspend_seconds,
|
|
|
COALESCE(SUM(CASE
|
|
|
@@ -183,36 +195,60 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|
|
|
|
|
CONCAT(
|
|
|
FLOOR(COALESCE(SUM(CASE
|
|
|
- WHEN t1.action_time <![CDATA[<]]> t1.real_start_time
|
|
|
+ WHEN wo0.real_start_time>t2.action_time AND wo0.real_end_time>wo0.real_start_time
|
|
|
THEN TIMESTAMPDIFF(SECOND, t1.action_time, t2.action_time)
|
|
|
+ WHEN wo0.real_start_time>t1.action_time AND t2.action_time>wo0.real_start_time AND wo0.real_end_time>wo0.real_start_time
|
|
|
+ THEN TIMESTAMPDIFF(SECOND, t1.action_time, wo0.real_start_time)
|
|
|
ELSE 0
|
|
|
END), 0) / 3600), '小时',
|
|
|
FLOOR(MOD(COALESCE(SUM(CASE
|
|
|
- WHEN t1.action_time <![CDATA[<]]> t1.real_start_time
|
|
|
+ WHEN wo0.real_start_time>t2.action_time AND wo0.real_end_time>wo0.real_start_time
|
|
|
THEN TIMESTAMPDIFF(SECOND, t1.action_time, t2.action_time)
|
|
|
+ WHEN wo0.real_start_time>t1.action_time AND t2.action_time>wo0.real_start_time AND wo0.real_end_time>wo0.real_start_time
|
|
|
+ THEN TIMESTAMPDIFF(SECOND, t1.action_time, wo0.real_start_time)
|
|
|
ELSE 0
|
|
|
END), 0), 3600) / 60), '分钟',
|
|
|
MOD(COALESCE(SUM(CASE
|
|
|
- WHEN t1.action_time <![CDATA[<]]> t1.real_start_time
|
|
|
+ WHEN wo0.real_start_time>t2.action_time AND wo0.real_end_time>wo0.real_start_time
|
|
|
THEN TIMESTAMPDIFF(SECOND, t1.action_time, t2.action_time)
|
|
|
+ WHEN wo0.real_start_time>t1.action_time AND t2.action_time>wo0.real_start_time AND wo0.real_end_time>wo0.real_start_time
|
|
|
+ THEN TIMESTAMPDIFF(SECOND, t1.action_time, wo0.real_start_time)
|
|
|
ELSE 0
|
|
|
END), 0), 60), '秒'
|
|
|
) AS before_start_suspend_format,
|
|
|
|
|
|
CONCAT(
|
|
|
FLOOR(COALESCE(SUM(CASE
|
|
|
- WHEN t1.action_time >= t1.real_start_time
|
|
|
+ WHEN t1.action_time>wo0.real_start_time AND wo0.real_end_time>wo0.real_start_time AND wo0.real_end_time>=t2.action_time
|
|
|
THEN TIMESTAMPDIFF(SECOND, t1.action_time, t2.action_time)
|
|
|
+ WHEN wo0.real_start_time>t1.action_time AND t2.action_time>wo0.real_start_time AND wo0.real_end_time>wo0.real_start_time AND wo0.real_end_time>=t2.action_time
|
|
|
+ THEN TIMESTAMPDIFF(SECOND, wo0.real_start_time, t2.action_time)
|
|
|
+ WHEN t1.action_time>wo0.real_start_time AND wo0.real_end_time>wo0.real_start_time AND t2.action_time>wo0.real_end_time AND wo0.real_end_time>=t1.action_time
|
|
|
+ THEN TIMESTAMPDIFF(SECOND, t1.action_time, wo0.real_end_time)
|
|
|
+ WHEN wo0.real_start_time>t1.action_time AND t2.action_time>wo0.real_start_time AND wo0.real_end_time>wo0.real_start_time AND t2.action_time>wo0.real_end_time
|
|
|
+ THEN TIMESTAMPDIFF(SECOND, wo0.real_start_time, wo0.real_end_time)
|
|
|
ELSE 0
|
|
|
END), 0) / 3600), '小时',
|
|
|
FLOOR(MOD(COALESCE(SUM(CASE
|
|
|
- WHEN t1.action_time >= t1.real_start_time
|
|
|
+ WHEN t1.action_time>wo0.real_start_time AND wo0.real_end_time>wo0.real_start_time AND wo0.real_end_time>=t2.action_time
|
|
|
THEN TIMESTAMPDIFF(SECOND, t1.action_time, t2.action_time)
|
|
|
+ WHEN wo0.real_start_time>t1.action_time AND t2.action_time>wo0.real_start_time AND wo0.real_end_time>wo0.real_start_time AND wo0.real_end_time>=t2.action_time
|
|
|
+ THEN TIMESTAMPDIFF(SECOND, wo0.real_start_time, t2.action_time)
|
|
|
+ WHEN t1.action_time>wo0.real_start_time AND wo0.real_end_time>wo0.real_start_time AND t2.action_time>wo0.real_end_time AND wo0.real_end_time>=t1.action_time
|
|
|
+ THEN TIMESTAMPDIFF(SECOND, t1.action_time, wo0.real_end_time)
|
|
|
+ WHEN wo0.real_start_time>t1.action_time AND t2.action_time>wo0.real_start_time AND wo0.real_end_time>wo0.real_start_time AND t2.action_time>wo0.real_end_time
|
|
|
+ THEN TIMESTAMPDIFF(SECOND, wo0.real_start_time, wo0.real_end_time)
|
|
|
ELSE 0
|
|
|
END), 0), 3600) / 60), '分钟',
|
|
|
MOD(COALESCE(SUM(CASE
|
|
|
- WHEN t1.action_time >= t1.real_start_time
|
|
|
+ WHEN t1.action_time>wo0.real_start_time AND wo0.real_end_time>wo0.real_start_time AND wo0.real_end_time>=t2.action_time
|
|
|
THEN TIMESTAMPDIFF(SECOND, t1.action_time, t2.action_time)
|
|
|
+ WHEN wo0.real_start_time>t1.action_time AND t2.action_time>wo0.real_start_time AND wo0.real_end_time>wo0.real_start_time AND wo0.real_end_time>=t2.action_time
|
|
|
+ THEN TIMESTAMPDIFF(SECOND, wo0.real_start_time, t2.action_time)
|
|
|
+ WHEN t1.action_time>wo0.real_start_time AND wo0.real_end_time>wo0.real_start_time AND t2.action_time>wo0.real_end_time AND wo0.real_end_time>=t1.action_time
|
|
|
+ THEN TIMESTAMPDIFF(SECOND, t1.action_time, wo0.real_end_time)
|
|
|
+ WHEN wo0.real_start_time>t1.action_time AND t2.action_time>wo0.real_start_time AND wo0.real_end_time>wo0.real_start_time AND t2.action_time>wo0.real_end_time
|
|
|
+ THEN TIMESTAMPDIFF(SECOND, wo0.real_start_time, wo0.real_end_time)
|
|
|
ELSE 0
|
|
|
END), 0), 60), '秒'
|
|
|
) AS in_work_suspend_format,
|
|
|
@@ -252,6 +288,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|
|
AND t4.order_seq = t3.order_seq + 1
|
|
|
AND t3.action_type = 'auto_suspend'
|
|
|
AND t4.action_type IN ('resume','auto_resume')
|
|
|
+ LEFT JOIN gxt_repair_order wo0
|
|
|
+ ON t0.order_id = wo0.id
|
|
|
GROUP BY t0.order_id
|
|
|
ORDER BY t0.order_id
|
|
|
</insert>
|
|
|
@@ -332,7 +370,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|
|
THEN TIMESTAMPDIFF(SECOND, t1.action_time, t2.action_time)
|
|
|
WHEN wo0.real_start_time>t1.action_time AND t2.action_time>wo0.real_start_time AND wo0.real_end_time>wo0.real_start_time AND wo0.real_end_time>=t2.action_time
|
|
|
THEN TIMESTAMPDIFF(SECOND, wo0.real_start_time, t2.action_time)
|
|
|
- WHEN t1.action_time>wo0.real_start_time AND wo0.real_end_time>wo0.real_start_time AND t2.action_time>wo0.real_end_time
|
|
|
+ WHEN t1.action_time>wo0.real_start_time AND wo0.real_end_time>wo0.real_start_time AND t2.action_time>wo0.real_end_time AND wo0.real_end_time>=t1.action_time
|
|
|
THEN TIMESTAMPDIFF(SECOND, t1.action_time, wo0.real_end_time)
|
|
|
WHEN wo0.real_start_time>t1.action_time AND t2.action_time>wo0.real_start_time AND wo0.real_end_time>wo0.real_start_time AND t2.action_time>wo0.real_end_time
|
|
|
THEN TIMESTAMPDIFF(SECOND, wo0.real_start_time, wo0.real_end_time)
|
|
|
@@ -375,7 +413,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|
|
THEN TIMESTAMPDIFF(SECOND, t1.action_time, t2.action_time)
|
|
|
WHEN wo0.real_start_time>t1.action_time AND t2.action_time>wo0.real_start_time AND wo0.real_end_time>wo0.real_start_time AND wo0.real_end_time>=t2.action_time
|
|
|
THEN TIMESTAMPDIFF(SECOND, wo0.real_start_time, t2.action_time)
|
|
|
- WHEN t1.action_time>wo0.real_start_time AND wo0.real_end_time>wo0.real_start_time AND t2.action_time>wo0.real_end_time
|
|
|
+ WHEN t1.action_time>wo0.real_start_time AND wo0.real_end_time>wo0.real_start_time AND t2.action_time>wo0.real_end_time AND wo0.real_end_time>=t1.action_time
|
|
|
THEN TIMESTAMPDIFF(SECOND, t1.action_time, wo0.real_end_time)
|
|
|
WHEN wo0.real_start_time>t1.action_time AND t2.action_time>wo0.real_start_time AND wo0.real_end_time>wo0.real_start_time AND t2.action_time>wo0.real_end_time
|
|
|
THEN TIMESTAMPDIFF(SECOND, wo0.real_start_time, wo0.real_end_time)
|
|
|
@@ -386,7 +424,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|
|
THEN TIMESTAMPDIFF(SECOND, t1.action_time, t2.action_time)
|
|
|
WHEN wo0.real_start_time>t1.action_time AND t2.action_time>wo0.real_start_time AND wo0.real_end_time>wo0.real_start_time AND wo0.real_end_time>=t2.action_time
|
|
|
THEN TIMESTAMPDIFF(SECOND, wo0.real_start_time, t2.action_time)
|
|
|
- WHEN t1.action_time>wo0.real_start_time AND wo0.real_end_time>wo0.real_start_time AND t2.action_time>wo0.real_end_time
|
|
|
+ WHEN t1.action_time>wo0.real_start_time AND wo0.real_end_time>wo0.real_start_time AND t2.action_time>wo0.real_end_time AND wo0.real_end_time>=t1.action_time
|
|
|
THEN TIMESTAMPDIFF(SECOND, t1.action_time, wo0.real_end_time)
|
|
|
WHEN wo0.real_start_time>t1.action_time AND t2.action_time>wo0.real_start_time AND wo0.real_end_time>wo0.real_start_time AND t2.action_time>wo0.real_end_time
|
|
|
THEN TIMESTAMPDIFF(SECOND, wo0.real_start_time, wo0.real_end_time)
|
|
|
@@ -397,7 +435,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|
|
THEN TIMESTAMPDIFF(SECOND, t1.action_time, t2.action_time)
|
|
|
WHEN wo0.real_start_time>t1.action_time AND t2.action_time>wo0.real_start_time AND wo0.real_end_time>wo0.real_start_time AND wo0.real_end_time>=t2.action_time
|
|
|
THEN TIMESTAMPDIFF(SECOND, wo0.real_start_time, t2.action_time)
|
|
|
- WHEN t1.action_time>wo0.real_start_time AND wo0.real_end_time>wo0.real_start_time AND t2.action_time>wo0.real_end_time
|
|
|
+ WHEN t1.action_time>wo0.real_start_time AND wo0.real_end_time>wo0.real_start_time AND t2.action_time>wo0.real_end_time AND wo0.real_end_time>=t1.action_time
|
|
|
THEN TIMESTAMPDIFF(SECOND, t1.action_time, wo0.real_end_time)
|
|
|
WHEN wo0.real_start_time>t1.action_time AND t2.action_time>wo0.real_start_time AND wo0.real_end_time>wo0.real_start_time AND t2.action_time>wo0.real_end_time
|
|
|
THEN TIMESTAMPDIFF(SECOND, wo0.real_start_time, wo0.real_end_time)
|