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

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969
  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. foreach ($cs66 as $key=>$value){
  575. $cs88 = json_encode($cs66[$key]);
  576. http_post_advertise($url1, $cs88);
  577. }
  578. }else{
  579. $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;");
  580. $cs66 = [
  581. 'SubType' => 1,
  582. 'DeviceId' => $Data['device_code'],
  583. 'InsertId' => $res_id[0]['id'],
  584. 'Confirmed' => true,
  585. ];
  586. $url1 = 'http://47.98.201.187:55335/report';
  587. $cs88 = json_encode($cs66);
  588. http_post_advertise($url1, $cs88);
  589. }
  590. //redis储存处理的设备
  591. // $redis = new \Redis();
  592. // $result = $redis->connect('47.98.201.73', 6379);
  593. // $redis->auth("usky2021");
  594. // if ($result==1){
  595. // if (!empty($res_id[0]['data4'])){
  596. // $port=mb_substr($res_id[0]['data4'],4,1,'utf-8');
  597. //// $port=substr($res_id[0]['data4'],3,1);
  598. // }else{
  599. // $port='';
  600. // }
  601. //
  602. // if (!empty($res_id[0]['data3'])){
  603. // $Source_code=str_replace(',','',$res_id[0]['data3']);
  604. // }else{
  605. // $Source_code='';
  606. // }
  607. //
  608. // $unique_number=$Data['device_code'].$port.$Source_code;
  609. // $redis->set("$unique_number",1);
  610. // $redis->close();
  611. // }
  612. } else if ($dwtype == 2) {
  613. if (!empty($cs66)){
  614. foreach ($cs66 as $key=>$value){
  615. $cs88 = json_encode($cs66[$key]);
  616. http_post_advertise($url1, $cs88);
  617. }
  618. }else{
  619. $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");
  620. $cs66 = [
  621. 'SubType' => 2,
  622. 'DeviceId' => $Data['device_code'],
  623. 'InsertId' => $res_id[0]['id'],
  624. 'Confirmed' => true,
  625. ];
  626. $url1 = 'http://47.98.201.187:55335/report';
  627. $cs88 = json_encode($cs66);
  628. http_post_advertise($url1, $cs88);
  629. }
  630. //redis储存处理的设备
  631. $redis = new \Redis();
  632. $result = $redis->connect('47.98.201.73', 6379);
  633. $redis->auth("usky2021");
  634. if ($result==1){
  635. $unique_number=$Data['device_code'];
  636. $redis->set("$unique_number",1);
  637. $redis->close();
  638. }
  639. } else if ($dwtype == 3) {
  640. if (!empty($cs66)){
  641. foreach ($cs66 as $key=>$value){
  642. $cs88 = json_encode($cs66[$key]);
  643. http_post_advertise($url1, $cs88);
  644. }
  645. }else{
  646. $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");
  647. $cs66 = [
  648. 'SubType' => 3,
  649. 'DeviceId' => $Data['device_code'],
  650. 'InsertId' => $res_id[0]['id'],
  651. 'Confirmed' => true,
  652. ];
  653. $url1 = 'http://47.98.201.187:55335/report';
  654. $cs88 = json_encode($cs66);
  655. http_post_advertise($url1, $cs88);
  656. }
  657. //redis储存处理的设备
  658. $redis = new \Redis();
  659. $result = $redis->connect('47.98.201.73', 6379);
  660. $redis->auth("usky2021");
  661. if ($result==1){
  662. $unique_number=$Data['device_code'];
  663. $redis->set("$unique_number",1);
  664. $redis->close();
  665. }
  666. } else if ($dwtype == 7) {
  667. if (!empty($cs66)){
  668. foreach ($cs66 as $key=>$value){
  669. $cs88 = json_encode($cs66[$key]);
  670. http_post_advertise($url1, $cs88);
  671. }
  672. }else{
  673. $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");
  674. $cs66 = [
  675. 'SubType' => 7,
  676. 'DeviceId' => $Data['device_code'],
  677. 'InsertId' => $res_id[0]['id'],
  678. 'Confirmed' => true,
  679. ];
  680. $url1 = 'http://47.98.201.187:55335/report';
  681. $cs88 = json_encode($cs66);
  682. http_post_advertise($url1, $cs88);
  683. }
  684. //redis储存处理的设备
  685. $redis = new \Redis();
  686. $result = $redis->connect('47.98.201.73', 6379);
  687. $redis->auth("usky2021");
  688. if ($result==1){
  689. $port=$res_id[0]['port'];
  690. $unique_number=$Data['device_code'].$port;
  691. $redis->set("$unique_number",1);
  692. $redis->close();
  693. }
  694. }else if ($dwtype == 6){
  695. //redis储存处理的设备
  696. $redis = new \Redis();
  697. $result = $redis->connect('47.98.201.73', 6379);
  698. $redis->auth("usky2021");
  699. if ($result==1){
  700. $port=$Data['port'];
  701. $Source_code=$Data['ncmd'];
  702. $unique_number=$Data['device_code'].$port.$Source_code.$Data['cs2'].' '.$Data['cs1'];
  703. $redis->set("$unique_number",1);
  704. $redis->close();
  705. }
  706. }else{
  707. //redis储存处理的设备
  708. $redis = new \Redis();
  709. $result = $redis->connect('47.98.201.73', 6379);
  710. $redis->auth("usky2021");
  711. if ($result==1){
  712. $unique_number=$Data['device_code'];
  713. $redis->set("$unique_number",1);
  714. $redis->close();
  715. }
  716. }
  717. } else {
  718. if ($bx == 1) {
  719. $owner_data = M()->query("select * from sp_owner where owner_code='" . $Data['device_code'] . "'");
  720. $wx_name = '设备编号' . $owner_data[0]['owner_code'] . '故障';
  721. $dqsj = date('Y-m-d h:i:s', time());
  722. $lsxx = $dqsj . "," . $wx_name;
  723. $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 . "')";
  724. $photos_res = addDataInfo($inster_sql);
  725. }
  726. $Map['id'] = $Data['id'];
  727. $Tabs->where($Map)->save($Data);
  728. $cs = [
  729. 'SubType' => $dwtype,
  730. 'DeviceId' => $Data['device_code'],
  731. 'InsertId' => $Data['id'],
  732. 'Confirmed' => true,
  733. ];
  734. if ($dwtype == 1) {
  735. $url = 'http://47.98.201.187:55335/report';
  736. $cs3 = json_encode($cs);
  737. $result = http_post_advertise($url, $cs3);
  738. } else if ($dwtype == 2) {
  739. $url = 'http://47.98.201.187:55335/report';
  740. $cs3 = json_encode($cs);
  741. $result = http_post_advertise($url, $cs3);
  742. if ($Data['ftypewtype']=='低压'||$Data['ftypewtype']=="高压"){
  743. $device = ytapi_query("SELECT * FROM yt_t_mhwater WHERE device_code='".$Data['device_code']."' AND push_status=1");
  744. if (!empty($device)){
  745. // $tiem_data = M("sj2017")->where("id",$Data['id'])->find();
  746. $tiem_data = date('Y-m-d H:i:s', time());
  747. $json_data_four=$this->date_array_turn_json($Data['id'],$device[0],strtotime($tiem_data),$Data['ftypewtype'],1,'','');
  748. if (!empty($json_data_four)){
  749. $this->message_push_mh("mh/water/statistics",$json_data_four,0);
  750. }
  751. }
  752. }
  753. } else if ($dwtype == 3) {
  754. $url = 'http://47.98.201.187:55335/report';
  755. $cs3 = json_encode($cs);
  756. $result = http_post_advertise($url, $cs3);
  757. } else if ($dwtype == 7) {
  758. $url = 'http://47.98.201.187:55335/report';
  759. $cs3 = json_encode($cs);
  760. $result = http_post_advertise($url, $cs3);
  761. }else if ($dwtype == 5){
  762. $url = 'http://47.98.201.187:55335/report';
  763. $cs3 = json_encode($cs);
  764. $result = http_post_advertise($url, $cs3);
  765. }else if ($dwtype == 6){
  766. $url = 'http://47.98.201.187:55335/report';
  767. $cs3 = json_encode($cs);
  768. $result = http_post_advertise($url, $cs3);
  769. }else if ($dwtype == 16){
  770. $url = 'http://47.98.201.187:55335/report';
  771. $cs3 = json_encode($cs);
  772. $result = http_post_advertise($url, $cs3);
  773. }
  774. if ($dwtype == 1){
  775. $res_id = M()->query("select data3,data4 from sp_hj2017 where id=" . $Data['id']);
  776. //redis储存处理的设备
  777. // $redis = new \Redis();
  778. // $result = $redis->connect('47.98.201.73', 6379);
  779. // $redis->auth("usky2021");
  780. // if ($result==1){
  781. //
  782. // if (!empty($res_id[0]['data4'])){
  783. // $port=mb_substr($res_id[0]['data4'],4,1,'utf-8');
  784. //// $port=substr($res_id[0]['data4'],3,1);
  785. // }else{
  786. // $port='';
  787. // }
  788. //
  789. // if (!empty($res_id[0]['data3'])){
  790. // $Source_code=str_replace(',','',$res_id[0]['data3']);
  791. // }else{
  792. // $Source_code='';
  793. // }
  794. //
  795. //
  796. //// $port=substr($res_id[0]['data4'],3,1);
  797. //// $Source_code=str_replace(',','',$res_id[0]['data3']);
  798. // $unique_number=$Data['device_code'].$port.$Source_code;
  799. // print_r($unique_number);
  800. // $redis->set("$unique_number",1);
  801. // $redis->close();
  802. // }
  803. }else if($dwtype == 6){
  804. $res_id = M()->query("select * from sp_rtu2017 where id=" . $Data['id']);
  805. //redis储存处理的设备
  806. $redis = new \Redis();
  807. $result = $redis->connect('47.98.201.73', 6379);
  808. $redis->auth("usky2021");
  809. if ($result==1){
  810. $port=$Data['port'];
  811. $Source_code=$Data['ncmd'];
  812. $unique_number=$Data['device_code'].$port.$Source_code.$Data['cs2'].' '.$Data['cs1'];
  813. // print_r($unique_number);
  814. $redis->set("$unique_number",1);
  815. $redis->close();
  816. }
  817. }else if($dwtype == 7){
  818. $res_id = M()->query("select port from sp_ef2017 where id=" . $Data['id']);
  819. //redis储存处理的设备
  820. $redis = new \Redis();
  821. $result = $redis->connect('47.98.201.73', 6379);
  822. $redis->auth("usky2021");
  823. if ($result==1){
  824. $port=$res_id[0]['port'];
  825. $unique_number=$Data['device_code'].$port;
  826. $redis->set("$unique_number",1);
  827. $redis->close();
  828. }
  829. }else{
  830. //redis储存处理的设备
  831. $redis = new \Redis();
  832. $result = $redis->connect('127.0.0.1', 6379);
  833. $redis->auth("usky2021");
  834. if ($result==1){
  835. $unique_number=$Data['device_code'];
  836. $redis->set("$unique_number",1);
  837. $redis->close();
  838. }
  839. }
  840. }
  841. $map['device_code'] = $Data['device_code'];
  842. $map['clzt'] = 0;
  843. $res_sel = $Tabs->where($map)->count('id');
  844. if ($res_sel == 0) {
  845. $data = array("devicestatus" => 0);
  846. $str_where = "deviceid='" . $Data['device_code'] . "'";
  847. $str_sql_upd = M('devices_status')->where($str_where)->save($data);
  848. $arr = array('status' => 'y');
  849. } else {
  850. $arr = array('status' => 'n');
  851. }
  852. $resurl = 'https://' . $_SERVER['SERVER_NAME'] . $Data['url'];
  853. // print_r($resurl);
  854. // exit();
  855. $html = <<<HTML
  856. <!doctype html>
  857. <html lang="en">
  858. <head>
  859. <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  860. <meta charset="utf-8">
  861. <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport">
  862. <meta content="yes" name="apple-mobile-web-app-capable">
  863. <meta content="black" name="apple-mobile-web-app-status-bar-style">
  864. <meta content="telephone=no" name="format-detection">
  865. <meta http-equiv="refresh" content="2;url=$resurl" />
  866. <title>保存成功</title>
  867. </head>
  868. <body>
  869. 保存成功,正在跳转。。。
  870. </body>
  871. </html>
  872. HTML;
  873. echo $html;
  874. //echo json_encode($arr) ;
  875. }
  876. public function date_array_turn_json($insert_id,$device,$createdTime,$ajDescribe,$ajFlag,$enclosure,$image){
  877. if (!empty($device)){
  878. $arr = [
  879. "id" => $insert_id,
  880. "deviceCode"=>$device['mh_device_code'],
  881. "createTime" =>date("Y-m-d H:i:s",$createdTime) ,
  882. "ajType"=>$device['aj_type'],
  883. "street"=>$device['street'],
  884. "address"=>$device['company_address'].','.$device['device_address'],
  885. "grid"=>$device['grid'],
  886. "ajDescribe"=>$ajDescribe,
  887. "dutyGroup"=>$device['company_name'],
  888. "ajFlag"=>$ajFlag,
  889. "endTime"=>date("Y-m-d H:i:s",$createdTime+86400),
  890. "enclosure"=>$enclosure,
  891. "image"=>$image
  892. ];
  893. $json_data=json_encode($arr);
  894. }else{
  895. $json_data=null;
  896. }
  897. return $json_data;
  898. }
  899. public function message_push_mh($topic,$msg,$qos){
  900. // vendor('phpMQTT.phpMQTT');
  901. $server = '47.98.201.73'; // 服务器IP
  902. $port = 1883; // 服务器端口
  903. $username = 'usky'; // 用户名
  904. $password = 'usky'; // 密码
  905. $client_id = 'pub_' . uniqid();
  906. $mqtt = new \phpMQTT($server, $port, $client_id);
  907. if ($mqtt->connect(true, NULL, $username, $password)) {
  908. $mqtt->publish($topic, $msg, $qos);
  909. usleep(100000);
  910. $mqtt->close();
  911. // Log::record('MH—4G-MQTT-Push success!('.$topic.')['.date('Y-m-d H:i:s').']:'.json_encode($msg));
  912. } else {
  913. // Log::record('MH—4G-MQTT-Time out!('.$topic.')['.date('Y-m-d H:i:s').']:'.json_encode($msg));
  914. }
  915. }
  916. }