ZQDcsSupportController.php 37 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969
  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. // if ($data)
  494. // Decode the original JSON data
  495. // $data = json_decode($data, true);
  496. // Initialize the output array
  497. $output = ['list' => []];
  498. if (count($output) == 0) {
  499. $data = [
  500. "list"=>[
  501. [
  502. "title"=>"扬尘设备01北环线",
  503. "data"=>[
  504. [
  505. "label"=>"PM2.5",
  506. "value"=>"5 ug/m³"
  507. ],
  508. [
  509. "label"=>"噪声",
  510. "value"=>"64.8 db"
  511. ],
  512. [
  513. "label"=>"PM10",
  514. "value"=>"5 ug/m³"
  515. ],
  516. [
  517. "label"=>"温度",
  518. "value"=>"25.2 ℃"
  519. ],
  520. [
  521. "label"=>"大气压",
  522. "value"=>"86.2 Kpa"
  523. ],
  524. [
  525. "label"=>"风向",
  526. "value"=>"0 °"
  527. ],
  528. [
  529. "label"=>"TSP",
  530. "value"=>"5 ug/m³"
  531. ],
  532. [
  533. "label"=>"风力",
  534. "value"=>"5 级"
  535. ],
  536. [
  537. "label"=>"湿度",
  538. "value"=>"25.5 %RH"
  539. ],
  540. [
  541. "label"=>"风速",
  542. "value"=>"8.2 m/s"
  543. ],
  544. ]
  545. ],
  546. [
  547. "title"=>"扬尘设备02西环线",
  548. "data"=>[
  549. [
  550. "label"=>"PM2.5",
  551. "value"=>"451 ug/m³"
  552. ],
  553. [
  554. "label"=>"噪声",
  555. "value"=>"57.8 db"
  556. ],
  557. [
  558. "label"=>"PM10",
  559. "value"=>"2570 ug/m³"
  560. ],
  561. [
  562. "label"=>"温度",
  563. "value"=>"26 ℃"
  564. ],
  565. [
  566. "label"=>"大气压",
  567. "value"=>"86.3 Kpa"
  568. ],
  569. [
  570. "label"=>"风向",
  571. "value"=>"270 °"
  572. ],
  573. [
  574. "label"=>"TSP",
  575. "value"=>"3486 ug/m³"
  576. ],
  577. [
  578. "label"=>"风力",
  579. "value"=>"3 级"
  580. ],
  581. [
  582. "label"=>"湿度",
  583. "value"=>"25.2 %RH"
  584. ],
  585. [
  586. "label"=>"风速",
  587. "value"=>"4.3 m/s"
  588. ],
  589. ]
  590. ],
  591. [
  592. "title"=>"扬尘设备03办公楼",
  593. "data"=>[
  594. [
  595. "label"=>"PM2.5",
  596. "value"=>"355 ug/m³"
  597. ],
  598. [
  599. "label"=>"噪声",
  600. "value"=>"59.3 db"
  601. ],
  602. [
  603. "label"=>"PM10",
  604. "value"=>"1591 ug/m³"
  605. ],
  606. [
  607. "label"=>"温度",
  608. "value"=>"27.9 ℃"
  609. ],
  610. [
  611. "label"=>"大气压",
  612. "value"=>"86.3 Kpa"
  613. ],
  614. [
  615. "label"=>"风向",
  616. "value"=>"135 °"
  617. ],
  618. [
  619. "label"=>"TSP",
  620. "value"=>"1857 ug/m³"
  621. ],
  622. [
  623. "label"=>"风力",
  624. "value"=>"2 级"
  625. ],
  626. [
  627. "label"=>"湿度",
  628. "value"=>"23.1 %RH"
  629. ],
  630. [
  631. "label"=>"风速",
  632. "value"=>"2.2 m/s"
  633. ],
  634. ]
  635. ],
  636. [
  637. "title"=>"扬尘设备04领储煤场",
  638. "data"=>[
  639. [
  640. "label"=>"PM2.5",
  641. "value"=>"179 ug/m³"
  642. ],
  643. [
  644. "label"=>"噪声",
  645. "value"=>"56.8 db"
  646. ],
  647. [
  648. "label"=>"PM10",
  649. "value"=>"811 ug/m³"
  650. ],
  651. [
  652. "label"=>"温度",
  653. "value"=>"26.1 ℃"
  654. ],
  655. [
  656. "label"=>"大气压",
  657. "value"=>"86.2 Kpa"
  658. ],
  659. [
  660. "label"=>"风向",
  661. "value"=>"90 °"
  662. ],
  663. [
  664. "label"=>"TSP",
  665. "value"=>"894 ug/m³"
  666. ],
  667. [
  668. "label"=>"风力",
  669. "value"=>"4 级"
  670. ],
  671. [
  672. "label"=>"湿度",
  673. "value"=>"24.7 %RH"
  674. ],
  675. [
  676. "label"=>"风速",
  677. "value"=>"5.5 m/s"
  678. ],
  679. ]
  680. ],
  681. [
  682. "title"=>"扬尘设备05五分区",
  683. "data"=>[
  684. [
  685. "label"=>"PM2.5",
  686. "value"=>"17 ug/m³"
  687. ],
  688. [
  689. "label"=>"噪声",
  690. "value"=>"47.2 db"
  691. ],
  692. [
  693. "label"=>"PM10",
  694. "value"=>"14450 ug/m³"
  695. ],
  696. [
  697. "label"=>"温度",
  698. "value"=>"26.3 ℃"
  699. ],
  700. [
  701. "label"=>"大气压",
  702. "value"=>"86.4 Kpa"
  703. ],
  704. [
  705. "label"=>"风向",
  706. "value"=>"0 °"
  707. ],
  708. [
  709. "label"=>"TSP",
  710. "value"=>"45712 ug/m³"
  711. ],
  712. [
  713. "label"=>"风力",
  714. "value"=>"2 级"
  715. ],
  716. [
  717. "label"=>"湿度",
  718. "value"=>"27.5 %RH"
  719. ],
  720. [
  721. "label"=>"风速",
  722. "value"=>"2.2 m/s"
  723. ],
  724. ]
  725. ],
  726. ]
  727. ];
  728. return $data;
  729. }
  730. // 自定义设备标题
  731. $titles = [
  732. '扬尘设备01北环线',
  733. '扬尘设备02西环线',
  734. '扬尘设备03办公楼',
  735. '扬尘设备04储煤场',
  736. '扬尘设备05五分区'
  737. ];
  738. // Process each device's data
  739. foreach ($data['list'] as $index => $device) {
  740. $title = $titles[$index];
  741. $deviceData = [];
  742. foreach ($device['value'] as $sensor) {
  743. $label = $sensor['name'];
  744. $value = $sensor['value'] . $sensor['unit'];
  745. $deviceData[] = ['label' => $label, 'value' => $value];
  746. }
  747. $output['list'][] = ['title' => $title, 'data' => $deviceData];
  748. }
  749. // Output the resulting JSON
  750. return json_encode($output, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
  751. }
  752. /**
  753. * 主运输
  754. */
  755. public function getMainTransportList() {
  756. $keys=[
  757. "2104319665503233_1", // 机身俯仰角度
  758. "2104319665583105_1", // 机身水平角度
  759. "2104319665402881_1", // 机身翻滚角度
  760. "2104319665830913_1", // 掘进机行走速度
  761. "2104319665880065_1", // 母线电压
  762. "2104319665236993_1", // 回转角度
  763. "2104319666027521_1" // 升降角度
  764. ];
  765. // 获取点位数据
  766. $baseData = $this->apiService->postPointRealData($this->apiUrl, $keys)['data'];
  767. $info = [
  768. "info"=>[
  769. [
  770. "label"=>"工作面名称",
  771. "value"=>"150201工作面胶带巷"
  772. ],
  773. [
  774. "label"=>"施工单位",
  775. "value"=>"综掘二队"
  776. ],
  777. [
  778. "label"=>"生产组织模式",
  779. "value"=>"两掘一修"
  780. ],
  781. [
  782. "label"=>"综掘机型号",
  783. "value"=>"EBZ200M-2A"
  784. ],
  785. [
  786. "label"=>"载割功率",
  787. "value"=>"200KW"
  788. ],
  789. [
  790. "label"=>"巷道长度",
  791. "value"=>"2667"
  792. ],
  793. [
  794. "label"=>"掘进断面",
  795. "value"=>"23.31㎡"
  796. ],
  797. [
  798. "label"=>"永久支护工艺",
  799. "value"=>"锚、网、索、W钢桁联合支护"
  800. ],
  801. [
  802. "label"=>"胶带机型号",
  803. "value"=>"DSJ100/40/160胶带输送机"
  804. ],
  805. [
  806. "label"=>"胶带机控制方式",
  807. "value"=>"集控"
  808. ],
  809. ],
  810. "juejinji"=>[
  811. "data"=>[
  812. [
  813. "label"=>"未掘进距离",
  814. "value"=>"324.8m"
  815. ],
  816. [
  817. "label"=>"已掘进距离",
  818. "value"=>"2344.2m"
  819. ],
  820. ]
  821. ],
  822. "tab_info"=>[
  823. [
  824. "title"=>"机身姿态",
  825. "table"=>[
  826. "thead"=>["参数名称", "值"],
  827. "tbody"=>[
  828. [
  829. "label"=>"倾仰角度(°)",
  830. "value"=>$baseData['2104319665503233_1'] ?? 0
  831. ],
  832. [
  833. "label"=>"水平角度(°)",
  834. "value"=>$baseData['2104319665583105_1'] ?? 0
  835. ],
  836. [
  837. "label"=>"翻滚角度(°)",
  838. "value"=>$baseData['2104319665402881_1'] ?? 0
  839. ],
  840. ]
  841. ]
  842. ],
  843. [
  844. "title"=>"旋臂姿态",
  845. "table"=>[
  846. "thead"=>["参数名称", "值"],
  847. "tbody"=>[
  848. [
  849. "label"=>"回旋角度(°)",
  850. "value"=>$baseData['2104319665236993_1'] ?? 0
  851. ],
  852. [
  853. "label"=>"升降角度(°)",
  854. "value"=>$baseData['2104319666027521_1'] ?? 0
  855. ],
  856. ]
  857. ]
  858. ],
  859. [
  860. "title"=>"输入电压",
  861. "table"=>[
  862. "thead"=>["参数名称", "值"],
  863. "tbody"=>[
  864. [
  865. "label"=>"母线电压(V)",
  866. "value"=>$baseData['2104319665880065_1'] ?? 0
  867. ],
  868. ]
  869. ]
  870. ],
  871. ]
  872. ];
  873. return json_encode($info);
  874. }
  875. public function getBaseDataArr($tb_name, $data_key) {
  876. $point_id = "'" . implode("','", $data_key) . "'";
  877. // 构建 SQL 查询
  878. $sqlStr = "select `point_id`, `value` from $tb_name where `point_id` in ($point_id)";
  879. $res = $this->executeSql($sqlStr, 1);
  880. $baseData=[];
  881. for ($i = 0; $i < count($res); $i++) {
  882. $key=$res[$i]->point_id;
  883. $val=$res[$i]->value;
  884. $baseData[$key]=$val;
  885. }
  886. return $baseData;
  887. }
  888. public function executeSql($sqlStr, $modelname = -1) {
  889. try{
  890. $opcDB = DB::connection($this->db_name);
  891. $dbResult = $opcDB->select($sqlStr);
  892. return $dbResult;
  893. } catch (\Exception $e) {
  894. switch ($modelname) {
  895. case 1:
  896. return $this->error(-1, '东井通风');
  897. case 2:
  898. return $this->error(-1, '统计日超速出错!');
  899. case 4:
  900. return $this->error(-1, '获取详细列表出错!');
  901. default:
  902. return $this->error(-1, '未知错误!');
  903. }
  904. }
  905. }
  906. }