FireinfoController.class.php.bak.2021-12-03 43 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964
  1. <?php
  2. namespace Home\Controller;
  3. use Think\Controller;
  4. use Think\Cache\Driver;
  5. include '../Common/function.php';
  6. include '/var/www/html/jdxf/Public/vendor/phpMQTT/phpMQTT.php';
  7. class FireinfoController extends ComController
  8. {
  9. //报警明细
  10. public function index()
  11. {
  12. $Data = I();
  13. //$id = $Data['id'];
  14. //print_r($Data);exit();
  15. switch ($Data['type']) {
  16. case '1':
  17. # 火
  18. $res = M()->query("SELECT * FROM sp_v_hj2017 WHERE id='" . $Data['id'] . "'");
  19. if (!empty($res)) {
  20. $time_y = date("Y-m");
  21. $sl_data = M()->query("SELECT count(*) as sl FROM sp_v_hj2017 WHERE device_code='" . $res[0]['device_code'] . "' and time like '%" . $time_y . "%'");
  22. $this->assign('sl_data', $sl_data[0]['sl']);
  23. } else {
  24. $this->assign('sl_data', 0);
  25. }
  26. if (!empty($res[0]['data4'])) {
  27. $val = M()->query("SELECT `desc` FROM sp_userinfo_point WHERE hcp='" . $res[0]['data4'] . "'");
  28. if (!empty($val[0]['desc'])) {
  29. $res[0]['data4'] = $val[0]['desc'];
  30. } else {
  31. $res[0]['data4'] = str_replace(" ", "<br>", $res[0]['data4']);
  32. }
  33. } else {
  34. $res[0]['data4'] = '无';
  35. }
  36. $this->assign('url', 'Fire');
  37. break;
  38. case '2':
  39. # 水
  40. $res = M()->query("select * from sp_v_sj2017_2 where id='" . $Data['id'] . "' order by time desc");
  41. if (!empty($res)) {
  42. $time_y = date("Y-m");
  43. $sl_data = M()->query("SELECT count(*) as sl FROM sp_sj2017 WHERE device_code='" . $res[0]['device_code'] . "' and time like '%" . $time_y . "%'");
  44. $this->assign('sl_data', $sl_data[0]['sl']);
  45. } else {
  46. $this->assign('sl_data', 0);
  47. }
  48. $this->assign('url', 'Water');
  49. if ($res[0]['dwtype'] == 5) {
  50. $res[0]['data4'] = '水位值:' . $res[0]['data4'] . 'M';
  51. } else {
  52. $res[0]['data4'] = '水压值:' . $res[0]['data4'] . 'Mpa';
  53. }
  54. if ($res[0]['clzt'] == 0) {
  55. $res[0]['clstatus'] = '未处理';
  56. } else if ($res[0]['clzt'] == 1) {
  57. $res[0]['clstatus'] = '已处理';
  58. } else {
  59. $res[0]['clstatus'] = $res[0]['clzt'];
  60. }
  61. break;
  62. case '6';
  63. #RTU
  64. $res = M()->query("select sp_rtu2017.data1, sp_rtu2017.id,sp_rtu2017.ncmd, sp_rtu2017.port, sp_rtu2017.clwb, sp_rtu2017.time, sp_rtu2017.device_code, sp_rtu2017.data4, sp_rtu2017.clzt, sp_rtu2017.data2,sp_rtu2017.clr, sp_rtu2017.clsj, sp_rtu2017.clnr,sp_owner.company, sp_owner.dwtype, sp_owner.owner_name,sp_owner_company.h5 from sp_owner JOIN sp_rtu2017 ON sp_rtu2017.device_code=sp_owner.owner_code JOIN sp_owner_company on sp_owner.company=sp_owner_company.owner_id WHERE sp_rtu2017.id=" . $Data['id']);
  65. $this->assign('url', 'Measure');
  66. if (!empty($res)) {
  67. $time_y = date("Y-m");
  68. $sl_data = M()->query("SELECT count(*) as sl FROM sp_rtu2017 WHERE device_code='" . $res[0]['device_code'] . "' and time like '%" . $time_y . "%'");
  69. $this->assign('sl_data', $sl_data[0]['sl']);
  70. } else {
  71. $this->assign('sl_data', 0);
  72. }
  73. //判断$Data['type']拼接wtype
  74. if ($Data['type'] == 6) {
  75. $res[0]['cs1']=$res[0]['data2'];
  76. $res[0]['cs2']=$res[0]['data4'];
  77. $res[0]['wtype'] = $res[0]['data2'];
  78. $res[0]['data4'] = $res[0]['data4'] . ',' . $res[0]['data2'];
  79. if ($res[0]['clzt'] == 0) {
  80. $res[0]['clstatus'] = '未处理';
  81. } elseif ($res[0]['clzt'] == 1) {
  82. $res[0]['clstatus'] = '已处理';
  83. } else {
  84. $res[0]['clstatus'] = $res[0]['clzt'];
  85. }
  86. }
  87. if ($res[0]['port'] == 'E6') {
  88. if ($res[0]['data2'] == '低压' || $res[0]['data2'] == '高压') {
  89. $res[0]['dznr'] = '水压值:' . $res[0]['data1'] . 'Mpa';
  90. } elseif ($res[0]['data2'] == '低水位' || $res[0]['data2'] == '高水位') {
  91. $res[0]['dznr'] = '水位:' . $res[0]['data1'] . 'M';
  92. } elseif ($res[0]['data2'] == '低温' || $res[0]['data2'] == '高温') {
  93. $res[0]['dznr'] = '温度:' . $res[0]['data1'] . '℃';
  94. } elseif ($res[0]['data2'] == '低湿度' || $res[0]['data2'] == '高湿度') {
  95. $res[0]['dznr'] = '湿度:' . $res[0]['data1'] . '%';
  96. } else {
  97. $res[0]['dznr'] = $res[0]['data4'];
  98. }
  99. } else {
  100. $res[0]['dznr'] = $res[0]['data4'];
  101. }
  102. break;
  103. case '7':
  104. # 电气火灾
  105. $res = M()->query("SELECT o.*,c.company,c.owner_name,o.data1 FROM sp_ef2017 o JOIN sp_owner c ON o.device_code=c.owner_code WHERE o.id=" . $Data['id']);
  106. if (!empty($res)) {
  107. $time_y = date("Y-m");
  108. $sl_data = M()->query("SELECT count(*) as sl FROM sp_ef2017 WHERE device_code='" . $res[0]['device_code'] . "' and time like '%" . $time_y . "%'");
  109. $this->assign('sl_data', $sl_data[0]['sl']);
  110. } else {
  111. $this->assign('sl_data', 0);
  112. }
  113. $res1 = M()->query("select h5 from sp_owner_company where owner_id=" . $res[0]['company']);
  114. $this->assign('url', 'Efire');
  115. $res[0]['h5'] = $res1[0]['h5'];
  116. if ($res[0]['clzt'] == 0) {
  117. $res[0]['clstatus'] = '未处理';
  118. } elseif ($res[0]['clzt'] == 1) {
  119. $res[0]['clstatus'] = '已处理';
  120. } else {
  121. $res[0]['clstatus'] = $res[0]['clzt'];
  122. }
  123. if ($res[0]['data1'] == 'EF1') {
  124. $res[0]['data4'] = 'A相欠压值:' . $res[0]['data2'] . 'V B相欠压值:' . $res[0]['data3'] . 'V C相欠压值:' . $res[0]['data4'] . 'V';
  125. } elseif ($res[0]['data1'] == 'EF2') {
  126. $res[0]['data4'] = 'A相过压值:' . $res[0]['data2'] . 'V B相过压值:' . $res[0]['data3'] . 'V C相过压值:' . $res[0]['data4'] . 'V';
  127. } elseif ($res[0]['data1'] == 'EF3') {
  128. $res[0]['data4'] = 'A相过流值:' . $res[0]['data2'] . 'mA B相过流值:' . $res[0]['data3'] . 'mA C相过流值:' . $res[0]['data4'] . 'mA';
  129. } elseif ($res[0]['data1'] == 'EF4') {
  130. $res[0]['data4'] = '漏电流值:' . $res[0]['data2'] . 'mA';
  131. } elseif ($res[0]['data1'] == 'EF5') {
  132. $res[0]['data4'] = '温度1值:' . $res[0]['data2'] . '℃';
  133. } elseif ($res[0]['data1'] == 'EF6') {
  134. $res[0]['data4'] = '温度2值:' . $res[0]['data2'] . '℃';
  135. } elseif ($res[0]['data1'] == 'EF7') {
  136. $res[0]['data4'] = '温度3值:' . $res[0]['data2'] . '℃';
  137. } elseif ($res[0]['data1'] == 'EF7') {
  138. $res[0]['data4'] = '温度4值:' . $res[0]['data2'] . '℃';
  139. } elseif ($res[0]['data1'] == 'EF9') {
  140. $res[0]['data4'] = '设备离线';
  141. }
  142. if ($res[0]['data1'] != 'EF9') {
  143. $res[0]['wtype'] = '在线';
  144. }
  145. break;
  146. case '16':
  147. // print_r($Data);exit();
  148. $res = M()->query("select a.id,a.device_code,a.data4,a.clzt,a.time,d.owner_name,d.unitinfo,a.data2,d.company,a.clwb,a.clsj,a.clnr,a.clr from sp_video2017 a join sp_owner d ON a.device_code=d.owner_code where a.id=" . $Data['id'] . " order by a.time desc");
  149. $this->assign('url', 'VideoAlarm');
  150. if (!empty($res)) {
  151. $time_y = date("Y-m");
  152. $sl_data = M()->query("SELECT count(*) as sl FROM sp_video2017 WHERE device_code='" . $res[0]['device_code'] . "' and time like '%" . $time_y . "%'");
  153. $this->assign('sl_data', $sl_data[0]['sl']);
  154. } else {
  155. $this->assign('sl_data', 0);
  156. }
  157. if(strpos($res[0]['data2'],'http://101.133.214.75:8080') !== false){
  158. $res[0]['data2']=str_replace("http://101.133.214.75:8080","https://qhome.usky.cn",$res[0]['data2']);
  159. }
  160. if(strpos($res[0]['data2'],'http://47.103.74.123') !== false){
  161. $res[0]['data2']=str_replace("http://47.103.74.123","https://iot.usky.cn",$res[0]['data2']);
  162. }
  163. $res[0]['aaa'] = $res[0]['data4'];
  164. $res[0]['data4'] = '报警内容:' . $res[0]['data4'];
  165. if ($res[0]['clzt'] == 0) {
  166. $res[0]['clstatus'] = '未处理';
  167. } else if ($res[0]['clzt'] == 1) {
  168. $res[0]['clstatus'] = '已处理';
  169. } else {
  170. $res[0]['clstatus'] = $res[0]['clzt'];
  171. }
  172. if (!empty($res[0]['data2'])) {
  173. $res[0]['pd'] = 1;
  174. }
  175. // print_r($res);
  176. // exit();
  177. break;
  178. case '17':
  179. // print_r($Data);exit();
  180. $res = M()->query("select a.id,a.device_code,a.data4,a.clzt,a.time,d.owner_name,d.unitinfo,a.data2,d.company,a.clwb,a.clsj,a.clnr,a.cldh,a.clr from sp_lifter2017 a join sp_owner d ON a.device_code=d.owner_code where a.id=" . $Data['id'] . " order by a.time desc");
  181. if (!empty($res)) {
  182. $time_y = date("Y-m");
  183. $sl_data = M()->query("SELECT count(*) as sl FROM sp_lifter2017 WHERE device_code='" . $res[0]['device_code'] . "' and time like '%" . $time_y . "%'");
  184. $this->assign('sl_data', $sl_data[0]['sl']);
  185. } else {
  186. $this->assign('sl_data', 0);
  187. }
  188. $this->assign('url', 'Lifter');
  189. $res[0]['aaa'] = $res[0]['data4'];
  190. // $res[0]['data4']='报警内容:'.$res[0]['data4'];
  191. if ($res[0]['clzt'] == 0) {
  192. $res[0]['clstatus'] = '未处理';
  193. } else if ($res[0]['clzt'] == 1) {
  194. $res[0]['clstatus'] = '已处理';
  195. } else {
  196. $res[0]['clstatus'] = $res[0]['clzt'];
  197. }
  198. if (!empty($res[0]['data2'])) {
  199. $res[0]['pd'] = 1;
  200. }
  201. break;
  202. case '130':
  203. $res = M()->query("select a.id,a.device_code,a.data4,a.clzt,a.time,d.owner_name,d.unitinfo,a.data2,d.company,a.clwb,a.clsj,a.clnr,a.cldh,a.clr from sp_door2020 a join sp_owner d ON a.device_code=d.owner_code where a.id=" . $Data['id'] . " order by a.time desc");
  204. if (!empty($res)) {
  205. $time_y = date("Y-m");
  206. $sl_data = M()->query("SELECT count(*) as sl FROM sp_door2020 WHERE device_code='" . $res[0]['device_code'] . "' and time like '%" . $time_y . "%'");
  207. $this->assign('sl_data', $sl_data[0]['sl']);
  208. } else {
  209. $this->assign('sl_data', 0);
  210. }
  211. $this->assign('url', 'GateMagnetism');
  212. $res[0]['aaa'] = $res[0]['data4'];
  213. $res[0]['data4'] = $res[0]['data4'];
  214. if ($res[0]['clzt'] == 0) {
  215. $res[0]['clstatus'] = '未处理';
  216. } else if ($res[0]['clzt'] == 1) {
  217. $res[0]['clstatus'] = '已处理';
  218. }
  219. break;
  220. case '131':
  221. $res = M()->query("select a.id,a.device_code,a.data4,a.clzt,a.time,d.owner_name,d.unitinfo,a.data2,d.company,a.clwb,a.clsj,a.clnr,a.cldh,a.clr from sp_gas2020 a join sp_owner d ON a.device_code=d.owner_code where a.id=" . $Data['id'] . " order by a.time desc");
  222. if (!empty($res)) {
  223. $time_y = date("Y-m");
  224. $sl_data = M()->query("SELECT count(*) as sl FROM sp_gas2020 WHERE device_code='" . $res[0]['device_code'] . "' and time like '%" . $time_y . "%'");
  225. $this->assign('sl_data', $sl_data[0]['sl']);
  226. } else {
  227. $this->assign('sl_data', 0);
  228. }
  229. $this->assign('url', 'CombustibleGas');
  230. $res[0]['aaa'] = $res[0]['data4'];
  231. $res[0]['data4'] = '报警内容:' . $res[0]['data4'];
  232. if ($res[0]['clzt'] == 0) {
  233. $res[0]['clstatus'] = '未处理';
  234. } else if ($res[0]['clzt'] == 1) {
  235. $res[0]['clstatus'] = '已处理';
  236. }
  237. break;
  238. case '128':
  239. $res = M()->query("select a.id,a.device_code,a.time,a.device_status,b.owner_name,a.clzt,a.clwb,a.cldh,a.clsj,a.clnr,b.unitinfo,c.owner_address,b.company,a.clr from sp_iw2017 a join sp_owner b on a.device_code=b.owner_code join sp_owner_company c on b.company=c.owner_id where a.id=" . $Data['id']);
  240. if (!empty($res)) {
  241. $time_y = date("Y-m");
  242. $sl_data = M()->query("SELECT count(*) as sl FROM sp_iw2017 WHERE device_code='" . $res[0]['device_code'] . "' and time like '%" . $time_y . "%'");
  243. $this->assign('sl_data', $sl_data[0]['sl']);
  244. } else {
  245. $this->assign('sl_data', 0);
  246. }
  247. if ($res[0]['device_status'] == 1) {
  248. $res[0]['data4'] = '井盖异常';
  249. } elseif ($res[0]['device_status'] == 0) {
  250. $res[0]['data4'] = '井盖恢复';
  251. }
  252. if ($res[0]['clzt'] == 0) {
  253. $res[0]['clstatus'] = '未处理';
  254. } elseif ($res[0]['clzt'] == 1) {
  255. $res[0]['clstatus'] = '已处理';
  256. }
  257. // print_r($res[0]);exit();
  258. $this->assign('url', 'ManholeCover');
  259. break;
  260. case '4':
  261. $res = M()->query("select a.id,a.device_code,a.time,a.data1,b.owner_name,a.clzt,a.clwb,a.cldh,a.clsj,a.clnr,b.unitinfo,c.owner_address,b.company,a.clr from sp_sj2017 a join sp_owner b on a.device_code=b.owner_code join sp_owner_company c on b.company=c.owner_id where a.id=" . $Data['id']);
  262. // print_r($res);exit();
  263. if (!empty($res)) {
  264. $time_y = date("Y-m");
  265. $sl_data = M()->query("SELECT count(*) as sl FROM sp_sj2017 WHERE device_code='" . $res[0]['device_code'] . "' and time like '%" . $time_y . "%'");
  266. $this->assign('sl_data', $sl_data[0]['sl']);
  267. } else {
  268. $this->assign('sl_data', 0);
  269. }
  270. if ($res[0]['data1'] = 'WP1') {
  271. $res[0]['data4'] = '消防栓低压';
  272. } elseif ($res[0]['data1'] = 'WP2') {
  273. $res[0]['data4'] = '消防栓高压';
  274. }
  275. if ($res[0]['clzt'] == 0) {
  276. $res[0]['clstatus'] = '未处理';
  277. } elseif ($res[0]['clzt'] == 1) {
  278. $res[0]['clstatus'] = '已处理';
  279. }
  280. // print_r($res[0]);exit();
  281. $this->assign('url', 'FireHydrant');
  282. break;
  283. case '129':
  284. $res = M()->query("select a.id,a.device_code,a.data4,a.clzt,a.time,d.owner_name,d.unitinfo,a.data2,d.company,a.clwb,a.clsj,a.clnr,a.cldh,a.clr from sp_dc2020 a join sp_owner d ON a.device_code=d.owner_code where a.id=" . $Data['id'] . " order by a.time desc");
  285. if (!empty($res)) {
  286. $time_y = date("Y-m");
  287. $sl_data = M()->query("SELECT count(*) as sl FROM sp_dc2020 WHERE device_code='" . $res[0]['device_code'] . "' and time like '%" . $time_y . "%'");
  288. $this->assign('sl_data', $sl_data[0]['sl']);
  289. } else {
  290. $this->assign('sl_data', 0);
  291. }
  292. $this->assign('url', 'Geomagnetism');
  293. $res[0]['aaa'] = $res[0]['data4'];
  294. $res[0]['data4'] = '报警内容:' . $res[0]['data4'];
  295. if ($res[0]['clzt'] == 0) {
  296. $res[0]['clstatus'] = '未处理';
  297. } else if ($res[0]['clzt'] == 1) {
  298. $res[0]['clstatus'] = '已处理';
  299. }
  300. break;
  301. default:
  302. # code...
  303. break;
  304. }
  305. // dump($res);
  306. if (!empty($res[0]['h5'])) {
  307. $res[0]['h5'] = '<iframe scrolling="no" width="100%" height="210px" src="' . $res[0]['h5'] . '" frameborder="0"></iframe>';
  308. } else {
  309. $res[0]['h5'] = '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;无';
  310. }
  311. //
  312. if ($res[0]['clwb'] == 1) {
  313. $res[0]['clwb'] = '误报';
  314. } else {
  315. $res[0]['clwb'] = '非误报';
  316. }
  317. //
  318. // print_r($res);
  319. $this->assign('list', $res[0]);
  320. $arr = M()->query("SELECT * FROM sp_owner o JOIN sp_owner_company c ON o.company=c.owner_id WHERE owner_code='" . $res[0]['device_code'] . "'");
  321. $this->assign('arr', $arr[0]);
  322. if ($Data['type'] == 6) {
  323. if ($res[0]['clstatus'] == '未处理') {
  324. $this->display('alarm_details/rtu_wcl');
  325. } else {
  326. $this->display('alarm_details/rtu_ycl');
  327. }
  328. } else if ($Data['type'] == 7) {
  329. if ($res[0]['clstatus'] == '未处理') {
  330. $this->display('alarm_details/dqhz_wcl');
  331. } else {
  332. $this->display('alarm_details/dqhz_ycl');
  333. }
  334. } else if ($Data['type'] == 16) {
  335. if ($res[0]['clstatus'] == '未处理') {
  336. $this->display('alarm_details/sp_wcl');
  337. } else {
  338. $this->display('alarm_details/sp_ycl');
  339. }
  340. } else if ($Data['type'] == 17) {
  341. if ($res[0]['clstatus'] == '未处理') {
  342. $this->display('alarm_details/dt_wcl');
  343. } else {
  344. $this->display('alarm_details/dt_ycl');
  345. }
  346. } else if ($Data['type'] == 128) {
  347. if ($res[0]['clstatus'] == '未处理') {
  348. $this->display('alarm_details/jg_wcl');
  349. } else {
  350. $this->display('alarm_details/jg_ycl');
  351. }
  352. } else if ($Data['type'] == 4) {
  353. if ($res[0]['clstatus'] == '未处理') {
  354. $this->display('alarm_details/xfs_wcl');
  355. } else {
  356. $this->display('alarm_details/xfs_ycl');
  357. }
  358. } else if ($Data['type'] == 1) {
  359. if ($arr[0]['dwtype'] == 1) {
  360. if ($res[0]['clstatus'] == '未处理') {
  361. $this->display('alarm_details/hj_wcl');
  362. } else {
  363. $this->display('alarm_details/hj_ycl');
  364. }
  365. } else if ($arr[0]['dwtype'] == 3) {
  366. if ($res[0]['clstatus'] == '未处理') {
  367. $this->display('alarm_details/yg_wcl');
  368. } else {
  369. $this->display('alarm_details/yg_ycl');
  370. }
  371. }
  372. } else if ($Data['type'] == 2) {
  373. if ($res[0]['clstatus'] == '未处理') {
  374. $this->display('alarm_details/sj_wcl');
  375. } else {
  376. $this->display('alarm_details/sj_ycl');
  377. }
  378. } else {
  379. if ($res[0]['clstatus'] == '未处理') {
  380. $this->display('alarm_details/gg_wcl');
  381. } else {
  382. $this->display('alarm_details/gg_ycl');
  383. }
  384. }
  385. }
  386. //提交上传
  387. public function outputs()
  388. {
  389. // dump(I());
  390. if ($_SESSION['phone'] == '15000012454' || $_SESSION['idphone'] == '15000012454') {
  391. $html = <<<HTML
  392. <!doctype html>
  393. <html lang="en">
  394. <head>
  395. <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  396. <meta charset="utf-8">
  397. <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport">
  398. <meta content="yes" name="apple-mobile-web-app-capable">
  399. <meta content="black" name="apple-mobile-web-app-status-bar-style">
  400. <meta content="telephone=no" name="format-detection">
  401. <title>访客无权限修改</title>
  402. </head>
  403. <body>
  404. 访客无权限修改!
  405. </body>
  406. </html>
  407. HTML;
  408. echo $html;
  409. exit;
  410. }
  411. $Data = I();
  412. // print_r($Data);
  413. $dwtype = $Data['dwtype'];
  414. $bx = $Data['bx'];
  415. switch ($dwtype) {
  416. case '1':
  417. $Tabs = M('hj2017');
  418. $Map['data2'] = $Data['ftypewtype'];
  419. $Map['data3'] = $Data['data3'];
  420. $Map['data5'] = $Data['data5'];
  421. break;
  422. case '2':
  423. $Tabs = M('sj2017');
  424. //var_dump($Tabs);exit();
  425. switch ($Data['ftypewtype']) {
  426. case '低位':
  427. $Map['data1'] = 'LL1';
  428. break;
  429. case '高位':
  430. $Map['data1'] = 'LL2';
  431. break;
  432. case '故障':
  433. $Map['data1'] = 'WP3';
  434. break;
  435. case '低压':
  436. $Map['data1'] = 'WP1';
  437. break;
  438. case '高压':
  439. $Map['data1'] = 'WP2';
  440. break;
  441. case '离线':
  442. $Map['data1'] = 'WP4';
  443. break;
  444. default :
  445. $Map['data1'] = $Data['ftypewtype'];
  446. break;
  447. }
  448. break;
  449. case '3':
  450. $Tabs = M('hj2017');
  451. $Map['data2'] = $Data['ftypewtype'];
  452. break;
  453. case '4':
  454. $Tabs = M('sj2017');
  455. break;
  456. case '5':
  457. $Tabs = M('sj2017');
  458. switch ($Data['ftypewtype']) {
  459. case '低位':
  460. $Map['data1'] = 'LL1';
  461. break;
  462. case '高位':
  463. $Map['data1'] = 'LL2';
  464. break;
  465. case '波动告警':
  466. $Map['data1'] = 'LL5';
  467. break;
  468. case '低压':
  469. $Map['data1'] = 'WP1';
  470. break;
  471. case '高压':
  472. $Map['data1'] = 'WP2';
  473. break;
  474. case '离线':
  475. $Map['data1'] = 'WP4';
  476. break;
  477. default :
  478. $Map['data1'] = $Data['ftypewtype'];
  479. break;
  480. }
  481. break;
  482. case '6':
  483. $Tabs = M('rtu2017');
  484. $map['ncmd'] = '';
  485. $Map['ncmd'] = $Data['ncmd'];
  486. $Map['data2'] = $Data['cs1'];
  487. $Map['data4'] = $Data['cs2'];
  488. break;
  489. case '7':
  490. $Tabs = M('ef2017');
  491. $Map['data1'] = $Data['data1'];
  492. break;
  493. case '16':
  494. $Tabs = M('video2017');
  495. break;
  496. case '17':
  497. $Tabs = M('lifter2017');
  498. break;
  499. case '130':
  500. $Tabs = M('door2020');
  501. break;
  502. case '131':
  503. $Tabs = M('gas2020');
  504. break;
  505. case '128':
  506. $Tabs = M('iw2017');
  507. break;
  508. case '129':
  509. $Tabs = M('dc2020');
  510. break;
  511. default:
  512. break;
  513. }
  514. $Data['clzt'] = 1;
  515. $Data['clsj'] = Date('Y-m-d H:i:s');
  516. if (!empty($_SESSION['idphone'])) {
  517. $Data['clr'] = $_SESSION['idphone'];
  518. }
  519. if (!empty($_SESSION['phone'])) {
  520. $Data['clr'] = $_SESSION['phone'];
  521. }
  522. $Map['device_code'] = $Data['device_code'];
  523. $Map['clzt'] = 0;
  524. if ($Data['plcl'] == 1) {
  525. $owner_data = M()->query("select * from sp_owner where owner_code='" . $Data['device_code'] . "'");
  526. if ($bx == 1) {
  527. $owner_data = M()->query("select * from sp_owner where owner_code='" . $Data['device_code'] . "'");
  528. $wx_name = '设备编号' . $owner_data[0]['owner_code'] . '故障';
  529. $dqsj = date('Y-m-d h:i:s', time());
  530. $lsxx = $dqsj . "," . $wx_name;
  531. $inster_sql = "insert into ytiot_xj_event_processing (dwjl_id,user_name,wx_name,cl_type,data2,data3) value ('0','" . $_SESSION['phone'] . "','" . $wx_name . "',2,'" . $owner_data[0]['company'] . "','" . $lsxx . "')";
  532. $photos_res = addDataInfo($inster_sql);
  533. }
  534. unset($Data['id']);
  535. //消防总队推送
  536. if ($owner_data[0]['company']=='10322'||$owner_data[0]['company']=='10012'){
  537. switch ($dwtype) {
  538. case '1':
  539. $res_id = M()->query("select id,data3,data4 from sp_hj2017 where device_code='" . $Data['device_code'] . "' and data3='" . $Data['data3'] . "' and data5='" . $Data['data5'] . "' and clzt=0");
  540. break;
  541. case '2':
  542. $res_id = M()->query("select id from sp_sj2017 where device_code='" . $Data['device_code'] . "' and data1='" . $Map['data1'] . "' and clzt=0");
  543. break;
  544. case '3':
  545. $res_id = M()->query("select id from sp_hj2017 where device_code='" . $Data['device_code'] . "' and data2='" . $Data['ftypewtype'] . "' and clzt=0");
  546. break;
  547. case '7':
  548. $res_id = M()->query("select * from sp_ef2017 where device_code='" . $Data['device_code'] . "' and data1='" . $Data['data1'] . "' and clzt=0");
  549. break;
  550. default:
  551. $cs66 = '';
  552. break;
  553. }
  554. if (!empty($res_id)){
  555. foreach ($res_id as $key=>$value){
  556. $cs66[$key] = [
  557. 'SubType' => $dwtype,
  558. 'DeviceId' => $Data['device_code'],
  559. 'InsertId' => $res_id[$key]['id'],
  560. 'Confirmed' => true,
  561. ];
  562. }
  563. }
  564. }
  565. $Tabs->where($Map)->save($Data);
  566. $url1 = 'http://47.98.201.187:55335/report';
  567. if ($dwtype == 1) {
  568. if (!empty($cs66)){
  569. foreach ($cs66 as $key=>$value){
  570. $cs88 = json_encode($cs66[$key]);
  571. http_post_advertise($url1, $cs88);
  572. }
  573. }else{
  574. $res_id = M()->query("select id,data3,data4 from sp_hj2017 where device_code='" . $Data['device_code'] . "' and data3='" . $Data['data3'] . "' and data5='" . $Data['data5'] . "' and clzt=1 order by time desc LIMIT 1;");
  575. $cs66 = [
  576. 'SubType' => 1,
  577. 'DeviceId' => $Data['device_code'],
  578. 'InsertId' => $res_id[0]['id'],
  579. 'Confirmed' => true,
  580. ];
  581. $url1 = 'http://47.98.201.187:55335/report';
  582. $cs88 = json_encode($cs66);
  583. http_post_advertise($url1, $cs88);
  584. }
  585. //redis储存处理的设备
  586. // $redis = new \Redis();
  587. // $result = $redis->connect('47.98.201.73', 6379);
  588. // $redis->auth("usky2021");
  589. // if ($result==1){
  590. // if (!empty($res_id[0]['data4'])){
  591. // $port=mb_substr($res_id[0]['data4'],4,1,'utf-8');
  592. //// $port=substr($res_id[0]['data4'],3,1);
  593. // }else{
  594. // $port='';
  595. // }
  596. //
  597. // if (!empty($res_id[0]['data3'])){
  598. // $Source_code=str_replace(',','',$res_id[0]['data3']);
  599. // }else{
  600. // $Source_code='';
  601. // }
  602. //
  603. // $unique_number=$Data['device_code'].$port.$Source_code;
  604. // $redis->set("$unique_number",1);
  605. // $redis->close();
  606. // }
  607. } else if ($dwtype == 2) {
  608. if (!empty($cs66)){
  609. foreach ($cs66 as $key=>$value){
  610. $cs88 = json_encode($cs66[$key]);
  611. http_post_advertise($url1, $cs88);
  612. }
  613. }else{
  614. $res_id = M()->query("select id from sp_sj2017 where device_code='" . $Data['device_code'] . "' and data1='" . $Map['data1'] . "' and clzt=1 order by time desc limit 1");
  615. $cs66 = [
  616. 'SubType' => 2,
  617. 'DeviceId' => $Data['device_code'],
  618. 'InsertId' => $res_id[0]['id'],
  619. 'Confirmed' => true,
  620. ];
  621. $url1 = 'http://47.98.201.187:55335/report';
  622. $cs88 = json_encode($cs66);
  623. http_post_advertise($url1, $cs88);
  624. }
  625. //redis储存处理的设备
  626. $redis = new \Redis();
  627. $result = $redis->connect('47.98.201.73', 6379);
  628. $redis->auth("usky2021");
  629. if ($result==1){
  630. $unique_number=$Data['device_code'];
  631. $redis->set("$unique_number",1);
  632. $redis->close();
  633. }
  634. } else if ($dwtype == 3) {
  635. if (!empty($cs66)){
  636. foreach ($cs66 as $key=>$value){
  637. $cs88 = json_encode($cs66[$key]);
  638. http_post_advertise($url1, $cs88);
  639. }
  640. }else{
  641. $res_id = M()->query("select id from sp_hj2017 where device_code='" . $Data['device_code'] . "' and data2='" . $Data['ftypewtype'] . "' and clzt=1 order by time desc limit 1");
  642. $cs66 = [
  643. 'SubType' => 3,
  644. 'DeviceId' => $Data['device_code'],
  645. 'InsertId' => $res_id[0]['id'],
  646. 'Confirmed' => true,
  647. ];
  648. $url1 = 'http://47.98.201.187:55335/report';
  649. $cs88 = json_encode($cs66);
  650. http_post_advertise($url1, $cs88);
  651. }
  652. //redis储存处理的设备
  653. $redis = new \Redis();
  654. $result = $redis->connect('47.98.201.73', 6379);
  655. $redis->auth("usky2021");
  656. if ($result==1){
  657. $unique_number=$Data['device_code'];
  658. $redis->set("$unique_number",1);
  659. $redis->close();
  660. }
  661. } else if ($dwtype == 7) {
  662. if (!empty($cs66)){
  663. foreach ($cs66 as $key=>$value){
  664. $cs88 = json_encode($cs66[$key]);
  665. http_post_advertise($url1, $cs88);
  666. }
  667. }else{
  668. $res_id = M()->query("select * from sp_ef2017 where device_code='" . $Data['device_code'] . "' and data1='" . $Data['data1'] . "' and clzt=1 order by time desc limit 1");
  669. $cs66 = [
  670. 'SubType' => 7,
  671. 'DeviceId' => $Data['device_code'],
  672. 'InsertId' => $res_id[0]['id'],
  673. 'Confirmed' => true,
  674. ];
  675. $url1 = 'http://47.98.201.187:55335/report';
  676. $cs88 = json_encode($cs66);
  677. http_post_advertise($url1, $cs88);
  678. }
  679. //redis储存处理的设备
  680. $redis = new \Redis();
  681. $result = $redis->connect('47.98.201.73', 6379);
  682. $redis->auth("usky2021");
  683. if ($result==1){
  684. $port=$res_id[0]['port'];
  685. $unique_number=$Data['device_code'].$port;
  686. $redis->set("$unique_number",1);
  687. $redis->close();
  688. }
  689. }else if ($dwtype == 6){
  690. //redis储存处理的设备
  691. $redis = new \Redis();
  692. $result = $redis->connect('47.98.201.73', 6379);
  693. $redis->auth("usky2021");
  694. if ($result==1){
  695. $port=$Data['port'];
  696. $Source_code=$Data['ncmd'];
  697. $unique_number=$Data['device_code'].$port.$Source_code.$Data['cs2'].' '.$Data['cs1'];
  698. $redis->set("$unique_number",1);
  699. $redis->close();
  700. }
  701. }else{
  702. //redis储存处理的设备
  703. $redis = new \Redis();
  704. $result = $redis->connect('47.98.201.73', 6379);
  705. $redis->auth("usky2021");
  706. if ($result==1){
  707. $unique_number=$Data['device_code'];
  708. $redis->set("$unique_number",1);
  709. $redis->close();
  710. }
  711. }
  712. } else {
  713. if ($bx == 1) {
  714. $owner_data = M()->query("select * from sp_owner where owner_code='" . $Data['device_code'] . "'");
  715. $wx_name = '设备编号' . $owner_data[0]['owner_code'] . '故障';
  716. $dqsj = date('Y-m-d h:i:s', time());
  717. $lsxx = $dqsj . "," . $wx_name;
  718. $inster_sql = "insert into ytiot_xj_event_processing (dwjl_id,user_name,wx_name,cl_type,data2,data3) value ('0','" . $_SESSION['phone'] . "','" . $wx_name . "',2,'" . $owner_data[0]['company'] . "','" . $lsxx . "')";
  719. $photos_res = addDataInfo($inster_sql);
  720. }
  721. $Map['id'] = $Data['id'];
  722. $Tabs->where($Map)->save($Data);
  723. $cs = [
  724. 'SubType' => $dwtype,
  725. 'DeviceId' => $Data['device_code'],
  726. 'InsertId' => $Data['id'],
  727. 'Confirmed' => true,
  728. ];
  729. if ($dwtype == 1) {
  730. $url = 'http://47.98.201.187:55335/report';
  731. $cs3 = json_encode($cs);
  732. $result = http_post_advertise($url, $cs3);
  733. } else if ($dwtype == 2) {
  734. $url = 'http://47.98.201.187:55335/report';
  735. $cs3 = json_encode($cs);
  736. $result = http_post_advertise($url, $cs3);
  737. if ($Data['ftypewtype']=='低压'||$Data['ftypewtype']=="高压"){
  738. $device = ytapi_query("SELECT * FROM yt_t_mhwater WHERE device_code='".$Data['device_code']."' AND push_status=1");
  739. if (!empty($device)){
  740. // $tiem_data = M("sj2017")->where("id",$Data['id'])->find();
  741. $tiem_data = date('Y-m-d H:i:s', time());
  742. $json_data_four=$this->date_array_turn_json($Data['id'],$device[0],strtotime($tiem_data),$Data['ftypewtype'],1,'','');
  743. if (!empty($json_data_four)){
  744. $this->message_push_mh("mh/water/statistics",$json_data_four,0);
  745. }
  746. }
  747. }
  748. } else if ($dwtype == 3) {
  749. $url = 'http://47.98.201.187:55335/report';
  750. $cs3 = json_encode($cs);
  751. $result = http_post_advertise($url, $cs3);
  752. } else if ($dwtype == 7) {
  753. $url = 'http://47.98.201.187:55335/report';
  754. $cs3 = json_encode($cs);
  755. $result = http_post_advertise($url, $cs3);
  756. }else if ($dwtype == 5){
  757. $url = 'http://47.98.201.187:55335/report';
  758. $cs3 = json_encode($cs);
  759. $result = http_post_advertise($url, $cs3);
  760. }else if ($dwtype == 6){
  761. $url = 'http://47.98.201.187:55335/report';
  762. $cs3 = json_encode($cs);
  763. $result = http_post_advertise($url, $cs3);
  764. }else if ($dwtype == 16){
  765. $url = 'http://47.98.201.187:55335/report';
  766. $cs3 = json_encode($cs);
  767. $result = http_post_advertise($url, $cs3);
  768. }
  769. if ($dwtype == 1){
  770. $res_id = M()->query("select data3,data4 from sp_hj2017 where id=" . $Data['id']);
  771. //redis储存处理的设备
  772. // $redis = new \Redis();
  773. // $result = $redis->connect('47.98.201.73', 6379);
  774. // $redis->auth("usky2021");
  775. // if ($result==1){
  776. //
  777. // if (!empty($res_id[0]['data4'])){
  778. // $port=mb_substr($res_id[0]['data4'],4,1,'utf-8');
  779. //// $port=substr($res_id[0]['data4'],3,1);
  780. // }else{
  781. // $port='';
  782. // }
  783. //
  784. // if (!empty($res_id[0]['data3'])){
  785. // $Source_code=str_replace(',','',$res_id[0]['data3']);
  786. // }else{
  787. // $Source_code='';
  788. // }
  789. //
  790. //
  791. //// $port=substr($res_id[0]['data4'],3,1);
  792. //// $Source_code=str_replace(',','',$res_id[0]['data3']);
  793. // $unique_number=$Data['device_code'].$port.$Source_code;
  794. // print_r($unique_number);
  795. // $redis->set("$unique_number",1);
  796. // $redis->close();
  797. // }
  798. }else if($dwtype == 6){
  799. $res_id = M()->query("select * from sp_rtu2017 where id=" . $Data['id']);
  800. //redis储存处理的设备
  801. $redis = new \Redis();
  802. $result = $redis->connect('47.98.201.73', 6379);
  803. $redis->auth("usky2021");
  804. if ($result==1){
  805. $port=$Data['port'];
  806. $Source_code=$Data['ncmd'];
  807. $unique_number=$Data['device_code'].$port.$Source_code.$Data['cs2'].' '.$Data['cs1'];
  808. // print_r($unique_number);
  809. $redis->set("$unique_number",1);
  810. $redis->close();
  811. }
  812. }else if($dwtype == 7){
  813. $res_id = M()->query("select port from sp_ef2017 where id=" . $Data['id']);
  814. //redis储存处理的设备
  815. $redis = new \Redis();
  816. $result = $redis->connect('47.98.201.73', 6379);
  817. $redis->auth("usky2021");
  818. if ($result==1){
  819. $port=$res_id[0]['port'];
  820. $unique_number=$Data['device_code'].$port;
  821. $redis->set("$unique_number",1);
  822. $redis->close();
  823. }
  824. }else{
  825. //redis储存处理的设备
  826. $redis = new \Redis();
  827. $result = $redis->connect('127.0.0.1', 6379);
  828. $redis->auth("usky2021");
  829. if ($result==1){
  830. $unique_number=$Data['device_code'];
  831. $redis->set("$unique_number",1);
  832. $redis->close();
  833. }
  834. }
  835. }
  836. $map['device_code'] = $Data['device_code'];
  837. $map['clzt'] = 0;
  838. $res_sel = $Tabs->where($map)->count('id');
  839. if ($res_sel == 0) {
  840. $data = array("devicestatus" => 0);
  841. $str_where = "deviceid='" . $Data['device_code'] . "'";
  842. $str_sql_upd = M('devices_status')->where($str_where)->save($data);
  843. $arr = array('status' => 'y');
  844. } else {
  845. $arr = array('status' => 'n');
  846. }
  847. $resurl = 'https://' . $_SERVER['SERVER_NAME'] . $Data['url'];
  848. // print_r($resurl);
  849. // exit();
  850. $html = <<<HTML
  851. <!doctype html>
  852. <html lang="en">
  853. <head>
  854. <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  855. <meta charset="utf-8">
  856. <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport">
  857. <meta content="yes" name="apple-mobile-web-app-capable">
  858. <meta content="black" name="apple-mobile-web-app-status-bar-style">
  859. <meta content="telephone=no" name="format-detection">
  860. <meta http-equiv="refresh" content="2;url=$resurl" />
  861. <title>保存成功</title>
  862. </head>
  863. <body>
  864. 保存成功,正在跳转。。。
  865. </body>
  866. </html>
  867. HTML;
  868. echo $html;
  869. //echo json_encode($arr) ;
  870. }
  871. public function date_array_turn_json($insert_id,$device,$createdTime,$ajDescribe,$ajFlag,$enclosure,$image){
  872. if (!empty($device)){
  873. $arr = [
  874. "id" => $insert_id,
  875. "deviceCode"=>$device['mh_device_code'],
  876. "createTime" =>date("Y-m-d H:i:s",$createdTime) ,
  877. "ajType"=>$device['aj_type'],
  878. "street"=>$device['street'],
  879. "address"=>$device['company_address'].','.$device['device_address'],
  880. "grid"=>$device['grid'],
  881. "ajDescribe"=>$ajDescribe,
  882. "dutyGroup"=>$device['company_name'],
  883. "ajFlag"=>$ajFlag,
  884. "endTime"=>date("Y-m-d H:i:s",$createdTime+86400),
  885. "enclosure"=>$enclosure,
  886. "image"=>$image
  887. ];
  888. $json_data=json_encode($arr);
  889. }else{
  890. $json_data=null;
  891. }
  892. return $json_data;
  893. }
  894. public function message_push_mh($topic,$msg,$qos){
  895. // vendor('phpMQTT.phpMQTT');
  896. $server = '47.98.201.73'; // 服务器IP
  897. $port = 1883; // 服务器端口
  898. $username = 'usky'; // 用户名
  899. $password = 'usky'; // 密码
  900. $client_id = 'pub_' . uniqid();
  901. $mqtt = new \phpMQTT($server, $port, $client_id);
  902. if ($mqtt->connect(true, NULL, $username, $password)) {
  903. $mqtt->publish($topic, $msg, $qos);
  904. usleep(100000);
  905. $mqtt->close();
  906. // Log::record('MH—4G-MQTT-Push success!('.$topic.')['.date('Y-m-d H:i:s').']:'.json_encode($msg));
  907. } else {
  908. // Log::record('MH—4G-MQTT-Time out!('.$topic.')['.date('Y-m-d H:i:s').']:'.json_encode($msg));
  909. }
  910. }
  911. }