XVoiceAlarmController.class.php 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: Administrator
  5. * Date: 2019/4/30 0030
  6. * Time: 上午 9:53
  7. */
  8. namespace Home\Controller;
  9. use Think\Controller;
  10. include '../Common/function.php';
  11. include ('/php/aliyun-dyvms-php-sdk/api_demo/singleCallByTts1.php');
  12. //include ('/php/api_sdk/singleCallByTts1.php');
  13. class XVoiceAlarmController extends Controller
  14. {
  15. public function voice()
  16. {
  17. $Data = I('post.');
  18. $dataid = $Data['IMEI'];
  19. $time = $Data['time'];
  20. $evt = $Data['evt'];
  21. $evt_name = $Data['evt_name'];
  22. $dwtype = $Data['dwtype'];
  23. $company = M()->query("select company,dwtype from sp_owner where owner_code=" . $dataid);
  24. if (empty($company)) {
  25. exit();
  26. }
  27. if (empty($dwtype)) {
  28. $dwtype = $company[0]['dwtype'];
  29. }
  30. switch ($dwtype) {
  31. case "1";//判断报警类型
  32. $type_name = '火警';
  33. if(empty($evt)){
  34. $status = $evt_name;
  35. }else{
  36. switch ($evt) {
  37. case '44'://判断是否设置离线语音报警
  38. $status = '离线';
  39. break;
  40. case 'H02P1':
  41. $status = '火警';
  42. break;
  43. case 'H02P2':
  44. $status = '故障';
  45. break;
  46. // case 'H02P3':
  47. // $status='屏蔽';
  48. // break;
  49. // case 'H02P4':
  50. // $status='监管';
  51. // break;
  52. // case 'H02P5':
  53. // $status='启动';
  54. // break;
  55. // case 'H02P6':
  56. // $status='反馈';
  57. // break;
  58. // case 'H02P7':
  59. // $status='延时';
  60. // break;
  61. case 'H02P8':
  62. $status = '电源故障';
  63. break;
  64. // case 'U24P0':
  65. // $status='复位';
  66. // break;
  67. // case 'U24P1':
  68. // $status='消音';
  69. // break;
  70. case 'U24P2':
  71. $status = '手动报警';
  72. break;
  73. // case 'U24P3':
  74. // $status='警情消除';
  75. // break;
  76. // case 'U24P4':
  77. // $status='自检';
  78. // break;
  79. // case 'U24P5':
  80. // $status='查岗应答';
  81. // break;
  82. // case 'U21P0':
  83. // $status='正常';
  84. // break;
  85. case 'U21P1':
  86. $status = '火警';
  87. break;
  88. case 'U21P2':
  89. $status = '故障';
  90. break;
  91. case 'U21P3':
  92. $status = '主电故障';
  93. break;
  94. case 'U21P4':
  95. $status = '备电故障';
  96. break;
  97. // case 'U21P5':
  98. // $status='监控';
  99. // break;
  100. // case 'U21P6':
  101. // $status='接线';
  102. // break;
  103. default:
  104. $status='其他';
  105. // $status=$evt_name;
  106. break;
  107. }
  108. }
  109. break;
  110. case "2";// 判断报警类型
  111. $type_name = '消防水';
  112. switch ($Data['evt']) {
  113. case 'WP1':
  114. $status = '低压';
  115. break;
  116. case 'WP2':
  117. $status = '高压';
  118. break;
  119. case 'WP4':
  120. $status = '离线';
  121. break;
  122. // default:
  123. // $status='其他'.$Data['evt'];
  124. // break;
  125. }
  126. break;
  127. case "3";// 判断报警类型
  128. $type_name = '烟感';
  129. switch ($Data['evt']) {
  130. case 'y01':
  131. $status = '报警';
  132. break;
  133. // case 'yo2':
  134. // $status='报警静音';
  135. // break;
  136. case 'y04':
  137. $status = '低压';
  138. break;
  139. case 'y05':
  140. $status = '故障';
  141. break;
  142. // default:
  143. // $status='其他'.$Data['evt'];
  144. // break;
  145. }
  146. break;
  147. case "5";//判断报警类型
  148. $type_name = '液位';
  149. switch ($Data['evt']) {
  150. case 'LL0':
  151. $status = '正常';
  152. break;
  153. case 'LL1':
  154. $status = '低水位';
  155. break;
  156. case 'LL2':
  157. $status = '高水位';
  158. break;
  159. case 'LL3':
  160. $status = '故障';
  161. break;
  162. case 'LL4':
  163. $status = '离线';
  164. break;
  165. // default:
  166. // $status='其他'.$Data['Status'];
  167. // break;
  168. }
  169. break;
  170. case "6";
  171. $type_name = 'RTU';
  172. $status = $evt_name;
  173. break;
  174. case "7";
  175. $type_name = '电气火灾';
  176. switch ($Data['evt']) {
  177. case 'EF1':
  178. $status = '欠压';
  179. break;
  180. case 'EF2':
  181. $status = '过压';
  182. break;
  183. case 'EF3':
  184. $status = '过流';
  185. break;
  186. case 'EF4':
  187. $status = '漏电';
  188. break;
  189. case 'EF5':
  190. $status = '温度1超高';
  191. break;
  192. case 'EF6':
  193. $status = '温度2超高';
  194. break;
  195. case 'EF7':
  196. $status = '温度3超高';
  197. break;
  198. case 'EF8':
  199. $status = '温度4超高';
  200. break;
  201. case 'EF9':
  202. $status = '离线';
  203. break;
  204. // default:
  205. // $status='其他'.$Data['evt'];
  206. // break;
  207. }
  208. break;
  209. }
  210. // print_r(第一);
  211. $Y = date("m", strtotime($time));
  212. $R = date("d", strtotime($time));
  213. $S = date("G", strtotime($time));
  214. $F = date("i", strtotime($time));
  215. $time1 = date("Y-m-d");
  216. $time2 = date("Y-m-d H:i:s");
  217. $time3 = $Y . '月' . $R . '日' . $S . '时' . $F . '分';
  218. $time4 = date("Y-m");
  219. $time5 = date("Y");
  220. if ($status == '离线') {
  221. $dwtype = 8;
  222. }
  223. print_r(第一);
  224. $usersql="select * from ytiot_v_usercompany where owner_code=". $company[0]['company'] ." group by username";
  225. $user = add66($usersql);
  226. foreach ($user as $key1=>$value1){
  227. $sql = "select * from ytiot_yy_pzb where e_status=1 and username='" . $user[$key1]['username'] . "' and sbtype=" . $dwtype . " and jrq>='" . $time1 . "' and zed>0";
  228. // print_r($sql);
  229. $setmeal = add66($sql);
  230. // print_r($setmeal);
  231. if (!empty($setmeal)){
  232. print_r(第二);
  233. switch ($setmeal[0]['pzlb']) {
  234. case 0;
  235. $time6 = $time1;
  236. break;
  237. case 1;
  238. $time6 = $time4;
  239. break;
  240. case 2;
  241. $time6 = $time5;
  242. break;
  243. }
  244. $sql1="select count(*) as tsl from ytiot_yy_sjjl where company_code='".$user[$key1]['username'].
  245. "' and sbtype=".$dwtype." and sfyy=1 and bjsj like '".$time6."%'";
  246. $varsl=add($sql1);
  247. if($setmeal[0]['lbsl']>$varsl[0]['tsl']){
  248. print_r(第三);
  249. if (!empty($setmeal[0]['bjhm'])){
  250. print_r(第四);
  251. $json=singleCallByTts($setmeal[0]['bjhm'],$type_name,$status,$time3);
  252. if($json=='OK'){
  253. print_r(第五);
  254. $sql3="select * from ytiot_yy_pzb where id=".$setmeal[0]['id'];
  255. $res2=add66($sql3);
  256. $zed=$res2[0]['zed']-1;
  257. $sql_update="update ytiot_yy_pzb set zed = ".$zed." where id =".$setmeal[0]['id'];
  258. $res3 = addDataInfo($sql_update);
  259. if($res3){
  260. print_r(第六);
  261. print_r($status);
  262. $sql_inset="insert into ytiot_yy_sjjl (sbbh,sbtype,bjtype,bjsj,lrsj,sfyy,company_code) values ('".$dataid."',".$dwtype.",'".
  263. $status."','".$time."','".$time2."',1,'".$user[$key1]['username']."')";
  264. $res1 = addDataInfo($sql_inset);
  265. if ($res1){
  266. return 'OK';
  267. }
  268. }
  269. }
  270. }else{//多个被叫号码,暂时不用
  271. $sql2="select * from ytiot_yy_bjhm where pzbid=".$setmeal[0]['id'];
  272. $phone=add66($sql2);
  273. foreach ($phone as $key => $value){
  274. $json=singleCallByTts($phone[$key]['bjhm'],$type_name,$status,$time3);
  275. if($json=='OK'){
  276. $sql3="select * from ytiot_yy_pzb where id=".$setmeal[0]['id'];
  277. $res2=add66($sql3);
  278. $zed=$res2[0]['zed']-1;
  279. $sql_update="update ytiot_yy_pzb set zed = ".$zed." where id =".$setmeal[0]['id'];
  280. $res3 = addDataInfo($sql_update);
  281. if($res3){
  282. $sql_inset="insert into ytiot_yy_sjjl (sbbh,sbtype,bjtype,bjsj,lrsj,sfyy,company_code) values ('".$dataid."',".$dwtype.",'".
  283. $status."','".$time."','".$time2."',1,'".$user[$key1]['username']."')";
  284. $res1 = addDataInfo($sql_inset);
  285. if ($res1){
  286. return 'OK';
  287. }
  288. }
  289. }
  290. }
  291. }
  292. }
  293. }
  294. // print_r($status);
  295. $sql_inset="insert into ytiot_yy_sjjl (sbbh,sbtype,bjtype,bjsj,lrsj,sfyy,company_code) values ('".$dataid."',".$dwtype.",'".$status."','".$time."','".$time2."',0,'".$user[$key1]['username']."')";
  296. $inset=addDataInfo($sql_inset);
  297. if($inset){
  298. return 'OK';
  299. }
  300. }
  301. }
  302. }