DpsbPolicyAction.class.php 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596
  1. <?php
  2. class DpsbPolicyAction extends CommonAction {
  3. const tableName = 'dpsb_policy';
  4. const pkName = 'ID';
  5. function sys_device_list( ){
  6. $list = new \Jms\Gui\ClGrid();
  7. $list->sql_sort = 'DeviceId desc';
  8. $list->sql_filter = function($search,&$cond){
  9. $cond['DeviceId'] = I('get.id');
  10. };
  11. $list->row_filter = function(&$row) use ($list){
  12. for($i=1;$i<=5;$i++){
  13. $ontime = 'OnTime'.$i;
  14. $offtime = 'OffTime'.$i;
  15. $row[$ontime] = $this->timeToStr($row[$ontime]);
  16. $row[$offtime] = $this->timeToStr($row[$offtime]);
  17. }
  18. $device_id = I('get.id');
  19. $where = array(
  20. 'DeviceId' => $device_id,
  21. 'ChNumber' => $row['Channel']
  22. );
  23. $cond = array(
  24. 'DeviceId' => $device_id,
  25. 'ChNumber' => $row['RefChannel']
  26. );
  27. $row['DeviceId_text'] = M('dpsb_device')->where(array('ID'=>$row['DeviceId']))->getField('WorkUnitName');
  28. $channel_list = M('dpsb_channel')->where($where)->find();
  29. $refchannel_list = M('dpsb_channel')->where($cond)->find();
  30. $row['Channel'] = $channel_list['DisplayName'];
  31. $row['RefChannel'] = $refchannel_list['DisplayName'];
  32. if($row['Man'] == 0){
  33. $row['Man'] = "<span style = 'color:green'>自动</span>";
  34. }else{
  35. $row['Man'] = "<span style = 'color:gray'>手动</span>";
  36. }
  37. if($row['SendResult'] == 0){
  38. $row['SendResult'] = "<span style = 'color:green'>成功</span>";
  39. }
  40. };
  41. $list->toolbar_filter = function(&$button){
  42. $deviceid = I('get.id');
  43. if($button['icon'] == 'add'){
  44. $button['url'] .= '&deviceid=' .$deviceid; //修改按钮网址
  45. }
  46. };
  47. $list->display($this);
  48. }
  49. function sys_addedit( ){
  50. $form = new \Jiaruan\LigerIframeForm();
  51. $form->before_add = function(&$data){
  52. $data['DeviceId'] = I('get.deviceid');
  53. for($i=1;$i<=5;$i++){
  54. $ontime = 'OnTime'.$i;
  55. $offtime = 'OffTime'.$i;
  56. $patten = "/^([0-5]\d):([0-5]\d)$/";
  57. //$patten = "(s((([0-1]?[0-9])|([1-2][0-3])):([0-5]?[0-9])))?$"
  58. if($data[$ontime]){
  59. if(!preg_match($patten, $data[$ontime])){
  60. json_fail($ontime .'时间格式不正确');
  61. }else{
  62. $data[$ontime] = $this->strToTime($data[$ontime]);
  63. }
  64. }else{
  65. $data[$ontime] = -1;
  66. }
  67. if($data[$offtime]){
  68. if(!preg_match($patten, $data[$offtime])){
  69. json_fail($offtime .'时间格式不正确');
  70. }else{
  71. $data[$offtime] = $this->strToTime($data[$offtime]);
  72. }
  73. }else{
  74. $data[$offtime] = -1;
  75. }
  76. }
  77. $addr = M('dpsb_device')->where(array('ID'=>$data['DeviceId']))->getField('DeviceAddr');
  78. $host = '127.0.0.1';
  79. $port = 10240;
  80. $socket = new Jms\Network\TcpClient($host,$port);
  81. $msg = array(
  82. 'method' => 'apiModifyAutoControlInfo',
  83. 'Addr' => $addr,
  84. 'channelNumber' => $data['Channel'],
  85. 'man' => $data['Man'],
  86. 'refChannel' => $data['RefChannel'],
  87. 'TimeEn' => $data['IsTime'],
  88. 'UpperLimit_Value' => $data['UpperLimitValue'],
  89. 'UpperLimit_State' => $data['UpperLimitState'],
  90. 'LowerLimit_Value' => $data['LowerLimitValue'],
  91. 'LowerLimit_State' => $data['LowerLimitState'],
  92. 'OnTime1' => $data['OnTime1'],
  93. 'OffTime1' => $data['OffTime1'],
  94. 'OnTime2' => $data['OnTime2'],
  95. 'OffTime2' => $data['OffTime2'],
  96. 'OnTime3' => $data['OnTime3'],
  97. 'OffTime3' => $data['OffTime3'],
  98. 'OnTime4' => $data['OnTime4'],
  99. 'OffTime4' => $data['OffTime4'],
  100. 'OnTime5' => $data['OnTime5'],
  101. 'OffTime5' => $data['OffTime5'],
  102. 'IssueTime' => $data['IssueTime'],
  103. );
  104. $res = $socket->send(json_encode($msg));
  105. if($res['success']){
  106. json_success('下发成功');
  107. }else{
  108. json_fail($res['message']);
  109. }
  110. };
  111. $form->before_display = function(&$data){
  112. $deviceid = I('get.deviceid');
  113. $data['IssueTime'] = 5;
  114. $data['DeviceName'] = MM('dpsb_device')->where(array('ID'=>$deviceid))->getField('WorkUnitName');
  115. $data['Man'] = 1;
  116. $data['IsTime'] = 0;
  117. $data['UpperLimitState'] = 0;
  118. $data['LowerLimitState'] = 0;
  119. for($i=1;$i<=5;$i++){
  120. $ontime = 'OnTime'.$i;
  121. $offtime = 'OffTime'.$i;
  122. $data[$ontime] = $this->timeToStr($data[$ontime]);
  123. $data[$offtime] = $this->timeToStr($data[$offtime]);
  124. }
  125. };
  126. $form->before_save = function(&$data){
  127. $data['DeviceId'] = I('get.deviceid');
  128. for($i=1;$i<=5;$i++){
  129. $ontime = 'OnTime'.$i;
  130. $offtime = 'OffTime'.$i;
  131. $patten = "/^([0-5]\d):([0-5]\d)$/";
  132. if($data[$ontime]){
  133. if(!preg_match($patten, $data[$ontime])){
  134. json_fail($ontime .'时间格式不正确');
  135. }else{
  136. $data[$ontime] = $this->strToTime($data[$ontime]);
  137. }
  138. }else{
  139. $data[$ontime] = -1;
  140. }
  141. if($data[$offtime]){
  142. if(!preg_match($patten, $data[$offtime])){
  143. json_fail($offtime .'时间格式不正确');
  144. }else{
  145. $data[$offtime] = $this->strToTime($data[$offtime]);
  146. }
  147. }else{
  148. $data[$offtime] = -1;
  149. }
  150. }
  151. $addr = M('dpsb_device')->where(array('ID'=>$data['DeviceId']))->getField('DeviceAddr');
  152. $host = '127.0.0.1';
  153. $port = 10240;
  154. $socket = new Jms\Network\TcpClient($host,$port);
  155. $msg = array(
  156. 'method' => 'apiModifyAutoControlInfo',
  157. 'Addr' => $addr,
  158. 'channelNumber' => $data['Channel'],
  159. 'man' => $data['Man'],
  160. 'refChannel' => $data['RefChannel'],
  161. 'TimeEn' => $data['IsTime'],
  162. 'UpperLimit_Value' => $data['UpperLimitValue'],
  163. 'UpperLimit_State' => $data['UpperLimitState'],
  164. 'LowerLimit_Value' => $data['LowerLimitValue'],
  165. 'LowerLimit_State' => $data['LowerLimitState'],
  166. 'OnTime1' => $data['OnTime1'],
  167. 'OffTime1' => $data['OffTime1'],
  168. 'OnTime2' => $data['OnTime2'],
  169. 'OffTime2' => $data['OffTime2'],
  170. 'OnTime3' => $data['OnTime3'],
  171. 'OffTime3' => $data['OffTime3'],
  172. 'OnTime4' => $data['OnTime4'],
  173. 'OffTime4' => $data['OffTime4'],
  174. 'OnTime5' => $data['OnTime5'],
  175. 'OffTime5' => $data['OffTime5'],
  176. 'IssueTime' => $data['IssueTime'],
  177. );
  178. $res = $socket->send(json_encode($msg));
  179. if($res['success']){
  180. json_success('下发成功');
  181. }else{
  182. json_fail($res['message']);
  183. }
  184. };
  185. $form->form_filter = function(&$form){
  186. //显示下拉数据
  187. $deviceid = I('get.deviceid');
  188. $type = new \Zndp\Device\Option;
  189. $controlchannel = $type->getControlChannelOption($deviceid);
  190. $channel = $type->getATypeChannelOption($deviceid);
  191. $form['fields']['Channel']['editor'] = array('options'=>$controlchannel);
  192. $form['fields']['RefChannel']['editor'] = array('options'=>$channel);
  193. };
  194. $form->display($this);
  195. }
  196. public function strToTime( $time ){
  197. $array = explode(':',$time);
  198. $data = $array[0]*60+$array[1];
  199. return $data;
  200. }
  201. public function timeToStr( $time ){
  202. if($time == -1){
  203. $data = '';
  204. }else{
  205. $minute = $time%60;
  206. if($minute<10){
  207. $minute = '0'.$minute;
  208. }
  209. $hour = ($time-$minute)/60;
  210. if($hour<10){
  211. $hour = '0'.$hour;
  212. }
  213. $data = $hour.':'.$minute;
  214. }
  215. return $data;
  216. }
  217. function sys_list( ){
  218. $list = new \Jms\Gui\ClGrid();
  219. $list->sql_sort = 'DeviceId desc';
  220. $list->sql_filter = function($search,&$cond){
  221. //显示登录用户权限下所有策略
  222. if($this->userinfo['OrganizationId']){ //非平台管理员
  223. //基地管理员获取自己的策略
  224. if( $this->userinfo['RoleId'] == \Zndp\User\RoleEnum::BASE_ADMINISTRATOR ){
  225. $where = array('ManagerId'=>$this->userid);
  226. }else{
  227. //否则获取登录角色下属所有基地管理员的操作记录
  228. $base_ids = \Zndp\User\Util::get_depart_farm($this->userinfo['OrganizationId']);
  229. $where = array('FarmId'=>array('IN',$base_ids));
  230. }
  231. $farmland_ids = MM('dpyh_farmland')->field('ID')->where($where)->select();
  232. $farmland_ids = array_column($farmland_ids,'ID');
  233. $cond['FarmlandId'] = array('IN',$farmland_ids);
  234. }
  235. };
  236. $list->row_filter = function(&$row) use ($list){
  237. for($i=1;$i<=5;$i++){
  238. $ontime = 'OnTime'.$i;
  239. $offtime = 'OffTime'.$i;
  240. $row[$ontime] = $this->timeToStr($row[$ontime]);
  241. $row[$offtime] = $this->timeToStr($row[$offtime]);
  242. }
  243. $where = array(
  244. 'DeviceId' => $row['DeviceId'],
  245. 'ChNumber' => $row['Channel']
  246. );
  247. $cond = array(
  248. 'DeviceId' => $row['DeviceId'],
  249. 'ChNumber' => $row['RefChannel']
  250. );
  251. $row['DeviceId_text'] = M('dpsb_device')->where(array('ID'=>$row['DeviceId']))->getField('WorkUnitName');
  252. $channel_list = M('dpsb_channel')->where($where)->find();
  253. $refchannel_list = M('dpsb_channel')->where($cond)->find();
  254. $row['Channel'] = $channel_list['DisplayName'];
  255. $row['RefChannel'] = $refchannel_list['DisplayName'];
  256. if($row['Man'] == 0){
  257. $row['Man'] = "<span style = 'color:green'>自动</span>";
  258. }else{
  259. $row['Man'] = "<span style = 'color:gray'>手动</span>";
  260. }
  261. if($row['SendResult'] == 0){
  262. $row['SendResult'] = "<span style = 'color:green'>成功</span>";
  263. }
  264. $row['IsTime_text'] = $row['IsTime'] ? '是' : '否';
  265. };
  266. $list->toolbar_filter = function(&$button){
  267. $deviceid = I('get.id');
  268. if($button['icon'] == 'add'){
  269. $button['url'] .= '&deviceid=' .$deviceid; //修改按钮网址
  270. }
  271. };
  272. $list->display($this);
  273. }
  274. public function sys_del( ){
  275. if (IS_AJAX) {
  276. $group_id = I('get.id');
  277. if ( empty($group_id)) {
  278. json_fail('决策id不能为空');
  279. }
  280. if(M('dpsb_policy')->where(array( 'ID' => $group_id ))->delete() === false){
  281. json_fail('删除失败','');
  282. }
  283. json_success('删除成功','');
  284. }
  285. }
  286. function test( ){
  287. }
  288. function sys_addedit_dp( ){
  289. $form = new \Jms\Gui\ClForm();
  290. $form->before_display = function(&$data){
  291. $farmland_id = I('get.farmland_id');
  292. $data['FarmlandName'] = MM('dpyh_farmland')->where(array('ID'=>$farmland_id))->getField('FarmlandName');
  293. $data['IssueTime'] = $data['IssueTime'] ? : 5; //自动控制时间(秒)
  294. $data['Man'] = isset($data['Man']) ? $data['Man'] : 1; // 手动控制
  295. $data['UpperLimitState'] = $data['UpperLimitState'] ? : 0;//不启用上限
  296. $data['LowerLimitState'] = $data['LowerLimitState'] ? : 0;//不启用下限
  297. $data['IsTime'] = $data['IsTime'] ? : 0; // 关闭定时控制
  298. // 定时控制时间
  299. for($i=1;$i<=5;$i++){
  300. $ontime = 'OnTime'.$i;
  301. $offtime = 'OffTime'.$i;
  302. $data[$ontime] = $this->timeToStr($data[$ontime]);
  303. $data[$offtime] = $this->timeToStr($data[$offtime]);
  304. }
  305. };
  306. $form->before_add = function(&$data){
  307. $data['DeviceId'] = I('get.deviceid');
  308. $data['FarmlandId'] = I('get.farmland_id');
  309. $data['UpperLimitValue'] = floatval($data['UpperLimitValue']);
  310. $data['LowerLimitValue'] = floatval($data['LowerLimitValue']);
  311. for($i=1;$i<=5;$i++){
  312. $ontime = 'OnTime'.$i;
  313. $offtime = 'OffTime'.$i;
  314. // 00:00 - 23:59
  315. $patten = "/^(([0-1]\d)|([2][0-3])):[0-5]\d$/";
  316. if($data[$ontime]){
  317. if(!preg_match($patten, $data[$ontime])){
  318. json_fail($ontime .'时间格式不正确');
  319. }else{
  320. $data[$ontime] = $this->strToTime($data[$ontime]);
  321. }
  322. }else{
  323. $data[$ontime] = -1;
  324. }
  325. if($data[$offtime]){
  326. if(!preg_match($patten, $data[$offtime])){
  327. json_fail($offtime .'时间格式不正确');
  328. }else{
  329. $data[$offtime] = $this->strToTime($data[$offtime]);
  330. }
  331. }else{
  332. $data[$offtime] = -1;
  333. }
  334. }
  335. //如果设备id为DeviceId,通道号为channelNumber的策略已存在,则修改
  336. $where = array(
  337. 'DeviceId'=> $data['DeviceId'],
  338. 'Channel'=> $data['Channel'],
  339. );
  340. $policy_id = M('dpsb_policy')->where($where)->getField('ID');
  341. if( $policy_id ){
  342. $where = array('ID'=>$policy_id);
  343. $result = M('dpsb_policy')->createSave($where,$data);
  344. if( $result === false ){
  345. json_fail('添加失败,请稍后再试');
  346. }
  347. }
  348. // 发送控制策略
  349. $addr = M('dpsb_device')->where(array('ID'=>$data['DeviceId']))->getField('DeviceAddr');
  350. $host = '127.0.0.1';
  351. $port = 10240;
  352. $socket = new Jms\Network\TcpClient($host,$port);
  353. $msg = array(
  354. 'method' => 'apiModifyAutoControlInfo',
  355. 'Addr' => $addr,
  356. 'channelNumber' => $data['Channel'],
  357. 'man' => $data['Man'],
  358. 'refChannel' => $data['RefChannel'],
  359. 'TimeEn' => $data['IsTime'],
  360. 'UpperLimit_Value' => $data['UpperLimitValue'],
  361. 'UpperLimit_State' => $data['UpperLimitState'],
  362. 'LowerLimit_Value' => $data['LowerLimitValue'],
  363. 'LowerLimit_State' => $data['LowerLimitState'],
  364. 'OnTime1' => $data['OnTime1'],
  365. 'OffTime1' => $data['OffTime1'],
  366. 'OnTime2' => $data['OnTime2'],
  367. 'OffTime2' => $data['OffTime2'],
  368. 'OnTime3' => $data['OnTime3'],
  369. 'OffTime3' => $data['OffTime3'],
  370. 'OnTime4' => $data['OnTime4'],
  371. 'OffTime4' => $data['OffTime4'],
  372. 'OnTime5' => $data['OnTime5'],
  373. 'OffTime5' => $data['OffTime5'],
  374. 'IssueTime' => $data['IssueTime'],
  375. );
  376. $res = $socket->send(json_encode($msg));
  377. $data['SendTime'] = date('Y-m-d H:i:s');
  378. //添加到dpsj_policy日志表中
  379. $data['SendResult'] = $res['message'];
  380. $result = M('dpsj_policy')->createAdd($data);
  381. if($res['success']){
  382. if($result !== false){
  383. $msg = '下发成功,策略日志添加成功';
  384. }else{
  385. $msg = '下发成功,策略日志添加失败';
  386. }
  387. json_success($msg);
  388. }else{
  389. if($result !== false){
  390. $msg = '下发失败,策略日志添加成功';
  391. }else{
  392. $msg = '下发失败,策略日志添加失败';
  393. }
  394. json_fail($msg);
  395. }
  396. };
  397. $form->before_modify = function(&$data){
  398. $data['DeviceId'] = I('get.deviceid');
  399. $data['FarmlandId'] = I('get.farmland_id');
  400. $data['UpperLimitValue'] = floatval($data['UpperLimitValue']);
  401. $data['LowerLimitValue'] = floatval($data['LowerLimitValue']);
  402. for($i=1;$i<=5;$i++){
  403. $ontime = 'OnTime'.$i;
  404. $offtime = 'OffTime'.$i;
  405. $patten = "/^([0-5]\d):([0-5]\d)$/";
  406. if($data[$ontime]){
  407. if(!preg_match($patten, $data[$ontime])){
  408. json_fail($ontime .'时间格式不正确');
  409. }else{
  410. $data[$ontime] = $this->strToTime($data[$ontime]);
  411. }
  412. }else{
  413. $data[$ontime] = -1;
  414. }
  415. if($data[$offtime]){
  416. if(!preg_match($patten, $data[$offtime])){
  417. json_fail($offtime .'时间格式不正确');
  418. }else{
  419. $data[$offtime] = $this->strToTime($data[$offtime]);
  420. }
  421. }else{
  422. $data[$offtime] = -1;
  423. }
  424. }
  425. };
  426. $form->after_modify = function($data){
  427. // 发送控制策略
  428. $addr = M('dpsb_device')->where(array('ID'=>$data['DeviceId']))->getField('DeviceAddr');
  429. $host = '127.0.0.1';
  430. $port = 10240;
  431. $socket = new Jms\Network\TcpClient($host,$port);
  432. $msg = array(
  433. 'method' => 'apiModifyAutoControlInfo',
  434. 'Addr' => $addr,
  435. 'channelNumber' => $data['Channel'],
  436. 'man' => $data['Man'],
  437. 'refChannel' => $data['RefChannel'],
  438. 'TimeEn' => $data['IsTime'],
  439. 'UpperLimit_Value' => $data['UpperLimitValue'],
  440. 'UpperLimit_State' => $data['UpperLimitState'],
  441. 'LowerLimit_Value' => $data['LowerLimitValue'],
  442. 'LowerLimit_State' => $data['LowerLimitState'],
  443. 'OnTime1' => $data['OnTime1'],
  444. 'OffTime1' => $data['OffTime1'],
  445. 'OnTime2' => $data['OnTime2'],
  446. 'OffTime2' => $data['OffTime2'],
  447. 'OnTime3' => $data['OnTime3'],
  448. 'OffTime3' => $data['OffTime3'],
  449. 'OnTime4' => $data['OnTime4'],
  450. 'OffTime4' => $data['OffTime4'],
  451. 'OnTime5' => $data['OnTime5'],
  452. 'OffTime5' => $data['OffTime5'],
  453. 'IssueTime' => $data['IssueTime'],
  454. );
  455. $res = $socket->send(json_encode($msg));
  456. $data['SendTime'] = date('Y-m-d H:i:s');
  457. //添加到dpsj_policy日志表中
  458. $data['SendResult'] = $res['message'];
  459. unset($data['ID']);
  460. $result = M('dpsj_policy')->createAdd($data);
  461. if($res['success']){
  462. if($result !== false){
  463. $msg = '下发成功,策略日志添加成功';
  464. }else{
  465. $msg = '下发成功,策略日志添加失败';
  466. }
  467. json_success($msg);
  468. }else{
  469. if($result !== false){
  470. $msg = '下发失败,策略日志添加成功';
  471. }else{
  472. $msg = '下发失败,策略日志添加失败';
  473. }
  474. json_fail($msg);
  475. }
  476. };
  477. $form->form_filter = function(&$form){
  478. $deviceid = I('get.deviceid');
  479. $chgroup = I('get.chgroup');
  480. $type = new \Zndp\Device\Option;
  481. $controlchannel = $type->getControlChannelOption($deviceid,$chgroup);
  482. $form['fields']['Channel']['editor'] = array('options'=>$controlchannel);//初始化控制通道
  483. $channel = $type->getATypeChannelOption($deviceid,$chgroup);
  484. $form['fields']['RefChannel']['editor'] = array('options'=>$channel); //初始化参考通道
  485. };
  486. $form->display($this);
  487. }
  488. function sys_farmland_list( ){
  489. $farmland_id = I('get.farmland_id');
  490. $where = array('FarmlandId'=>$farmland_id);
  491. $chgroup_info = M('dpsb_chgroup')->field('DeviceId,ChGroup,FarmlandId')->where($where)->find();
  492. $list = new \Jms\Gui\ClGrid();
  493. $list->sql_sort = 'SendTime desc';
  494. $list->sql_filter = function($search,&$cond)use($chgroup_info){
  495. //显示绑定该大棚的设备组中的通道策略
  496. $where = array('DeviceId'=>$chgroup_info['DeviceId'],'ChGroup'=>$chgroup_info['ChGroup']);
  497. $channel_list = M('dpsb_channel')->field('ChNumber')->where($where)->select();
  498. $channels = array_column($channel_list,'ChNumber');
  499. $cond['DeviceId'] = $chgroup_info['DeviceId'];
  500. $cond['Channel'] = array('IN',$channels);
  501. };
  502. $list->row_filter = function(&$row) use ($list,$chgroup_info){
  503. $row['FarmlandId'] = $chgroup_info['FarmlandId'];//传给添加,编辑策略表单
  504. $row['ChGroup'] = $chgroup_info['ChGroup'];//传给添加,编辑策略表单
  505. for($i=1;$i<=5;$i++){
  506. $ontime = 'OnTime'.$i;
  507. $offtime = 'OffTime'.$i;
  508. $row[$ontime] = $this->timeToStr($row[$ontime]);
  509. $row[$offtime] = $this->timeToStr($row[$offtime]);
  510. }
  511. //设备名称
  512. $row['DeviceId_text'] = M('dpsb_device')->where(array('ID'=>$row['DeviceId']))->getField('WorkUnitName');
  513. //控制通道名称
  514. $where = array(
  515. 'DeviceId' => $row['DeviceId'],
  516. 'ChNumber' => $row['Channel']
  517. );
  518. $dpsb_channel = M('dpsb_channel');
  519. $row['Channel_text'] = $dpsb_channel->where($where)->getField('DisplayName');
  520. //参考通道名称
  521. $cond = array(
  522. 'DeviceId' => $row['DeviceId'],
  523. 'ChNumber' => $row['RefChannel']
  524. );
  525. $row['RefChannel_text'] = $dpsb_channel->where($cond)->getField('DisplayName');
  526. // 上限参考状态
  527. $row['UpperLimitState_text'] = $row['UpperLimitState'] ? '启用' : '停用';
  528. // 下限参考状态
  529. $row['LowerLimitState_text'] = $row['LowerLimitState'] ? '启用' : '停用';
  530. //控制状态
  531. if($row['Man'] == 0){
  532. $row['Man'] = "<span style = 'color:green'>自动</span>";
  533. }elseif($row['Man'] == 1){
  534. $row['Man'] = "<span style = 'color:gray'>手动</span>";
  535. }
  536. // 定时控制状态
  537. if($row['IsTime'] == 0){
  538. $row['IsTime_text'] = '关闭';
  539. }elseif($row['IsTime'] == 1){
  540. $row['IsTime_text'] = '开启';
  541. }
  542. //发送状态
  543. if($row['SendResult'] == 0){
  544. $row['SendResult'] = "<span style = 'color:green'>成功</span>";
  545. }
  546. };
  547. $list->toolbar_filter = function(&$button)use($chgroup_info){
  548. if($button['icon'] == 'add'){
  549. $button['url'] .= '&deviceid=' .$chgroup_info['DeviceId'].'&farmland_id=' .$chgroup_info['FarmlandId'] .'&chgroup=' .$chgroup_info['ChGroup']; //修改按钮网址
  550. }
  551. };
  552. $list->display($this);
  553. }
  554. }