get_abnormal.php 3.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. <?php
  2. include("./connect_sql.php");
  3. $json = file_get_contents('../../r03/display_info.json');
  4. $display_info = 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. $key = array_search($type, array_column($display_info, 'type'));
  14. switch ($type) {
  15. case "SIS":
  16. case "SID":
  17. $sql = "SELECT [EquipmentID] FROM [BIMMonitor].[dbo].[{$type}_Data]
  18. WHERE [WarningValue] <> 'NULL' AND [{$type}_Data].[Date] = (SELECT TOP 1 [{$type}_Data].[Date] FROM [{$type}_Data] GROUP BY [Date] ORDER BY [Date] desc)
  19. AND (convert(float,[TotalDisplacement]) > convert(float,(SELECT TOP 1 RIGHT([WarningValue], len([WarningValue])-1) FROM [{$type}_Data] WHERE [WarningValue] <> 'NULL'))
  20. OR convert(float,[TotalDisplacement]) < -convert(float,(SELECT TOP 1 RIGHT([WarningValue], len([WarningValue])-1) FROM [{$type}_Data] WHERE [WarningValue] <> 'NULL')))
  21. GROUP BY [EquipmentID]";
  22. break;
  23. case "TI":
  24. $sql = "SELECT [EquipmentID]
  25. FROM [BIMMonitor].[dbo].[TI_Data]
  26. WHERE [TI_Data].[Date] = (SELECT TOP 1 [TI_Data].[Date] FROM [TI_Data] GROUP BY [Date] ORDER BY [Date] desc)
  27. AND (convert(float,[TotalTilt]) > 264 OR 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 (convert(float,[TotalSettlement]) > convert(float,(SELECT TOP 1 RIGHT([WarningValue], len([WarningValue])-1) FROM [SB_Warning]))
  34. OR convert(float,[TotalSettlement]) < -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 (convert(float,[TotalSettlement]) > 30 OR 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 (convert(float,[WaterPressure]) > (SELECT TOP 1 [HighWarningValue] FROM [SP_Warning]) OR convert(float,[WaterPressure]) < (SELECT TOP 1 [LowWarningValue] FROM [SP_Warning]) )
  45. AND [WaterPressure] <> '---' GROUP BY [EquipmentID];";
  46. break;
  47. }
  48. $fetchResult = sqlsrv_query($conn, $sql);
  49. while ($row = sqlsrv_fetch_array($fetchResult, SQLSRV_FETCH_NUMERIC)) {
  50. array_push($wellTBA,$row);
  51. $abnormal_count++;
  52. }
  53. $all_count = 0;
  54. $sql = "SELECT [EquipmentID] FROM [BIMMonitor].[dbo].[{$type}_Data] GROUP BY [EquipmentID];";
  55. $fetchResult = sqlsrv_query($conn, $sql);
  56. while ($row = sqlsrv_fetch_array($fetchResult, SQLSRV_FETCH_NUMERIC)) {
  57. $all_count++;
  58. }
  59. $normal_count = $all_count - $abnormal_count;
  60. if ($fetchResult === false) {
  61. if (($errors = sqlsrv_errors()) != null) {
  62. foreach ($errors as $error) {
  63. echo "SQLSTATE: " . $error['SQLSTATE'] . "<br />";
  64. echo "code: " . $error['code'] . "<br />";
  65. echo "message: " . $error['message'] . "<br />";
  66. echo ($sql . "<br />");
  67. var_dump($row);
  68. }
  69. }
  70. }
  71. $ajax['wellTBA'] = $wellTBA;
  72. $ajax['normal_count'] = $normal_count;
  73. $ajax['abnormal_count'] = $abnormal_count;
  74. echo json_encode($ajax);