INSERT INTO patrol_device_state_record (patrol_device_code, patrol_device_name, time, type, create_time)
select patrol_device_code as patrol_device_code,
patrol_device_name as patrol_device_name,
now() as time,type as type,create_time as create_time
from basedata_eqpbook
where type != 12 and type != 20 and del_flag = 0 and patrol_device_code is not null
-- //录像时长
UPDATE basedata_statis_nvr nvr,
patrol_device_state_record record
SET record.record_time = nvr.duration
WHERE
nvr.patrol_device_code = record.patrol_device_code
AND DATE_FORMAT(record.time
, '%Y-%m-%d' ) = DATE_FORMAT(CURRENT_DATE ()- 1
, '%Y-%m-%d')
AND DATE_FORMAT(nvr.create_time
, '%Y-%m-%d') = DATE_FORMAT(CURRENT_DATE ()- 1
, '%Y-%m-%d');
-- //在线时长、离线次数
UPDATE basedata_statis_robotuav_online_day nvr,
patrol_device_state_record record
SET record.online_time_sum = nvr.total_online_time, record.offline_count = nvr.offline_count
WHERE
nvr.patrol_device_code = record.patrol_device_code
AND DATE_FORMAT( record.time
, '%Y-%m-%d' ) = DATE_FORMAT(
CURRENT_DATE ()- 1
, '%Y-%m-%d')
AND DATE_FORMAT(nvr.create_time
, '%Y-%m-%d') = DATE_FORMAT(CURRENT_DATE ()- 1
, '%Y-%m-%d');
-- //更新设备状态
UPDATE basedata_mont_patdevstadata nvr,
patrol_device_state_record record
SET record.state = nvr.`value`
WHERE
nvr.patrol_device_code = record.patrol_device_code
AND DATE_FORMAT( record.time
, '%Y-%m-%d' ) = DATE_FORMAT(
CURRENT_DATE ()- 1
, '%Y-%m-%d')
AND DATE_FORMAT(nvr.time
, '%Y-%m-%d') = DATE_FORMAT(CURRENT_DATE ()- 1
, '%Y-%m-%d');
-- //更新任务是否执行
UPDATE
patrol_device_state_record record,
(SELECT
(CASE COUNT (*) WHEN (COUNT (1) > 0) THEN 0 ELSE 1 END) AS task_state,record.patrol_device_code
FROM
patrol_task nvr,
basedata_mont_taskstadata sta,
patrol_device_state_record record
WHERE
find_in_set(nvr.dev_no,record.patrol_device_code)
AND nvr.task_code = sta.task_code
AND DATE_FORMAT( sta.create_time, '%Y-%m-%d' ) = DATE_FORMAT( CURRENT_DATE ()- 1, '%Y-%m-%d')
AND DATE_FORMAT( record.time, '%Y-%m-%d' ) = DATE_FORMAT(CURRENT_DATE ()- 1, '%Y-%m-%d')
GROUP BY record.patrol_device_code) aa
set record.task_state = aa.task_state
WHERE
DATE_FORMAT( record.time
, '%Y-%m-%d' ) = DATE_FORMAT(CURRENT_DATE ()- 1
, '%Y-%m-%d')
AND record.patrol_device_code = aa.patrol_device_code;
update basedata_eqpbook_channel
channel_name = #{channelName},
online_state = #{onlineState},
where channel_id = #{channelId}