apiService = $apiService; } public function getList(Request $request) { $sysCode = isset($request->sys_code) ? $request->sys_code : null; // 矿分类 if ($sysCode == null) { $msg="参数为空"; $code=-1; return $this->error($code, $msg); } switch ($sysCode) { case 'main': return $this->getMainSupport(); case 'djjk': return $this->getZNZJList(); case 'yangchen': return $this->getDustMonitorList(); default: $msg="未知数据"; $code=-2; return $this->error($code, $msg); } } /* * 获取液压支架数据 */ public function getMainSupport() { $keys=[ "2096055402480641_1", "2096055402572801_1", "2096055402619905_1", "2096055402744833_1", "2096055402796033_1", "2096055402845185_1", "2096055402900481_1", "2096055402947585_1", "2096055402994689_1", "2096055403062273_1", "2096055403121665_1", "2096055403170817_1", "2096055403228161_1", "2096055403277313_1", "2096055403330561_1", "2096055403375617_1", "2096055403473921_1", "2096055403518977_1", "2096055403564033_1", "2096055403609089_1", "2096055403658241_1", "2096055403707393_1", "2096055403756545_1", "2096055403803649_1", "2096055403871233_1", "2096055403959297_1", "2096055404043265_1", "2096055404092417_1", "2096055404342273_1", "2096055404389377_1", "2096055404448769_1", "2096055404502017_1", "2096055404549121_1", "2096055404618753_1", "2096055404663809_1", "2096055404717057_1", "2096055404784641_1", "2096055404831745_1", "2096055404880897_1", "2096055404928001_1", "2096055404973057_1", "2096055405026305_1", "2096055405159425_1", "2096055405245441_1", "2096055405294593_1", "2096055405345793_1", "2096055405392897_1", "2096055405440001_1", "2096055405487105_1", "2096055405532161_1", "2096055405595649_1", "2096055405650945_1", "2096055405700097_1", "2096055405757441_1", "2096055405806593_1", "2096055405861889_1", "2096055405913089_1", "2096055405999105_1", "2096055406052353_1", "2096055406300161_1", "2096055406300161_1", "2096055406367745_1", "2096055406420993_1", "2096055406482433_1", "2096055406531585_1", "2096055406623745_1", "2096055406672897_1", "2096055406724097_1", "2096055406775297_1", "2096055406885889_1", "2096055406955521_1", "2096055407035393_1", "2096055407117313_1", "2096055407164417_1", "2096055407266817_1", "2096055407414273_1", "2096055407703041_1", "2096055407873025_1", "2096055407938561_1", "2096055407938561_1", "2096055407989761_1", "2096055408034817_1", "2096055408081921_1", "2096055408133121_1", "2096055408180225_1", "2096055408227329_1", "2096055408276481_1", "2096055408364545_1", "2096055408415745_1", "2096055408468993_1", "2096055408518145_1", "2096055408575489_1", "2096055408624641_1", "2096055408675841_1", "2096055408722945_1", "2096055408772097_1", "2096055408772097_1", "2096055408931841_1", "2096055408985089_1", "2096055409032193_1", "2096055409079297_1", "2096055409132545_1", "2096055409191937_1", "2096055409406977_1", "2096055409560577_1", "2096055409671169_1", "2096055409802241_1", "2096055410031617_1", "2096055410187265_1", "2096055410285569_1", "2096055410428929_1", "2096055410476033_1", "2096055410521089_1", "2096055410564097_1", "2096055410609153_1", "2096055410654209_1", "2096055410697217_1", "2096055410785281_1", "2096055410785281_1", "2096055410904065_1", "2096055410955265_1", "2096055411004417_1", "2096055411098625_1", "2096055411098625_1", "2096055411145729_1", "2096055411194881_1", "2096055411274753_1", "2096055411319809_1" ]; $dataFromGetRequest = $this->apiService->postPointRealData($this->apiUrl, $keys); if($dataFromGetRequest['data'] == 0) { $msg = $dataFromGetRequest['Message']; return $this->error(-1, $msg); } $baseData = $dataFromGetRequest['data']; $support=[]; for ($i = 0; $i < count($keys); $i++) { $key = $keys[$i]; $support[]=[ "key"=>$key, "name"=>($i+1)."号立柱压力", "unit"=>"Mpa", "val"=> $baseData[$key] ?? 0, ]; } $data["sys_point"]=[ "support"=>$support ]; return json_encode($data); } /* * 东井架空乘人器 * */ public function getEastJKCRQList() { $keys=[ "2008884686232577_1", // 行人斜井 "2008885028150273_1", // 行人斜井井底 "2008885030757377_1", // 行人斜井井口 "2008885029561345_1", // 行人斜井258米 "2008885028895745_1", // 行人斜井100米 "2008885029458945_1", // 行人斜井538米 "2008885027279873_1", // 985行人通路 "2046720712072193_2", // 架空乘人车_机头越位 "2046720712125441_2", // 架空乘人车_机尾越位 "2046720711785473_2", // 架空乘人车_运行欠速 "2046720711762945_2", // 架空乘人车_运行超速 "2046720711808001_2", // 架空乘人车_打滑保护 "2046720712238081_2", // 架空乘人车_尾轮断轴 "2046720712262657_2", // 架空乘人车_重锤落地 "2046720712045569_2", // 架空乘人车_强制解锁 "2046720711631873_2", // 架空乘人车_绞车互锁 "2046720711687169_2", // 架空乘人车_电机超温 "2046720714204161_1", // 架空乘人车_急停数显 "2046720714243073_1", // 架空乘人车_掉绳数显 "2046720712291329_2", // 架空乘人车_绳张紧 "2046720711549953_2", // 架空乘人车_主电机断电 "2046720711603201_2", // 架空乘人车_驱动轮断轴 "2046720712600577_2", // 架空乘人车_安全闸电机 "2046720712576001_2", // 架空乘人车_工作闸电机 "2046720711902209_2", // 架空乘人车_减速机超温 "2046720711998465_2", // 架空乘人车_液压站超温 "2046720711877633_2", // 架空乘人车_变频器故障 "2046720712178689_2", // 架空乘人车_张紧小车前限位 "2046720712205313_2", // 架空乘人车_张紧小车后限位 "2046720711949313_2", // 架空乘人车_液压站油位过低 "2046720711973889_2", // 架空乘人车_电机振幅超标 "2046720712098817_2", // 架空乘人车_机头吊椅间距 "2046720712152065_2", // 架空乘人车_机尾吊椅间距 "2046720712020993_2", // 架空乘人车_电机轴承超温 "2046720711924737_2", // 架空乘人车_减速机油位过低 "2046720712524801_2", // 架空乘人车_系统运行中 "2046720713337857_1", // 架空乘人车_电机温度 "2046720712907777_1", // 架空乘人车_运行速度显示 "2046720713450497_1", // 架空乘人车_减速机油温 "2046720714279937_1", // 架空乘人车_启动倒计时数显 "2046720713520129_1", // 架空乘人车_液压站油温 "2046720714318849_1", // 架空乘人车_间断倒计时数显 "2046720713300993_1" // 架空乘人车_液压站压力 ]; // 获取点位数据 $baseData = $this->apiService->postPointRealData($this->apiUrl, $keys)['data']; $stateData = []; $stateInfoData = []; foreach ($baseData as $key => $val) { $stateInfoData[$key] = $baseData[$key] == 0 ? "关闭" : "开启"; if ($val == -9999) { $baseData[$key] = '未知'; $stateData[$key] = 0; $stateInfoData[$key] = "未知"; } else { $stateData[$key] = $baseData[$key]; } } $info = [ "info"=>[ [ "label"=>"行人斜井", "value"=> $stateData['2008884686232577_1'] ?? 0 . "人", ], [ "label"=>"行人斜井井底", "value"=> $stateData['2008885028150273_1'] ?? 0 . "人", ], [ "label"=>"行人斜井井口", "value"=> $stateData['2008885030757377_1'] ?? 0 . "人", ], [ "label"=>"行人斜井258米", "value"=> $stateData['2008885029561345_1'] ?? 0 . "人", ], [ "label"=>"22采区985行人通道", "value"=> $stateData['2008885027279873_1'] ?? 0 . "人", ], [ "label"=>"行人斜井100米", "value"=> $stateData['2008885028895745_1'] ?? 0 . "人", ], [ "label"=>"行人斜井538米", "value"=> $stateData['2008885029458945_1'] ?? 0 . "人", ] ], "state"=>[ [ "label" => "机头越位", "state" => $stateData['2046720712072193_2'] ?? 0, ], [ "label" => "机尾越位", "state" => $stateData['2046720712125441_2'] ?? 0, ], [ "label" => "运行欠速", "state" => $stateData['2046720711785473_2'] ?? 0, ], [ "label" => "运行超速", "state" => $stateData['2046720711762945_2'] ?? 0, ], [ "label" => "运行打滑", "state" => $stateData['2046720711808001_2'] ?? 0, ], [ "label" => "尾轮断轴", "state" => $stateData['2046720712238081_2'] ?? 0, ], [ "label" => "重锤落地", "state" => $stateData['2046720712262657_2'] ?? 0, ], [ "label" => "强制解锁", "state" => $stateData['2046720712045569_2'] ?? 0, ], [ "label" => "绞车互锁", "state" => $stateData['2046720711631873_2'] ?? 0, ], [ "label" => "电机超温", "state" => $stateData['2046720711687169_2'] ?? 0, ], [ "label" => "绳张紧保护", "state" => $stateData['2046720712291329_2'] ?? 0, ], [ "label" => "主电机断电", "state" => ($stateData['2046720711549953_2'] ?? 0) == 0 ? 1 : 0, ], [ "label" => "驱动轮断轴", "state" => ($stateData['2046720711603201_2'] ?? 0) == 0 ? 1 : 0, ], [ "label" => "安全闸电机", "state" => ($stateData['2046720712600577_2'] ?? 0) == 0 ? 1 : 0, ], [ "label" => "工作闸电机", "state" => ($stateData['2046720712576001_2'] ?? 0) == 0 ? 1 : 0, ], [ "label" => "减速机超温", "state" => $stateData['2046720711902209_2'] ?? 0, ], [ "label" => "液压站超温", "state" => $stateData['2046720711998465_2'] ?? 0, ], [ "label" => "变频器故障", "state" => $stateData['2046720711877633_2'] ?? 0, ], [ "label" => "张紧小车前限位", "state" => $stateData['2046720712178689_2'] ?? 0, ], [ "label" => "张紧小车后限位", "state" => $stateData['2046720712205313_2'] ?? 0, ], [ "label" => "液压站油位过低", "state" => $stateData['2046720711949313_2'] ?? 0, ], [ "label" => "电机振幅超标", "state" => $stateData['2046720711973889_2'] ?? 0, ], [ "label" => "机头吊椅间距", "state" => $stateData['2046720712098817_2'] ?? 0, ], [ "label" => "机尾吊椅间距", "state" => $stateData['2046720712152065_2'] ?? 0, ], [ "label" => "电机轴承超温", "state" => $stateData['2046720712020993_2'] ?? 0, ], [ "label" => "减速机油位过低", "state" => $stateData['2046720711924737_2'] ?? 0, ], ], "canshu"=>[ "data"=>[ [ "label" => "沿线急停", "value" => $stateData['2046720714204161_1'] ?? 0, ], [ "label" => "沿线掉绳", "value" => $stateData['2046720714243073_1'] ?? 0, ], [ "label" => "运行状态", "value" => $stateData['2046720712524801_2'] ?? 0 == 1 ? "运行" : "停止", ], [ "label" => "电机温度", "value" => $stateData['2046720713337857_1'] ?? 0 . "℃", ], [ "label" => "运行速度显示", "value" => $stateData['2046720712907777_1'] ?? 0 . "m/s", ], [ "label" => "减速机油温", "value" => $stateData['2046720713450497_1'] ?? 0 . "℃", ], [ "label" => "启动倒计时数显", "value" => $stateData['2046720714279937_1'] ?? 0 . "s", ], [ "label" => "液压站油温", "value" => $stateData['2046720713520129_1'] ?? 0 . "℃", ], [ "label" => "运行倒计时", "value" => $stateData['2046720714318849_1'] ?? 0 . "s", ], [ "label" => "液压站压力", "value" => $stateData['2046720713300993_1'] ?? 0 . "Mpa", ] ], ], ]; return json_encode($info); } /* * 东井架空乘人器 * */ public function getZNZJList() { $keys=[ "2104319665503233_1", // "机身俯仰角度" "2104319665583105_1", // "机身水平角度" "2104319665402881_1", // "机身翻滚角度" "2104319665830913_1", // "掘进机行走速度" "2104319665880065_1", // "母线电压" "2104319665236993_1", // "回转角度" "2104319666027521_1" // "升降角度" ]; // 获取点位数据 $baseData = $this->apiService->postPointRealData($this->apiUrl, $keys)['data']; $stateData = []; $stateInfoData = []; foreach ($baseData as $key => $val) { $stateInfoData[$key] = $baseData[$key] == 0 ? "关闭" : "开启"; if ($val == -9999) { $baseData[$key] = '未知'; $stateData[$key] = 0; $stateInfoData[$key] = "未知"; } else { $stateData[$key] = $baseData[$key]; } } $info = [ "info" => [ [ "label" => "工作面名称", "value" => "150201工作面胶带巷" ], [ "label" => "施工单位", "value" => "综掘二队" ], [ "label" => "生产组织模式", "value" => "二掘一修" ], [ "label" => "综掘机型号", "value" => "EBZ200M-2A" ], [ "label" => "截割功率", "value" => "200Kw" ], [ "label" => "巷道长度", "value" => "2667" ], [ "label" => "掘进断面", "value" => "23.31m²" ], [ "label" => "永久支护工艺", "value" => "锚、网、索、W钢带桁架联合支护" ], [ "label" => "胶带机型号", "value" => "DSJ100/40/160胶带输送机" ], [ "label" => "胶带机控制方式", "value" => "集控" ] ], "juejinji" => [ "data" => [ [ "label" => "未掘进距离", "value" => "324.8m" ], [ "label" => "已掘进距离", "value" => "2344.2m" ] ] ], "tab_info" => [ [ "title" => "机身姿态", "table" => [ "thead" => ["参数名称", "值"], "tbody" => [ [ "label" => "倾仰角度(°)", "value" => $baseData['2104319665503233_1'] ?? 0, ], [ "label" => "水平角度(°)", "value" => $baseData['2104319665583105_1'] ?? 0, ], [ "label" => "翻滚角度(°)", "value" => $baseData['2104319665402881_1'] ?? 0, ], [ "label" => "掘进机行走速度(mm/s)", "value" => $baseData['2104319665830913_1'] ?? 0, ] ] ] ], [ "title" => "旋臂姿态", "table" => [ "thead" => ["参数名称", "值"], "tbody" => [ [ "label" => "回旋角度(°)", "value" => $baseData['2104319665236993_1'] ?? 0, ], [ "label" => "升降角度(°)", "value" => $baseData['2104319666027521_1'] ?? 0, ] ] ] ], [ "title" => "输入电压", "table" => [ "thead" => ["参数名称", "值"], "tbody" => [ [ "label" => "弦线电压(V)", "value" => $baseData['2104319665880065_1'] ?? 0, ] ] ] ] ] ]; return json_encode($info); } /** * 扬尘监测 */ public function getDustMonitorList() { $url = "http://7.250.4.3:4200/Tripartite/getRealData"; // 获取点位数据 $data = $this->apiService->getApiData($url); // if ($data) // Decode the original JSON data // $data = json_decode($data, true); // Initialize the output array $output = ['list' => []]; if (count($data['list']) == 0) { $data = [ "list"=>[ [ "title"=>"扬尘设备01北环线", "data"=>[ [ "label"=>"PM2.5", "value"=>"##" ], [ "label"=>"噪声", "value"=>"##" ], [ "label"=>"PM10", "value"=>"##³" ], [ "label"=>"温度", "value"=>"##" ], [ "label"=>"大气压", "value"=>"##" ], [ "label"=>"风向", "value"=>"##" ], [ "label"=>"TSP", "value"=>"##" ], [ "label"=>"风力", "value"=>"##" ], [ "label"=>"湿度", "value"=>"##" ], [ "label"=>"风速", "value"=>"##" ], ] ], [ "title"=>"扬尘设备02西环线", "data"=>[ [ "label"=>"PM2.5", "value"=>"##" ], [ "label"=>"噪声", "value"=>"##" ], [ "label"=>"PM10", "value"=>"##³" ], [ "label"=>"温度", "value"=>"##" ], [ "label"=>"大气压", "value"=>"##" ], [ "label"=>"风向", "value"=>"##" ], [ "label"=>"TSP", "value"=>"##" ], [ "label"=>"风力", "value"=>"##" ], [ "label"=>"湿度", "value"=>"##" ], [ "label"=>"风速", "value"=>"##" ], ] ], [ "title"=>"扬尘设备03办公楼", "data"=>[ [ "label"=>"PM2.5", "value"=>"##" ], [ "label"=>"噪声", "value"=>"##" ], [ "label"=>"PM10", "value"=>"##³" ], [ "label"=>"温度", "value"=>"##" ], [ "label"=>"大气压", "value"=>"##" ], [ "label"=>"风向", "value"=>"##" ], [ "label"=>"TSP", "value"=>"##" ], [ "label"=>"风力", "value"=>"##" ], [ "label"=>"湿度", "value"=>"##" ], [ "label"=>"风速", "value"=>"##" ], ] ], [ "title"=>"扬尘设备04领储煤场", "data"=>[ [ "label"=>"PM2.5", "value"=>"##" ], [ "label"=>"噪声", "value"=>"##" ], [ "label"=>"PM10", "value"=>"##³" ], [ "label"=>"温度", "value"=>"##" ], [ "label"=>"大气压", "value"=>"##" ], [ "label"=>"风向", "value"=>"##" ], [ "label"=>"TSP", "value"=>"##" ], [ "label"=>"风力", "value"=>"##" ], [ "label"=>"湿度", "value"=>"##" ], [ "label"=>"风速", "value"=>"##" ], ] ], [ "title"=>"扬尘设备05五分区", "data"=>[ [ "label"=>"PM2.5", "value"=>"##" ], [ "label"=>"噪声", "value"=>"##" ], [ "label"=>"PM10", "value"=>"##³" ], [ "label"=>"温度", "value"=>"##" ], [ "label"=>"大气压", "value"=>"##" ], [ "label"=>"风向", "value"=>"##" ], [ "label"=>"TSP", "value"=>"##" ], [ "label"=>"风力", "value"=>"##" ], [ "label"=>"湿度", "value"=>"##" ], [ "label"=>"风速", "value"=>"##" ], ] ], ] ]; return $data; } // 自定义设备标题 $titles = [ '扬尘设备01北环线', '扬尘设备02西环线', '扬尘设备03办公楼', '扬尘设备04储煤场', '扬尘设备05五分区' ]; // Process each device's data foreach ($data['list'] as $index => $device) { $title = $titles[$index]; $deviceData = []; foreach ($device['value'] as $sensor) { $label = $sensor['name']; $value = $sensor['value'] . $sensor['unit']; $deviceData[] = ['label' => $label, 'value' => $value]; } $output['list'][] = ['title' => $title, 'data' => $deviceData]; } // Output the resulting JSON return json_encode($output, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT); } /** * 主运输 */ public function getMainTransportList() { $keys=[ "2104319665503233_1", // 机身俯仰角度 "2104319665583105_1", // 机身水平角度 "2104319665402881_1", // 机身翻滚角度 "2104319665830913_1", // 掘进机行走速度 "2104319665880065_1", // 母线电压 "2104319665236993_1", // 回转角度 "2104319666027521_1" // 升降角度 ]; // 获取点位数据 $baseData = $this->apiService->postPointRealData($this->apiUrl, $keys)['data']; $info = [ "info"=>[ [ "label"=>"工作面名称", "value"=>"150201工作面胶带巷" ], [ "label"=>"施工单位", "value"=>"综掘二队" ], [ "label"=>"生产组织模式", "value"=>"两掘一修" ], [ "label"=>"综掘机型号", "value"=>"EBZ200M-2A" ], [ "label"=>"载割功率", "value"=>"200KW" ], [ "label"=>"巷道长度", "value"=>"2667" ], [ "label"=>"掘进断面", "value"=>"23.31㎡" ], [ "label"=>"永久支护工艺", "value"=>"锚、网、索、W钢桁联合支护" ], [ "label"=>"胶带机型号", "value"=>"DSJ100/40/160胶带输送机" ], [ "label"=>"胶带机控制方式", "value"=>"集控" ], ], "juejinji"=>[ "data"=>[ [ "label"=>"未掘进距离", "value"=>"324.8m" ], [ "label"=>"已掘进距离", "value"=>"2344.2m" ], ] ], "tab_info"=>[ [ "title"=>"机身姿态", "table"=>[ "thead"=>["参数名称", "值"], "tbody"=>[ [ "label"=>"倾仰角度(°)", "value"=>$baseData['2104319665503233_1'] ?? 0 ], [ "label"=>"水平角度(°)", "value"=>$baseData['2104319665583105_1'] ?? 0 ], [ "label"=>"翻滚角度(°)", "value"=>$baseData['2104319665402881_1'] ?? 0 ], ] ] ], [ "title"=>"旋臂姿态", "table"=>[ "thead"=>["参数名称", "值"], "tbody"=>[ [ "label"=>"回旋角度(°)", "value"=>$baseData['2104319665236993_1'] ?? 0 ], [ "label"=>"升降角度(°)", "value"=>$baseData['2104319666027521_1'] ?? 0 ], ] ] ], [ "title"=>"输入电压", "table"=>[ "thead"=>["参数名称", "值"], "tbody"=>[ [ "label"=>"母线电压(V)", "value"=>$baseData['2104319665880065_1'] ?? 0 ], ] ] ], ] ]; return json_encode($info); } public function getBaseDataArr($tb_name, $data_key) { $point_id = "'" . implode("','", $data_key) . "'"; // 构建 SQL 查询 $sqlStr = "select `point_id`, `value` from $tb_name where `point_id` in ($point_id)"; $res = $this->executeSql($sqlStr, 1); $baseData=[]; for ($i = 0; $i < count($res); $i++) { $key=$res[$i]->point_id; $val=$res[$i]->value; $baseData[$key]=$val; } return $baseData; } public function executeSql($sqlStr, $modelname = -1) { try{ $opcDB = DB::connection($this->db_name); $dbResult = $opcDB->select($sqlStr); return $dbResult; } catch (\Exception $e) { switch ($modelname) { case 1: return $this->error(-1, '东井通风'); case 2: return $this->error(-1, '统计日超速出错!'); case 4: return $this->error(-1, '获取详细列表出错!'); default: return $this->error(-1, '未知错误!'); } } } }