ZQDcsSupportController.php 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735
  1. <?php
  2. namespace Modules\OpcData\Http\Controllers\Api\zaoquan;
  3. use App\Http\Controllers\Api\BaseController;
  4. use Illuminate\Contracts\Support\Renderable;
  5. use Illuminate\Routing\Controller;
  6. use Illuminate\Support\Facades\DB;
  7. use Illuminate\Http\Request;
  8. use Modules\OpcData\Services\zaoquan\ZQDcsApiService;
  9. /**
  10. * 枣泉自动化——东井通风
  11. */
  12. class ZQDcsSupportController extends BaseController
  13. {
  14. private $db_name='etl_zaoquan';
  15. protected $apiService;
  16. protected $apiUrl = 'http://7.250.4.3:4300/v1/common/GetPointRealDataByPageV3';
  17. public function __construct(ZQDcsApiService $apiService)
  18. {
  19. $this->apiService = $apiService;
  20. }
  21. public function getList(Request $request) {
  22. $sysCode = isset($request->sys_code) ? $request->sys_code : null; // 矿分类
  23. if ($sysCode == null) {
  24. $msg="参数为空";
  25. $code=-1;
  26. return $this->error($code, $msg);
  27. }
  28. switch ($sysCode) {
  29. case 'main':
  30. return $this->getMainSupport();
  31. case 'djjk':
  32. return $this->getZNZJList();
  33. case 'yangchen':
  34. return $this->getDustMonitorList();
  35. default:
  36. $msg="未知数据";
  37. $code=-2;
  38. return $this->error($code, $msg);
  39. }
  40. }
  41. /*
  42. * 获取液压支架数据
  43. */
  44. public function getMainSupport() {
  45. $keys=[
  46. "2045462760907777_1","2045462763406337_1","2045462765667329_1","2045462767137793_1",
  47. "2045462768696321_1","2045462770000897_1","2045462771368961_1","2045462772763649_1",
  48. "2045462774033409_1","2045462757030913_1","2045462758366209_1","2045462759554049_1",
  49. "2045462759674881_1","2045462759814145_1","2045462760064001_1","2045462760188929_1",
  50. "2045462760305665_1","2045462760451073_1","2045462760561665_1","2045462761878529_1",
  51. "2045462761995265_1","2045462762161153_1","2045462762314753_1","2045462762451969_1",
  52. "2045462762566657_1","2045462762679297_1","2045462762793985_1","2045462762931201_1",
  53. "2045462763047937_1","2045462764317697_1","2045462764446721_1","2045462764565505_1",
  54. "2045462764680193_1","2045462764798977_1","2045462764911617_1","2045462765034497_1",
  55. "2045462765163521_1","2045462765292545_1","2045462765429761_1","2045462765790209_1",
  56. "2045462765911041_1","2045462766033921_1","2045462766218241_1","2045462766353409_1",
  57. "2045462766523393_1","2045462766646273_1","2045462766773249_1","2045462766896129_1",
  58. "2045462767016961_1","2045462767342593_1","2045462767483905_1","2045462767606785_1",
  59. "2045462767737857_1","2045462767856641_1","2045462767975425_1","2045462768102401_1",
  60. "2045462768251905_1","2045462768403457_1","2045462768528385_1","2045462768811009_1",
  61. "2045462768927745_1","2045462769044481_1","2045462769163265_1","2045462769280001_1",
  62. "2045462769394689_1","2045462769521665_1","2045462769640449_1","2045462769757185_1",
  63. "2045462769880065_1","2045462770115585_1","2045462770269185_1","2045462770390017_1",
  64. "2045462770512897_1","2045462770627585_1","2045462770750465_1","2045462770873345_1",
  65. "2045462771006465_1","2045462771127297_1","2045462771250177_1","2045462771491841_1",
  66. "2045462771610625_1","2045462771729409_1","2045462771842049_1","2045462771956737_1",
  67. "2045462772083713_1","2045462772216833_1","2045462772382721_1","2045462772509697_1",
  68. "2045462772638721_1","2045462772890625_1","2045462773025793_1","2045462773136385_1",
  69. "2045462773242881_1","2045462773363713_1","2045462773472257_1","2045462773582849_1",
  70. "2045462773689345_1","2045462773808129_1","2045462773922817_1","2045462755791873_1",
  71. "2045462755984385_1","2045462756103169_1","2045462756228097_1","2045462756346881_1",
  72. "2045462756457473_1","2045462756572161_1","2045462756690945_1","2045462756803585_1",
  73. "2045462756916225_1","2045462757151745_1","2045462757266433_1","2045462757381121_1",
  74. "2045462757520385_1","2045462757641217_1","2045462757755905_1","2045462757872641_1",
  75. "2045462758013953_1","2045462758126593_1","2045462758241281_1","2045462758478849_1",
  76. "2045462758595585_1","2045462758712321_1","2045462758829057_1","2045462758943745_1",
  77. "2045462759062529_1","2045462759177217_1","2045462759310337_1","2045462759431169_1",
  78. ];
  79. $dataFromGetRequest = $this->apiService->postPointRealData($this->apiUrl, $keys);
  80. if($dataFromGetRequest['data'] == 0) {
  81. $msg = $dataFromGetRequest['Message'];
  82. return $this->error(-1, $msg);
  83. }
  84. $baseData = $dataFromGetRequest['data'];
  85. $support=[];
  86. for ($i = 0; $i < count($keys); $i++) {
  87. $key = $keys[$i];
  88. $support[]=[
  89. "key"=>$key,
  90. "name"=>($i+1)."号立柱压力",
  91. "unit"=>"Mpa",
  92. "val"=> $baseData[$key] ?? 0,
  93. ];
  94. }
  95. $data["sys_point"]=[
  96. "support"=>$support
  97. ];
  98. return json_encode($data);
  99. }
  100. /*
  101. * 东井架空乘人器
  102. * */
  103. public function getEastJKCRQList() {
  104. $keys=[
  105. "2008884686232577_1", // 行人斜井
  106. "2008885028150273_1", // 行人斜井井底
  107. "2008885030757377_1", // 行人斜井井口
  108. "2008885029561345_1", // 行人斜井258米
  109. "2008885028895745_1", // 行人斜井100米
  110. "2008885029458945_1", // 行人斜井538米
  111. "2008885027279873_1", // 985行人通路
  112. "2046720712072193_2", // 架空乘人车_机头越位
  113. "2046720712125441_2", // 架空乘人车_机尾越位
  114. "2046720711785473_2", // 架空乘人车_运行欠速
  115. "2046720711762945_2", // 架空乘人车_运行超速
  116. "2046720711808001_2", // 架空乘人车_打滑保护
  117. "2046720712238081_2", // 架空乘人车_尾轮断轴
  118. "2046720712262657_2", // 架空乘人车_重锤落地
  119. "2046720712045569_2", // 架空乘人车_强制解锁
  120. "2046720711631873_2", // 架空乘人车_绞车互锁
  121. "2046720711687169_2", // 架空乘人车_电机超温
  122. "2046720714204161_1", // 架空乘人车_急停数显
  123. "2046720714243073_1", // 架空乘人车_掉绳数显
  124. "2046720712291329_2", // 架空乘人车_绳张紧
  125. "2046720711549953_2", // 架空乘人车_主电机断电
  126. "2046720711603201_2", // 架空乘人车_驱动轮断轴
  127. "2046720712600577_2", // 架空乘人车_安全闸电机
  128. "2046720712576001_2", // 架空乘人车_工作闸电机
  129. "2046720711902209_2", // 架空乘人车_减速机超温
  130. "2046720711998465_2", // 架空乘人车_液压站超温
  131. "2046720711877633_2", // 架空乘人车_变频器故障
  132. "2046720712178689_2", // 架空乘人车_张紧小车前限位
  133. "2046720712205313_2", // 架空乘人车_张紧小车后限位
  134. "2046720711949313_2", // 架空乘人车_液压站油位过低
  135. "2046720711973889_2", // 架空乘人车_电机振幅超标
  136. "2046720712098817_2", // 架空乘人车_机头吊椅间距
  137. "2046720712152065_2", // 架空乘人车_机尾吊椅间距
  138. "2046720712020993_2", // 架空乘人车_电机轴承超温
  139. "2046720711924737_2", // 架空乘人车_减速机油位过低
  140. "2046720712524801_2", // 架空乘人车_系统运行中
  141. "2046720713337857_1", // 架空乘人车_电机温度
  142. "2046720712907777_1", // 架空乘人车_运行速度显示
  143. "2046720713450497_1", // 架空乘人车_减速机油温
  144. "2046720714279937_1", // 架空乘人车_启动倒计时数显
  145. "2046720713520129_1", // 架空乘人车_液压站油温
  146. "2046720714318849_1", // 架空乘人车_间断倒计时数显
  147. "2046720713300993_1" // 架空乘人车_液压站压力
  148. ];
  149. // 获取点位数据
  150. $baseData = $this->apiService->postPointRealData($this->apiUrl, $keys)['data'];
  151. $stateData = [];
  152. $stateInfoData = [];
  153. foreach ($baseData as $key => $val) {
  154. $stateInfoData[$key] = $baseData[$key] == 0 ? "关闭" : "开启";
  155. if ($val == -9999) {
  156. $baseData[$key] = '未知';
  157. $stateData[$key] = 0;
  158. $stateInfoData[$key] = "未知";
  159. } else {
  160. $stateData[$key] = $baseData[$key];
  161. }
  162. }
  163. $info = [
  164. "info"=>[
  165. [
  166. "label"=>"行人斜井",
  167. "value"=> $stateData['2008884686232577_1'] ?? 0 . "人",
  168. ],
  169. [
  170. "label"=>"行人斜井井底",
  171. "value"=> $stateData['2008885028150273_1'] ?? 0 . "人",
  172. ],
  173. [
  174. "label"=>"行人斜井井口",
  175. "value"=> $stateData['2008885030757377_1'] ?? 0 . "人",
  176. ],
  177. [
  178. "label"=>"行人斜井258米",
  179. "value"=> $stateData['2008885029561345_1'] ?? 0 . "人",
  180. ],
  181. [
  182. "label"=>"22采区985行人通道",
  183. "value"=> $stateData['2008885027279873_1'] ?? 0 . "人",
  184. ],
  185. [
  186. "label"=>"行人斜井100米",
  187. "value"=> $stateData['2008885028895745_1'] ?? 0 . "人",
  188. ],
  189. [
  190. "label"=>"行人斜井538米",
  191. "value"=> $stateData['2008885029458945_1'] ?? 0 . "人",
  192. ]
  193. ],
  194. "state"=>[
  195. [
  196. "label" => "机头越位",
  197. "state" => $stateData['2046720712072193_2'] ?? 0,
  198. ],
  199. [
  200. "label" => "机尾越位",
  201. "state" => $stateData['2046720712125441_2'] ?? 0,
  202. ],
  203. [
  204. "label" => "运行欠速",
  205. "state" => $stateData['2046720711785473_2'] ?? 0,
  206. ],
  207. [
  208. "label" => "运行超速",
  209. "state" => $stateData['2046720711762945_2'] ?? 0,
  210. ],
  211. [
  212. "label" => "运行打滑",
  213. "state" => $stateData['2046720711808001_2'] ?? 0,
  214. ],
  215. [
  216. "label" => "尾轮断轴",
  217. "state" => $stateData['2046720712238081_2'] ?? 0,
  218. ],
  219. [
  220. "label" => "重锤落地",
  221. "state" => $stateData['2046720712262657_2'] ?? 0,
  222. ],
  223. [
  224. "label" => "强制解锁",
  225. "state" => $stateData['2046720712045569_2'] ?? 0,
  226. ],
  227. [
  228. "label" => "绞车互锁",
  229. "state" => $stateData['2046720711631873_2'] ?? 0,
  230. ],
  231. [
  232. "label" => "电机超温",
  233. "state" => $stateData['2046720711687169_2'] ?? 0,
  234. ],
  235. [
  236. "label" => "绳张紧保护",
  237. "state" => $stateData['2046720712291329_2'] ?? 0,
  238. ],
  239. [
  240. "label" => "主电机断电",
  241. "state" => ($stateData['2046720711549953_2'] ?? 0) == 0 ? 1 : 0,
  242. ],
  243. [
  244. "label" => "驱动轮断轴",
  245. "state" => ($stateData['2046720711603201_2'] ?? 0) == 0 ? 1 : 0,
  246. ],
  247. [
  248. "label" => "安全闸电机",
  249. "state" => ($stateData['2046720712600577_2'] ?? 0) == 0 ? 1 : 0,
  250. ],
  251. [
  252. "label" => "工作闸电机",
  253. "state" => ($stateData['2046720712576001_2'] ?? 0) == 0 ? 1 : 0,
  254. ],
  255. [
  256. "label" => "减速机超温",
  257. "state" => $stateData['2046720711902209_2'] ?? 0,
  258. ],
  259. [
  260. "label" => "液压站超温",
  261. "state" => $stateData['2046720711998465_2'] ?? 0,
  262. ],
  263. [
  264. "label" => "变频器故障",
  265. "state" => $stateData['2046720711877633_2'] ?? 0,
  266. ],
  267. [
  268. "label" => "张紧小车前限位",
  269. "state" => $stateData['2046720712178689_2'] ?? 0,
  270. ],
  271. [
  272. "label" => "张紧小车后限位",
  273. "state" => $stateData['2046720712205313_2'] ?? 0,
  274. ],
  275. [
  276. "label" => "液压站油位过低",
  277. "state" => $stateData['2046720711949313_2'] ?? 0,
  278. ],
  279. [
  280. "label" => "电机振幅超标",
  281. "state" => $stateData['2046720711973889_2'] ?? 0,
  282. ],
  283. [
  284. "label" => "机头吊椅间距",
  285. "state" => $stateData['2046720712098817_2'] ?? 0,
  286. ],
  287. [
  288. "label" => "机尾吊椅间距",
  289. "state" => $stateData['2046720712152065_2'] ?? 0,
  290. ],
  291. [
  292. "label" => "电机轴承超温",
  293. "state" => $stateData['2046720712020993_2'] ?? 0,
  294. ],
  295. [
  296. "label" => "减速机油位过低",
  297. "state" => $stateData['2046720711924737_2'] ?? 0,
  298. ],
  299. ],
  300. "canshu"=>[
  301. "data"=>[
  302. [
  303. "label" => "沿线急停",
  304. "value" => $stateData['2046720714204161_1'] ?? 0,
  305. ],
  306. [
  307. "label" => "沿线掉绳",
  308. "value" => $stateData['2046720714243073_1'] ?? 0,
  309. ],
  310. [
  311. "label" => "运行状态",
  312. "value" => $stateData['2046720712524801_2'] ?? 0 == 1 ? "运行" : "停止",
  313. ],
  314. [
  315. "label" => "电机温度",
  316. "value" => $stateData['2046720713337857_1'] ?? 0 . "℃",
  317. ],
  318. [
  319. "label" => "运行速度显示",
  320. "value" => $stateData['2046720712907777_1'] ?? 0 . "m/s",
  321. ],
  322. [
  323. "label" => "减速机油温",
  324. "value" => $stateData['2046720713450497_1'] ?? 0 . "℃",
  325. ],
  326. [
  327. "label" => "启动倒计时数显",
  328. "value" => $stateData['2046720714279937_1'] ?? 0 . "s",
  329. ],
  330. [
  331. "label" => "液压站油温",
  332. "value" => $stateData['2046720713520129_1'] ?? 0 . "℃",
  333. ],
  334. [
  335. "label" => "运行倒计时",
  336. "value" => $stateData['2046720714318849_1'] ?? 0 . "s",
  337. ],
  338. [
  339. "label" => "液压站压力",
  340. "value" => $stateData['2046720713300993_1'] ?? 0 . "Mpa",
  341. ]
  342. ],
  343. ],
  344. ];
  345. return json_encode($info);
  346. }
  347. /*
  348. * 东井架空乘人器
  349. * */
  350. public function getZNZJList() {
  351. $keys=[
  352. "2104319665503233_1", // "机身俯仰角度"
  353. "2104319665583105_1", // "机身水平角度"
  354. "2104319665402881_1", // "机身翻滚角度"
  355. "2104319665830913_1", // "掘进机行走速度"
  356. "2104319665880065_1", // "母线电压"
  357. "2104319665236993_1", // "回转角度"
  358. "2104319666027521_1" // "升降角度"
  359. ];
  360. // 获取点位数据
  361. $baseData = $this->apiService->postPointRealData($this->apiUrl, $keys)['data'];
  362. $stateData = [];
  363. $stateInfoData = [];
  364. foreach ($baseData as $key => $val) {
  365. $stateInfoData[$key] = $baseData[$key] == 0 ? "关闭" : "开启";
  366. if ($val == -9999) {
  367. $baseData[$key] = '未知';
  368. $stateData[$key] = 0;
  369. $stateInfoData[$key] = "未知";
  370. } else {
  371. $stateData[$key] = $baseData[$key];
  372. }
  373. }
  374. $info = [
  375. "info" => [
  376. [
  377. "label" => "工作面名称",
  378. "value" => "150201工作面胶带巷"
  379. ],
  380. [
  381. "label" => "施工单位",
  382. "value" => "综掘二队"
  383. ],
  384. [
  385. "label" => "生产组织模式",
  386. "value" => "二掘一修"
  387. ],
  388. [
  389. "label" => "综掘机型号",
  390. "value" => "EBZ200M-2A"
  391. ],
  392. [
  393. "label" => "截割功率",
  394. "value" => "200Kw"
  395. ],
  396. [
  397. "label" => "巷道长度",
  398. "value" => "2667"
  399. ],
  400. [
  401. "label" => "掘进断面",
  402. "value" => "23.31m²"
  403. ],
  404. [
  405. "label" => "永久支护工艺",
  406. "value" => "锚、网、索、W钢带桁架联合支护"
  407. ],
  408. [
  409. "label" => "胶带机型号",
  410. "value" => "DSJ100/40/160胶带输送机"
  411. ],
  412. [
  413. "label" => "胶带机控制方式",
  414. "value" => "集控"
  415. ]
  416. ],
  417. "juejinji" => [
  418. "data" => [
  419. [
  420. "label" => "未掘进距离",
  421. "value" => "324.8m"
  422. ],
  423. [
  424. "label" => "已掘进距离",
  425. "value" => "2344.2m"
  426. ]
  427. ]
  428. ],
  429. "tab_info" => [
  430. [
  431. "title" => "机身姿态",
  432. "table" => [
  433. "thead" => ["参数名称", "值"],
  434. "tbody" => [
  435. [
  436. "label" => "倾仰角度(°)",
  437. "value" => $baseData['2104319665503233_1'] ?? 0,
  438. ],
  439. [
  440. "label" => "水平角度(°)",
  441. "value" => $baseData['2104319665583105_1'] ?? 0,
  442. ],
  443. [
  444. "label" => "翻滚角度(°)",
  445. "value" => $baseData['2104319665402881_1'] ?? 0,
  446. ],
  447. [
  448. "label" => "掘进机行走速度(mm/s)",
  449. "value" => $baseData['2104319665830913_1'] ?? 0,
  450. ]
  451. ]
  452. ]
  453. ],
  454. [
  455. "title" => "旋臂姿态",
  456. "table" => [
  457. "thead" => ["参数名称", "值"],
  458. "tbody" => [
  459. [
  460. "label" => "回旋角度(°)",
  461. "value" => $baseData['2104319665236993_1'] ?? 0,
  462. ],
  463. [
  464. "label" => "升降角度(°)",
  465. "value" => $baseData['2104319666027521_1'] ?? 0,
  466. ]
  467. ]
  468. ]
  469. ],
  470. [
  471. "title" => "输入电压",
  472. "table" => [
  473. "thead" => ["参数名称", "值"],
  474. "tbody" => [
  475. [
  476. "label" => "弦线电压(V)",
  477. "value" => $baseData['2104319665880065_1'] ?? 0,
  478. ]
  479. ]
  480. ]
  481. ]
  482. ]
  483. ];
  484. return json_encode($info);
  485. }
  486. /**
  487. * 扬尘监测
  488. */
  489. public function getDustMonitorList() {
  490. $url = "http://7.250.4.3:4200/Tripartite/getRealData";
  491. // 获取点位数据
  492. $data = $this->apiService->getApiData($url);
  493. // Decode the original JSON data
  494. $data = json_decode($data, true);
  495. // Initialize the output array
  496. $output = ['list' => []];
  497. // 自定义设备标题
  498. $titles = [
  499. '扬尘设备01北环线',
  500. '扬尘设备02西环线',
  501. '扬尘设备03办公楼',
  502. '扬尘设备04储煤场',
  503. '扬尘设备05五分区'
  504. ];
  505. // Process each device's data
  506. foreach ($data['list'] as $index => $device) {
  507. $title = $titles[$index];
  508. $deviceData = [];
  509. foreach ($device['value'] as $sensor) {
  510. $label = $sensor['name'];
  511. $value = $sensor['value'] . $sensor['unit'];
  512. $deviceData[] = ['label' => $label, 'value' => $value];
  513. }
  514. $output['list'][] = ['title' => $title, 'data' => $deviceData];
  515. }
  516. // Output the resulting JSON
  517. return json_encode($output, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
  518. }
  519. /**
  520. * 主运输
  521. */
  522. public function getMainTransportList() {
  523. $keys=[
  524. "2104319665503233_1", // 机身俯仰角度
  525. "2104319665583105_1", // 机身水平角度
  526. "2104319665402881_1", // 机身翻滚角度
  527. "2104319665830913_1", // 掘进机行走速度
  528. "2104319665880065_1", // 母线电压
  529. "2104319665236993_1", // 回转角度
  530. "2104319666027521_1" // 升降角度
  531. ];
  532. // 获取点位数据
  533. $baseData = $this->apiService->postPointRealData($this->apiUrl, $keys)['data'];
  534. $info = [
  535. "info"=>[
  536. [
  537. "label"=>"工作面名称",
  538. "value"=>"150201工作面胶带巷"
  539. ],
  540. [
  541. "label"=>"施工单位",
  542. "value"=>"综掘二队"
  543. ],
  544. [
  545. "label"=>"生产组织模式",
  546. "value"=>"两掘一修"
  547. ],
  548. [
  549. "label"=>"综掘机型号",
  550. "value"=>"EBZ200M-2A"
  551. ],
  552. [
  553. "label"=>"载割功率",
  554. "value"=>"200KW"
  555. ],
  556. [
  557. "label"=>"巷道长度",
  558. "value"=>"2667"
  559. ],
  560. [
  561. "label"=>"掘进断面",
  562. "value"=>"23.31㎡"
  563. ],
  564. [
  565. "label"=>"永久支护工艺",
  566. "value"=>"锚、网、索、W钢桁联合支护"
  567. ],
  568. [
  569. "label"=>"胶带机型号",
  570. "value"=>"DSJ100/40/160胶带输送机"
  571. ],
  572. [
  573. "label"=>"胶带机控制方式",
  574. "value"=>"集控"
  575. ],
  576. ],
  577. "juejinji"=>[
  578. "data"=>[
  579. [
  580. "label"=>"未掘进距离",
  581. "value"=>"324.8m"
  582. ],
  583. [
  584. "label"=>"已掘进距离",
  585. "value"=>"2344.2m"
  586. ],
  587. ]
  588. ],
  589. "tab_info"=>[
  590. [
  591. "title"=>"机身姿态",
  592. "table"=>[
  593. "thead"=>["参数名称", "值"],
  594. "tbody"=>[
  595. [
  596. "label"=>"倾仰角度(°)",
  597. "value"=>$baseData['2104319665503233_1'] ?? 0
  598. ],
  599. [
  600. "label"=>"水平角度(°)",
  601. "value"=>$baseData['2104319665583105_1'] ?? 0
  602. ],
  603. [
  604. "label"=>"翻滚角度(°)",
  605. "value"=>$baseData['2104319665402881_1'] ?? 0
  606. ],
  607. ]
  608. ]
  609. ],
  610. [
  611. "title"=>"旋臂姿态",
  612. "table"=>[
  613. "thead"=>["参数名称", "值"],
  614. "tbody"=>[
  615. [
  616. "label"=>"回旋角度(°)",
  617. "value"=>$baseData['2104319665236993_1'] ?? 0
  618. ],
  619. [
  620. "label"=>"升降角度(°)",
  621. "value"=>$baseData['2104319666027521_1'] ?? 0
  622. ],
  623. ]
  624. ]
  625. ],
  626. [
  627. "title"=>"输入电压",
  628. "table"=>[
  629. "thead"=>["参数名称", "值"],
  630. "tbody"=>[
  631. [
  632. "label"=>"母线电压(V)",
  633. "value"=>$baseData['2104319665880065_1'] ?? 0
  634. ],
  635. ]
  636. ]
  637. ],
  638. ]
  639. ];
  640. return json_encode($info);
  641. }
  642. public function getBaseDataArr($tb_name, $data_key) {
  643. $point_id = "'" . implode("','", $data_key) . "'";
  644. // 构建 SQL 查询
  645. $sqlStr = "select `point_id`, `value` from $tb_name where `point_id` in ($point_id)";
  646. $res = $this->executeSql($sqlStr, 1);
  647. $baseData=[];
  648. for ($i = 0; $i < count($res); $i++) {
  649. $key=$res[$i]->point_id;
  650. $val=$res[$i]->value;
  651. $baseData[$key]=$val;
  652. }
  653. return $baseData;
  654. }
  655. public function executeSql($sqlStr, $modelname = -1) {
  656. try{
  657. $opcDB = DB::connection($this->db_name);
  658. $dbResult = $opcDB->select($sqlStr);
  659. return $dbResult;
  660. } catch (\Exception $e) {
  661. switch ($modelname) {
  662. case 1:
  663. return $this->error(-1, '东井通风');
  664. case 2:
  665. return $this->error(-1, '统计日超速出错!');
  666. case 4:
  667. return $this->error(-1, '获取详细列表出错!');
  668. default:
  669. return $this->error(-1, '未知错误!');
  670. }
  671. }
  672. }
  673. }