MangerinfoController.class.php 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309
  1. <?php
  2. namespace Home\Controller;
  3. use Think\Controller;
  4. class MangerinfoController extends ComController {
  5. //设备管理列表
  6. public function index(){
  7. $Data=I();
  8. if ($Data['dwtype']==16){
  9. $owner_xx=M()->query("select owner_code, owner_name, unitinfo, sim, install_time,rtmp,hls from sp_owner where owner_code='".$Data['deviceid']."'");
  10. $owner_address=M()->query("select owner_address from sp_owner_company where owner_id='".$Data['companyid']."'");
  11. $gzsj=M()->query("select data4,time from sp_video2017 where device_code='".$Data['deviceid']."' order by time desc");
  12. if ( !empty($owner_xx[0]['rtmp']) ){
  13. $owner_xx[0]['rtmp']=$owner_xx[0]['rtmp'];
  14. }else{
  15. $owner_xx[0]['rtmp']='&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;无';
  16. }
  17. // print_r($owner_xx);
  18. $this->assign('type_name',"视频监控");
  19. $this->assign('type',"video");
  20. $this->assign('companyid',$Data['companyid']);
  21. $this->assign('owner_xx',$owner_xx);
  22. $this->assign('owner_address',$owner_address);
  23. $this->assign('gzsj',$gzsj);
  24. $this->display('Index/05');
  25. }else if ($Data['dwtype']==17){
  26. $owner_xx=M()->query("select owner_code, owner_name, unitinfo, sim, install_time,rtmp,hls from sp_owner where owner_code='".$Data['deviceid']."'");
  27. $owner_address=M()->query("select owner_address from sp_owner_company where owner_id='".$Data['companyid']."'");
  28. $gzsj=M()->query("select data4,time from sp_lifter2017 where device_code='".$Data['deviceid']."' order by time desc");
  29. if ( !empty($owner_xx[0]['rtmp']) ){
  30. $owner_xx[0]['rtmp']=$owner_xx[0]['rtmp'];
  31. }else{
  32. $owner_xx[0]['rtmp']='&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;无';
  33. }
  34. // print_r($owner_xx);
  35. $this->assign('type_name',"电梯监控");
  36. $this->assign('type',"elevator");
  37. $this->assign('companyid',$Data['companyid']);
  38. $this->assign('owner_xx',$owner_xx);
  39. $this->assign('owner_address',$owner_address);
  40. $this->assign('gzsj',$gzsj);
  41. $this->display('Index/05');
  42. }else if ($Data['dwtype']==4){
  43. $owner_xx=M()->query("select owner_code, owner_name, unitinfo, sim, install_time,rtmp,hls from sp_owner where owner_code='".$Data['deviceid']."'");
  44. $owner_address=M()->query("select owner_address from sp_owner_company where owner_id='".$Data['companyid']."'");
  45. $gzsj=M()->query("select data4,time from sp_d".$Data['deviceid']." where device_code='".$Data['deviceid']."' order by time desc");
  46. if ( !empty($owner_xx[0]['rtmp']) ){
  47. $owner_xx[0]['rtmp']=$owner_xx[0]['rtmp'];
  48. }else{
  49. $owner_xx[0]['rtmp']='&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;无';
  50. }
  51. $this->assign('type_name',"消防栓监控");
  52. $this->assign('type',"firehydrant");
  53. $this->assign('companyid',$Data['companyid']);
  54. $this->assign('owner_xx',$owner_xx);
  55. $this->assign('owner_address',$owner_address);
  56. $this->assign('gzsj',$gzsj);
  57. $this->display('Index/05');
  58. } else if ($Data['dwtype']==128){
  59. $owner_xx=M()->query("select owner_code, owner_name, unitinfo, sim, install_time,rtmp,hls from sp_owner where owner_code='".$Data['deviceid']."'");
  60. $owner_address=M()->query("select owner_address from sp_owner_company where owner_id='".$Data['companyid']."'");
  61. $gzsj=M()->query("select device_status,time from sp_iw2017 where device_code='".$Data['deviceid']."' order by time desc");
  62. if ( !empty($owner_xx[0]['rtmp']) ){
  63. $owner_xx[0]['rtmp']=$owner_xx[0]['rtmp'];
  64. }else{
  65. $owner_xx[0]['rtmp']='&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;无';
  66. }
  67. if ($gzsj[0]['device_status']){
  68. $gzsj[0]['data4']='正常';
  69. }else{
  70. $gzsj[0]['data4']='打开告警';
  71. }
  72. $this->assign('type_name',"井盖监控");
  73. $this->assign('type',"firehydrant");
  74. $this->assign('companyid',$Data['companyid']);
  75. $this->assign('owner_xx',$owner_xx);
  76. $this->assign('owner_address',$owner_address);
  77. $this->assign('gzsj',$gzsj);
  78. $this->display('Index/05');
  79. }else{
  80. $res=M()->query("SELECT * FROM sp_v_deviceall WHERE deviceid='".$Data['deviceid']."'");
  81. $azwz=M()->query("select unitinfo from sp_owner where owner_code='".$Data['deviceid']."'");
  82. $res[0]['azwz']=$azwz[0]['unitinfo'];
  83. //在线离线权限问题
  84. $login_phone=M()->query("SELECT * FROM sp_login_phone");
  85. $phone_arr=array();
  86. foreach ($login_phone as $key=>$value){
  87. $phone_arr[$key]=$login_phone[$key]['phone'];
  88. }
  89. // print_r($phone_arr);
  90. // print_r('手机'.$_SESSION['phone']);
  91. $phone=$_SESSION['phone'];
  92. // print_r($_SESSION);
  93. $isin = in_array($phone,$phone_arr);
  94. // print_r('aaa'+$isin);
  95. if ($isin){
  96. $phone_pd=1;
  97. }else{
  98. $phone_pd=0;
  99. }
  100. $time=M()->query("SELECT device_id,MAX(data_time) as data_time FROM sp_owner_status WHERE device_id='".$Data['deviceid']."'");
  101. if (!empty($time)){
  102. // print_r($time[0]['data_time'].'时间2'.date('Y-m-d h:i:s', time()));
  103. $stime=date('Y-m-d h:i:s', time());
  104. $etime=$time[0]['data_time'];
  105. $hour=intval((strtotime($stime)-strtotime($etime))/3600);
  106. // $hour=floor((strtotime(date('Y-m-d h:i:s', time()))-strtotime($time[0]['data_time']))%86400/3600);
  107. // print_r($hour);
  108. if ($hour<24){
  109. $zs_status='在线';
  110. }else{
  111. $zs_status='离线';
  112. }
  113. }else{
  114. $zs_status='状态不存在';
  115. }
  116. // print_r($zs_status);
  117. if ($res[0]['dwtype']!=1){
  118. if ($phone_pd==1){
  119. $res[0]['zs_status']=$zs_status;
  120. }
  121. }
  122. if ( !empty($res[0]['rtmp']) ){
  123. // $res[0]['rtmp']='<iframe scrolling="no" width="100%" height="210px" src="'.$res[0]['rtmp'].'" frameborder="0"></iframe>';
  124. $res[0]['rtmp']=$res[0]['rtmp'];
  125. }else{
  126. $res[0]['rtmp']='&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;无';
  127. }
  128. $this->assign('list',$res[0]);
  129. $this->assign('companyid',$Data['companyid']);
  130. // if($_SESSION['idphone']=='15000012454'){
  131. $dwtype=$res[0]['dwtype'];
  132. $deviceid=$Data['deviceid'];
  133. if ($dwtype==1) {
  134. $j2017=M('hj2017');
  135. $counts= $j2017->order('time desc')->where(array('device_code'=>$deviceid))->count('id');//总数
  136. $j_counts= $j2017->where(array('device_code'=>$deviceid,'clzt'=>'1'))->count('id');//解决总数
  137. $d_counts= $j2017->where(array('device_code'=>$deviceid,'clwb'=>'否'))->count('id');//真实总数
  138. $w_counts= $j2017->where(array('device_code'=>$deviceid,'clwb'=>'是'))->count('id');//wb总数
  139. $this->assign('counts',$counts);
  140. $this->assign('j_counts',$j_counts);
  141. $this->assign('z_counts',$d_counts);
  142. $this->assign('w_counts',$w_counts);
  143. $this->display('Index/04-01');
  144. }
  145. if ($dwtype==2) {
  146. // $j2017=M('sj2017');
  147. // $shui=$j2017->query("SELECT time,IF(ISNULL(data4),0,data4) as data4 FROM sp_d".$deviceid." where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(time) ORDER BY time DESC");
  148. $shui=M()->query("select * from sp_owner_sync_data where device_id='".$Data['deviceid']."' and point_code=4 order by data_time desc");
  149. $electric_data=M()->query("select point_data from sp_owner_sync_data where device_id='".$Data['deviceid']."' and point_code=2 order by data_time desc");
  150. $signal_data=M()->query("select point_data from sp_owner_sync_data where device_id='".$Data['deviceid']."' and point_code=3 order by data_time desc");
  151. $a=array();$b=array();$electric=array();$signal=array();
  152. foreach ($shui as $value) {
  153. $a[]=$value['data_time'];
  154. $b[]=$value['point_data'];
  155. }
  156. foreach ($electric_data as $value){
  157. $electric[]= $value['point_data'];
  158. }
  159. foreach ($signal_data as $value){
  160. $signal[]= $value['point_data']*20;
  161. }
  162. //$bb=$shui[count($shui)-1];
  163. $bb=$shui[0];
  164. $this->assign('bb',$bb['point_data']);
  165. $this->assign('dwtype',2);
  166. $this->assign('time',json_encode($a));
  167. $this->assign('data4',json_encode($b));
  168. $this->assign('electric',json_encode($electric));
  169. $this->assign('signal',json_encode($signal));
  170. $this->display('Index/04-02');
  171. }
  172. if ($dwtype==3) {
  173. //$j2017=M('sj2017');
  174. // $fume=$j2017->query("SELECT time,IF(ISNULL(data3),0,data3) as data3 FROM sp_y".$deviceid." where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(time) ORDER BY time DESC limit 10");
  175. $fume = M()->query("select RSRQ, DeviceStatus, BatteryLevel, storeTime, device_id from sp_y".$deviceid." ORDER BY storeTime DESC limit 1");
  176. $a = M()->query("select dwtype, sim,install_time,rtmp,hls from sp_owner where owner_code='".$deviceid."'");
  177. if($a[0]['dwtype']==3){
  178. $a[0]['dwtype']='烟感';
  179. }
  180. if ( !empty($a[0]['rtmp']) ){
  181. $a[0]['rtmp']=$a[0]['rtmp'];
  182. }else{
  183. $a[0]['rtmp']='&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;无';
  184. }
  185. foreach ($fume as $key=>$arr){
  186. if ($fume[$key]['devicestatus']==7){
  187. $fume[$key]['type']='正常';
  188. }else if ($fume[$key]['devicestatus']==5){
  189. $fume[$key]['type']='故障';
  190. }else if ($fume[$key]['devicestatus']==4){
  191. $fume[$key]['type']='低压';
  192. }else if ($fume[$key]['devicestatus']==2){
  193. $fume[$key]['type']='报警静音';
  194. }else if ($fume[$key]['devicestatus']==1){
  195. $fume[$key]['type']='报警';
  196. }
  197. }
  198. // print_r($fume);
  199. // print_r($a);exit();
  200. $this->assign('a', $a);
  201. $this->assign('fume', $fume);
  202. $this->display('Index/03-3');
  203. }
  204. //液位
  205. if ($dwtype==5) {
  206. $shui=M()->query("select * from sp_owner_sync_data where device_id='".$Data['deviceid']."' and point_code=4 order by data_time desc");
  207. // $j2017=M('yj2017');
  208. // $shui=$j2017->query("SELECT time,IF(ISNULL(data3),0,data4) as data4 FROM sp_d".$deviceid." where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(time) ORDER BY time DESC");
  209. // $a=array();$b=array();
  210. // foreach ($shui as $value) {
  211. // $a[]=$value['time'];
  212. // $b[]=$value['data4'];
  213. // }
  214. // $bb=$b[0];
  215. // $this->assign('bb',$b[0]);
  216. $a=array();$b=array();
  217. foreach ($shui as $value) {
  218. $a[]=$value['data_time'];
  219. $b[]=$value['point_data'];
  220. }
  221. //$bb=$shui[count($shui)-1];
  222. // print_r($bb);
  223. $bb=$shui[0];
  224. $this->assign('bb',$bb['point_data']);
  225. $this->assign('dwtype',5);
  226. $this->assign('time',json_encode($a));
  227. $this->assign('data4',json_encode($b));
  228. $this->display('Index/04-08');
  229. }
  230. if ($dwtype==6) {
  231. //$rtu=M()->query("SELECT * FROM sp_d".$Data['id']." WHERE id in(SELECT MAX(id) FROM sp_d".$Data['id']." GROUP BY ncmd) AND ncmd !=''");
  232. //$rtu=M()->query("SELECT * FROM sp_rtu2017 WHERE id in(SELECT MAX(id) FROM sp_rtu2017 GROUP BY device_code,ncmd,`port`) AND device_code='".$Data['id']."' AND ncmd !='' ORDER BY time DESC");
  233. $rtu=M()->query("SELECT id,data4,ncmd,`time`,data1,data2,CASE WHEN `port`='E6' THEN '模拟量' WHEN `port`='E3' THEN '开关量' END as types
  234. FROM sp_d".$deviceid." WHERE id in(SELECT MAX(id)
  235. FROM sp_d".$deviceid." GROUP BY `port`,ncmd) AND ncmd !='' "
  236. .(($deviceid=='4023363030303635')?" AND (ncmd !='02' OR `port`!='E6') ":
  237. (($deviceid=='4023363030303639')?" AND (ncmd !='03' OR `port`!='E6') ":
  238. (($deviceid=='4023363030303434')?" AND (ncmd !='04' OR `port`!='E3') AND (ncmd !='05' OR `port`!='E3')":
  239. (($deviceid=='4023363030303336')? " AND (ncmd !='01' OR `port`!='E6') ":
  240. (($deviceid=='4023363030303733')?" AND (ncmd !='05' AND ncmd !='06' )":"")))))//山海大酒店B1楼水泵房02端口模拟量因设备故障,暂时屏蔽
  241. );
  242. // foreach ($rtu as $key=>$value){
  243. // if ($rtu[$key]['ncmd']=='01'|| $rtu[$key]['ncmd']=='02'|| $rtu[$key]['ncmd']=='03'|| $rtu[$key]['ncmd']=='04'|| $rtu[$key]['ncmd']=='05'
  244. // ||$rtu[$key]['ncmd']=='06'||$rtu[$key]['ncmd']=='07'|| $rtu[$key]['ncmd']=='07'|| $rtu[$key]['ncmd']=='08'||$rtu[$key]['ncmd']=='09'){
  245. // $rtu[$key]['ncmd']='0'.hexdec($rtu[$key]['ncmd']);
  246. // }else{
  247. // $rtu[$key]['ncmd']=hexdec($rtu[$key]['ncmd']);
  248. // }
  249. //
  250. // }
  251. $this->assign('rtu',$rtu);
  252. // dump($rtu);
  253. $res=M()->query("SELECT systype FROM sp_owner_port where owner_code='".$deviceid."'");
  254. $this->assign("trues",'0'.$res[0]['systype']);
  255. $this->display('Index/04-03');
  256. }
  257. // 电气火灾
  258. if($dwtype==7){
  259. $install_time=M()->query("select install_time,rtmp,hls,owner_name,sim from sp_owner where owner_code='".$Data['deviceid']."'");
  260. $owner_address=M()->query("select owner_address from sp_owner_company where owner_id=".$Data['companyid']);
  261. $true_status=M()->query("select true_status from sp_devices_status where deviceid=".$Data['deviceid']);
  262. $xssj=M()->query("select * from sp_owner_status where device_id='".$Data['deviceid']."'");
  263. $zxsj=M()->query("select max(data_time) as zxsj from sp_owner_status where device_id='".$Data['deviceid']."'");
  264. if($true_status[0]['true_status']=='75'){
  265. $dstatus='离线';
  266. }else{
  267. $dstatus='在线';
  268. }
  269. if ( !empty($install_time[0]['rtmp']) ){
  270. $install_time[0]['rtmp']=$install_time[0]['rtmp'];
  271. }else{
  272. $install_time[0]['rtmp']='&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;无';
  273. }
  274. $data=array(
  275. 'owner_name' => $install_time[0]['owner_name'],
  276. 'dstatus' => $dstatus,
  277. 'dthz' => '电气火灾',
  278. 'deviceid' => $Data['deviceid'],
  279. 'sim' => $install_time[0]['sim'],
  280. 'install_time' => $install_time[0]['install_time'],
  281. 'owner_address' => $owner_address[0]['owner_address'],
  282. 'rtmp' => $install_time[0]['rtmp'],
  283. 'hls' => $install_time[0]['hls'],
  284. );
  285. $this->assign('xssj',$xssj);
  286. $this->assign('zxsj',$zxsj);
  287. $this->assign('data',$data);
  288. $this->display('Index/04-04');
  289. }
  290. }
  291. }
  292. }