VoiceAlarmController.class.php 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347
  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 VoiceAlarmController extends Controller
  14. {
  15. public function voice(){
  16. $Data=I('post.');
  17. $dataid = $Data['IMEI'];
  18. $time = $Data['time'];
  19. // $evt = $Data['evt'];
  20. $company=M()->query("select company,dwtype,owner_name from sp_owner where owner_code=".$dataid);
  21. if(empty($company)){
  22. exit();
  23. }
  24. $time6=date("Y-m-d")." 00:00:00";
  25. $sql="select * from ytiot_tc_alarm_packages_zb a JOIN ytiot_tc_alarm_packages b ON a.UQ_SETMREAL_ID=b.UQ_SETMREAL_ID where UQ_COMPANY_ID=".
  26. $company[0]['company']." and UQ_CATEGORY=".$company[0]['dwtype']." and E_STATUS='1' and D_END_STORETIME>='".$time6."'";
  27. echo $sql;
  28. $setmeal=add66($sql);
  29. if(empty($setmeal)){
  30. exit();
  31. }
  32. $sql_lx_content="select count(*) from ytiot_tc_alarm_packages_zb a JOIN ytiot_tc_alarm_packages b ON a.UQ_SETMREAL_ID=b.UQ_SETMREAL_ID where b.UQ_COMPANY_ID=".
  33. $company[0]['company']." and a.UQ_CATEGORY=8 and a.E_STATUS='1' and D_END_STORETIME>='".$time6."'";
  34. print_r("离线".$sql_lx_content);
  35. $setmeal2=add($sql_lx_content);
  36. // $N=date("Y",strtotime($time));
  37. $Y=date("m",strtotime($time));
  38. $R=date("d",strtotime($time));
  39. $S=date("G",strtotime($time));
  40. $F=date("i",strtotime($time));
  41. // $M=date("s",strtotime($time));
  42. $time3=$Y.'月'.$R.'日'.$S.'时'.$F.'分';
  43. // 判断类型是什么
  44. switch ($company[0]['dwtype']){
  45. case "1";
  46. $type_name='火警';
  47. // $Data['types'];
  48. // 判断报警类型
  49. switch ($Data['evt']) {
  50. case '44':
  51. // 判断是否设置离线语音报警
  52. if ($setmeal2[0]['count(*)']>0){
  53. $status='离线';
  54. }else{
  55. exit();
  56. }
  57. break;
  58. case 'H02P1':
  59. $status='火警';
  60. break;
  61. case 'H02P2':
  62. $status='故障';
  63. break;
  64. // case 'H02P3':
  65. // $status='屏蔽';
  66. // break;
  67. // case 'H02P4':
  68. // $status='监管';
  69. // break;
  70. // case 'H02P5':
  71. // $status='启动';
  72. // break;
  73. // case 'H02P6':
  74. // $status='反馈';
  75. // break;
  76. // case 'H02P7':
  77. // $status='延时';
  78. // break;
  79. case 'H02P8':
  80. $status='电源故障';
  81. break;
  82. // case 'U24P0':
  83. // $status='复位';
  84. // break;
  85. // case 'U24P1':
  86. // $status='消音';
  87. // break;
  88. case 'U24P2':
  89. $status='手动报警';
  90. break;
  91. // case 'U24P3':
  92. // $status='警情消除';
  93. // break;
  94. // case 'U24P4':
  95. // $status='自检';
  96. // break;
  97. // case 'U24P5':
  98. // $status='查岗应答';
  99. // break;
  100. // case 'U21P0':
  101. // $status='正常';
  102. // break;
  103. case 'U21P1':
  104. $status='火警';
  105. break;
  106. case 'U21P2':
  107. $status='故障';
  108. break;
  109. case 'U21P3':
  110. $status='主电故障';
  111. break;
  112. case 'U21P4':
  113. $status='备电故障';
  114. break;
  115. // case 'U21P5':
  116. // $status='监控';
  117. // break;
  118. // case 'U21P6':
  119. // $status='接线';
  120. // break;
  121. // default:
  122. // $status='其他';
  123. // break;
  124. }
  125. break;
  126. case "2";
  127. $type_name='消防水';
  128. // 判断报警类型
  129. switch ($Data['evt']) {
  130. case 'WP1':
  131. $status='低压';
  132. break;
  133. case 'WP2':
  134. $status='高压';
  135. break;
  136. case 'WP4':
  137. // 判断是否设置离线语音报警
  138. if ($setmeal2[0]['count(*)']>0){
  139. $status='离线';
  140. }else{
  141. exit();
  142. }
  143. break;
  144. // default:
  145. // $status='其他'.$Data['evt'];
  146. // break;
  147. }
  148. break;
  149. case "3";
  150. $type_name='烟感';
  151. // 判断报警类型
  152. switch ($Data['evt']) {
  153. case 'y01':
  154. $status='报警';
  155. break;
  156. // case 'yo2':
  157. // $status='报警静音';
  158. // break;
  159. case 'y04':
  160. $status='低压';
  161. break;
  162. case 'y05':
  163. $status='故障';
  164. break;
  165. // default:
  166. // $status='其他'.$Data['evt'];
  167. // break;
  168. }
  169. break;
  170. case "4";
  171. break;
  172. case "5";
  173. $type_name='液位';
  174. // 判断报警类型
  175. switch ($Data['evt']) {
  176. case 'LL0':
  177. $status='正常';
  178. break;
  179. case 'LL1':
  180. $status='低水位';
  181. break;
  182. case 'LL2':
  183. $status='高水位';
  184. break;
  185. case 'LL3':
  186. $status='故障';
  187. break;
  188. case 'LL4':
  189. // 判断是否设置离线语音报警
  190. if ($setmeal2[0]['count(*)']>0){
  191. $status='离线';
  192. }else{
  193. exit();
  194. }
  195. break;
  196. // default:
  197. // $status='其他'.$Data['Status'];
  198. // break;
  199. }
  200. break;
  201. case "6";
  202. $type_name='RTU';
  203. // 判断是否设置离线语音报警
  204. if($Data['evt']=='离线' && $setmeal2[0]['count(*)']>0){
  205. $status='离线';
  206. }
  207. // else if ($Data['types']!='离线'){
  208. // $content=$time3.'单位'.$sql_company_name[0]['owner_name'].'设备'.$company[0]['owner_name'].'报警类型'.$Data['types'];
  209. // }else{
  210. // exit();
  211. // }
  212. break;
  213. case "7";
  214. $type_name='电气火灾';
  215. // 判断报警类型
  216. switch ($Data['evt']) {
  217. case 'EF1':
  218. $status='欠压';
  219. break;
  220. case 'EF2':
  221. $status='过压';
  222. break;
  223. case 'EF3':
  224. $status='过流';
  225. break;
  226. case 'EF4':
  227. $status='漏电';
  228. break;
  229. case 'EF5':
  230. $status='温度1超高';
  231. break;
  232. case 'EF6':
  233. $status='温度2超高';
  234. break;
  235. case 'EF7':
  236. $status='温度3超高';
  237. break;
  238. case 'EF8':
  239. $status='温度4超高';
  240. break;
  241. case 'EF9':
  242. // 判断是否设置离线语音报警:
  243. if ($setmeal2[0]['count(*)']>0){
  244. $status='离线';
  245. }else{
  246. exit();
  247. }
  248. break;
  249. // default:
  250. // $status='其他'.$Data['evt'];
  251. // break;
  252. }
  253. break;
  254. }
  255. if(!empty($setmeal)){
  256. // 判断套餐是否到期
  257. if(date()<=strtotime($setmeal[0]['D_END_STORETIME'])){
  258. // 判断套餐规格是天、月、年哪一个
  259. switch($setmeal[0]['I_CYCLE']){
  260. case "0";
  261. $time1=date("Y-m-d");
  262. $sql1="select count(*) as tsl from ytiot_tc_outgoing_alarm where UQ_COMPANY_ID='".$setmeal[0]['UQ_COMPANY_ID'].
  263. "'and UQ_CATEGORY=".$company[0]['dwtype']." and D_STORETIME like '".$time1."%'";
  264. $varsl=add($sql1);
  265. // 判断当天语音报警是否用完
  266. if($setmeal[0]['I_NUMBER_OF_BARS']>$varsl[0]['tsl']){
  267. print_r("手机号".$setmeal[0]['V_PHONE']);
  268. print_r("系统".$type_name);
  269. print_r("报警".$status);
  270. print_r("时间".$time3);
  271. $json=singleCallByTts($setmeal[0]['V_PHONE'],$type_name,$status,$time3);
  272. // $response = json_decode($json);
  273. // print_r($json);
  274. // print_r($response);
  275. // 判断是否语音报警
  276. if($json=='OK'){
  277. $time2=date("Y-m-d H:i:s");
  278. $sql2="insert into ytiot_tc_outgoing_alarm (UQ_COMPANY_ID,UQ_CATEGORY,D_STORETIME,V_CONTENT) values('".
  279. $setmeal[0]['UQ_COMPANY_ID']."',".$setmeal[0]['UQ_CATEGORY'].",'".$time2."','".报警内容."')";
  280. print_r("测试第六步".$sql2);
  281. addDataInfo($sql2);
  282. }
  283. }
  284. break;
  285. case "1";
  286. $sql1="select count(*) as ysl from ytiot_tc_outgoing_alarm where UQ_COMPANY_ID='".$setmeal[0]['UQ_COMPANY_ID'].
  287. "' and UQ_CATEGORY=".$company[0]['dwtype']." and D_STORETIME>='".$setmeal[0]['D_START_STORETIME']."' and D_STORETIME>='".$setmeal[0]['D_END_STORETIME']."'";
  288. $varsl=add($sql1);
  289. print_r($varsl);
  290. // 语音报警是否用完
  291. // print_r($setmeal[0]['I_NUMBER_OF_BARS']);
  292. if($setmeal[0]['I_NUMBER_OF_BARS']>$varsl[0]['ysl']){
  293. print_r("手机号".$setmeal[0]['V_PHONE']);
  294. print_r("系统".$type_name);
  295. print_r("报警".$status);
  296. print_r("时间".$time3);
  297. $json=singleCallByTts($setmeal[0]['V_PHONE'],$type_name,$status,$time3);
  298. // $response = json_decode($json);
  299. print_r($json);
  300. // print_r($response);
  301. // 判断是否语音报警
  302. if($json=='OK'){
  303. $time2=date("Y-m-d H:i:s");
  304. $sql2="insert into ytiot_tc_outgoing_alarm (UQ_COMPANY_ID,UQ_CATEGORY,D_STORETIME,V_CONTENT) values('".
  305. $setmeal[0]['UQ_COMPANY_ID']."',".$setmeal[0]['UQ_CATEGORY'].",'".$time2."','".报警内容."')";
  306. addDataInfo($sql2);
  307. }
  308. }
  309. break;
  310. case "2";
  311. $sql1="select count(*) as nsl from ytiot_tc_outgoing_alarm where UQ_COMPANY_ID='".$setmeal[0]['UQ_COMPANY_ID'].
  312. "' and UQ_CATEGORY=".$company[0]['dwtype']." and D_STORETIME>='".$setmeal[0]['D_START_STORETIME']."' and D_STORETIME<='".$setmeal[0]['D_END_STORETIME']."'";
  313. $varsl=add($sql1);
  314. // 判断年语音报警是否用完
  315. if($setmeal[0]['I_NUMBER_OF_BARS']>$varsl[0]['nsl']){
  316. print_r("手机号".$setmeal[0]['V_PHONE']);
  317. print_r("系统".$type_name);
  318. print_r("报警".$status);
  319. print_r("时间".$time3);
  320. $json=singleCallByTts($setmeal[0]['V_PHONE'],$type_name,$status,$time3);
  321. // $response = json_decode($json);
  322. // 判断是否语音报警
  323. if($json=='OK'){
  324. $time2=date("Y-m-d H:i:s");
  325. $sql2="insert into ytiot_tc_outgoing_alarm (UQ_COMPANY_ID,UQ_CATEGORY,D_STORETIME,V_CONTENT) values('".
  326. $setmeal[0]['UQ_COMPANY_ID']."',".$setmeal[0]['UQ_CATEGORY'].",'".$time2."','".报警内容."')";
  327. addDataInfo($sql2);
  328. }
  329. }
  330. break;
  331. }
  332. }
  333. }
  334. }
  335. }