OpcDataController.php 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734
  1. <?php
  2. namespace Modules\OpcData\Http\Controllers\Api;
  3. use Illuminate\Contracts\Support\Renderable;
  4. use Illuminate\Http\Request;
  5. use Illuminate\Http\Response;
  6. use Illuminate\Routing\Controller;
  7. use Illuminate\Support\Facades\DB;
  8. use Modules\OpcData\Entities\OpcDataDict;
  9. use App\Http\Controllers\Api\BaseController;
  10. class OpcDataController extends BaseController
  11. {
  12. protected $opcConf = [
  13. 'ventilation_zb' => 1,
  14. 'ventilation_bb' => 2,
  15. 'pump_zy' => 3,
  16. 'pump_690' => 4,
  17. 'compressed_air' => 5,
  18. 'belt_13' => 6,
  19. 'hoist' => 7
  20. ];
  21. protected $localConf = [
  22. 'jinjiaqu' => [
  23. 'ventilation_zb' => 1, // 中部通风
  24. 'ventilation_bb' => 2, // 北部通风
  25. 'pump_zy' => 3, // 中央水泵房
  26. 'pump_690' => 4, // 690水泵
  27. 'compressed_air' => 5, // 空压机
  28. 'belt_13' => 6, // 13采区运输机
  29. 'hoist' => 7, // 中部副立井提升机
  30. 'hoist_1' => 8, // 13采区提升机
  31. 'hoist_2' => 9, // 北部副斜井
  32. 'belt_2' => 10, // 主斜井胶带运输机
  33. 'boiler' => 11, // 锅炉烟气
  34. 'mancar' => 12, // 13采区架空人车
  35. ],
  36. 'shicaocun' => [
  37. 'fan_1' => 1, // 1号回风(主通风)
  38. 'fan_2' => 2, // 2号回风
  39. 'pump_1' => 3, // 主泵房(900)
  40. 'pump_2' => 4, // 715水泵
  41. 'pump_3' => 5, // 630水泵
  42. 'compressed_air' => 6, // 空压
  43. 'nitrogen' => 7, // 制氮
  44. 'belt_1' => 8, // 22采区
  45. 'belt_2' => 9, // 西翼巷
  46. 'belt_3' => 10, // 集中巷
  47. ],
  48. 'renjiazhuang' => [
  49. 'fan_1' => 1, // 主通风
  50. 'belt_1' => 2, // 主井皮带
  51. 'compressed_air' => 3, // 压风
  52. 'pump_1' => 5, // 850水泵
  53. 'pump_2' => 6, // 650水泵
  54. 'life_water_1' => 7, // 矿区生活水
  55. 'life_water_2' => 8, // 副立井生活水
  56. 'hoist' => 9, // 副立井提升机
  57. 'water_point' => 10, // 供水站子系统
  58. ],
  59. 'qingshuiying' => [
  60. 'fan_1' => 1, // 主通风
  61. 'nitrogen' => 2, // 制氮
  62. 'compressed_air' => 3, // 压风
  63. 'pump_1' => 4, // 主泵房(768)
  64. 'pump_2' => 5, // 11采区水泵房
  65. 'compressed_air_1' => 6, // 副立井压风
  66. 'belt_1' => 7, // 主运输1号皮带
  67. 'life_water_1' => 8, // 生活水
  68. 'life_water_2' => 9, // 生产水
  69. 'life_water_3' => 10, // 消防水
  70. ],
  71. ];
  72. public function getData(Request $request)
  73. {
  74. $getDataType = isset($request->system_type) ? $request->system_type : null; // 获取需要的数据
  75. $getMineCode = isset($request->mine_code) ? $request->mine_code : null; // 矿分类
  76. $dataArr = array(); // 返回数据数组
  77. if (isset($this->localConf[$getMineCode][$getDataType])) {
  78. $opcConnectName = 'mysql_opc_'.$getMineCode;
  79. $groupId = $this->localConf[$getMineCode][$getDataType];
  80. $sqlStr = "
  81. select distinct
  82. t1.dev_type_id,
  83. t1.dev_type_name,
  84. t1.device_num,
  85. t1.device_name,
  86. case when t.val = 'True' then 1
  87. when t.val = 'False' then 2
  88. when t.val = 0 then 0
  89. when t.val * 100 % 1 = 0 then t.val
  90. when t.val * 100 % 1 != 0 then round(t.val, 2)
  91. else t.val
  92. end val,
  93. t1.json_key,
  94. t1.row_number,
  95. t1.unit,
  96. t1.group_name
  97. from equipment t
  98. join tb_dev_dict_list t1 on t.selItem = t1.selItem
  99. where t1.group_id = ".$groupId."
  100. and t1.is_show = 1
  101. order by t1.dev_type_id, t1.row_number, t1.device_num, t1.device_name
  102. ";
  103. // echo($sqlStr);
  104. try{
  105. $opcDB = DB::connection($opcConnectName);
  106. $dbResult = $opcDB->select($sqlStr);
  107. } catch (\Exception $e) {
  108. return $this->error(-1, '数据库配置错误');
  109. }
  110. // echo($sqlStr);
  111. switch($getDataType) {
  112. case 'compressed_air':
  113. case 'compressed_air_1':
  114. // 压风
  115. $result = $this->getCompressedAirData($dbResult, $getMineCode);
  116. break;
  117. case 'nitrogen':
  118. // 制氮
  119. $result = $this->getNitrogenData($dbResult, $getMineCode);
  120. break;
  121. case 'belt_13':
  122. case 'belt_1':
  123. case 'belt_2':
  124. case 'belt_3':
  125. // 运输机系统
  126. $result = $this->getBeltData($dbResult);
  127. break;
  128. case 'hoist':
  129. case 'hoist_1':
  130. case 'hoist_2':
  131. // 提升机
  132. $result = $this->getHoistData($dbResult);
  133. break;
  134. // 金家渠风机
  135. case 'ventilation_zb':
  136. case 'ventilation_bb':
  137. // 中部风机、北部风机
  138. case 'fan_1':
  139. case 'fan_2':
  140. // 通用风机1、2
  141. $result = $this->getFanData($dbResult);
  142. break;
  143. // 金家渠水泵
  144. case 'pump_zy':
  145. case 'pump_690':
  146. // 中央水泵、609水泵
  147. case 'pump_1':
  148. case 'pump_2':
  149. case 'pump_3':
  150. // 通用水泵1、2、3
  151. $result = $this->getPumpData($dbResult);
  152. break;
  153. case 'mancar':
  154. // 人车
  155. $result = $this->getMancarData($dbResult);
  156. break;
  157. case 'boiler':
  158. // 锅炉
  159. $result = $this->getBoilerData($dbResult);
  160. break;
  161. case 'life_water_1';
  162. case 'life_water_2';
  163. $result = $this->getLieWaterData($dbResult);
  164. break;
  165. case 'water_point';
  166. $result = $this->getLieWaterPointData($dbResult);
  167. break;
  168. }
  169. if (isset($result)) {
  170. return response()->json($result);
  171. }
  172. }
  173. return $this->error(-1, '未找到数据');;
  174. }
  175. // 风机
  176. public function getFanData($dbResult) {
  177. $dataArr = array();
  178. foreach ($dbResult as $key => $val) {
  179. $fanNum = $val->dev_type_id - 1; // 风机号
  180. $label = $val->device_name; // 设备名
  181. $devVal = $val->val; // 数值
  182. $jsonKey = $val->json_key; // json键值
  183. $unit = $val->unit; // 单位
  184. $dataArr[$fanNum]['title'] = $val->dev_type_name; // 风机名
  185. $valArr = [
  186. 'label' => $label, // 标题
  187. 'unit' => $unit // 单位
  188. ];
  189. // 状态与value
  190. if($jsonKey == 'state_list') {
  191. $valArr['state'] = $devVal;
  192. } else {
  193. $valArr['value'] = $devVal;
  194. }
  195. // 根据风量判断风机开关
  196. if($label == '风量') {
  197. if ($devVal <= 300 ) {
  198. $dataArr[$fanNum]['state'] = 2;
  199. } else {
  200. $dataArr[$fanNum]['state'] = 1;
  201. }
  202. }
  203. $dataArr[$fanNum][$jsonKey][] = $valArr;
  204. }
  205. return $dataArr;
  206. }
  207. // 水泵
  208. public function getPumpData($dbResult) {
  209. $dataArr = array();
  210. $timeArr = array(); // 用于拼接时分秒
  211. $timeJsonKey; // 记录time字段key名
  212. // dd($dbResult);
  213. foreach ($dbResult as $key => $val) {
  214. $devName = $val->dev_type_name; // 泵名
  215. $rowNumber = $val->row_number; // 排序
  216. $jsonKey = $val->json_key; // json键值
  217. $label = $val->device_name; // 设备名
  218. $devNum = $val->dev_type_id - 1; // 设备号
  219. $unit = $val->unit; // 单位
  220. $devVal = $val->val; // 数值
  221. if ($jsonKey == 'common') {
  222. // 公共数据
  223. $valArr = [
  224. 'label' => $label, // 标题
  225. 'value' => $devVal, // 值
  226. 'unit' => $unit // 单位
  227. ];
  228. $dataArr[$jsonKey][] = $valArr;
  229. } else if ($jsonKey == 'water_pump') {
  230. // 水泵、状态
  231. $dataArr[$jsonKey][$devNum]['label'] = $devName;
  232. if (isset($dataArr[$jsonKey][$devNum]['state'])) {
  233. $state = $dataArr[$jsonKey][$devNum]['state'];
  234. $dataArr[$jsonKey][$devNum]['state'] = max($devVal, $state);
  235. } else {
  236. $dataArr[$jsonKey][$devNum]['state'] = $devVal;
  237. }
  238. // dd($dataArr);
  239. } else if ($jsonKey == 'parameter' && ($unit == 'DD' || $unit == 'HH' || $unit == 'MM' || $unit == 'SS')) {
  240. // 处理时长
  241. $timeArr[$label][$devNum][$unit] = $devVal;
  242. $timeJsonKey = $jsonKey;
  243. } else {
  244. // 水泵参数
  245. $valArr = [
  246. 'label' => $label, // 标题
  247. 'value' => $devVal, // 值
  248. 'unit' => $unit // 单位
  249. ];
  250. $dataArr['water_pump'][$devNum][$jsonKey][] = $valArr;
  251. }
  252. }
  253. foreach ($timeArr as $key => $value) {
  254. for ($i=0; $i < count($value); $i++) {
  255. $day = isset($value[$i]['DD']) ? isset($value[$i]['DD']).'天' : '';
  256. $hour = isset($value[$i]['HH']) ? isset($value[$i]['HH']).'时' : '';
  257. $minute = isset($value[$i]['MM']) ? isset($value[$i]['MM']).'分' : '';
  258. $second = isset($value[$i]['SS']) ? isset($value[$i]['SS']).'秒' : '';
  259. $timeFormatStr = $day.$hour.$minute.$second;
  260. // $timeFormatStr = isset($value[$i]['DD']).'天'.$value[$i]['HH'].'时'.$value[$i]['MM'].'分'.isset($value[$i]['SS']).'秒';
  261. $valArr = [
  262. 'label' => $key, // 标题
  263. 'value' => $timeFormatStr, // 值
  264. 'unit' => '' // 单位
  265. ];
  266. $dataArr['water_pump'][$i][$timeJsonKey][] = $valArr;
  267. }
  268. }
  269. // dd($timeArr);
  270. return $dataArr;
  271. }
  272. // 压风
  273. public function getCompressedAirData($dbResult, $getMineCode) {
  274. $dataArr = array();
  275. $timeArr = array(); // 用于拼接时分秒
  276. $timeJsonKey; // 记录time字段key名
  277. // dd($dbResult);
  278. foreach ($dbResult as $key => $val) {
  279. $devName = $val->dev_type_name; // 泵名
  280. $rowNumber = $val->row_number; // 排序
  281. $jsonKey = $val->json_key; // json键值
  282. $label = $val->device_name; // 设备名
  283. $devNum = $val->dev_type_id - 1; // 设备号
  284. $unit = $val->unit; // 单位
  285. $devVal = $val->val; // 数值
  286. // $valArr[$jsonKey] = $devVal;
  287. if ($jsonKey == 'state') {
  288. $dataArr['compressed_air'][$devNum]['name'] = $devName;
  289. $dataArr['compressed_air'][$devNum]['state'] = $devVal;
  290. } else if ($jsonKey == 'run_parameter') {
  291. $valArr = [
  292. 'label' => $label, // 标题
  293. 'state' => $devVal, // 值
  294. 'unit' => $unit // 单位
  295. // ,'json' => $jsonKey
  296. ];
  297. $dataArr['compressed_air'][$devNum][$jsonKey][] = $valArr;
  298. } else if ($jsonKey == 'common') {
  299. $valArr = [
  300. 'label' => $label, // 标题
  301. 'value' => $devVal, // 值
  302. 'unit' => $unit // 单位
  303. ];
  304. $dataArr[$jsonKey][] = $valArr;
  305. } else if ($jsonKey == 'drain_value_state') {
  306. // 开关状态单独处理
  307. $dataArr['compressed_air'][$devNum][$jsonKey] = $devVal;
  308. if (array_key_exists($jsonKey, $dataArr['compressed_air'][$devNum])) {
  309. $state = $dataArr['compressed_air'][$devNum][$jsonKey];
  310. $dataArr['compressed_air'][$devNum][$jsonKey] = max($devVal, $state);
  311. } else {
  312. $dataArr['compressed_air'][$devNum][$jsonKey] = $devVal;
  313. }
  314. } else if ($jsonKey == 'compressed_air') {
  315. $valArr = [
  316. 'label' => $label, // 标题
  317. 'value' => $devVal, // 值
  318. 'unit' => $unit // 单位
  319. ];
  320. $dataArr['compressed_air'][$devNum][$jsonKey][] = $valArr;
  321. } else if ($jsonKey == 'warn_state') {
  322. if ($getMineCode == 'qingshuiying' && mb_substr($label, -1) == '阀') {
  323. $valArr = [
  324. 'label' => $label, // 标题
  325. 'state' => $devVal > 15 ? 1 : 2, // 值
  326. 'unit' => $unit // 单位
  327. ];
  328. $dataArr['compressed_air'][$devNum][$jsonKey][] = $valArr;
  329. } else {
  330. $valArr = [
  331. 'label' => $label, // 标题
  332. 'state' => $devVal, // 值
  333. 'unit' => $unit // 单位
  334. ];
  335. $dataArr['compressed_air'][$devNum][$jsonKey][] = $valArr;
  336. }
  337. }
  338. }
  339. if (isset($dataArr)) {
  340. return $dataArr;
  341. }
  342. }
  343. public function getBeltData($dbResult) {
  344. // dd($dbResult);
  345. $dataArr = array();
  346. $valDict = array();
  347. foreach ($dbResult as $key => $val) {
  348. $devName = $val->dev_type_name; // 泵名
  349. $rowNumber = $val->row_number; // 排序
  350. $jsonKey = $val->json_key; // json键值
  351. $label = $val->device_name; // 设备名
  352. $devTypeNum = $val->dev_type_id - 1; // 设备号
  353. $devNum = $val->device_num - 1; // 设备号
  354. $unit = $val->unit; // 单位
  355. $devVal = $val->val; // 数值
  356. // $valArr[$jsonKey] = $devVal;
  357. if ($jsonKey == 'common') {
  358. $valArr = [
  359. 'label' => $label, // 标题
  360. 'value' => $devVal, // 值
  361. 'unit' => $unit // 单位
  362. ];
  363. $dataArr[$jsonKey][] = $valArr;
  364. } else if ($jsonKey == 'state') {
  365. $dataArr['state'] = $devVal;
  366. $dataArr['name'] = $label;
  367. } else if ($jsonKey == 'electric_parameter' or $jsonKey == 'converter_parameter') {
  368. $valArr = [
  369. // 'devNum' => $devNum, // 标题
  370. 'value' => $devVal, // 值
  371. 'unit' => $unit // 单位
  372. // ,'label' => $label // 单位
  373. ];
  374. $valDict[$jsonKey][$label][] = $valArr;
  375. } else {
  376. $valArr = [
  377. 'label' => $label, // 标题
  378. 'state' => $devVal, // 值
  379. // 'unit' => $unit // 单位
  380. ];
  381. $dataArr[$jsonKey][] = $valArr;
  382. }
  383. }
  384. foreach ($valDict as $key => $val) {
  385. $i = 0;
  386. foreach ($val as $valKey => $valVal) {
  387. $dataArr[$key][$i]['label'] = $valKey;
  388. $dataArr[$key][$i]['value_list'] = $valVal;
  389. $i++;
  390. }
  391. }
  392. // dd($dataArr);
  393. return $dataArr;
  394. }
  395. public function getHoistData($dbResult) {
  396. $dataArr = array();
  397. $valDict = array();
  398. $state = 2;
  399. $dataArr['hoist'][0]['state'] = $state;
  400. // dd($dbResult);
  401. foreach ($dbResult as $key => $val) {
  402. $devName = $val->dev_type_name; // 泵名
  403. $rowNumber = $val->row_number; // 排序
  404. $jsonKey = $val->json_key; // json键值
  405. $label = $val->device_name; // 设备名
  406. $devTypeNum = $val->dev_type_id-1; // 设备号
  407. $devNum = $val->device_num - 1; // 设备号
  408. $unit = $val->unit; // 单位
  409. $devVal = $val->val; // 数值
  410. $group_name = $val->group_name; // 设备名
  411. $valArr = array();
  412. if ($jsonKey == 'state') {
  413. $dataArr['hoist'][0]['state'] = $state;
  414. } else if ($jsonKey == 'position') {
  415. $valArr = [
  416. 'label' => $label, // 标题
  417. 'value' => $devVal, // 值
  418. 'unit' => $unit // 单位
  419. ];
  420. $dataArr['common'][$jsonKey][] = $valArr;
  421. } else if ($jsonKey == 'direction') {
  422. $valArr = [
  423. 'label' => $label, // 标题
  424. 'state' => $devVal, // 值
  425. ];
  426. $dataArr['common'][$jsonKey][] = $valArr;
  427. if ($devVal == 1) {
  428. $state = 1;
  429. }
  430. } else if ($jsonKey == 'run_parameter') {
  431. $valArr = [
  432. 'label' => $label, // 标题
  433. 'value' => $devVal, // 值
  434. 'unit' => $unit // 单位
  435. ];
  436. $dataArr['hoist'][$devTypeNum][$jsonKey][] = $valArr;
  437. $dataArr['hoist'][$devTypeNum]['name'] = $group_name;
  438. // $dataArr['common']['direction']
  439. } else {
  440. $valArr = [
  441. 'label' => $label, // 标题
  442. 'state' => $devVal, // 值
  443. 'unit' => $unit // 单位
  444. ];
  445. $dataArr['hoist'][$devTypeNum][$jsonKey][] = $valArr;
  446. }
  447. }
  448. return $dataArr;
  449. }
  450. // 制氮
  451. public function getNitrogenData($dbResult, $getMineCode) {
  452. $dataArr = array();
  453. $valDict = array();
  454. $state = 2;
  455. // dd($dbResult);
  456. foreach ($dbResult as $key => $val) {
  457. $devName = $val->dev_type_name; // 设备名
  458. $rowNumber = $val->row_number; // 排序
  459. $jsonKey = $val->json_key; // json键值
  460. $label = $val->device_name; // 设备名
  461. $devTypeNum = $val->dev_type_id - 1; // 设备号
  462. $devNum = $val->device_num - 1; // 设备号
  463. $unit = $val->unit; // 单位
  464. $devVal = $val->val; // 数值
  465. if ($jsonKey == 'state') {
  466. if($getMineCode == 'qingshuiying') {
  467. if(isset($dataArr[$devTypeNum]['state'])) {
  468. $dataArr[$devTypeNum]['state'] = min($dataArr[$devTypeNum]['state'], $devVal);
  469. $dataArr[$devTypeNum]['name'] = $devName;
  470. } else {
  471. $dataArr[$devTypeNum]['state'] = 2;
  472. $dataArr[$devTypeNum]['name'] = $devName;
  473. }
  474. } else {
  475. $dataArr[$devNum]['state'] = $devVal;
  476. $dataArr[$devNum]['name'] = $devName;
  477. }
  478. } else if ($jsonKey == 'run_parameter' || $jsonKey == 'cold_dryer') {
  479. $valArr = [
  480. 'label' => $label, // 标题
  481. 'value' => $devVal, // 值
  482. 'unit' => $unit // 单位
  483. ];
  484. $dataArr[$devNum][$jsonKey][] = $valArr;
  485. } else if ($jsonKey == 'tap_state') {
  486. $valArr = [
  487. 'label' => $label, // 标题
  488. 'state' => $devVal, // 值
  489. ];
  490. $dataArr[$devNum][$jsonKey][] = $valArr;
  491. }
  492. }
  493. return $dataArr;
  494. }
  495. // 人车
  496. public function getMancarData($dbResult) {
  497. $dataArr = array();
  498. $valDict = array();
  499. $state = 2;
  500. foreach ($dbResult as $key => $val) {
  501. $devName = $val->dev_type_name; // 泵名
  502. $rowNumber = $val->row_number; // 排序
  503. $jsonKey = $val->json_key; // json键值
  504. $label = $val->device_name; // 设备名
  505. $devTypeNum = $val->dev_type_id; // 设备号
  506. $devNum = $val->device_num - 1; // 设备号
  507. $unit = $val->unit; // 单位
  508. $devVal = $val->val; // 数值
  509. $group_name = $val->group_name; // 设备名
  510. if ($jsonKey == 'common') {
  511. $valArr = [
  512. 'label' => $label, // 标题
  513. 'value' => $devVal, // 值
  514. 'unit' => $unit // 单位
  515. ];
  516. $dataArr[$jsonKey][] = $valArr;
  517. $dataArr['hoist']['name'] = $group_name;
  518. $dataArr['hoist']['state'] = 1;
  519. } if ($jsonKey == 'run_state' || $jsonKey == 'protect_state') {
  520. $valArr = [
  521. 'label' => $label, // 标题
  522. 'state' => $devVal, // 值
  523. ];
  524. $dataArr['hoist'][$jsonKey][] = $valArr;
  525. } else {
  526. $valArr = [
  527. 'label' => $label, // 标题
  528. 'value' => $devVal, // 值
  529. 'unit' => $unit // 单位
  530. ];
  531. $dataArr['hoist'][$jsonKey][] = $valArr;
  532. }
  533. }
  534. return $dataArr;
  535. }
  536. public function getBoilerData($dbResult) {
  537. $dataArr = array();
  538. $valDict = array();
  539. $state = 2;
  540. foreach ($dbResult as $key => $val) {
  541. $devName = $val->dev_type_name; // 泵名
  542. $rowNumber = $val->row_number; // 排序
  543. $jsonKey = $val->json_key; // json键值
  544. $label = $val->device_name; // 设备名
  545. $devTypeNum = $val->dev_type_id; // 设备号
  546. $devNum = $val->device_num - 1; // 设备号
  547. $unit = $val->unit; // 单位
  548. $devVal = $val->val; // 数值
  549. $group_name = $val->group_name; // 设备名
  550. $dataArr['name'] = $group_name;
  551. $dataArr['state'] = 1;
  552. if ($jsonKey == 'parameter') {
  553. $valArr = [
  554. 'label' => $label, // 标题
  555. 'value' => $devVal, // 值
  556. 'unit' => $unit // 单位
  557. ];
  558. $dataArr[$jsonKey][$rowNumber]['name'] = $devName;
  559. $dataArr[$jsonKey][$rowNumber]['data'][] = $valArr;
  560. }
  561. }
  562. return $dataArr;
  563. }
  564. // 矿区生活水
  565. public function getLieWaterData($dbResult) {
  566. $dataArr = array();
  567. $valDict = array();
  568. $state = 2;
  569. // dd($dbResult);
  570. foreach ($dbResult as $key => $val) {
  571. $devName = $val->dev_type_name; // 泵名
  572. $rowNumber = $val->row_number; // 排序
  573. $jsonKey = $val->json_key; // json键值
  574. $label = $val->device_name; // 设备名
  575. $devTypeNum = $val->dev_type_id - 1; // 设备号
  576. $devNum = $val->device_num - 1; // 设备号
  577. $unit = $val->unit; // 单位
  578. $devVal = $val->val; // 数值
  579. $group_name = $val->group_name; // 设备名
  580. $valArr = array();
  581. if ($jsonKey == 'trans_box' ) {
  582. $dataArr['cabinet'][$devTypeNum]['title'] = $devName;
  583. $dataArr['cabinet'][$devTypeNum]['data'][$devNum]['name'] = ($devNum + 1).'号泵';
  584. if ($jsonKey == 'trans_box_state') {
  585. $dataArr['cabinet'][$devTypeNum]['data'][$devNum]['state'] = $devVal;
  586. }
  587. $valArr = [
  588. 'name' => $label, // 标题
  589. 'state' => $devVal, // 值
  590. ];
  591. $dataArr['cabinet'][$devTypeNum]['data'][$devNum]['state_list'][] = $valArr;
  592. } else if ($jsonKey == 'trans_box_state') {
  593. $dataArr['cabinet'][$devTypeNum]['state'] = $devVal;
  594. } else if ($jsonKey == 'state_list') {
  595. $valArr = [
  596. 'label' => $label, // 标题
  597. 'state' => $devVal, // 值
  598. ];
  599. $dataArr[$jsonKey][] = $valArr;
  600. } else if ($jsonKey == 'parameter') {
  601. $valArr = [
  602. 'label' => $label, // 标题
  603. 'state' => $devVal, // 值1
  604. 'value' => $devVal, // 值2
  605. 'unit' => $unit // 单位
  606. ];
  607. $dataArr[$jsonKey][] = $valArr;
  608. }
  609. }
  610. return $dataArr;
  611. }
  612. // 供水站子系统
  613. public function getLieWaterPointData($dbResult) {
  614. $dataArr = array();
  615. $valDict = array();
  616. $state = 2;
  617. // dd($dbResult);
  618. foreach ($dbResult as $key => $val) {
  619. $devName = $val->dev_type_name; // 泵名
  620. $label = $val->device_name; // 设备名
  621. $rowNumber = $val->row_number; // 排序
  622. $jsonKey = $val->json_key; // json键值
  623. $devTypeNum = $val->dev_type_id - 1; // 设备号
  624. $devNum = $val->device_num - 1; // 设备号
  625. $unit = $val->unit; // 单位
  626. $devVal = $val->val; // 数值
  627. $group_name = $val->group_name; // 设备名
  628. $valArr = array();
  629. if ($jsonKey == 'common') {
  630. $valArr = [
  631. 'name' => $label, // 标题
  632. 'value' => $devVal, // 值
  633. 'unit' => $unit, // 单位
  634. ];
  635. $dataArr['common'][$devNum]['name'] = $devName;
  636. $dataArr['common'][$devNum]['data'][] = $valArr;
  637. } else if ($jsonKey == 'cabinet') {
  638. $valArr = [
  639. 'name' => $label, // 标题
  640. 'state' => $devVal, // 值
  641. ];
  642. $dataArr['cabinet']['title'] = '供水站变频柜参数';
  643. $dataArr['cabinet']['data'][$devNum]['name'] = $devName; // 供水泵名
  644. $dataArr['cabinet']['data'][$devNum]['state_list'][] = $valArr;
  645. } else if ($jsonKey == 'cabinet_statue') {
  646. $dataArr['cabinet']['data'][$devNum]['state'] = $devVal; // 供水泵名
  647. }
  648. }
  649. return $dataArr;
  650. }
  651. }