|
@@ -65,7 +65,7 @@
|
|
|
</if>
|
|
|
<if test="isStasis != null and isStasis != ''">
|
|
|
and st.is_anchor = #{isStasis}
|
|
|
+ and TIMESTAMPDIFF(MINUTE,st.anchor_change_time,NOW())>24*60*1
|
|
|
</if>
|
|
|
</select>
|
|
|
|
|
@@ -73,16 +73,17 @@
|
|
|
select archives.*,
|
|
|
(CASE st.is_online WHEN 'ONLINE' THEN 1 WHEN 'OFFLINE' THEN 2 WHEN 'MARK' THEN 3 END) as is_online,
|
|
|
st.is_inport,location.longitude,location.latitude,location.location,
|
|
|
- st.online_change_time ,
|
|
|
location.kwh as kwh,
|
|
|
dept.pscmc as dept_name,
|
|
|
<if test="isOnline != null and isOnline != ''">
|
|
|
+ st.online_change_time ,
|
|
|
TIMESTAMPDIFF(SECOND,st.online_change_time,NOW()) as order_day,
|
|
|
IF(floor(TIMESTAMPDIFF(SECOND,st.online_change_time,NOW())/24/60/60)>0,concat( floor(TIMESTAMPDIFF(SECOND,st.online_change_time,NOW())/24/60/60),'天'),
|
|
|
IF(floor((TIMESTAMPDIFF(SECOND,st.online_change_time,NOW())/60/60)%24)>0,concat(floor( (TIMESTAMPDIFF(SECOND,st.online_change_time,NOW())/60/60)%24),
|
|
|
- '小时'),IF(floor((TIMESTAMPDIFF(SECOND,st.online_change_time,NOW())/60)%60)>0,concat(floor( (TIMESTAMPDIFF(SECOND,st.online_change_time,NOW())/60)%60),'分钟'),""))) as number_day
|
|
|
+ '小时'),IF(floor((TIMESTAMPDIFF(SECOND,st.online_change_time,NOW())/60)%60)>0,concat(floor( (TIMESTAMPDIFF(SECOND,st.online_change_time,NOW())/60)%60),'分钟'),"1分钟"))) as number_day
|
|
|
</if>
|
|
|
<if test="isStasis != null and isStasis != ''">
|
|
|
+ st.anchor_change_time as online_change_time,
|
|
|
TIMESTAMPDIFF(DAY,st.anchor_change_time,NOW()) as number_day
|
|
|
</if>
|
|
|
from ax_beidou_ship_status st
|
|
@@ -95,7 +96,7 @@
|
|
|
</if>
|
|
|
<if test="isStasis != null and isStasis != ''">
|
|
|
and st.is_anchor = #{isStasis}
|
|
|
+ and TIMESTAMPDIFF(MINUTE,st.anchor_change_time,NOW())>24*60*1
|
|
|
</if>
|
|
|
<if test="shipId != null and shipId != ''">and (archives.ship_id like concat('%', #{shipId},'%') or archives.devide_no like concat('%', #{devideNo},'%'))</if>
|
|
|
<if test="deptId != null and deptId != ''">and dept.xw_dept_id like concat('%',#{deptId},'%')</if>
|
|
@@ -124,16 +125,16 @@
|
|
|
|
|
|
<select id="stasisShipTotal" parameterType="string" resultType="stasisShipStatistics">
|
|
|
select count(1) as shipTotal,
|
|
|
- SUM(CASE WHEN st.anchor_change_time BETWEEN DATE_SUB(NOW(),INTERVAL 15 DAY) AND DATE_SUB(NOW(),INTERVAL 7 DAY) THEN 1 ELSE 0 END) as smallDay,
|
|
|
- SUM(CASE WHEN st.anchor_change_time BETWEEN DATE_SUB(NOW(),INTERVAL 30 DAY) AND DATE_SUB(NOW(),INTERVAL 15 DAY) THEN 1 ELSE 0 END) as middleDay,
|
|
|
- SUM(CASE WHEN st.anchor_change_time < DATE_SUB(NOW(),INTERVAL 30 DAY) THEN 1 ELSE 0 END) as largeDay
|
|
|
+ IFNULL(SUM(CASE WHEN st.anchor_change_time BETWEEN DATE_SUB(NOW(),INTERVAL 15 DAY) AND DATE_SUB(NOW(),INTERVAL 7 DAY) THEN 1 ELSE 0 END),'0') as smallDay,
|
|
|
+ IFNULL(SUM(CASE WHEN st.anchor_change_time BETWEEN DATE_SUB(NOW(),INTERVAL 30 DAY) AND DATE_SUB(NOW(),INTERVAL 15 DAY) THEN 1 ELSE 0 END),'0') as middleDay,
|
|
|
+ IFNULL(SUM(CASE WHEN st.anchor_change_time < DATE_SUB(NOW(),INTERVAL 30 DAY) THEN 1 ELSE 0 END),'0') as largeDay
|
|
|
from ax_beidou_ship_status st
|
|
|
inner join ax_beidou_ship_archives archives on st.device_id = archives.devide_no
|
|
|
<if test="deptId != null and deptId != ''">
|
|
|
inner join ax_beidou_dept dept on archives.police_station_id = dept.pscbh
|
|
|
</if>
|
|
|
where st.is_anchor='TRUE'
|
|
|
+ and TIMESTAMPDIFF(MINUTE,st.anchor_change_time,NOW())>24*60*1
|
|
|
<if test="shipId != null and shipId != ''">and (archives.ship_id like concat('%', #{shipId},'%') or archives.devide_no like concat('%', #{devideNo},'%'))</if>
|
|
|
<if test="deptId != null and deptId != ''">and dept.xw_dept_id like concat('%',#{deptId},'%')</if>
|
|
|
</select>
|
|
@@ -141,9 +142,9 @@
|
|
|
|
|
|
<select id="offlineShipTotal" parameterType="string" resultType="offlineShipStatistics">
|
|
|
select count(1) as shipTotal,
|
|
|
- SUM(CASE WHEN st.online_change_time BETWEEN DATE_SUB(NOW(),INTERVAL 8 DAY) AND NOW() THEN 1 ELSE 0 END) as smallDay,
|
|
|
- SUM(CASE WHEN st.online_change_time BETWEEN DATE_SUB(NOW(),INTERVAL 30 DAY) AND DATE_SUB(NOW(),INTERVAL 8 DAY) THEN 1 ELSE 0 END) as middleDay,
|
|
|
- SUM(CASE WHEN st.online_change_time < DATE_SUB(NOW(),INTERVAL 30 DAY) THEN 1 ELSE 0 END) as largeDay
|
|
|
+ IFNULL(SUM(CASE WHEN st.online_change_time BETWEEN DATE_SUB(NOW(),INTERVAL 8 DAY) AND NOW() THEN 1 ELSE 0 END),'0') as smallDay,
|
|
|
+ IFNULL(SUM(CASE WHEN st.online_change_time BETWEEN DATE_SUB(NOW(),INTERVAL 30 DAY) AND DATE_SUB(NOW(),INTERVAL 8 DAY) THEN 1 ELSE 0 END),'0') as middleDay,
|
|
|
+ IFNULL(SUM(CASE WHEN st.online_change_time < DATE_SUB(NOW(),INTERVAL 30 DAY) THEN 1 ELSE 0 END),'0') as largeDay
|
|
|
from ax_beidou_ship_status st
|
|
|
RIGHT join ax_beidou_ship_archives archives on st.device_id = archives.devide_no
|
|
|
<if test="deptId != null and deptId != ''">
|