OpcDataController.php 28 KB

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