get_abnormal.php 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. <?php
  2. include("./connect_sql.php");
  3. $json = file_get_contents('../../r03/equipment_list.json');
  4. $equipment_list = json_decode($json, true);
  5. $type = "";
  6. $normal_count = 0;
  7. $abnormal_count = 0;
  8. $ajax = [];
  9. $wellTBA = [];
  10. if (isset($_GET["type"])) {
  11. $type = $_GET["type"];
  12. }
  13. switch ($type) {
  14. case "SIS":
  15. case "SID":
  16. $sql = "SELECT [EquipmentID] FROM [BIMMonitor].[dbo].[{$type}_Data]
  17. WHERE [WarningValue] <> 'NULL' AND [{$type}_Data].[Date] = (SELECT TOP 1 [{$type}_Data].[Date] FROM [{$type}_Data] GROUP BY [Date] ORDER BY [Date] desc)
  18. AND (try_convert(float,[TotalDisplacement]) > try_convert(float,(SELECT TOP 1 RIGHT([WarningValue], len([WarningValue])-1) FROM [{$type}_Data] WHERE [WarningValue] <> 'NULL'))
  19. OR try_convert(float,[TotalDisplacement]) < -try_convert(float,(SELECT TOP 1 RIGHT([WarningValue], len([WarningValue])-1) FROM [{$type}_Data] WHERE [WarningValue] <> 'NULL')))
  20. GROUP BY [EquipmentID]";
  21. break;
  22. case "TI":
  23. $sql = "SELECT [EquipmentID]
  24. FROM [BIMMonitor].[dbo].[TI_Data]
  25. WHERE [TI_Data].[Date] = (SELECT TOP 1 [TI_Data].[Date] FROM [TI_Data] GROUP BY [Date] ORDER BY [Date] desc)
  26. AND [TotalTilt] <> null
  27. AND (try_convert(float,[TotalTilt]) > 264 OR try_convert(float,[TotalTilt]) < -264 ) GROUP BY [EquipmentID]";
  28. break;
  29. case "SB":
  30. $sql = "SELECT [SB_Data].[EquipmentID]
  31. FROM [SB_Data] JOIN [SB_Warning] ON [SB_Data].[EquipmentID] = [SB_Warning].[EquipmentID]
  32. WHERE [SB_Data].[Date] = (SELECT TOP 1 [SB_Data].[Date] FROM [SB_Data] GROUP BY [Date] ORDER BY [Date] desc)
  33. AND (try_convert(float,[TotalSettlement]) > try_convert(float,(SELECT TOP 1 RIGHT([WarningValue], len([WarningValue])-1) FROM [SB_Warning]))
  34. OR try_convert(float,[TotalSettlement]) < -try_convert(float,(SELECT TOP 1 RIGHT([WarningValue], len([WarningValue])-1) FROM [SB_Warning])))";
  35. break;
  36. case "SM":
  37. $sql = "SELECT [EquipmentID] FROM [SM_Data]
  38. WHERE [SM_Data].[Date] = (SELECT TOP 1 [SM_Data].[Date] FROM [SM_Data] GROUP BY [Date] ORDER BY [Date] desc)
  39. AND (try_convert(float,[TotalSettlement]) > 30 OR try_convert(float,[TotalSettlement]) < -30 ) GROUP BY [EquipmentID]";
  40. break;
  41. case "SP":
  42. $sql = "SELECT [EquipmentID] FROM [SP_Data]
  43. WHERE [SP_Data].[Date] = (SELECT TOP 1 [SP_Data].[Date] FROM [SP_Data] GROUP BY [Date] ORDER BY [Date] desc)
  44. AND (try_convert(float,[WaterPressure]) > (SELECT TOP 1 [HighWarningValue] FROM [SP_Warning]) OR try_convert(float,[WaterPressure]) < (SELECT TOP 1 [LowWarningValue] FROM [SP_Warning]) )
  45. AND [WaterPressure] NOT like '%--%' GROUP BY [EquipmentID];";
  46. break;
  47. }
  48. $fetchResult = sqlsrv_query($conn, $sql);
  49. while ($row = sqlsrv_fetch_array($fetchResult, SQLSRV_FETCH_NUMERIC)) {
  50. if (in_array($row[0], $equipment_list[$type])) {
  51. array_push($wellTBA, $row);
  52. $abnormal_count++;
  53. }
  54. }
  55. $all_count = 0;
  56. /*$sql = "SELECT [EquipmentID] FROM [BIMMonitor].[dbo].[{$type}_Data] GROUP BY [EquipmentID];";
  57. $fetchResult = sqlsrv_query($conn, $sql);
  58. while ($row = sqlsrv_fetch_array($fetchResult, SQLSRV_FETCH_NUMERIC)) {
  59. $all_count++;
  60. }*/
  61. $all_count = count($equipment_list[$type]);
  62. $normal_count = $all_count - $abnormal_count;
  63. if ($fetchResult === false) {
  64. if (($errors = sqlsrv_errors()) != null) {
  65. foreach ($errors as $error) {
  66. echo "SQLSTATE: " . $error['SQLSTATE'] . "<br />";
  67. echo "code: " . $error['code'] . "<br />";
  68. echo "message: " . $error['message'] . "<br />";
  69. echo ($sql . "<br />");
  70. var_dump($row);
  71. }
  72. }
  73. }
  74. $ajax['wellTBA'] = $wellTBA;
  75. $ajax['normal_count'] = $normal_count;
  76. $ajax['abnormal_count'] = $abnormal_count;
  77. echo json_encode($ajax);