idcol_online_alarm.php 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. <?php
  2. // 离线故障处理
  3. ini_set('display_errors', 1);
  4. require_once './DB.php';
  5. date_default_timezone_set('Asia/Shanghai');
  6. $config = json_decode(file_get_contents('./db_config.php'),true);
  7. $begin = date('H:i',time());
  8. while (1) {
  9. $db = new Db($config);
  10. // 生成离线故障
  11. $sql = 'SELECT L.id FROM lampinfo as L left join warning_info_log AS WI on WI.lampid = L.id and WI.onlinestatus = 1 and WI.status = 0 where L.netstatus = 0 and WI.id is null';
  12. $list = $db->query($sql);
  13. // var_dump($list);die;
  14. foreach ($list as $value) {
  15. $alarm_info = array();
  16. $alarm_info['lampid'] = $value['id'];
  17. $alarm_info['onlinestatus'] = 1;
  18. $alarm_info['updatetime'] = date('Y-m-d H:i:s',time()-8*3600);
  19. $db->table('warning_info_log')->insert($alarm_info);
  20. }
  21. // 离线故障解除
  22. $sql = 'SELECT WI.id FROM warning_info_log as WI left join lampinfo AS L on WI.lampid = L.id where L.netstatus = 1 and WI.onlinestatus = 1 and WI.status != 1 and L.id is not null';
  23. $list = $db->query($sql);
  24. foreach ($list as $key => $value) {
  25. $db->table('warning_info_log')->where('id='.$value['id'])->update(['status'=>1]);
  26. }
  27. $db->close();
  28. $end = date('H:i',time());
  29. if ($end == $begin) {
  30. sleep(1);
  31. continue;
  32. }
  33. $begin = $end;
  34. }