ZQDcsSupportController.php 37 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065
  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. "2096055402480641_1",
  47. "2096055402572801_1",
  48. "2096055402619905_1",
  49. "2096055402744833_1",
  50. "2096055402796033_1",
  51. "2096055402845185_1",
  52. "2096055402900481_1",
  53. "2096055402947585_1",
  54. "2096055402994689_1",
  55. "2096055403062273_1",
  56. "2096055403121665_1",
  57. "2096055403170817_1",
  58. "2096055403228161_1",
  59. "2096055403277313_1",
  60. "2096055403330561_1",
  61. "2096055403375617_1",
  62. "2096055403473921_1",
  63. "2096055403518977_1",
  64. "2096055403564033_1",
  65. "2096055403609089_1",
  66. "2096055403658241_1",
  67. "2096055403707393_1",
  68. "2096055403756545_1",
  69. "2096055403803649_1",
  70. "2096055403871233_1",
  71. "2096055403959297_1",
  72. "2096055404043265_1",
  73. "2096055404092417_1",
  74. "2096055404342273_1",
  75. "2096055404389377_1",
  76. "2096055404448769_1",
  77. "2096055404502017_1",
  78. "2096055404549121_1",
  79. "2096055404618753_1",
  80. "2096055404663809_1",
  81. "2096055404717057_1",
  82. "2096055404784641_1",
  83. "2096055404831745_1",
  84. "2096055404880897_1",
  85. "2096055404928001_1",
  86. "2096055404973057_1",
  87. "2096055405026305_1",
  88. "2096055405159425_1",
  89. "2096055405245441_1",
  90. "2096055405294593_1",
  91. "2096055405345793_1",
  92. "2096055405392897_1",
  93. "2096055405440001_1",
  94. "2096055405487105_1",
  95. "2096055405532161_1",
  96. "2096055405595649_1",
  97. "2096055405650945_1",
  98. "2096055405700097_1",
  99. "2096055405757441_1",
  100. "2096055405806593_1",
  101. "2096055405861889_1",
  102. "2096055405913089_1",
  103. "2096055405999105_1",
  104. "2096055406052353_1",
  105. "2096055406300161_1",
  106. "2096055406300161_1",
  107. "2096055406367745_1",
  108. "2096055406420993_1",
  109. "2096055406482433_1",
  110. "2096055406531585_1",
  111. "2096055406623745_1",
  112. "2096055406672897_1",
  113. "2096055406724097_1",
  114. "2096055406775297_1",
  115. "2096055406885889_1",
  116. "2096055406955521_1",
  117. "2096055407035393_1",
  118. "2096055407117313_1",
  119. "2096055407164417_1",
  120. "2096055407266817_1",
  121. "2096055407414273_1",
  122. "2096055407703041_1",
  123. "2096055407873025_1",
  124. "2096055407938561_1",
  125. "2096055407938561_1",
  126. "2096055407989761_1",
  127. "2096055408034817_1",
  128. "2096055408081921_1",
  129. "2096055408133121_1",
  130. "2096055408180225_1",
  131. "2096055408227329_1",
  132. "2096055408276481_1",
  133. "2096055408364545_1",
  134. "2096055408415745_1",
  135. "2096055408468993_1",
  136. "2096055408518145_1",
  137. "2096055408575489_1",
  138. "2096055408624641_1",
  139. "2096055408675841_1",
  140. "2096055408722945_1",
  141. "2096055408772097_1",
  142. "2096055408772097_1",
  143. "2096055408931841_1",
  144. "2096055408985089_1",
  145. "2096055409032193_1",
  146. "2096055409079297_1",
  147. "2096055409132545_1",
  148. "2096055409191937_1",
  149. "2096055409406977_1",
  150. "2096055409560577_1",
  151. "2096055409671169_1",
  152. "2096055409802241_1",
  153. "2096055410031617_1",
  154. "2096055410187265_1",
  155. "2096055410285569_1",
  156. "2096055410428929_1",
  157. "2096055410476033_1",
  158. "2096055410521089_1",
  159. "2096055410564097_1",
  160. "2096055410609153_1",
  161. "2096055410654209_1",
  162. "2096055410697217_1",
  163. "2096055410785281_1",
  164. "2096055410785281_1",
  165. "2096055410904065_1",
  166. "2096055410955265_1",
  167. "2096055411004417_1",
  168. "2096055411098625_1",
  169. "2096055411098625_1",
  170. "2096055411145729_1",
  171. "2096055411194881_1",
  172. "2096055411274753_1",
  173. "2096055411319809_1"
  174. ];
  175. $dataFromGetRequest = $this->apiService->postPointRealData($this->apiUrl, $keys);
  176. if($dataFromGetRequest['data'] == 0) {
  177. $msg = $dataFromGetRequest['Message'];
  178. return $this->error(-1, $msg);
  179. }
  180. $baseData = $dataFromGetRequest['data'];
  181. $support=[];
  182. for ($i = 0; $i < count($keys); $i++) {
  183. $key = $keys[$i];
  184. $support[]=[
  185. "key"=>$key,
  186. "name"=>($i+1)."号立柱压力",
  187. "unit"=>"Mpa",
  188. "val"=> $baseData[$key] ?? 0,
  189. ];
  190. }
  191. $data["sys_point"]=[
  192. "support"=>$support
  193. ];
  194. return json_encode($data);
  195. }
  196. /*
  197. * 东井架空乘人器
  198. * */
  199. public function getEastJKCRQList() {
  200. $keys=[
  201. "2008884686232577_1", // 行人斜井
  202. "2008885028150273_1", // 行人斜井井底
  203. "2008885030757377_1", // 行人斜井井口
  204. "2008885029561345_1", // 行人斜井258米
  205. "2008885028895745_1", // 行人斜井100米
  206. "2008885029458945_1", // 行人斜井538米
  207. "2008885027279873_1", // 985行人通路
  208. "2046720712072193_2", // 架空乘人车_机头越位
  209. "2046720712125441_2", // 架空乘人车_机尾越位
  210. "2046720711785473_2", // 架空乘人车_运行欠速
  211. "2046720711762945_2", // 架空乘人车_运行超速
  212. "2046720711808001_2", // 架空乘人车_打滑保护
  213. "2046720712238081_2", // 架空乘人车_尾轮断轴
  214. "2046720712262657_2", // 架空乘人车_重锤落地
  215. "2046720712045569_2", // 架空乘人车_强制解锁
  216. "2046720711631873_2", // 架空乘人车_绞车互锁
  217. "2046720711687169_2", // 架空乘人车_电机超温
  218. "2046720714204161_1", // 架空乘人车_急停数显
  219. "2046720714243073_1", // 架空乘人车_掉绳数显
  220. "2046720712291329_2", // 架空乘人车_绳张紧
  221. "2046720711549953_2", // 架空乘人车_主电机断电
  222. "2046720711603201_2", // 架空乘人车_驱动轮断轴
  223. "2046720712600577_2", // 架空乘人车_安全闸电机
  224. "2046720712576001_2", // 架空乘人车_工作闸电机
  225. "2046720711902209_2", // 架空乘人车_减速机超温
  226. "2046720711998465_2", // 架空乘人车_液压站超温
  227. "2046720711877633_2", // 架空乘人车_变频器故障
  228. "2046720712178689_2", // 架空乘人车_张紧小车前限位
  229. "2046720712205313_2", // 架空乘人车_张紧小车后限位
  230. "2046720711949313_2", // 架空乘人车_液压站油位过低
  231. "2046720711973889_2", // 架空乘人车_电机振幅超标
  232. "2046720712098817_2", // 架空乘人车_机头吊椅间距
  233. "2046720712152065_2", // 架空乘人车_机尾吊椅间距
  234. "2046720712020993_2", // 架空乘人车_电机轴承超温
  235. "2046720711924737_2", // 架空乘人车_减速机油位过低
  236. "2046720712524801_2", // 架空乘人车_系统运行中
  237. "2046720713337857_1", // 架空乘人车_电机温度
  238. "2046720712907777_1", // 架空乘人车_运行速度显示
  239. "2046720713450497_1", // 架空乘人车_减速机油温
  240. "2046720714279937_1", // 架空乘人车_启动倒计时数显
  241. "2046720713520129_1", // 架空乘人车_液压站油温
  242. "2046720714318849_1", // 架空乘人车_间断倒计时数显
  243. "2046720713300993_1" // 架空乘人车_液压站压力
  244. ];
  245. // 获取点位数据
  246. $baseData = $this->apiService->postPointRealData($this->apiUrl, $keys)['data'];
  247. $stateData = [];
  248. $stateInfoData = [];
  249. foreach ($baseData as $key => $val) {
  250. $stateInfoData[$key] = $baseData[$key] == 0 ? "关闭" : "开启";
  251. if ($val == -9999) {
  252. $baseData[$key] = '未知';
  253. $stateData[$key] = 0;
  254. $stateInfoData[$key] = "未知";
  255. } else {
  256. $stateData[$key] = $baseData[$key];
  257. }
  258. }
  259. $info = [
  260. "info"=>[
  261. [
  262. "label"=>"行人斜井",
  263. "value"=> $stateData['2008884686232577_1'] ?? 0 . "人",
  264. ],
  265. [
  266. "label"=>"行人斜井井底",
  267. "value"=> $stateData['2008885028150273_1'] ?? 0 . "人",
  268. ],
  269. [
  270. "label"=>"行人斜井井口",
  271. "value"=> $stateData['2008885030757377_1'] ?? 0 . "人",
  272. ],
  273. [
  274. "label"=>"行人斜井258米",
  275. "value"=> $stateData['2008885029561345_1'] ?? 0 . "人",
  276. ],
  277. [
  278. "label"=>"22采区985行人通道",
  279. "value"=> $stateData['2008885027279873_1'] ?? 0 . "人",
  280. ],
  281. [
  282. "label"=>"行人斜井100米",
  283. "value"=> $stateData['2008885028895745_1'] ?? 0 . "人",
  284. ],
  285. [
  286. "label"=>"行人斜井538米",
  287. "value"=> $stateData['2008885029458945_1'] ?? 0 . "人",
  288. ]
  289. ],
  290. "state"=>[
  291. [
  292. "label" => "机头越位",
  293. "state" => $stateData['2046720712072193_2'] ?? 0,
  294. ],
  295. [
  296. "label" => "机尾越位",
  297. "state" => $stateData['2046720712125441_2'] ?? 0,
  298. ],
  299. [
  300. "label" => "运行欠速",
  301. "state" => $stateData['2046720711785473_2'] ?? 0,
  302. ],
  303. [
  304. "label" => "运行超速",
  305. "state" => $stateData['2046720711762945_2'] ?? 0,
  306. ],
  307. [
  308. "label" => "运行打滑",
  309. "state" => $stateData['2046720711808001_2'] ?? 0,
  310. ],
  311. [
  312. "label" => "尾轮断轴",
  313. "state" => $stateData['2046720712238081_2'] ?? 0,
  314. ],
  315. [
  316. "label" => "重锤落地",
  317. "state" => $stateData['2046720712262657_2'] ?? 0,
  318. ],
  319. [
  320. "label" => "强制解锁",
  321. "state" => $stateData['2046720712045569_2'] ?? 0,
  322. ],
  323. [
  324. "label" => "绞车互锁",
  325. "state" => $stateData['2046720711631873_2'] ?? 0,
  326. ],
  327. [
  328. "label" => "电机超温",
  329. "state" => $stateData['2046720711687169_2'] ?? 0,
  330. ],
  331. [
  332. "label" => "绳张紧保护",
  333. "state" => $stateData['2046720712291329_2'] ?? 0,
  334. ],
  335. [
  336. "label" => "主电机断电",
  337. "state" => ($stateData['2046720711549953_2'] ?? 0) == 0 ? 1 : 0,
  338. ],
  339. [
  340. "label" => "驱动轮断轴",
  341. "state" => ($stateData['2046720711603201_2'] ?? 0) == 0 ? 1 : 0,
  342. ],
  343. [
  344. "label" => "安全闸电机",
  345. "state" => ($stateData['2046720712600577_2'] ?? 0) == 0 ? 1 : 0,
  346. ],
  347. [
  348. "label" => "工作闸电机",
  349. "state" => ($stateData['2046720712576001_2'] ?? 0) == 0 ? 1 : 0,
  350. ],
  351. [
  352. "label" => "减速机超温",
  353. "state" => $stateData['2046720711902209_2'] ?? 0,
  354. ],
  355. [
  356. "label" => "液压站超温",
  357. "state" => $stateData['2046720711998465_2'] ?? 0,
  358. ],
  359. [
  360. "label" => "变频器故障",
  361. "state" => $stateData['2046720711877633_2'] ?? 0,
  362. ],
  363. [
  364. "label" => "张紧小车前限位",
  365. "state" => $stateData['2046720712178689_2'] ?? 0,
  366. ],
  367. [
  368. "label" => "张紧小车后限位",
  369. "state" => $stateData['2046720712205313_2'] ?? 0,
  370. ],
  371. [
  372. "label" => "液压站油位过低",
  373. "state" => $stateData['2046720711949313_2'] ?? 0,
  374. ],
  375. [
  376. "label" => "电机振幅超标",
  377. "state" => $stateData['2046720711973889_2'] ?? 0,
  378. ],
  379. [
  380. "label" => "机头吊椅间距",
  381. "state" => $stateData['2046720712098817_2'] ?? 0,
  382. ],
  383. [
  384. "label" => "机尾吊椅间距",
  385. "state" => $stateData['2046720712152065_2'] ?? 0,
  386. ],
  387. [
  388. "label" => "电机轴承超温",
  389. "state" => $stateData['2046720712020993_2'] ?? 0,
  390. ],
  391. [
  392. "label" => "减速机油位过低",
  393. "state" => $stateData['2046720711924737_2'] ?? 0,
  394. ],
  395. ],
  396. "canshu"=>[
  397. "data"=>[
  398. [
  399. "label" => "沿线急停",
  400. "value" => $stateData['2046720714204161_1'] ?? 0,
  401. ],
  402. [
  403. "label" => "沿线掉绳",
  404. "value" => $stateData['2046720714243073_1'] ?? 0,
  405. ],
  406. [
  407. "label" => "运行状态",
  408. "value" => $stateData['2046720712524801_2'] ?? 0 == 1 ? "运行" : "停止",
  409. ],
  410. [
  411. "label" => "电机温度",
  412. "value" => $stateData['2046720713337857_1'] ?? 0 . "℃",
  413. ],
  414. [
  415. "label" => "运行速度显示",
  416. "value" => $stateData['2046720712907777_1'] ?? 0 . "m/s",
  417. ],
  418. [
  419. "label" => "减速机油温",
  420. "value" => $stateData['2046720713450497_1'] ?? 0 . "℃",
  421. ],
  422. [
  423. "label" => "启动倒计时数显",
  424. "value" => $stateData['2046720714279937_1'] ?? 0 . "s",
  425. ],
  426. [
  427. "label" => "液压站油温",
  428. "value" => $stateData['2046720713520129_1'] ?? 0 . "℃",
  429. ],
  430. [
  431. "label" => "运行倒计时",
  432. "value" => $stateData['2046720714318849_1'] ?? 0 . "s",
  433. ],
  434. [
  435. "label" => "液压站压力",
  436. "value" => $stateData['2046720713300993_1'] ?? 0 . "Mpa",
  437. ]
  438. ],
  439. ],
  440. ];
  441. return json_encode($info);
  442. }
  443. /*
  444. * 东井架空乘人器
  445. * */
  446. public function getZNZJList() {
  447. $keys=[
  448. "2104319665503233_1", // "机身俯仰角度"
  449. "2104319665583105_1", // "机身水平角度"
  450. "2104319665402881_1", // "机身翻滚角度"
  451. "2104319665830913_1", // "掘进机行走速度"
  452. "2104319665880065_1", // "母线电压"
  453. "2104319665236993_1", // "回转角度"
  454. "2104319666027521_1" // "升降角度"
  455. ];
  456. // 获取点位数据
  457. $baseData = $this->apiService->postPointRealData($this->apiUrl, $keys)['data'];
  458. $stateData = [];
  459. $stateInfoData = [];
  460. foreach ($baseData as $key => $val) {
  461. $stateInfoData[$key] = $baseData[$key] == 0 ? "关闭" : "开启";
  462. if ($val == -9999) {
  463. $baseData[$key] = '未知';
  464. $stateData[$key] = 0;
  465. $stateInfoData[$key] = "未知";
  466. } else {
  467. $stateData[$key] = $baseData[$key];
  468. }
  469. }
  470. $info = [
  471. "info" => [
  472. [
  473. "label" => "工作面名称",
  474. "value" => "150201工作面胶带巷"
  475. ],
  476. [
  477. "label" => "施工单位",
  478. "value" => "综掘二队"
  479. ],
  480. [
  481. "label" => "生产组织模式",
  482. "value" => "二掘一修"
  483. ],
  484. [
  485. "label" => "综掘机型号",
  486. "value" => "EBZ200M-2A"
  487. ],
  488. [
  489. "label" => "截割功率",
  490. "value" => "200Kw"
  491. ],
  492. [
  493. "label" => "巷道长度",
  494. "value" => "2667"
  495. ],
  496. [
  497. "label" => "掘进断面",
  498. "value" => "23.31m²"
  499. ],
  500. [
  501. "label" => "永久支护工艺",
  502. "value" => "锚、网、索、W钢带桁架联合支护"
  503. ],
  504. [
  505. "label" => "胶带机型号",
  506. "value" => "DSJ100/40/160胶带输送机"
  507. ],
  508. [
  509. "label" => "胶带机控制方式",
  510. "value" => "集控"
  511. ]
  512. ],
  513. "juejinji" => [
  514. "data" => [
  515. [
  516. "label" => "未掘进距离",
  517. "value" => "324.8m"
  518. ],
  519. [
  520. "label" => "已掘进距离",
  521. "value" => "2344.2m"
  522. ]
  523. ]
  524. ],
  525. "tab_info" => [
  526. [
  527. "title" => "机身姿态",
  528. "table" => [
  529. "thead" => ["参数名称", "值"],
  530. "tbody" => [
  531. [
  532. "label" => "倾仰角度(°)",
  533. "value" => $baseData['2104319665503233_1'] ?? 0,
  534. ],
  535. [
  536. "label" => "水平角度(°)",
  537. "value" => $baseData['2104319665583105_1'] ?? 0,
  538. ],
  539. [
  540. "label" => "翻滚角度(°)",
  541. "value" => $baseData['2104319665402881_1'] ?? 0,
  542. ],
  543. [
  544. "label" => "掘进机行走速度(mm/s)",
  545. "value" => $baseData['2104319665830913_1'] ?? 0,
  546. ]
  547. ]
  548. ]
  549. ],
  550. [
  551. "title" => "旋臂姿态",
  552. "table" => [
  553. "thead" => ["参数名称", "值"],
  554. "tbody" => [
  555. [
  556. "label" => "回旋角度(°)",
  557. "value" => $baseData['2104319665236993_1'] ?? 0,
  558. ],
  559. [
  560. "label" => "升降角度(°)",
  561. "value" => $baseData['2104319666027521_1'] ?? 0,
  562. ]
  563. ]
  564. ]
  565. ],
  566. [
  567. "title" => "输入电压",
  568. "table" => [
  569. "thead" => ["参数名称", "值"],
  570. "tbody" => [
  571. [
  572. "label" => "弦线电压(V)",
  573. "value" => $baseData['2104319665880065_1'] ?? 0,
  574. ]
  575. ]
  576. ]
  577. ]
  578. ]
  579. ];
  580. return json_encode($info);
  581. }
  582. /**
  583. * 扬尘监测
  584. */
  585. public function getDustMonitorList() {
  586. $url = "http://7.250.4.3:4200/Tripartite/getRealData";
  587. // 获取点位数据
  588. $data = $this->apiService->getApiData($url);
  589. // if ($data)
  590. // Decode the original JSON data
  591. // $data = json_decode($data, true);
  592. // Initialize the output array
  593. $output = ['list' => []];
  594. if (count($data['list']) == 0) {
  595. $data = [
  596. "list"=>[
  597. [
  598. "title"=>"扬尘设备01北环线",
  599. "data"=>[
  600. [
  601. "label"=>"PM2.5",
  602. "value"=>"##"
  603. ],
  604. [
  605. "label"=>"噪声",
  606. "value"=>"##"
  607. ],
  608. [
  609. "label"=>"PM10",
  610. "value"=>"##³"
  611. ],
  612. [
  613. "label"=>"温度",
  614. "value"=>"##"
  615. ],
  616. [
  617. "label"=>"大气压",
  618. "value"=>"##"
  619. ],
  620. [
  621. "label"=>"风向",
  622. "value"=>"##"
  623. ],
  624. [
  625. "label"=>"TSP",
  626. "value"=>"##"
  627. ],
  628. [
  629. "label"=>"风力",
  630. "value"=>"##"
  631. ],
  632. [
  633. "label"=>"湿度",
  634. "value"=>"##"
  635. ],
  636. [
  637. "label"=>"风速",
  638. "value"=>"##"
  639. ],
  640. ]
  641. ],
  642. [
  643. "title"=>"扬尘设备02西环线",
  644. "data"=>[
  645. [
  646. "label"=>"PM2.5",
  647. "value"=>"##"
  648. ],
  649. [
  650. "label"=>"噪声",
  651. "value"=>"##"
  652. ],
  653. [
  654. "label"=>"PM10",
  655. "value"=>"##³"
  656. ],
  657. [
  658. "label"=>"温度",
  659. "value"=>"##"
  660. ],
  661. [
  662. "label"=>"大气压",
  663. "value"=>"##"
  664. ],
  665. [
  666. "label"=>"风向",
  667. "value"=>"##"
  668. ],
  669. [
  670. "label"=>"TSP",
  671. "value"=>"##"
  672. ],
  673. [
  674. "label"=>"风力",
  675. "value"=>"##"
  676. ],
  677. [
  678. "label"=>"湿度",
  679. "value"=>"##"
  680. ],
  681. [
  682. "label"=>"风速",
  683. "value"=>"##"
  684. ],
  685. ]
  686. ],
  687. [
  688. "title"=>"扬尘设备03办公楼",
  689. "data"=>[
  690. [
  691. "label"=>"PM2.5",
  692. "value"=>"##"
  693. ],
  694. [
  695. "label"=>"噪声",
  696. "value"=>"##"
  697. ],
  698. [
  699. "label"=>"PM10",
  700. "value"=>"##³"
  701. ],
  702. [
  703. "label"=>"温度",
  704. "value"=>"##"
  705. ],
  706. [
  707. "label"=>"大气压",
  708. "value"=>"##"
  709. ],
  710. [
  711. "label"=>"风向",
  712. "value"=>"##"
  713. ],
  714. [
  715. "label"=>"TSP",
  716. "value"=>"##"
  717. ],
  718. [
  719. "label"=>"风力",
  720. "value"=>"##"
  721. ],
  722. [
  723. "label"=>"湿度",
  724. "value"=>"##"
  725. ],
  726. [
  727. "label"=>"风速",
  728. "value"=>"##"
  729. ],
  730. ]
  731. ],
  732. [
  733. "title"=>"扬尘设备04领储煤场",
  734. "data"=>[
  735. [
  736. "label"=>"PM2.5",
  737. "value"=>"##"
  738. ],
  739. [
  740. "label"=>"噪声",
  741. "value"=>"##"
  742. ],
  743. [
  744. "label"=>"PM10",
  745. "value"=>"##³"
  746. ],
  747. [
  748. "label"=>"温度",
  749. "value"=>"##"
  750. ],
  751. [
  752. "label"=>"大气压",
  753. "value"=>"##"
  754. ],
  755. [
  756. "label"=>"风向",
  757. "value"=>"##"
  758. ],
  759. [
  760. "label"=>"TSP",
  761. "value"=>"##"
  762. ],
  763. [
  764. "label"=>"风力",
  765. "value"=>"##"
  766. ],
  767. [
  768. "label"=>"湿度",
  769. "value"=>"##"
  770. ],
  771. [
  772. "label"=>"风速",
  773. "value"=>"##"
  774. ],
  775. ]
  776. ],
  777. [
  778. "title"=>"扬尘设备05五分区",
  779. "data"=>[
  780. [
  781. "label"=>"PM2.5",
  782. "value"=>"##"
  783. ],
  784. [
  785. "label"=>"噪声",
  786. "value"=>"##"
  787. ],
  788. [
  789. "label"=>"PM10",
  790. "value"=>"##³"
  791. ],
  792. [
  793. "label"=>"温度",
  794. "value"=>"##"
  795. ],
  796. [
  797. "label"=>"大气压",
  798. "value"=>"##"
  799. ],
  800. [
  801. "label"=>"风向",
  802. "value"=>"##"
  803. ],
  804. [
  805. "label"=>"TSP",
  806. "value"=>"##"
  807. ],
  808. [
  809. "label"=>"风力",
  810. "value"=>"##"
  811. ],
  812. [
  813. "label"=>"湿度",
  814. "value"=>"##"
  815. ],
  816. [
  817. "label"=>"风速",
  818. "value"=>"##"
  819. ],
  820. ]
  821. ],
  822. ]
  823. ];
  824. return $data;
  825. }
  826. // 自定义设备标题
  827. $titles = [
  828. '扬尘设备01北环线',
  829. '扬尘设备02西环线',
  830. '扬尘设备03办公楼',
  831. '扬尘设备04储煤场',
  832. '扬尘设备05五分区'
  833. ];
  834. // Process each device's data
  835. foreach ($data['list'] as $index => $device) {
  836. $title = $titles[$index];
  837. $deviceData = [];
  838. foreach ($device['value'] as $sensor) {
  839. $label = $sensor['name'];
  840. $value = $sensor['value'] . $sensor['unit'];
  841. $deviceData[] = ['label' => $label, 'value' => $value];
  842. }
  843. $output['list'][] = ['title' => $title, 'data' => $deviceData];
  844. }
  845. // Output the resulting JSON
  846. return json_encode($output, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
  847. }
  848. /**
  849. * 主运输
  850. */
  851. public function getMainTransportList() {
  852. $keys=[
  853. "2104319665503233_1", // 机身俯仰角度
  854. "2104319665583105_1", // 机身水平角度
  855. "2104319665402881_1", // 机身翻滚角度
  856. "2104319665830913_1", // 掘进机行走速度
  857. "2104319665880065_1", // 母线电压
  858. "2104319665236993_1", // 回转角度
  859. "2104319666027521_1" // 升降角度
  860. ];
  861. // 获取点位数据
  862. $baseData = $this->apiService->postPointRealData($this->apiUrl, $keys)['data'];
  863. $info = [
  864. "info"=>[
  865. [
  866. "label"=>"工作面名称",
  867. "value"=>"150201工作面胶带巷"
  868. ],
  869. [
  870. "label"=>"施工单位",
  871. "value"=>"综掘二队"
  872. ],
  873. [
  874. "label"=>"生产组织模式",
  875. "value"=>"两掘一修"
  876. ],
  877. [
  878. "label"=>"综掘机型号",
  879. "value"=>"EBZ200M-2A"
  880. ],
  881. [
  882. "label"=>"载割功率",
  883. "value"=>"200KW"
  884. ],
  885. [
  886. "label"=>"巷道长度",
  887. "value"=>"2667"
  888. ],
  889. [
  890. "label"=>"掘进断面",
  891. "value"=>"23.31㎡"
  892. ],
  893. [
  894. "label"=>"永久支护工艺",
  895. "value"=>"锚、网、索、W钢桁联合支护"
  896. ],
  897. [
  898. "label"=>"胶带机型号",
  899. "value"=>"DSJ100/40/160胶带输送机"
  900. ],
  901. [
  902. "label"=>"胶带机控制方式",
  903. "value"=>"集控"
  904. ],
  905. ],
  906. "juejinji"=>[
  907. "data"=>[
  908. [
  909. "label"=>"未掘进距离",
  910. "value"=>"324.8m"
  911. ],
  912. [
  913. "label"=>"已掘进距离",
  914. "value"=>"2344.2m"
  915. ],
  916. ]
  917. ],
  918. "tab_info"=>[
  919. [
  920. "title"=>"机身姿态",
  921. "table"=>[
  922. "thead"=>["参数名称", "值"],
  923. "tbody"=>[
  924. [
  925. "label"=>"倾仰角度(°)",
  926. "value"=>$baseData['2104319665503233_1'] ?? 0
  927. ],
  928. [
  929. "label"=>"水平角度(°)",
  930. "value"=>$baseData['2104319665583105_1'] ?? 0
  931. ],
  932. [
  933. "label"=>"翻滚角度(°)",
  934. "value"=>$baseData['2104319665402881_1'] ?? 0
  935. ],
  936. ]
  937. ]
  938. ],
  939. [
  940. "title"=>"旋臂姿态",
  941. "table"=>[
  942. "thead"=>["参数名称", "值"],
  943. "tbody"=>[
  944. [
  945. "label"=>"回旋角度(°)",
  946. "value"=>$baseData['2104319665236993_1'] ?? 0
  947. ],
  948. [
  949. "label"=>"升降角度(°)",
  950. "value"=>$baseData['2104319666027521_1'] ?? 0
  951. ],
  952. ]
  953. ]
  954. ],
  955. [
  956. "title"=>"输入电压",
  957. "table"=>[
  958. "thead"=>["参数名称", "值"],
  959. "tbody"=>[
  960. [
  961. "label"=>"母线电压(V)",
  962. "value"=>$baseData['2104319665880065_1'] ?? 0
  963. ],
  964. ]
  965. ]
  966. ],
  967. ]
  968. ];
  969. return json_encode($info);
  970. }
  971. public function getBaseDataArr($tb_name, $data_key) {
  972. $point_id = "'" . implode("','", $data_key) . "'";
  973. // 构建 SQL 查询
  974. $sqlStr = "select `point_id`, `value` from $tb_name where `point_id` in ($point_id)";
  975. $res = $this->executeSql($sqlStr, 1);
  976. $baseData=[];
  977. for ($i = 0; $i < count($res); $i++) {
  978. $key=$res[$i]->point_id;
  979. $val=$res[$i]->value;
  980. $baseData[$key]=$val;
  981. }
  982. return $baseData;
  983. }
  984. public function executeSql($sqlStr, $modelname = -1) {
  985. try{
  986. $opcDB = DB::connection($this->db_name);
  987. $dbResult = $opcDB->select($sqlStr);
  988. return $dbResult;
  989. } catch (\Exception $e) {
  990. switch ($modelname) {
  991. case 1:
  992. return $this->error(-1, '东井通风');
  993. case 2:
  994. return $this->error(-1, '统计日超速出错!');
  995. case 4:
  996. return $this->error(-1, '获取详细列表出错!');
  997. default:
  998. return $this->error(-1, '未知错误!');
  999. }
  1000. }
  1001. }
  1002. }