FireinfoController.class.php.bak.2021-12-28 44 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983
  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. }elseif($res[0]['device_status'] ==2){
  252. $res[0]['data4'] = '满溢恢复';
  253. }elseif($res[0]['device_status'] ==3){
  254. $res[0]['data4'] = '满溢告警';
  255. }
  256. if ($res[0]['clzt'] == 0) {
  257. $res[0]['clstatus'] = '未处理';
  258. } elseif ($res[0]['clzt'] == 1) {
  259. $res[0]['clstatus'] = '已处理';
  260. }
  261. // print_r($res[0]);exit();
  262. $this->assign('url', 'ManholeCover');
  263. break;
  264. case '4':
  265. $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']);
  266. // print_r($res);exit();
  267. if (!empty($res)) {
  268. $time_y = date("Y-m");
  269. $sl_data = M()->query("SELECT count(*) as sl FROM sp_sj2017 WHERE device_code='" . $res[0]['device_code'] . "' and time like '%" . $time_y . "%'");
  270. $this->assign('sl_data', $sl_data[0]['sl']);
  271. } else {
  272. $this->assign('sl_data', 0);
  273. }
  274. if ($res[0]['data1'] = 'WP1') {
  275. $res[0]['data4'] = '消防栓低压';
  276. } elseif ($res[0]['data1'] = 'WP2') {
  277. $res[0]['data4'] = '消防栓高压';
  278. }
  279. if ($res[0]['clzt'] == 0) {
  280. $res[0]['clstatus'] = '未处理';
  281. } elseif ($res[0]['clzt'] == 1) {
  282. $res[0]['clstatus'] = '已处理';
  283. }
  284. // print_r($res[0]);exit();
  285. $this->assign('url', 'FireHydrant');
  286. break;
  287. case '129':
  288. $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");
  289. if (!empty($res)) {
  290. $time_y = date("Y-m");
  291. $sl_data = M()->query("SELECT count(*) as sl FROM sp_dc2020 WHERE device_code='" . $res[0]['device_code'] . "' and time like '%" . $time_y . "%'");
  292. $this->assign('sl_data', $sl_data[0]['sl']);
  293. } else {
  294. $this->assign('sl_data', 0);
  295. }
  296. $this->assign('url', 'Geomagnetism');
  297. $res[0]['aaa'] = $res[0]['data4'];
  298. $res[0]['data4'] = '报警内容:' . $res[0]['data4'];
  299. if ($res[0]['clzt'] == 0) {
  300. $res[0]['clstatus'] = '未处理';
  301. } else if ($res[0]['clzt'] == 1) {
  302. $res[0]['clstatus'] = '已处理';
  303. }
  304. break;
  305. default:
  306. # code...
  307. break;
  308. }
  309. // dump($res);
  310. if (!empty($res[0]['h5'])) {
  311. $res[0]['h5'] = '<iframe scrolling="no" width="100%" height="210px" src="' . $res[0]['h5'] . '" frameborder="0"></iframe>';
  312. } else {
  313. $res[0]['h5'] = '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;无';
  314. }
  315. //
  316. if ($res[0]['clwb'] == 1) {
  317. $res[0]['clwb'] = '误报';
  318. } else {
  319. $res[0]['clwb'] = '非误报';
  320. }
  321. //
  322. // print_r($res);
  323. $this->assign('list', $res[0]);
  324. $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'] . "'");
  325. $this->assign('arr', $arr[0]);
  326. if ($Data['type'] == 6) {
  327. if ($res[0]['clstatus'] == '未处理') {
  328. $this->display('alarm_details/rtu_wcl');
  329. } else {
  330. $this->display('alarm_details/rtu_ycl');
  331. }
  332. } else if ($Data['type'] == 7) {
  333. if ($res[0]['clstatus'] == '未处理') {
  334. $this->display('alarm_details/dqhz_wcl');
  335. } else {
  336. $this->display('alarm_details/dqhz_ycl');
  337. }
  338. } else if ($Data['type'] == 16) {
  339. if ($res[0]['clstatus'] == '未处理') {
  340. $this->display('alarm_details/sp_wcl');
  341. } else {
  342. $this->display('alarm_details/sp_ycl');
  343. }
  344. } else if ($Data['type'] == 17) {
  345. if ($res[0]['clstatus'] == '未处理') {
  346. $this->display('alarm_details/dt_wcl');
  347. } else {
  348. $this->display('alarm_details/dt_ycl');
  349. }
  350. } else if ($Data['type'] == 128) {
  351. if ($res[0]['clstatus'] == '未处理') {
  352. $this->display('alarm_details/jg_wcl');
  353. } else {
  354. $this->display('alarm_details/jg_ycl');
  355. }
  356. } else if ($Data['type'] == 4) {
  357. if ($res[0]['clstatus'] == '未处理') {
  358. $this->display('alarm_details/xfs_wcl');
  359. } else {
  360. $this->display('alarm_details/xfs_ycl');
  361. }
  362. } else if ($Data['type'] == 1) {
  363. if ($arr[0]['dwtype'] == 1) {
  364. if ($res[0]['clstatus'] == '未处理') {
  365. $this->display('alarm_details/hj_wcl');
  366. } else {
  367. $this->display('alarm_details/hj_ycl');
  368. }
  369. } else if ($arr[0]['dwtype'] == 3) {
  370. if ($res[0]['clstatus'] == '未处理') {
  371. $this->display('alarm_details/yg_wcl');
  372. } else {
  373. $this->display('alarm_details/yg_ycl');
  374. }
  375. }
  376. } else if ($Data['type'] == 2) {
  377. if ($res[0]['clstatus'] == '未处理') {
  378. $this->display('alarm_details/sj_wcl');
  379. } else {
  380. $this->display('alarm_details/sj_ycl');
  381. }
  382. } else {
  383. if ($res[0]['clstatus'] == '未处理') {
  384. $this->display('alarm_details/gg_wcl');
  385. } else {
  386. $this->display('alarm_details/gg_ycl');
  387. }
  388. }
  389. }
  390. //提交上传
  391. public function outputs()
  392. {
  393. // dump(I());
  394. if ($_SESSION['phone'] == '15000012454' || $_SESSION['idphone'] == '15000012454') {
  395. $html = <<<HTML
  396. <!doctype html>
  397. <html lang="en">
  398. <head>
  399. <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  400. <meta charset="utf-8">
  401. <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport">
  402. <meta content="yes" name="apple-mobile-web-app-capable">
  403. <meta content="black" name="apple-mobile-web-app-status-bar-style">
  404. <meta content="telephone=no" name="format-detection">
  405. <title>访客无权限修改</title>
  406. </head>
  407. <body>
  408. 访客无权限修改!
  409. </body>
  410. </html>
  411. HTML;
  412. echo $html;
  413. exit;
  414. }
  415. $Data = I();
  416. $cs11 = json_encode($Data);
  417. $filename_log = "/var/www/html/jdxf/log/zdts_qq_log" . date("Y-m-d") . ".log";
  418. $this->printing_log($cs11, $filename_log);
  419. if ($Data['restrict']!=1){
  420. echo "外部传参";
  421. exit();
  422. }
  423. // print_r($Data);
  424. $dwtype = $Data['dwtype'];
  425. $bx = $Data['bx'];
  426. switch ($dwtype) {
  427. case '1':
  428. $Tabs = M('hj2017');
  429. $Map['data2'] = $Data['ftypewtype'];
  430. $Map['data3'] = $Data['data3'];
  431. $Map['data5'] = $Data['data5'];
  432. break;
  433. case '2':
  434. $Tabs = M('sj2017');
  435. //var_dump($Tabs);exit();
  436. switch ($Data['ftypewtype']) {
  437. case '低位':
  438. $Map['data1'] = 'LL1';
  439. break;
  440. case '高位':
  441. $Map['data1'] = 'LL2';
  442. break;
  443. case '故障':
  444. $Map['data1'] = 'WP3';
  445. break;
  446. case '低压':
  447. $Map['data1'] = 'WP1';
  448. break;
  449. case '高压':
  450. $Map['data1'] = 'WP2';
  451. break;
  452. case '离线':
  453. $Map['data1'] = 'WP4';
  454. break;
  455. default :
  456. $Map['data1'] = $Data['ftypewtype'];
  457. break;
  458. }
  459. break;
  460. case '3':
  461. $Tabs = M('hj2017');
  462. $Map['data2'] = $Data['ftypewtype'];
  463. break;
  464. case '4':
  465. $Tabs = M('sj2017');
  466. break;
  467. case '5':
  468. $Tabs = M('sj2017');
  469. switch ($Data['ftypewtype']) {
  470. case '低位':
  471. $Map['data1'] = 'LL1';
  472. break;
  473. case '高位':
  474. $Map['data1'] = 'LL2';
  475. break;
  476. case '波动告警':
  477. $Map['data1'] = 'LL5';
  478. break;
  479. case '低压':
  480. $Map['data1'] = 'WP1';
  481. break;
  482. case '高压':
  483. $Map['data1'] = 'WP2';
  484. break;
  485. case '离线':
  486. $Map['data1'] = 'WP4';
  487. break;
  488. default :
  489. $Map['data1'] = $Data['ftypewtype'];
  490. break;
  491. }
  492. break;
  493. case '6':
  494. $Tabs = M('rtu2017');
  495. $map['ncmd'] = '';
  496. $Map['ncmd'] = $Data['ncmd'];
  497. $Map['data2'] = $Data['cs1'];
  498. $Map['data4'] = $Data['cs2'];
  499. break;
  500. case '7':
  501. $Tabs = M('ef2017');
  502. $Map['data1'] = $Data['data1'];
  503. break;
  504. case '16':
  505. $Tabs = M('video2017');
  506. break;
  507. case '17':
  508. $Tabs = M('lifter2017');
  509. break;
  510. case '130':
  511. $Tabs = M('door2020');
  512. break;
  513. case '131':
  514. $Tabs = M('gas2020');
  515. break;
  516. case '128':
  517. $Tabs = M('iw2017');
  518. break;
  519. case '129':
  520. $Tabs = M('dc2020');
  521. break;
  522. default:
  523. break;
  524. }
  525. $Data['clzt'] = 1;
  526. $Data['clsj'] = Date('Y-m-d H:i:s');
  527. if (!empty($_SESSION['idphone'])) {
  528. $Data['clr'] = $_SESSION['idphone'];
  529. }
  530. if (!empty($_SESSION['phone'])) {
  531. $Data['clr'] = $_SESSION['phone'];
  532. }
  533. $Map['device_code'] = $Data['device_code'];
  534. $Map['clzt'] = 0;
  535. if ($Data['plcl'] == 1) {
  536. $owner_data = M()->query("select * from sp_owner where owner_code='" . $Data['device_code'] . "'");
  537. if ($bx == 1) {
  538. $owner_data = M()->query("select * from sp_owner where owner_code='" . $Data['device_code'] . "'");
  539. $wx_name = '设备编号' . $owner_data[0]['owner_code'] . '故障';
  540. $dqsj = date('Y-m-d h:i:s', time());
  541. $lsxx = $dqsj . "," . $wx_name;
  542. $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 . "')";
  543. $photos_res = addDataInfo($inster_sql);
  544. }
  545. unset($Data['id']);
  546. //消防总队推送
  547. $company_data=ytapi_query("select * from corps_company where company_code='".$owner_data[0]['company']."' and status=1");
  548. if (!empty($company_data)){
  549. switch ($dwtype) {
  550. case '1':
  551. $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");
  552. break;
  553. // case '2':
  554. // $res_id = M()->query("select id from sp_sj2017 where device_code='" . $Data['device_code'] . "' and data1='" . $Map['data1'] . "' and clzt=0");
  555. // break;
  556. // case '3':
  557. // $res_id = M()->query("select id from sp_hj2017 where device_code='" . $Data['device_code'] . "' and data2='" . $Data['ftypewtype'] . "' and clzt=0");
  558. // break;
  559. // case '7':
  560. // $res_id = M()->query("select * from sp_ef2017 where device_code='" . $Data['device_code'] . "' and data1='" . $Data['data1'] . "' and clzt=0");
  561. // break;
  562. default:
  563. $cs66 = '';
  564. break;
  565. }
  566. if (!empty($res_id)){
  567. foreach ($res_id as $key=>$value){
  568. $cs66[$key] = [
  569. 'SubType' => $dwtype,
  570. 'DeviceId' => $Data['device_code'],
  571. 'InsertId' => $res_id[$key]['id'],
  572. 'Confirmed' => true,
  573. ];
  574. }
  575. }
  576. }
  577. $Tabs->where($Map)->save($Data);
  578. $url1 = 'http://47.98.201.187:55335/report';
  579. if ($dwtype == 1) {
  580. if (!empty($cs66)){
  581. $cs99 = json_encode($cs66[0]);
  582. $filename_log = "/var/www/html/jdxf/log/zdts_log" . date("Y-m-d") . ".log";
  583. $this->printing_log($cs99, $filename_log);
  584. // foreach ($cs66 as $key=>$value){
  585. // $cs88 = json_encode($cs66[$key]);
  586. // http_post_advertise($url1, $cs88);
  587. // }
  588. }else{
  589. $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;");
  590. $cs66 = [
  591. 'SubType' => 1,
  592. 'DeviceId' => $Data['device_code'],
  593. 'InsertId' => $res_id[0]['id'],
  594. 'Confirmed' => true,
  595. ];
  596. $url1 = 'http://47.98.201.187:55335/report';
  597. $cs88 = json_encode($cs66);
  598. http_post_advertise($url1, $cs88);
  599. }
  600. //redis储存处理的设备
  601. // $redis = new \Redis();
  602. // $result = $redis->connect('47.98.201.73', 6379);
  603. // $redis->auth("usky2021");
  604. // if ($result==1){
  605. // if (!empty($res_id[0]['data4'])){
  606. // $port=mb_substr($res_id[0]['data4'],4,1,'utf-8');
  607. //// $port=substr($res_id[0]['data4'],3,1);
  608. // }else{
  609. // $port='';
  610. // }
  611. //
  612. // if (!empty($res_id[0]['data3'])){
  613. // $Source_code=str_replace(',','',$res_id[0]['data3']);
  614. // }else{
  615. // $Source_code='';
  616. // }
  617. //
  618. // $unique_number=$Data['device_code'].$port.$Source_code;
  619. // $redis->set("$unique_number",1);
  620. // $redis->close();
  621. // }
  622. } else if ($dwtype == 2) {
  623. if (!empty($cs66)){
  624. foreach ($cs66 as $key=>$value){
  625. $cs88 = json_encode($cs66[$key]);
  626. http_post_advertise($url1, $cs88);
  627. }
  628. }else{
  629. $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");
  630. $cs66 = [
  631. 'SubType' => 2,
  632. 'DeviceId' => $Data['device_code'],
  633. 'InsertId' => $res_id[0]['id'],
  634. 'Confirmed' => true,
  635. ];
  636. $url1 = 'http://47.98.201.187:55335/report';
  637. $cs88 = json_encode($cs66);
  638. http_post_advertise($url1, $cs88);
  639. }
  640. //redis储存处理的设备
  641. $redis = new \Redis();
  642. $result = $redis->connect('47.98.201.73', 6379);
  643. $redis->auth("usky2021");
  644. if ($result==1){
  645. $unique_number=$Data['device_code'];
  646. $redis->set("$unique_number",1);
  647. $redis->close();
  648. }
  649. } else if ($dwtype == 3) {
  650. if (!empty($cs66)){
  651. foreach ($cs66 as $key=>$value){
  652. $cs88 = json_encode($cs66[$key]);
  653. http_post_advertise($url1, $cs88);
  654. }
  655. }else{
  656. $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");
  657. $cs66 = [
  658. 'SubType' => 3,
  659. 'DeviceId' => $Data['device_code'],
  660. 'InsertId' => $res_id[0]['id'],
  661. 'Confirmed' => true,
  662. ];
  663. $url1 = 'http://47.98.201.187:55335/report';
  664. $cs88 = json_encode($cs66);
  665. http_post_advertise($url1, $cs88);
  666. }
  667. //redis储存处理的设备
  668. $redis = new \Redis();
  669. $result = $redis->connect('47.98.201.73', 6379);
  670. $redis->auth("usky2021");
  671. if ($result==1){
  672. $unique_number=$Data['device_code'];
  673. $redis->set("$unique_number",1);
  674. $redis->close();
  675. }
  676. } else if ($dwtype == 7) {
  677. if (!empty($cs66)){
  678. foreach ($cs66 as $key=>$value){
  679. $cs88 = json_encode($cs66[$key]);
  680. http_post_advertise($url1, $cs88);
  681. }
  682. }else{
  683. $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");
  684. $cs66 = [
  685. 'SubType' => 7,
  686. 'DeviceId' => $Data['device_code'],
  687. 'InsertId' => $res_id[0]['id'],
  688. 'Confirmed' => true,
  689. ];
  690. $url1 = 'http://47.98.201.187:55335/report';
  691. $cs88 = json_encode($cs66);
  692. http_post_advertise($url1, $cs88);
  693. }
  694. //redis储存处理的设备
  695. $redis = new \Redis();
  696. $result = $redis->connect('47.98.201.73', 6379);
  697. $redis->auth("usky2021");
  698. if ($result==1){
  699. $port=$res_id[0]['port'];
  700. $unique_number=$Data['device_code'].$port;
  701. $redis->set("$unique_number",1);
  702. $redis->close();
  703. }
  704. }else if ($dwtype == 6){
  705. //redis储存处理的设备
  706. $redis = new \Redis();
  707. $result = $redis->connect('47.98.201.73', 6379);
  708. $redis->auth("usky2021");
  709. if ($result==1){
  710. $port=$Data['port'];
  711. $Source_code=$Data['ncmd'];
  712. $unique_number=$Data['device_code'].$port.$Source_code.$Data['cs2'].' '.$Data['cs1'];
  713. $redis->set("$unique_number",1);
  714. $redis->close();
  715. }
  716. }else{
  717. //redis储存处理的设备
  718. $redis = new \Redis();
  719. $result = $redis->connect('47.98.201.73', 6379);
  720. $redis->auth("usky2021");
  721. if ($result==1){
  722. $unique_number=$Data['device_code'];
  723. $redis->set("$unique_number",1);
  724. $redis->close();
  725. }
  726. }
  727. } else {
  728. if ($bx == 1) {
  729. $owner_data = M()->query("select * from sp_owner where owner_code='" . $Data['device_code'] . "'");
  730. $wx_name = '设备编号' . $owner_data[0]['owner_code'] . '故障';
  731. $dqsj = date('Y-m-d h:i:s', time());
  732. $lsxx = $dqsj . "," . $wx_name;
  733. $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 . "')";
  734. $photos_res = addDataInfo($inster_sql);
  735. }
  736. $Map['id'] = $Data['id'];
  737. $Tabs->where($Map)->save($Data);
  738. $cs = [
  739. 'SubType' => $dwtype,
  740. 'DeviceId' => $Data['device_code'],
  741. 'InsertId' => $Data['id'],
  742. 'Confirmed' => true,
  743. ];
  744. if ($dwtype == 1) {
  745. $url = 'http://47.98.201.187:55335/report';
  746. $cs3 = json_encode($cs);
  747. $result = http_post_advertise($url, $cs3);
  748. } else if ($dwtype == 2) {
  749. $url = 'http://47.98.201.187:55335/report';
  750. $cs3 = json_encode($cs);
  751. $result = http_post_advertise($url, $cs3);
  752. if ($Data['ftypewtype']=='低压'||$Data['ftypewtype']=="高压"){
  753. $device = ytapi_query("SELECT * FROM yt_t_mhwater WHERE device_code='".$Data['device_code']."' AND push_status=1");
  754. if (!empty($device)){
  755. // $tiem_data = M("sj2017")->where("id",$Data['id'])->find();
  756. $tiem_data = date('Y-m-d H:i:s', time());
  757. $json_data_four=$this->date_array_turn_json($Data['id'],$device[0],strtotime($tiem_data),$Data['ftypewtype'],1,'','');
  758. if (!empty($json_data_four)){
  759. $this->message_push_mh("mh/water/statistics",$json_data_four,0);
  760. }
  761. }
  762. }
  763. } else if ($dwtype == 3) {
  764. $url = 'http://47.98.201.187:55335/report';
  765. $cs3 = json_encode($cs);
  766. $result = http_post_advertise($url, $cs3);
  767. } else if ($dwtype == 7) {
  768. $url = 'http://47.98.201.187:55335/report';
  769. $cs3 = json_encode($cs);
  770. $result = http_post_advertise($url, $cs3);
  771. }else if ($dwtype == 5){
  772. $url = 'http://47.98.201.187:55335/report';
  773. $cs3 = json_encode($cs);
  774. $result = http_post_advertise($url, $cs3);
  775. }else if ($dwtype == 6){
  776. $url = 'http://47.98.201.187:55335/report';
  777. $cs3 = json_encode($cs);
  778. $result = http_post_advertise($url, $cs3);
  779. }else if ($dwtype == 16){
  780. $url = 'http://47.98.201.187:55335/report';
  781. $cs3 = json_encode($cs);
  782. $result = http_post_advertise($url, $cs3);
  783. }
  784. if ($dwtype == 1){
  785. $res_id = M()->query("select data3,data4 from sp_hj2017 where id=" . $Data['id']);
  786. //redis储存处理的设备
  787. // $redis = new \Redis();
  788. // $result = $redis->connect('47.98.201.73', 6379);
  789. // $redis->auth("usky2021");
  790. // if ($result==1){
  791. //
  792. // if (!empty($res_id[0]['data4'])){
  793. // $port=mb_substr($res_id[0]['data4'],4,1,'utf-8');
  794. //// $port=substr($res_id[0]['data4'],3,1);
  795. // }else{
  796. // $port='';
  797. // }
  798. //
  799. // if (!empty($res_id[0]['data3'])){
  800. // $Source_code=str_replace(',','',$res_id[0]['data3']);
  801. // }else{
  802. // $Source_code='';
  803. // }
  804. //
  805. //
  806. //// $port=substr($res_id[0]['data4'],3,1);
  807. //// $Source_code=str_replace(',','',$res_id[0]['data3']);
  808. // $unique_number=$Data['device_code'].$port.$Source_code;
  809. // print_r($unique_number);
  810. // $redis->set("$unique_number",1);
  811. // $redis->close();
  812. // }
  813. }else if($dwtype == 6){
  814. $res_id = M()->query("select * from sp_rtu2017 where id=" . $Data['id']);
  815. //redis储存处理的设备
  816. $redis = new \Redis();
  817. $result = $redis->connect('47.98.201.73', 6379);
  818. $redis->auth("usky2021");
  819. if ($result==1){
  820. $port=$Data['port'];
  821. $Source_code=$Data['ncmd'];
  822. $unique_number=$Data['device_code'].$port.$Source_code.$Data['cs2'].' '.$Data['cs1'];
  823. // print_r($unique_number);
  824. $redis->set("$unique_number",1);
  825. $redis->close();
  826. }
  827. }else if($dwtype == 7){
  828. $res_id = M()->query("select port from sp_ef2017 where id=" . $Data['id']);
  829. //redis储存处理的设备
  830. $redis = new \Redis();
  831. $result = $redis->connect('47.98.201.73', 6379);
  832. $redis->auth("usky2021");
  833. if ($result==1){
  834. $port=$res_id[0]['port'];
  835. $unique_number=$Data['device_code'].$port;
  836. $redis->set("$unique_number",1);
  837. $redis->close();
  838. }
  839. }else{
  840. //redis储存处理的设备
  841. $redis = new \Redis();
  842. $result = $redis->connect('127.0.0.1', 6379);
  843. $redis->auth("usky2021");
  844. if ($result==1){
  845. $unique_number=$Data['device_code'];
  846. $redis->set("$unique_number",1);
  847. $redis->close();
  848. }
  849. }
  850. }
  851. $map['device_code'] = $Data['device_code'];
  852. $map['clzt'] = 0;
  853. $res_sel = $Tabs->where($map)->count('id');
  854. if ($res_sel == 0) {
  855. $data = array("devicestatus" => 0);
  856. $str_where = "deviceid='" . $Data['device_code'] . "'";
  857. $str_sql_upd = M('devices_status')->where($str_where)->save($data);
  858. $arr = array('status' => 'y');
  859. } else {
  860. $arr = array('status' => 'n');
  861. }
  862. $resurl = 'https://' . $_SERVER['SERVER_NAME'] . $Data['url'];
  863. // print_r($resurl);
  864. // exit();
  865. $html = <<<HTML
  866. <!doctype html>
  867. <html lang="en">
  868. <head>
  869. <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  870. <meta charset="utf-8">
  871. <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport">
  872. <meta content="yes" name="apple-mobile-web-app-capable">
  873. <meta content="black" name="apple-mobile-web-app-status-bar-style">
  874. <meta content="telephone=no" name="format-detection">
  875. <meta http-equiv="refresh" content="2;url=$resurl" />
  876. <title>保存成功</title>
  877. </head>
  878. <body>
  879. 保存成功,正在跳转。。。
  880. </body>
  881. </html>
  882. HTML;
  883. echo $html;
  884. //echo json_encode($arr) ;
  885. }
  886. public function date_array_turn_json($insert_id,$device,$createdTime,$ajDescribe,$ajFlag,$enclosure,$image){
  887. if (!empty($device)){
  888. $arr = [
  889. "id" => $insert_id,
  890. "deviceCode"=>$device['mh_device_code'],
  891. "createTime" =>date("Y-m-d H:i:s",$createdTime) ,
  892. "ajType"=>$device['aj_type'],
  893. "street"=>$device['street'],
  894. "address"=>$device['company_address'].','.$device['device_address'],
  895. "grid"=>$device['grid'],
  896. "ajDescribe"=>$ajDescribe,
  897. "dutyGroup"=>$device['company_name'],
  898. "ajFlag"=>$ajFlag,
  899. "endTime"=>date("Y-m-d H:i:s",$createdTime+86400),
  900. "enclosure"=>$enclosure,
  901. "image"=>$image
  902. ];
  903. $json_data=json_encode($arr);
  904. }else{
  905. $json_data=null;
  906. }
  907. return $json_data;
  908. }
  909. public function message_push_mh($topic,$msg,$qos){
  910. // vendor('phpMQTT.phpMQTT');
  911. $server = '47.98.201.73'; // 服务器IP
  912. $port = 1883; // 服务器端口
  913. $username = 'usky'; // 用户名
  914. $password = 'usky'; // 密码
  915. $client_id = 'pub_' . uniqid();
  916. $mqtt = new \phpMQTT($server, $port, $client_id);
  917. if ($mqtt->connect(true, NULL, $username, $password)) {
  918. $mqtt->publish($topic, $msg, $qos);
  919. usleep(100000);
  920. $mqtt->close();
  921. // Log::record('MH—4G-MQTT-Push success!('.$topic.')['.date('Y-m-d H:i:s').']:'.json_encode($msg));
  922. } else {
  923. // Log::record('MH—4G-MQTT-Time out!('.$topic.')['.date('Y-m-d H:i:s').']:'.json_encode($msg));
  924. }
  925. }
  926. public function printing_log($Data,$filename_log){
  927. $log = "[时间" . date("Y-m-d H:i:s") . "]报警数据:" . json_encode($Data) . "\r\n";
  928. file_put_contents($filename_log, $log, FILE_APPEND | LOCK_EX);
  929. }
  930. }