Просмотр исходного кода

Merge branch 'master' of http://git.jieweizhineng.com/ushio/video_system into master

任敬轩 2 лет назад
Родитель
Сommit
82be2e6dfa
2 измененных файлов с 101 добавлено и 25 удалено
  1. 61 23
      Modules/OpcData/Http/Controllers/Api/OpcDataController.php
  2. 40 2
      config/database.php

+ 61 - 23
Modules/OpcData/Http/Controllers/Api/OpcDataController.php

@@ -8,8 +8,9 @@ use Illuminate\Http\Response;
 use Illuminate\Routing\Controller;
 use Illuminate\Support\Facades\DB;
 use Modules\OpcData\Entities\OpcDataDict;
+use App\Http\Controllers\Api\BaseController;
 
-class OpcDataController extends Controller
+class OpcDataController extends BaseController
 {
     protected $opcConf = [
         'ventilation_zb'    => 1,
@@ -50,6 +51,18 @@ class OpcDataController extends Controller
             'belt_2'            => 9,  // 西翼巷
             'belt_3'            => 10, // 集中巷
         ],
+
+        'renjiazhuang'    => [
+            'fan_1'             => 1,  // 主通风
+            'compressed_air'    => 3,  // 压风
+        ],
+
+        'qingshuiying'    => [
+            'fan_1'             => 1,  // 主通风
+            'nitrogen'          => 2,  // 制氮
+            'compressed_air'    => 3,  // 压风
+            'pump_1'            => 4,  // 主泵房(768)
+        ],
     ];
     
     public function getData(Request $request)
@@ -84,18 +97,22 @@ class OpcDataController extends Controller
             and t1.is_show = 1
             order by t1.dev_type_id, t1.row_number, t1.device_num, t1.device_name
             ";
-            
-            $opcDB =  DB::connection($opcConnectName);
-            $dbResult = $opcDB->select($sqlStr);
+            // echo($sqlStr);
+            try{
+                $opcDB =  DB::connection($opcConnectName);
+                $dbResult = $opcDB->select($sqlStr);
+            } catch (\Exception $e) {
+                return $this->error(-1, '数据库配置错误');
+            }
             // echo($sqlStr);
             switch($getDataType) {
                 case 'compressed_air':
                     // 压风
-                    $result = $this->getCompressedAirData($dbResult);
+                    $result = $this->getCompressedAirData($dbResult, $getMineCode);
                     break;
                 case 'nitrogen':
                     // 制氮
-                    $result = $this->getNitrogenData($dbResult);
+                    $result = $this->getNitrogenData($dbResult, $getMineCode);
                     break;
                 case 'belt_13':
                 case 'belt_1':
@@ -143,7 +160,7 @@ class OpcDataController extends Controller
                 return response()->json($result);
             }
         }
-        return;
+        return $this->error(-1, '未找到数据');;
     }
 
     // 风机
@@ -254,13 +271,15 @@ class OpcDataController extends Controller
             }
         }
 
+        // dd($timeArr);
+
         return $dataArr;
     }
 
 
     // 压风
-    public function getCompressedAirData($dbResult) {
-
+    public function getCompressedAirData($dbResult, $getMineCode) {
+        
         $dataArr = array();
         $timeArr = array();     // 用于拼接时分秒
         $timeJsonKey;           // 记录time字段key名
@@ -275,7 +294,6 @@ class OpcDataController extends Controller
             $devVal     = $val->val;                    // 数值
 
             // $valArr[$jsonKey] = $devVal;
-
             if ($jsonKey == 'state') {
                 $dataArr['compressed_air'][$devNum]['name'] = $devName;
                 $dataArr['compressed_air'][$devNum]['state'] = $devVal;
@@ -313,12 +331,22 @@ class OpcDataController extends Controller
                 ];
                 $dataArr['compressed_air'][$devNum][$jsonKey][] = $valArr;
             } else if ($jsonKey == 'warn_state') {
-                $valArr = [
-                    'label' => $label,      // 标题
-                    'state' => $devVal,     // 值
-                    'unit'  => $unit        // 单位
-                ];
-                $dataArr['compressed_air'][$devNum][$jsonKey][] = $valArr;
+                
+                if ($getMineCode == 'qingshuiying' && mb_substr($label, -1) == '阀') {
+                    $valArr = [
+                        'label' => $label,      // 标题
+                        'state' => $devVal > 15 ? 1 : 2,     // 值
+                        'unit'  => $unit        // 单位
+                    ];
+                    $dataArr['compressed_air'][$devNum][$jsonKey][] = $valArr;
+                } else {
+                    $valArr = [
+                        'label' => $label,      // 标题
+                        'state' => $devVal,     // 值
+                        'unit'  => $unit        // 单位
+                    ];
+                    $dataArr['compressed_air'][$devNum][$jsonKey][] = $valArr;
+                }
             }
             
         }
@@ -449,25 +477,35 @@ class OpcDataController extends Controller
     }
 
     // 制氮
