get_monitor_chart.php 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  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. $unit = "";
  7. $label = "";
  8. $ajax = [];
  9. if (isset($_GET["monitor"])) {
  10. $monitor = $_GET["monitor"];
  11. $type = explode('-', $monitor)[0];
  12. }
  13. $chart = [];
  14. $key = array_search($type, array_column($display_info, 'type'));
  15. $unit = $display_info[$key]["unit"];
  16. $label = $display_info[$key]["label"];
  17. switch ($type) {
  18. case "SIS":
  19. case "SID":
  20. //$display .= '],[Depth';
  21. $sql = " SELECT [Date],count(DISTINCT [Depth])
  22. FROM [BIMMonitor].[dbo].[{$type}_Data] WHERE [EquipmentID] = '{$monitor}' GROUP BY [Date]";
  23. $stmt = sqlsrv_query($conn, $sql);
  24. $depth = "";
  25. while ($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_NUMERIC)) {
  26. $depthCount = $row[1];
  27. }
  28. for ($i = 2; $i < $depthCount; $i++) {
  29. $depth = $depth . ",[" . $i * 0.5 . "]";
  30. }
  31. $sql = "SELECT *
  32. FROM (
  33. SELECT [Date], [TotalDisplacement], [Depth], [WarningValue], [ActionValue]
  34. FROM [BIMMonitor].[dbo].[{$type}_Data]
  35. WHERE [EquipmentID] = '{$monitor}' AND [WarningValue] <> 'NULL'
  36. ) o
  37. PIVOT (
  38. MAX([TotalDisplacement])
  39. FOR [Depth] IN ([0.5] ${depth})
  40. ) n;";
  41. break;
  42. case "TI":
  43. $sql = "SELECT *
  44. FROM (
  45. SELECT [Date], [Direction], [TotalTilt], '±264' AS [WarningValue], '±330' AS [ActionValue]
  46. FROM [BIMMonitor].[dbo].[TI_Data]
  47. WHERE [EquipmentID] like '%{$monitor}%'
  48. ) o
  49. PIVOT (
  50. MAX([TotalTilt])
  51. FOR [Direction] IN ([1-3], [2-4])
  52. ) n;";
  53. break;
  54. case "SB":
  55. $sql = "SELECT [SB_Data].[Date], [TotalSettlement], [WarningValue], [ActionValue]
  56. FROM [SB_Data] JOIN [SB_Warning] ON [SB_Data].[EquipmentID] = [SB_Warning].[EquipmentID]
  57. WHERE [SB_Data].[EquipmentID] = '{$monitor}';";
  58. break;
  59. case "SM":
  60. $sql = "SELECT [Date], [TotalSettlement], '±30' AS [WarningValue], '±50' AS [ActionValue]
  61. FROM [SM_Data]
  62. WHERE [EquipmentID] = '{$monitor}';";
  63. break;
  64. }
  65. $fetchResult = sqlsrv_query($conn, $sql);
  66. while ($row = sqlsrv_fetch_array($fetchResult, SQLSRV_FETCH_ASSOC)) {
  67. array_push($chart, $row);
  68. }
  69. if ($fetchResult === false) {
  70. if (($errors = sqlsrv_errors()) != null) {
  71. foreach ($errors as $error) {
  72. echo "SQLSTATE: " . $error['SQLSTATE'] . "<br />";
  73. echo "code: " . $error['code'] . "<br />";
  74. echo "message: " . $error['message'] . "<br />";
  75. echo ($sql . "<br />");
  76. var_dump($row);
  77. }
  78. }
  79. }
  80. $ajax["label"] = $label;
  81. $ajax["unit"] = $unit;
  82. $ajax["chart"] = $chart;
  83. echo (json_encode($ajax));