PageRenderTime 45ms CodeModel.GetById 17ms RepoModel.GetById 0ms app.codeStats 1ms

/Codigo/rceldas/procesos_rceldas/reporte_genera_reporte.php

https://bitbucket.org/redesvas/rceldas
PHP | 357 lines | 241 code | 78 blank | 38 comment | 17 complexity | b34c5508adcfb890d5aba0b8bfa71622 MD5 | raw file
  1. <?php
  2. date_default_timezone_set('America/Santiago');
  3. ini_set("display_errors", 1);
  4. include_once("config.php");
  5. ### NOS CONECTAMOS AL SERVER
  6. $_link = mysql_connect($_server, $_user, $_pass);
  7. mysql_select_db($_db);
  8. #############################################################################################
  9. ### NOS CONECTAMOS AL SERVER
  10. $_link = mysql_connect($_server, $_user, $_pass);
  11. mysql_select_db($_db);
  12. ### VALIDACION BBDD LOCAL
  13. if( is_resource($_link) ){
  14. // echo "\nConexion a BBDD local OK \n";
  15. $date=date("Y-m-d H:i:s");
  16. echo "[$date] CONECTIVIDAD LOCAL OK\n";
  17. }
  18. else{
  19. $date=date("Y-m-d H:i:s");
  20. echo "[$date] CONECTIVIDAD LOCAL NOK\n";
  21. #### SE EJECUTA UN CORREO DE ALERTA - DETALLES EN ARCHIVO config.php
  22. infoMail_urgente(1,"","HUDSON");
  23. die;
  24. }
  25. #############################################################################################
  26. ### DEFINICION DE VARIABLES
  27. $ayer=date("Y-m-d" , strtotime("-1 day"));
  28. $fecha_inicio="$ayer 00:00:00";
  29. $fecha_termino="$ayer 23:59:59";
  30. $fecha_exec=date("Y-m-d H:i:s");
  31. $tbl_celdas="CELDAS_CHILE_2G_3G_LTE";
  32. $log_file="genera_reporte";
  33. #############################################################################################
  34. $date=date("Y-m-d H:i:s");
  35. echo "[$date][INICIO] [".basename($_SERVER['PHP_SELF'])."] \n";
  36. #############################################################################################
  37. $sql="SELECT * FROM ".$_db.".PROCESOS_STATUS WHERE PROCESO='GENERA_REPORTE' ";
  38. $res = mysql_query($sql, $_link);
  39. if( $res ){
  40. $_row = mysql_fetch_array($res);
  41. $updated=date("Y-m-d", strtotime($_row[4]));
  42. if( $_row[2] == "RUNNING" ){
  43. $date=date("Y-m-d H:i:s");
  44. echo "[$date] EL PROCESO SE ENCUENTRA EN EJECUCION \n";
  45. die;
  46. }
  47. elseif( $_row[2] == "IDLE" && $_row[3] == "OK" && $updated == date("Y-m-d") ){
  48. $sql="SELECT * FROM ".$_db.".PROCESOS_STATUS_DETALLE WHERE ID_PROCESO = 6 ";
  49. $result = mysql_query($sql, $_link);
  50. if( $result ){
  51. $rw=mysql_fetch_array($result);
  52. if( $rw[3] > 0 && $rw[4] == "OK" ){
  53. $date=date("Y-m-d H:i:s");
  54. echo "[$date] EL PROCESO SE ENCUENTRA OK... \n";
  55. die;
  56. }
  57. else{
  58. $sql_st="UPDATE ".$_db.".PROCESOS_STATUS SET STATUS = 'RUNNING' , OBS='' WHERE PROCESO='GENERA_REPORTE' ";
  59. mysql_query($sql_st, $_link);
  60. }
  61. }
  62. }
  63. else{
  64. $sql_st="UPDATE ".$_db.".PROCESOS_STATUS SET STATUS = 'RUNNING' , OBS='' WHERE PROCESO='GENERA_REPORTE' ";
  65. mysql_query($sql_st, $_link);
  66. }
  67. @mysql_free_result($result);
  68. }
  69. else{
  70. $sql_st="UPDATE ".$_db.".PROCESOS_STATUS SET STATUS = 'RUNNING' , OBS='' WHERE PROCESO='GENERA_REPORTE' ";
  71. mysql_query($sql_st, $_link);
  72. }
  73. #############################################################################################
  74. $fecha_rep=date("Ymd", strtotime($ayer));
  75. ### FECHA LIMPIA
  76. $fec_ini=date("Ymd",strtotime($fecha_inicio));
  77. $date=date("Y-m-d H:i:s");
  78. echo "[$date][REPORTE] GENERACION DE VARIABLES...OK \n";
  79. #############################################################################################
  80. $encabezado="CELDA|BSC|FECHA|SITIO|NOMBRE|ESTADO_SITIO|DIRECCION|COMUNA|REGION|TIPO_CELDA|ESTADO_CELDA|GEO_REGION|GEO_COMUNA|LAC|SITIO_COD|CELL_ID";
  81. $ruta_reporte=exec("pwd")."/reporte/";
  82. $archivo="CELDAS_CHILE_2G_3G_LTE_".$fecha_rep;
  83. #### CREAMOS EL ARCHIVO FINAL
  84. $file=fopen($ruta_reporte.$archivo.".txt","a");
  85. $date=date("Y-m-d H:i:s");
  86. echo "[$date][REPORTE] CREAMOS EL ARCHIVO... \n";
  87. if( file_exists($ruta_reporte.$archivo.".txt") ){
  88. #### AGREGAMOS EL ENCABEZADO
  89. fwrite($file,$encabezado."\r\n");
  90. }
  91. else{
  92. mylog($log_file, "ERROR AL CREAR ARCHIVO DEL REPORTE [".$archivo."] ");
  93. $date=date("Y-m-d H:i:s");
  94. echo "[$date] ERROR AL CREAR ARCHIVO DEL REPORTE [".$archivo."] \n ";
  95. die;
  96. }
  97. $date=date("Y-m-d H:i:s");
  98. echo "[$date][REPORTE] ARCHIVO CREADO...OK --> [RUTA : ".$ruta_reporte.$archivo.".txt ] \n";
  99. #### CELDAS DE PRUEBA
  100. $celdas_test=" AND CELDA NOT IN (SELECT CELDA FROM TBL_CELDAS_TEST) ";
  101. #############################################################################################
  102. // @mysql_query("TRUNCATE TABLE ".$_db.".TBL_".$tbl_celdas."_FINAL",$_link);
  103. ### LLENAMOS LA TABLA FINAL CON DATA LIMPIA, ENRIQUECIDA Y LISTA PARA GENERAR REPORTE
  104. $sql="INSERT INTO ".$_db.".TBL_".$tbl_celdas." (`CELDA`, `BSC`, `FECHA`, `SITIO`, `NOMBRE`, `ESTADO_SITIO`, `DIRECCION`, `COMUNA`, `REGION`, `TIPO_CELDA`, `ESTADO_CELDA`, `GEO_REGION`, `GEO_COMUNA`, `LAC`, `SITIO_COD`, `CELL_ID`)
  105. SELECT DISTINCT `CELDA`, `BSC`, `FECHA`, `SITIO`, `NOMBRE`, `ESTADO_SITIO`, `DIRECCION`, `COMUNA`, `REGION`, `TIPO_CELDA`, `ESTADO_CELDA`, `GEO_REGION`, `GEO_COMUNA`, `LAC`, `SITIO_COD`, `CELL_ID`
  106. FROM TMP_".$tbl_celdas." WHERE FECHA='".$fecha_rep."' ";
  107. // echo "sql: ".$sql."\n";
  108. // $pto=fgets(STDIN,256);
  109. $result=mysql_query($sql,$_link) or mylog($log_file, "ERROR EN INSERT [TBL_".$tbl_celdas."] | [".$sql."] | [".mysql_error($_link)."] ");
  110. $affected=mysql_affected_rows();
  111. $date=date("Y-m-d H:i:s");
  112. echo "[$date][REPORTE] TRAEMOS LA DATA ENRIQUECIDA - [".$affected." REGISTROS] - OK \n";
  113. $sql_final="SELECT DISTINCT CELDA,BSC,FECHA,SITIO,NOMBRE,ESTADO_SITIO,DIRECCION,COMUNA,REGION,TIPO_CELDA,ESTADO_CELDA,GEO_REGION,GEO_COMUNA,
  114. IF(SUBSTRING(TIPO_CELDA,1,3)='LTE','0',LAC) LAC , SITIO_COD,
  115. CASE
  116. WHEN CELDA IN ('URM919A') THEN '59191'
  117. WHEN CELDA IN ('URM919B') THEN '59192'
  118. WHEN CELDA IN ('URM919C') THEN '59193'
  119. WHEN CELDA IN ('URM919G') THEN '59194'
  120. WHEN CELDA IN ('URM919H') THEN '59195'
  121. WHEN CELDA IN ('URM919I') THEN '59196'
  122. WHEN CELDA IN ('URM919M') THEN '59197'
  123. WHEN CELDA IN ('URM919N') THEN '59198'
  124. WHEN CELDA IN ('URM919O') THEN '59199'
  125. WHEN CELDA IN ('URM919S') THEN '41217'
  126. WHEN CELDA IN ('URM919T') THEN '41218'
  127. WHEN CELDA IN ('URM919U') THEN '41219'
  128. WHEN CELDA IN ('URM917A') THEN '59171'
  129. WHEN CELDA IN ('URM917B') THEN '59172'
  130. WHEN CELDA IN ('URM917C') THEN '59173'
  131. WHEN CELDA IN ('URM917G') THEN '59174'
  132. WHEN CELDA IN ('URM917H') THEN '59175'
  133. WHEN CELDA IN ('URM917I') THEN '59176'
  134. WHEN CELDA IN ('URM917M') THEN '59177'
  135. WHEN CELDA IN ('URM917N') THEN '59178'
  136. WHEN CELDA IN ('URM917O') THEN '59179'
  137. WHEN CELDA IN ('URM917S') THEN '37527'
  138. WHEN CELDA IN ('URM917T') THEN '37528'
  139. WHEN CELDA IN ('URM917U') THEN '37529'
  140. WHEN CELDA IN ('FRM917A') THEN '59171'
  141. WHEN CELDA IN ('FRM917B') THEN '59172'
  142. WHEN CELDA IN ('FRM917C') THEN '59173'
  143. WHEN CELDA IN ('FRM919A') THEN '59191'
  144. WHEN CELDA IN ('FRM919B') THEN '59192'
  145. WHEN CELDA IN ('FRM919C') THEN '59193'
  146. WHEN CELDA IN ('TRM917A') THEN '06891'
  147. WHEN CELDA IN ('TRM917B') THEN '06892'
  148. WHEN CELDA IN ('TRM917G') THEN '06894'
  149. WHEN CELDA IN ('TRM917H') THEN '06895'
  150. ELSE IF(TIPO_CELDA <> '2G ERICSSON', (SUBSTR(CELDA,2,5)),CELDA ) END AS CELL_ID , CELL_ID CI
  151. FROM ".$_db.".TBL_".$tbl_celdas."
  152. WHERE FECHA = '".$fec_ini."' AND ESTADO_SITIO!='ELIMINADO' ".$celdas_test."
  153. UNION
  154. SELECT DISTINCT CELDA,BSC,FECHA,SITIO,NOMBRE,ESTADO_SITIO,DIRECCION,COMUNA,REGION,TIPO_CELDA,ESTADO_CELDA,GEO_REGION,GEO_COMUNA,
  155. IF(SUBSTRING(TIPO_CELDA,1,3)='LTE','0',LAC) LAC , SITIO_COD,
  156. CASE
  157. WHEN CELDA IN ('URM919A') THEN '59191'
  158. WHEN CELDA IN ('URM919B') THEN '59192'
  159. WHEN CELDA IN ('URM919C') THEN '59193'
  160. WHEN CELDA IN ('URM919G') THEN '59194'
  161. WHEN CELDA IN ('URM919H') THEN '59195'
  162. WHEN CELDA IN ('URM919I') THEN '59196'
  163. WHEN CELDA IN ('URM919M') THEN '59197'
  164. WHEN CELDA IN ('URM919N') THEN '59198'
  165. WHEN CELDA IN ('URM919O') THEN '59199'
  166. WHEN CELDA IN ('URM919S') THEN '41217'
  167. WHEN CELDA IN ('URM919T') THEN '41218'
  168. WHEN CELDA IN ('URM919U') THEN '41219'
  169. WHEN CELDA IN ('URM917A') THEN '59171'
  170. WHEN CELDA IN ('URM917B') THEN '59172'
  171. WHEN CELDA IN ('URM917C') THEN '59173'
  172. WHEN CELDA IN ('URM917G') THEN '59174'
  173. WHEN CELDA IN ('URM917H') THEN '59175'
  174. WHEN CELDA IN ('URM917I') THEN '59176'
  175. WHEN CELDA IN ('URM917M') THEN '59177'
  176. WHEN CELDA IN ('URM917N') THEN '59178'
  177. WHEN CELDA IN ('URM917O') THEN '59179'
  178. WHEN CELDA IN ('URM917S') THEN '37527'
  179. WHEN CELDA IN ('URM917T') THEN '37528'
  180. WHEN CELDA IN ('URM917U') THEN '37529'
  181. WHEN CELDA IN ('FRM917A') THEN '59171'
  182. WHEN CELDA IN ('FRM917B') THEN '59172'
  183. WHEN CELDA IN ('FRM917C') THEN '59173'
  184. WHEN CELDA IN ('FRM919A') THEN '59191'
  185. WHEN CELDA IN ('FRM919B') THEN '59192'
  186. WHEN CELDA IN ('FRM919C') THEN '59193'
  187. WHEN CELDA IN ('TRM917A') THEN '06891'
  188. WHEN CELDA IN ('TRM917B') THEN '06892'
  189. WHEN CELDA IN ('TRM917G') THEN '06894'
  190. WHEN CELDA IN ('TRM917H') THEN '06895'
  191. ELSE IF(TIPO_CELDA <> '2G ERICSSON', (SUBSTR(CELDA,2,5)),CELDA ) END AS CELL_ID , CELL_ID CI
  192. FROM ".$_db.".TBL_".$tbl_celdas."
  193. WHERE FECHA = '".$fec_ini."' AND ESTADO_SITIO IS NULL ".$celdas_test."
  194. ORDER BY ESTADO_SITIO DESC ";
  195. $date=date("Y-m-d H:i:s");
  196. echo "[$date][REPORTE] COMIENZA FILTRADO DE DATA PARA EL REPORTE... \n";
  197. // echo "sql: ".$sql_final."\n"; $pto=fgets(STDIN,256);
  198. if( $res=mysql_query($sql_final,$_link) ){
  199. $q_registros=mysql_num_rows($res);
  200. $fila="";
  201. while( $row = mysql_fetch_array($res) ){
  202. $tipo_tec=substr($row[9],0,2); // TECNOLOGIA
  203. $celda=$row[0];
  204. $sitio=$row[3];
  205. $ci=$row[16]; // CELL ID
  206. switch($tipo_tec){
  207. case "2G":{
  208. $lac=$row[13];
  209. $cellId=$row[15];
  210. // $sql_insert=$insert."VALUES ('".$row[0]."','".$row[1]."','".$row[2]."','".$row[3]."','".$row[4]."','".$row[5]."','".$row[6]."','".$row[7]."','".$row[8]."','".$row[9]."','".$row[10]."','".$row[11]."','".$row[12]."','".$lac."','".$row[14]."','".$cellId."' ) ";
  211. $fila = $row[0]."|".$row[1]."|".$row[2]."|".$row[3]."|".$row[4]."|".$row[5]."|".$row[6]."|".$row[7]."|".$row[8]."|".$row[9]."|".$row[10]."|".$row[11]."|".$row[12]."|".$lac."|".$row[14]."|".$cellId."\r\n";
  212. break;
  213. }
  214. case "3G":{
  215. $lac=$row[13];
  216. $cellId=$row[15];
  217. // $sql_insert=$insert."VALUES ('".$row[0]."','".$row[1]."','".$row[2]."','".$row[3]."','".$row[4]."','".$row[5]."','".$row[6]."','".$row[7]."','".$row[8]."','".$row[9]."','".$row[10]."','".$row[11]."','".$row[12]."','".$lac."','".$row[14]."','".$cellId."' ) ";
  218. $fila = $row[0]."|".$row[1]."|".$row[2]."|".$row[3]."|".$row[4]."|".$row[5]."|".$row[6]."|".$row[7]."|".$row[8]."|".$row[9]."|".$row[10]."|".$row[11]."|".$row[12]."|".$lac."|".$row[14]."|".$cellId."\r\n";
  219. break;
  220. }
  221. case "LT":{
  222. $lac=0;
  223. $cellId=$row[16];
  224. $fila = $row[0]."|".$row[1]."|".$row[2]."|".$row[3]."|".$row[4]."|".$row[5]."|".$row[6]."|".$row[7]."|".$row[8]."|".$row[9]."|".$row[10]."|".$row[11]."|".$row[12]."|".$lac."|".$row[14]."|".$cellId."\r\n";
  225. break;
  226. }
  227. }
  228. // $fila .= $row[0]."|".$row[1]."|".$row[2]."|".$row[3]."|".$row[4]."|".$row[5]."|".$row[6]."|".$row[7]."|".$row[8]."|".$row[9]."|".$row[10]."|".$row[11]."|".$row[12]."|".$lac."|".$row[14]."|".$cellId."\r\n";
  229. #### SE AGREGA DATA AL ARCHIVO FINAL
  230. fwrite($file,$fila);
  231. }// FIN WHILE
  232. $date=date("Y-m-d H:i:s");
  233. echo "[$date][REPORTE] FILTRADO Y LLENADO DEL REPORTE...OK \n";
  234. }
  235. else{
  236. mylog($log_file, "ERROR EN QUERY DE EXTRACCION [".$sql_final."] | [".mysql_error($_link)."] ");
  237. $date=date("Y-m-d H:i:s");
  238. echo "[$date][ALERTA] No se pudo ejecutar la query correctamente - ERROR : ".mysql_error()."\n";
  239. die;
  240. }
  241. #### CERRAMOS EL ARCHIVO
  242. fclose($file);
  243. #### FINALIZA LA GENERACION DEL REPORTE
  244. #############################################################################################
  245. #### SE COMPRIME EL ARCHIVO
  246. exec("gzip -9 ".$ruta_reporte.$archivo.".txt ");
  247. ### SE OBTIENE ARCHIVO FINAL, COMPRIMIDO
  248. $archivo_final=exec("ls ".$ruta_reporte.$archivo."* ");
  249. $date=date("Y-m-d H:i:s");
  250. echo "[$date][REPORTE] ARCHIVO [".$archivo.".txt] SE COMPRIME, QUEDANDO [".$archivo_final."] - OK \n";
  251. #### ENVIAMOS LOS ARCHIVOS A LOS FTPs DE DESTINO
  252. for($o=1;$o<3;$o++){
  253. $cmd="sh bin/enviaReporte.sh ".$o." ".$archivo_final." > log/enviaReporte.log ";
  254. // echo "cmd: ".$cmd."\n";
  255. exec($cmd);
  256. }
  257. $date=date("Y-m-d H:i:s");
  258. echo "[$date][ARCHIVO FINAL] --> [".$archivo_final."]\n";
  259. // $pto=fgets(STDIN,256);
  260. #############################################################################################
  261. if( file_exists($archivo_final) ){
  262. $sql_st="UPDATE ".$_db.".PROCESOS_STATUS SET STATUS = 'IDLE' , OBS='OK' WHERE PROCESO='GENERA_REPORTE' ";
  263. $sql_st2="UPDATE ".$_db.".PROCESOS_STATUS_DETALLE SET STATUS = 'OK' , Q_REGISTROS_TOTALES=".$q_registros." WHERE TABLA='REPORTE_GENERADO' ";
  264. #### AL GENERARSE EL REPORTE EXITOSAMENTE, SE CREA UN FLAG
  265. exec("touch celdas.lck");
  266. }
  267. else{
  268. mylog($log_file, "ARCHIVO NO ENCONTRADO [ PHP file_exists --> ".$archivo_final." ] ");
  269. $sql_st="UPDATE ".$_db.".PROCESOS_STATUS SET STATUS = 'IDLE' , OBS='NOK' WHERE PROCESO='GENERA_REPORTE' ";
  270. $sql_st2="UPDATE ".$_db.".PROCESOS_STATUS_DETALLE SET STATUS = 'NOK' , Q_REGISTROS_TOTALES=".$q_registros." WHERE TABLA='REPORTE_GENERADO' ";
  271. }
  272. // $pto=fgets(STDIN,256);
  273. @mysql_query($sql_st, $_link);
  274. @mysql_query($sql_st2, $_link);
  275. #############################################################################################
  276. $date=date("Y-m-d H:i:s");
  277. echo "[$date][FIN] \n\n";
  278. @mysql_close($_link);
  279. ?>