OpcDataController.php 26 KB

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