|
@@ -11,6 +11,16 @@ use Modules\OpcData\Entities\OpcDataDict;
|
|
|
|
|
|
class OpcDataController extends Controller
|
|
class OpcDataController extends Controller
|
|
{
|
|
{
|
|
|
|
+ protected $opcDB;
|
|
|
|
+ // private $opcDictArr = array();
|
|
|
|
+ protected $opcConnectName = 'mysql_opc_jinjiaqu';
|
|
|
|
+ // private $dictTableName = 'tb_fan_dict_list';
|
|
|
|
+ // private $dataTableName = 'equipment';
|
|
|
|
+
|
|
|
|
+ public function __construct() {
|
|
|
|
+ $this->opcDB = DB::connection($this->opcConnectName);
|
|
|
|
+ }
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* Display a listing of the resource.
|
|
* Display a listing of the resource.
|
|
* @return Renderable
|
|
* @return Renderable
|
|
@@ -80,77 +90,167 @@ class OpcDataController extends Controller
|
|
//
|
|
//
|
|
}
|
|
}
|
|
|
|
|
|
- private $opcDictArr = array();
|
|
|
|
- private $dictTableName = 'tb_fan_dict_list';
|
|
|
|
- private $dataTableName = 'equipment';
|
|
|
|
-
|
|
|
|
public function getData(Request $request)
|
|
public function getData(Request $request)
|
|
{
|
|
{
|
|
$getDataType = $request->system_type; // 获取需要的数据
|
|
$getDataType = $request->system_type; // 获取需要的数据
|
|
$dataArr = array(); // 返回数据数组
|
|
$dataArr = array(); // 返回数据数组
|
|
- $db = DB::connection('mysql_opc_jinjiaqu');
|
|
|
|
|
|
+ $result;
|
|
|
|
+ if ($getDataType == 'ventilation_zb'){
|
|
|
|
+ // 中部风机
|
|
|
|
+ $groupId = 1;
|
|
|
|
+ $result = $this->getFanData($groupId);
|
|
|
|
+ } else if ($getDataType == 'ventilation_bb') {
|
|
|
|
+ // 北部风机
|
|
|
|
+ $groupId = 2;
|
|
|
|
+ $result = $this->getFanData($groupId);
|
|
|
|
+ } else if ($getDataType == 'pump_zy') {
|
|
|
|
+ // 水泵风机
|
|
|
|
+ $groupId = 3;
|
|
|
|
+ $result = $this->getPumpData($groupId);
|
|
|
|
+ } else {
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ return response()->json($result);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 水泵
|
|
|
|
+ public function getFanData($groupId) {
|
|
|
|
+
|
|
|
|
+ $sqlStr = "
|
|
|
|
+ select t1.fan_type_id,
|
|
|
|
+ t1.fan_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_fan_dict_list t1 on t.selItem = t1.selItem
|
|
|
|
+ where t1.group_id = ".$groupId."
|
|
|
|
+ and t1.is_show = 1
|
|
|
|
+ order by t1.fan_type_id, t1.row_number, t1.device_num
|
|
|
|
+ ";
|
|
|
|
|
|
- if ($getDataType == 'ventilation_zb' or $getDataType == 'ventilation_bb' ) {
|
|
|
|
-
|
|
|
|
- $groupId = 1; // 设备分组ID
|
|
|
|
- if ($getDataType == 'ventilation_zb'){
|
|
|
|
- $groupId = 1;
|
|
|
|
- } else if ($getDataType == 'ventilation_bb') {
|
|
|
|
- $groupId = 2;
|
|
|
|
|
|
+ $dbResult = $this->opcDB->select($sqlStr);
|
|
|
|
+ // dd($dbResult);
|
|
|
|
+ foreach ($dbResult as $key => $val) {
|
|
|
|
+ $fanNum = $val->fan_type_id - 1; // 风机号
|
|
|
|
+ $label = $val->device_name; // 设备名
|
|
|
|
+ $devVal = $val->val; // 数值
|
|
|
|
+ $jsonKey = $val->json_key; // json键值
|
|
|
|
+ $unit = $val->unit; // 单位
|
|
|
|
+ $dataArr[$fanNum]['title'] = $val->fan_type_name; // 风机名
|
|
|
|
+ $valArr = [
|
|
|
|
+ 'label' => $label, // 标题
|
|
|
|
+ 'unit' => $unit // 单位
|
|
|
|
+ ];
|
|
|
|
+ // 状态与value
|
|
|
|
+ if($jsonKey == 'state_list') {
|
|
|
|
+ $valArr['state'] = $devVal;
|
|
} else {
|
|
} else {
|
|
- return;
|
|
|
|
|
|
+ $valArr['value'] = $devVal;
|
|
}
|
|
}
|
|
-
|
|
|
|
- $sqlStr = "
|
|
|
|
- select t1.fan_type_id,
|
|
|
|
- t1.fan_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_fan_dict_list t1 on t.selItem = t1.selItem
|
|
|
|
- where t1.group_id = ".$groupId."
|
|
|
|
- and t1.is_show = 1
|
|
|
|
- order by t1.fan_type_id, t1.row_number, t1.device_num
|
|
|
|
- ";
|
|
|
|
|
|
+ // 根据风量判断风机开关
|
|
|
|
+ if($label == '风量') {
|
|
|
|
+ if ($devVal <= 0 ) {
|
|
|
|
+ $dataArr[$fanNum]['state'] = 2;
|
|
|
|
+ } else {
|
|
|
|
+ $dataArr[$fanNum]['state'] = 1;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ $dataArr[$fanNum][$jsonKey][] = $valArr;
|
|
|
|
|
|
- $dbResult = $db->select($sqlStr);
|
|
|
|
- foreach ($dbResult as $key => $val) {
|
|
|
|
- $fanNum = $val->fan_type_id - 1; // 风机号
|
|
|
|
- $label = $val->device_name; // 设备名
|
|
|
|
- $devVal = $val->val; // 数值
|
|
|
|
- $jsonKey = $val->json_key; // json键值
|
|
|
|
- $unit = $val->unit; // 单位
|
|
|
|
- $dataArr[$fanNum]['title'] = $val->fan_type_name; // 风机名
|
|
|
|
|
|
+ }
|
|
|
|
+ return $dataArr;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ public function getPumpData($groupId) {
|
|
|
|
+
|
|
|
|
+ $sqlStr = "
|
|
|
|
+ select t1.fan_type_id,
|
|
|
|
+ t1.fan_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_fan_dict_list t1 on t.selItem = t1.selItem
|
|
|
|
+ where t1.group_id = ".$groupId."
|
|
|
|
+ and t1.is_show = 1
|
|
|
|
+ order by t1.fan_type_id, t1.row_number, t1.device_num
|
|
|
|
+ ";
|
|
|
|
+
|
|
|
|
+ $dbResult = $this->opcDB->select($sqlStr);
|
|
|
|
+ $timeArr = array(); // 用于拼接时分秒
|
|
|
|
+ $timeJsonKey; // 记录time字段key名
|
|
|
|
+ foreach ($dbResult as $key => $val) {
|
|
|
|
+ $fanName = $val->fan_type_name; // 泵名
|
|
|
|
+ $rowNumber = $val->row_number; // 排序
|
|
|
|
+ $jsonKey = $val->json_key; // json键值
|
|
|
|
+ $label = $val->device_name; // 设备名
|
|
|
|
+ $devNum = $val->fan_type_id - 1; // 设备号
|
|
|
|
+ $unit = $val->unit; // 单位
|
|
|
|
+ $devVal = $val->val; // 数值
|
|
|
|
+
|
|
|
|
+ if ($rowNumber <= 4) {
|
|
|
|
+
|
|
$valArr = [
|
|
$valArr = [
|
|
'label' => $label, // 标题
|
|
'label' => $label, // 标题
|
|
|
|
+ 'value' => $devVal, // 值
|
|
'unit' => $unit // 单位
|
|
'unit' => $unit // 单位
|
|
];
|
|
];
|
|
- // 状态与value
|
|
|
|
- if($jsonKey == 'state_list') {
|
|
|
|
- $valArr['state'] = $devVal;
|
|
|
|
- } else {
|
|
|
|
- $valArr['value'] = $devVal;
|
|
|
|
- }
|
|
|
|
- // 根据风量判断风机开关
|
|
|
|
- if($label == '风量') {
|
|
|
|
- if ($devVal <= 0 ) {
|
|
|
|
- $dataArr[$fanNum]['state'] = 2;
|
|
|
|
- } else {
|
|
|
|
- $dataArr[$fanNum]['state'] = 1;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- $dataArr[$fanNum][$jsonKey][] = $valArr;
|
|
|
|
-
|
|
|
|
|
|
+ $dataArr[$jsonKey][] = $valArr;
|
|
|
|
+
|
|
|
|
+ } else if ($rowNumber == 5) {
|
|
|
|
+
|
|
|
|
+ $valArr = [
|
|
|
|
+ 'label' => $label, // 标题
|
|
|
|
+ 'state' => $devVal // 值
|
|
|
|
+ ];
|
|
|
|
+ $dataArr[$jsonKey][] = $valArr;
|
|
|
|
+
|
|
|
|
+ } else if ($rowNumber == 10 or $rowNumber == 11) {
|
|
|
|
+
|
|
|
|
+ $timeArr[$label][$devNum][$unit] = $devVal;
|
|
|
|
+ $timeJsonKey = $jsonKey;
|
|
|
|
+
|
|
|
|
+ } else if ($rowNumber > 5) {
|
|
|
|
+
|
|
|
|
+ $valArr = [
|
|
|
|
+ 'label' => $label, // 标题
|
|
|
|
+ 'value' => $devVal, // 值
|
|
|
|
+ 'unit' => $unit // 单位
|
|
|
|
+ ];
|
|
|
|
+
|
|
|
|
+ $dataArr['water_pump'][$devNum][$jsonKey][] = $valArr;
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ foreach ($timeArr as $key => $value) {
|
|
|
|
+ for ($i=0; $i < count($value); $i++) {
|
|
|
|
+ $timeFormatStr = $value[$i]['HH'].'时'.$value[$i]['MM'].'分'.$value[$i]['SS'].'秒';
|
|
|
|
+ $valArr = [
|
|
|
|
+ 'label' => $key, // 标题
|
|
|
|
+ 'value' => $timeFormatStr, // 值
|
|
|
|
+ 'unit' => null // 单位
|
|
|
|
+ ];
|
|
|
|
+ $dataArr['water_pump'][$i][$timeJsonKey][] = $valArr;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- return response()->json($dataArr);
|
|
|
|
|
|
+ return $dataArr;
|
|
}
|
|
}
|
|
}
|
|
}
|