-    public function getNitrogenData($dbResult) {
+    public function getNitrogenData($dbResult, $getMineCode) {
         
         $dataArr = array();
         $valDict = array();
         $state = 2;
-        
+        // dd($dbResult);
         foreach ($dbResult as $key => $val) {
-            $devName    = $val->dev_type_name;          // 
+            $devName    = $val->dev_type_name;          // 设备
             $rowNumber  = $val->row_number;             // 排序
             $jsonKey    = $val->json_key;               // json键值
             $label      = $val->device_name;            // 设备名
-            $devTypeNum = $val->dev_type_id;        // 设备号
+            $devTypeNum = $val->dev_type_id - 1;        // 设备号
             $devNum     = $val->device_num - 1;         // 设备号
             $unit       = $val->unit;                   // 单位
             $devVal     = $val->val;                    // 数值
-
+            
             if ($jsonKey == 'state') {
-                $dataArr[$devNum]['state'] = $devVal;
-                $dataArr[$devNum]['name'] = $devName;
+                if($getMineCode == 'qingshuiying') {
+                    if(isset($dataArr[$devTypeNum]['state'])) {
+                        $dataArr[$devTypeNum]['state'] = min($dataArr[$devTypeNum]['state'], $devVal);
+                        $dataArr[$devTypeNum]['name'] = $devName;
+                    } else {
+                        $dataArr[$devTypeNum]['state'] = 2;
+                        $dataArr[$devTypeNum]['name'] = $devName;
+                    }
+                } else {
+                    $dataArr[$devNum]['state'] = $devVal;
+                    $dataArr[$devNum]['name'] = $devName;
+                }
             } else if ($jsonKey == 'run_parameter' || $jsonKey == 'cold_dryer') {
                 $valArr = [
                     'label' => $label,      // 标题

+ 40 - 2
config/database.php

@@ -96,7 +96,7 @@ return [
             'host'           => env('DB_OPC_JINJIAQU_HOST', '127.0.0.1'),
             'port'           => env('DB_OPC_JINJIAQU_PORT', '3306'),
             'database'       => env('DB_OPC_JINJIAQU_DATABASE', 'opc-jinjiaqu'),
-            'username'       => env('DB_OPC_JINJIAQU_USERNAME', 'r'),
+            'username'       => env('DB_OPC_JINJIAQU_USERNAME', ''),
             'password'       => env('DB_OPC_JINJIAQU_PASSWORD', ''),
             'unix_socket'    => '',
             'charset'        => 'utf8mb4',
@@ -114,7 +114,7 @@ return [
             'host'           => env('DB_OPC_SHICAOCUN_HOST', '127.0.0.1'),
             'port'           => env('DB_OPC_SHICAOCUN_PORT', '3306'),
             'database'       => env('DB_OPC_SHICAOCUN_DATABASE', 'opc-shicaocun'),
-            'username'       => env('DB_OPC_SHICAOCUN_USERNAME', 'r'),
+            'username'       => env('DB_OPC_SHICAOCUN_USERNAME', ''),
             'password'       => env('DB_OPC_SHICAOCUN_PASSWORD', ''),
             'unix_socket'    => '',
             'charset'        => 'utf8mb4',
@@ -128,6 +128,44 @@ return [
             ]) : [],
         ],
 
+        'mysql_opc_renjiazhuang' => [
+            'driver'         => 'mysql',
+            'host'           => env('DB_OPC_RENJIAZHUANG_HOST', '127.0.0.1'),
+            'port'           => env('DB_OPC_RENJIAZHUANG_PORT', '3306'),
+            'database'       => env('DB_OPC_RENJIAZHUANG_DATABASE', 'opc-renjiazhuang'),
+            'username'       => env('DB_OPC_RENJIAZHUANG_USERNAME', ''),
+            'password'       => env('DB_OPC_RENJIAZHUANG_PASSWORD', ''),
+            'unix_socket'    => '',
+            'charset'        => 'utf8mb4',
+            'collation'      => 'utf8mb4_general_ci',
+            'prefix'         => '',
+            'prefix_indexes' => true,
+            'strict'         => true,
+            'engine'         => null,
+            'options'        => extension_loaded('pdo_mysql') ? array_filter([
+                PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
+            ]) : [],
+        ],
+
+        'mysql_opc_qingshuiying' => [
+            'driver'         => 'mysql',
+            'host'           => env('DB_OPC_QINGSHUIYING_HOST', '127.0.0.1'),
+            'port'           => env('DB_OPC_QINGSHUIYING_PORT', '3306'),
+            'database'       => env('DB_OPC_QINGSHUIYING_DATABASE', 'opc-qingshuiying'),
+            'username'       => env('DB_OPC_QINGSHUIYING_USERNAME', ''),
+            'password'       => env('DB_OPC_QINGSHUIYING_PASSWORD', ''),
+            'unix_socket'    => '',
+            'charset'        => 'utf8mb4',
+            'collation'      => 'utf8mb4_general_ci',
+            'prefix'         => '',
+            'prefix_indexes' => true,
+            'strict'         => true,
+            'engine'         => null,
+            'options'        => extension_loaded('pdo_mysql') ? array_filter([
+                PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
+            ]) : [],
+        ],
+
     ],
 
     /*