Browse Source

压风接口

秦锐 3 years ago
parent
commit
bb80c4e14a
1 changed files with 93 additions and 1 deletions
  1. 93 1
      Modules/OpcData/Http/Controllers/Api/OpcDataController.php

+ 93 - 1
Modules/OpcData/Http/Controllers/Api/OpcDataController.php

@@ -111,6 +111,10 @@ class OpcDataController extends Controller
             // 609水泵
             $groupId = 4;
             $result = $this->getPumpData($groupId);
+        } else if ($getDataType == 'compressed_air') {
+            // 压风
+            $groupId = 5;
+            $result = $this->getcompressedAirData($groupId);
         } else {
             return;
         }
@@ -146,7 +150,7 @@ class OpcDataController extends Controller
             $fanNum     = $val->dev_type_id - 1;        // 风机号
             $label      = $val->device_name;            // 设备名
             $devVal     = $val->val;                    // 数值
-            $jsonKey   = $val->json_key;               // json键值
+            $jsonKey   = $val->json_key;                // json键值
             $unit       = $val->unit;                   // 单位
             $dataArr[$fanNum]['title'] = $val->dev_type_name; // 风机名
             $valArr = [
@@ -269,4 +273,92 @@ class OpcDataController extends Controller
         }
         return $dataArr;
     }
+
+
+
+    public function getcompressedAirData($groupId) {
+
+        $sqlStr = "
+        select t1.dev_type_id,
+                t1.dev_type_name,
+                t1.device_num,
+                t1.device_name,
+                case t.val 
+                    when 'True' then 1
+                    when 'False' then 2
+                    else t.val
+                end val,
+                t1.json_key,
+                t1.row_number,
+                t1.unit
+        from equipment t
+        join tb_dev_dict_list t1 on t.selItem = t1.selItem
+        where t1.group_id = ".$groupId."
+        and t1.is_show = 1
+        order by t1.dev_type_id, t1.row_number, t1.device_num
+        ";
+        
+        $dbResult = $this->opcDB->select($sqlStr);
+        $timeArr = array();     // 用于拼接时分秒
+        $timeJsonKey;           // 记录time字段key名
+        // dd($dbResult);
+        foreach ($dbResult as $key => $val) {
+            $devName    = $val->dev_type_name;          // 泵名
+            $rowNumber  = $val->row_number;             // 排序
+            $jsonKey    = $val->json_key;               // json键值
+            $label      = $val->device_name;            // 设备名
+            $devNum     = $val->dev_type_id - 1;        // 设备号
+            $unit       = $val->unit;                   // 单位
+            $devVal     = $val->val;                    // 数值
+
+            // $valArr[$jsonKey] = $devVal;
+
+            
+            if ($jsonKey == 'run_parameter') {
+                $dataArr['compressed_air'][$devNum]['name'] = $devName;
+                $dataArr['compressed_air'][$devNum]['state'] = $devVal;
+
+                $valArr = [
+                    'label' => $label,      // 标题
+                    'state' => $devVal,     // 值
+                    'unit'  => $unit        // 单位
+                    ,'json' => $jsonKey
+                ];
+                $dataArr['compressed_air'][$devNum][$jsonKey][] = $valArr;
+                
+            } else if ($jsonKey == 'common') {
+                $valArr = [
+                    'label' => $label,      // 标题
+                    'value' => $devVal,     // 值
+                    'unit'  => $unit        // 单位
+                ];
+                $dataArr[$jsonKey][] = $valArr;
+            } else if ($jsonKey == 'drain_value_state') {
+                // 开关状态单独处理
+                $dataArr['compressed_air'][$devNum][$jsonKey] = $devVal;
+                if (array_key_exists($jsonKey, $dataArr['compressed_air'][$devNum])) {
+                    $state = $dataArr['compressed_air'][$devNum][$jsonKey];
+                    $dataArr['compressed_air'][$devNum][$jsonKey] = max($devVal, $state);
+                } else {
+                    $dataArr['compressed_air'][$devNum][$jsonKey] = $devVal;
+                }
+            }  else if ($jsonKey == 'compressed_air') {
+                $valArr = [
+                    'label' => $label,      // 标题
+                    'value' => $devVal,     // 值
+                    'unit'  => $unit        // 单位
+                ];
+                $dataArr['compressed_air'][$devNum][$jsonKey][] = $valArr;
+            } else if ($jsonKey == 'warn_state') {
+                $valArr = [
+                    'label' => $label,      // 标题
+                    'state' => $devVal,     // 值
+                    'unit'  => $unit        // 单位
+                ];
+                $dataArr['compressed_air'][$devNum][$jsonKey][] = $valArr;
+            }
+            
+        }
+        return $dataArr;
+    }
 }