FireinfoController.class.php2021-12-21 44 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976
  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. // print_r($Data);
  417. $dwtype = $Data['dwtype'];
  418. $bx = $Data['bx'];
  419. switch ($dwtype) {
  420. case '1':
  421. $Tabs = M('hj2017');
  422. $Map['data2'] = $Data['ftypewtype'];
  423. $Map['data3'] = $Data['data3'];
  424. $Map['data5'] = $Data['data5'];
  425. break;
  426. case '2':
  427. $Tabs = M('sj2017');
  428. //var_dump($Tabs);exit();
  429. switch ($Data['ftypewtype']) {
  430. case '低位':
  431. $Map['data1'] = 'LL1';
  432. break;
  433. case '高位':
  434. $Map['data1'] = 'LL2';
  435. break;
  436. case '故障':
  437. $Map['data1'] = 'WP3';
  438. break;
  439. case '低压':
  440. $Map['data1'] = 'WP1';
  441. break;
  442. case '高压':
  443. $Map['data1'] = 'WP2';
  444. break;
  445. case '离线':
  446. $Map['data1'] = 'WP4';
  447. break;
  448. default :
  449. $Map['data1'] = $Data['ftypewtype'];
  450. break;
  451. }
  452. break;
  453. case '3':
  454. $Tabs = M('hj2017');
  455. $Map['data2'] = $Data['ftypewtype'];
  456. break;
  457. case '4':
  458. $Tabs = M('sj2017');
  459. break;
  460. case '5':
  461. $Tabs = M('sj2017');
  462. switch ($Data['ftypewtype']) {
  463. case '低位':
  464. $Map['data1'] = 'LL1';
  465. break;
  466. case '高位':
  467. $Map['data1'] = 'LL2';
  468. break;
  469. case '波动告警':
  470. $Map['data1'] = 'LL5';
  471. break;
  472. case '低压':
  473. $Map['data1'] = 'WP1';
  474. break;
  475. case '高压':
  476. $Map['data1'] = 'WP2';
  477. break;
  478. case '离线':
  479. $Map['data1'] = 'WP4';
  480. break;
  481. default :
  482. $Map['data1'] = $Data['ftypewtype'];
  483. break;
  484. }
  485. break;
  486. case '6':
  487. $Tabs = M('rtu2017');
  488. $map['ncmd'] = '';
  489. $Map['ncmd'] = $Data['ncmd'];
  490. $Map['data2'] = $Data['cs1'];
  491. $Map['data4'] = $Data['cs2'];
  492. break;
  493. case '7':
  494. $Tabs = M('ef2017');
  495. $Map['data1'] = $Data['data1'];
  496. break;
  497. case '16':
  498. $Tabs = M('video2017');
  499. break;
  500. case '17':
  501. $Tabs = M('lifter2017');
  502. break;
  503. case '130':
  504. $Tabs = M('door2020');
  505. break;
  506. case '131':
  507. $Tabs = M('gas2020');
  508. break;
  509. case '128':
  510. $Tabs = M('iw2017');
  511. break;
  512. case '129':
  513. $Tabs = M('dc2020');
  514. break;
  515. default:
  516. break;
  517. }
  518. $Data['clzt'] = 1;
  519. $Data['clsj'] = Date('Y-m-d H:i:s');
  520. if (!empty($_SESSION['idphone'])) {
  521. $Data['clr'] = $_SESSION['idphone'];
  522. }
  523. if (!empty($_SESSION['phone'])) {
  524. $Data['clr'] = $_SESSION['phone'];
  525. }
  526. $Map['device_code'] = $Data['device_code'];
  527. $Map['clzt'] = 0;
  528. if ($Data['plcl'] == 1) {
  529. $owner_data = M()->query("select * from sp_owner where owner_code='" . $Data['device_code'] . "'");
  530. if ($bx == 1) {
  531. $owner_data = M()->query("select * from sp_owner where owner_code='" . $Data['device_code'] . "'");
  532. $wx_name = '设备编号' . $owner_data[0]['owner_code'] . '故障';
  533. $dqsj = date('Y-m-d h:i:s', time());
  534. $lsxx = $dqsj . "," . $wx_name;
  535. $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 . "')";
  536. $photos_res = addDataInfo($inster_sql);
  537. }
  538. unset($Data['id']);
  539. //消防总队推送
  540. $company_data=ytapi_query("select * from corps_company where company_code='".$owner_data[0]['company']."' and status=1");
  541. if (!empty($company_data)){
  542. switch ($dwtype) {
  543. case '1':
  544. $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");
  545. break;
  546. // case '2':
  547. // $res_id = M()->query("select id from sp_sj2017 where device_code='" . $Data['device_code'] . "' and data1='" . $Map['data1'] . "' and clzt=0");
  548. // break;
  549. // case '3':
  550. // $res_id = M()->query("select id from sp_hj2017 where device_code='" . $Data['device_code'] . "' and data2='" . $Data['ftypewtype'] . "' and clzt=0");
  551. // break;
  552. // case '7':
  553. // $res_id = M()->query("select * from sp_ef2017 where device_code='" . $Data['device_code'] . "' and data1='" . $Data['data1'] . "' and clzt=0");
  554. // break;
  555. default:
  556. $cs66 = '';
  557. break;
  558. }
  559. if (!empty($res_id)){
  560. foreach ($res_id as $key=>$value){
  561. $cs66[$key] = [
  562. 'SubType' => $dwtype,
  563. 'DeviceId' => $Data['device_code'],
  564. 'InsertId' => $res_id[$key]['id'],
  565. 'Confirmed' => true,
  566. ];
  567. }
  568. }
  569. }
  570. $Tabs->where($Map)->save($Data);
  571. $url1 = 'http://47.98.201.187:55335/report';
  572. if ($dwtype == 1) {
  573. if (!empty($cs66)){
  574. $cs99 = json_encode($cs66[0]);
  575. $filename_log = "/var/www/html/jdxf/log/zdts_log" . date("Y-m-d") . ".log";
  576. $this->printing_log($cs99, $filename_log);
  577. // foreach ($cs66 as $key=>$value){
  578. // $cs88 = json_encode($cs66[$key]);
  579. // http_post_advertise($url1, $cs88);
  580. // }
  581. }else{
  582. $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;");
  583. $cs66 = [
  584. 'SubType' => 1,
  585. 'DeviceId' => $Data['device_code'],
  586. 'InsertId' => $res_id[0]['id'],
  587. 'Confirmed' => true,
  588. ];
  589. $url1 = 'http://47.98.201.187:55335/report';
  590. $cs88 = json_encode($cs66);
  591. http_post_advertise($url1, $cs88);
  592. }
  593. //redis储存处理的设备
  594. // $redis = new \Redis();
  595. // $result = $redis->connect('47.98.201.73', 6379);
  596. // $redis->auth("usky2021");
  597. // if ($result==1){
  598. // if (!empty($res_id[0]['data4'])){
  599. // $port=mb_substr($res_id[0]['data4'],4,1,'utf-8');
  600. //// $port=substr($res_id[0]['data4'],3,1);
  601. // }else{
  602. // $port='';
  603. // }
  604. //
  605. // if (!empty($res_id[0]['data3'])){
  606. // $Source_code=str_replace(',','',$res_id[0]['data3']);
  607. // }else{
  608. // $Source_code='';
  609. // }
  610. //
  611. // $unique_number=$Data['device_code'].$port.$Source_code;
  612. // $redis->set("$unique_number",1);
  613. // $redis->close();
  614. // }
  615. } else if ($dwtype == 2) {
  616. if (!empty($cs66)){
  617. foreach ($cs66 as $key=>$value){
  618. $cs88 = json_encode($cs66[$key]);
  619. http_post_advertise($url1, $cs88);
  620. }
  621. }else{
  622. $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");
  623. $cs66 = [
  624. 'SubType' => 2,
  625. 'DeviceId' => $Data['device_code'],
  626. 'InsertId' => $res_id[0]['id'],
  627. 'Confirmed' => true,
  628. ];
  629. $url1 = 'http://47.98.201.187:55335/report';
  630. $cs88 = json_encode($cs66);
  631. http_post_advertise($url1, $cs88);
  632. }
  633. //redis储存处理的设备
  634. $redis = new \Redis();
  635. $result = $redis->connect('47.98.201.73', 6379);
  636. $redis->auth("usky2021");
  637. if ($result==1){
  638. $unique_number=$Data['device_code'];
  639. $redis->set("$unique_number",1);
  640. $redis->close();
  641. }
  642. } else if ($dwtype == 3) {
  643. if (!empty($cs66)){
  644. foreach ($cs66 as $key=>$value){
  645. $cs88 = json_encode($cs66[$key]);
  646. http_post_advertise($url1, $cs88);
  647. }
  648. }else{
  649. $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");
  650. $cs66 = [
  651. 'SubType' => 3,
  652. 'DeviceId' => $Data['device_code'],
  653. 'InsertId' => $res_id[0]['id'],
  654. 'Confirmed' => true,
  655. ];
  656. $url1 = 'http://47.98.201.187:55335/report';
  657. $cs88 = json_encode($cs66);
  658. http_post_advertise($url1, $cs88);
  659. }
  660. //redis储存处理的设备
  661. $redis = new \Redis();
  662. $result = $redis->connect('47.98.201.73', 6379);
  663. $redis->auth("usky2021");
  664. if ($result==1){
  665. $unique_number=$Data['device_code'];
  666. $redis->set("$unique_number",1);
  667. $redis->close();
  668. }
  669. } else if ($dwtype == 7) {
  670. if (!empty($cs66)){
  671. foreach ($cs66 as $key=>$value){
  672. $cs88 = json_encode($cs66[$key]);
  673. http_post_advertise($url1, $cs88);
  674. }
  675. }else{
  676. $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");
  677. $cs66 = [
  678. 'SubType' => 7,
  679. 'DeviceId' => $Data['device_code'],
  680. 'InsertId' => $res_id[0]['id'],
  681. 'Confirmed' => true,
  682. ];
  683. $url1 = 'http://47.98.201.187:55335/report';
  684. $cs88 = json_encode($cs66);
  685. http_post_advertise($url1, $cs88);
  686. }
  687. //redis储存处理的设备
  688. $redis = new \Redis();
  689. $result = $redis->connect('47.98.201.73', 6379);
  690. $redis->auth("usky2021");
  691. if ($result==1){
  692. $port=$res_id[0]['port'];
  693. $unique_number=$Data['device_code'].$port;
  694. $redis->set("$unique_number",1);
  695. $redis->close();
  696. }
  697. }else if ($dwtype == 6){
  698. //redis储存处理的设备
  699. $redis = new \Redis();
  700. $result = $redis->connect('47.98.201.73', 6379);
  701. $redis->auth("usky2021");
  702. if ($result==1){
  703. $port=$Data['port'];
  704. $Source_code=$Data['ncmd'];
  705. $unique_number=$Data['device_code'].$port.$Source_code.$Data['cs2'].' '.$Data['cs1'];
  706. $redis->set("$unique_number",1);
  707. $redis->close();
  708. }
  709. }else{
  710. //redis储存处理的设备
  711. $redis = new \Redis();
  712. $result = $redis->connect('47.98.201.73', 6379);
  713. $redis->auth("usky2021");
  714. if ($result==1){
  715. $unique_number=$Data['device_code'];
  716. $redis->set("$unique_number",1);
  717. $redis->close();
  718. }
  719. }
  720. } else {
  721. if ($bx == 1) {
  722. $owner_data = M()->query("select * from sp_owner where owner_code='" . $Data['device_code'] . "'");
  723. $wx_name = '设备编号' . $owner_data[0]['owner_code'] . '故障';
  724. $dqsj = date('Y-m-d h:i:s', time());
  725. $lsxx = $dqsj . "," . $wx_name;
  726. $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 . "')";
  727. $photos_res = addDataInfo($inster_sql);
  728. }
  729. $Map['id'] = $Data['id'];
  730. $Tabs->where($Map)->save($Data);
  731. $cs = [
  732. 'SubType' => $dwtype,
  733. 'DeviceId' => $Data['device_code'],
  734. 'InsertId' => $Data['id'],
  735. 'Confirmed' => true,
  736. ];
  737. if ($dwtype == 1) {
  738. $url = 'http://47.98.201.187:55335/report';
  739. $cs3 = json_encode($cs);
  740. $result = http_post_advertise($url, $cs3);
  741. } else if ($dwtype == 2) {
  742. $url = 'http://47.98.201.187:55335/report';
  743. $cs3 = json_encode($cs);
  744. $result = http_post_advertise($url, $cs3);
  745. if ($Data['ftypewtype']=='低压'||$Data['ftypewtype']=="高压"){
  746. $device = ytapi_query("SELECT * FROM yt_t_mhwater WHERE device_code='".$Data['device_code']."' AND push_status=1");
  747. if (!empty($device)){
  748. // $tiem_data = M("sj2017")->where("id",$Data['id'])->find();
  749. $tiem_data = date('Y-m-d H:i:s', time());
  750. $json_data_four=$this->date_array_turn_json($Data['id'],$device[0],strtotime($tiem_data),$Data['ftypewtype'],1,'','');
  751. if (!empty($json_data_four)){
  752. $this->message_push_mh("mh/water/statistics",$json_data_four,0);
  753. }
  754. }
  755. }
  756. } else if ($dwtype == 3) {
  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 == 7) {
  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 == 5){
  765. $url = 'http://47.98.201.187:55335/report';
  766. $cs3 = json_encode($cs);
  767. $result = http_post_advertise($url, $cs3);
  768. }else if ($dwtype == 6){
  769. $url = 'http://47.98.201.187:55335/report';
  770. $cs3 = json_encode($cs);
  771. $result = http_post_advertise($url, $cs3);
  772. }else if ($dwtype == 16){
  773. $url = 'http://47.98.201.187:55335/report';
  774. $cs3 = json_encode($cs);
  775. $result = http_post_advertise($url, $cs3);
  776. }
  777. if ($dwtype == 1){
  778. $res_id = M()->query("select data3,data4 from sp_hj2017 where id=" . $Data['id']);
  779. //redis储存处理的设备
  780. // $redis = new \Redis();
  781. // $result = $redis->connect('47.98.201.73', 6379);
  782. // $redis->auth("usky2021");
  783. // if ($result==1){
  784. //
  785. // if (!empty($res_id[0]['data4'])){
  786. // $port=mb_substr($res_id[0]['data4'],4,1,'utf-8');
  787. //// $port=substr($res_id[0]['data4'],3,1);
  788. // }else{
  789. // $port='';
  790. // }
  791. //
  792. // if (!empty($res_id[0]['data3'])){
  793. // $Source_code=str_replace(',','',$res_id[0]['data3']);
  794. // }else{
  795. // $Source_code='';
  796. // }
  797. //
  798. //
  799. //// $port=substr($res_id[0]['data4'],3,1);
  800. //// $Source_code=str_replace(',','',$res_id[0]['data3']);
  801. // $unique_number=$Data['device_code'].$port.$Source_code;
  802. // print_r($unique_number);
  803. // $redis->set("$unique_number",1);
  804. // $redis->close();
  805. // }
  806. }else if($dwtype == 6){
  807. $res_id = M()->query("select * from sp_rtu2017 where id=" . $Data['id']);
  808. //redis储存处理的设备
  809. $redis = new \Redis();
  810. $result = $redis->connect('47.98.201.73', 6379);
  811. $redis->auth("usky2021");
  812. if ($result==1){
  813. $port=$Data['port'];
  814. $Source_code=$Data['ncmd'];
  815. $unique_number=$Data['device_code'].$port.$Source_code.$Data['cs2'].' '.$Data['cs1'];
  816. // print_r($unique_number);
  817. $redis->set("$unique_number",1);
  818. $redis->close();
  819. }
  820. }else if($dwtype == 7){
  821. $res_id = M()->query("select port from sp_ef2017 where id=" . $Data['id']);
  822. //redis储存处理的设备
  823. $redis = new \Redis();
  824. $result = $redis->connect('47.98.201.73', 6379);
  825. $redis->auth("usky2021");
  826. if ($result==1){
  827. $port=$res_id[0]['port'];
  828. $unique_number=$Data['device_code'].$port;
  829. $redis->set("$unique_number",1);
  830. $redis->close();
  831. }
  832. }else{
  833. //redis储存处理的设备
  834. $redis = new \Redis();
  835. $result = $redis->connect('127.0.0.1', 6379);
  836. $redis->auth("usky2021");
  837. if ($result==1){
  838. $unique_number=$Data['device_code'];
  839. $redis->set("$unique_number",1);
  840. $redis->close();
  841. }
  842. }
  843. }
  844. $map['device_code'] = $Data['device_code'];
  845. $map['clzt'] = 0;
  846. $res_sel = $Tabs->where($map)->count('id');
  847. if ($res_sel == 0) {
  848. $data = array("devicestatus" => 0);
  849. $str_where = "deviceid='" . $Data['device_code'] . "'";
  850. $str_sql_upd = M('devices_status')->where($str_where)->save($data);
  851. $arr = array('status' => 'y');
  852. } else {
  853. $arr = array('status' => 'n');
  854. }
  855. $resurl = 'https://' . $_SERVER['SERVER_NAME'] . $Data['url'];
  856. // print_r($resurl);
  857. // exit();
  858. $html = <<<HTML
  859. <!doctype html>
  860. <html lang="en">
  861. <head>
  862. <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  863. <meta charset="utf-8">
  864. <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport">
  865. <meta content="yes" name="apple-mobile-web-app-capable">
  866. <meta content="black" name="apple-mobile-web-app-status-bar-style">
  867. <meta content="telephone=no" name="format-detection">
  868. <meta http-equiv="refresh" content="2;url=$resurl" />
  869. <title>保存成功</title>
  870. </head>
  871. <body>
  872. 保存成功,正在跳转。。。
  873. </body>
  874. </html>
  875. HTML;
  876. echo $html;
  877. //echo json_encode($arr) ;
  878. }
  879. public function date_array_turn_json($insert_id,$device,$createdTime,$ajDescribe,$ajFlag,$enclosure,$image){
  880. if (!empty($device)){
  881. $arr = [
  882. "id" => $insert_id,
  883. "deviceCode"=>$device['mh_device_code'],
  884. "createTime" =>date("Y-m-d H:i:s",$createdTime) ,
  885. "ajType"=>$device['aj_type'],
  886. "street"=>$device['street'],
  887. "address"=>$device['company_address'].','.$device['device_address'],
  888. "grid"=>$device['grid'],
  889. "ajDescribe"=>$ajDescribe,
  890. "dutyGroup"=>$device['company_name'],
  891. "ajFlag"=>$ajFlag,
  892. "endTime"=>date("Y-m-d H:i:s",$createdTime+86400),
  893. "enclosure"=>$enclosure,
  894. "image"=>$image
  895. ];
  896. $json_data=json_encode($arr);
  897. }else{
  898. $json_data=null;
  899. }
  900. return $json_data;
  901. }
  902. public function message_push_mh($topic,$msg,$qos){
  903. // vendor('phpMQTT.phpMQTT');
  904. $server = '47.98.201.73'; // 服务器IP
  905. $port = 1883; // 服务器端口
  906. $username = 'usky'; // 用户名
  907. $password = 'usky'; // 密码
  908. $client_id = 'pub_' . uniqid();
  909. $mqtt = new \phpMQTT($server, $port, $client_id);
  910. if ($mqtt->connect(true, NULL, $username, $password)) {
  911. $mqtt->publish($topic, $msg, $qos);
  912. usleep(100000);
  913. $mqtt->close();
  914. // Log::record('MH—4G-MQTT-Push success!('.$topic.')['.date('Y-m-d H:i:s').']:'.json_encode($msg));
  915. } else {
  916. // Log::record('MH—4G-MQTT-Time out!('.$topic.')['.date('Y-m-d H:i:s').']:'.json_encode($msg));
  917. }
  918. }
  919. public function printing_log($Data,$filename_log){
  920. $log = "[时间" . date("Y-m-d H:i:s") . "]报警数据:" . json_encode($Data) . "\r\n";
  921. file_put_contents($filename_log, $log, FILE_APPEND | LOCK_EX);
  922. }
  923. }