DpsbGroupAction.class.php 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. <?php
  2. class DpsbGroupAction extends CommonAction {
  3. const tableName = 'dpsb_group';
  4. const pkName = 'ID';
  5. function sys_list( ){
  6. $list = new \Jms\Gui\ClGrid();
  7. $list->sql_sort = 'ID desc';
  8. $list->right_filter = function($right,$type){
  9. $page = $_SERVER['PATH_INFO'];
  10. return \Jms\Ucenter\Right::defaultFilter($page,$right,$type);
  11. };
  12. $list->sql_filter = function($search,&$cond){
  13. //显示登录角色部门下属所有设备组
  14. if($this->userinfo['OrganizationId']){ //非管理员
  15. $base_ids = \Zndp\User\Util::get_depart_farm($this->userinfo['OrganizationId']);
  16. $cond['FarmId'] = array('IN',$base_ids);
  17. }
  18. };
  19. $list->row_filter = function(&$row) use ($list){
  20. $row['FarmId_text'] = MM('dpyh_farm')->where(array('ID'=>$row['FarmId']))->getField('FarmName');
  21. //计算设备组包含的设备数量
  22. $where = array('DeviceGroupId' => $row['ID'] );
  23. $row['DeviceCount'] = M('dpsb_device')->where($where)->count();
  24. };
  25. $list->display($this);
  26. }
  27. function sys_addedit( ){
  28. $form = new \Jiaruan\LigerIframeForm();
  29. $form->before_add = function(&$data){
  30. //检测设备组名是否重复
  31. $org_name = trim($data['OrgName']);
  32. $org_info = M('dpsb_group')->where(array('OrgName'=>$org_name))->find();
  33. if($org_info){
  34. json_fail('该设备组名已存在,请重新输入!');
  35. }
  36. };
  37. $form->before_modify = function(&$data){
  38. $id = I('get.id');
  39. $org_name = trim($data['OrgName']);
  40. $cond = array('ID'=>$id);
  41. $group_info = M('dpsb_group')->where($cond)->field('OrgName')->find();
  42. $org_info = M('dpsb_group')->where(array('OrgName'=>$org_name))->find();
  43. if($org_name != $group_info['OrgName'] && $org_info){
  44. json_fail('该设备组名已存在,请重新输入!');
  45. }
  46. };
  47. $form->form_filter = function(&$form){
  48. //显示用户部门下属所有基地
  49. if($this->userinfo['OrganizationId']){
  50. $zndp_util = new \Zndp\User\Util();
  51. $depart_list = $zndp_util->get_depart_farm_options($this->userinfo['OrganizationId']);
  52. }else{
  53. $type = new \Zndp\Device\Option;
  54. $depart_list = $type->getFarmOption();
  55. }
  56. $form['fields']['FarmId']['editor'] = array('options'=>$depart_list);
  57. };
  58. $form->display($this);
  59. }
  60. public function sys_del( ){
  61. $grid = new \Jiaruan\GridData();
  62. $grid->before_delete = function($data){
  63. $where = array('DeviceGroupId'=>$data['ID']);
  64. $count = M('dpsb_device')->where($where)->count();
  65. if($count > 0){
  66. json_fail('设备组下还有设备,无法删除');
  67. }
  68. };
  69. $grid->deleteByPk($this);
  70. }
  71. function import_device( ){
  72. if(!I('get.id')){
  73. exit('missing params');
  74. }
  75. $form = new \Jms\Gui\ClForm();
  76. $form->before_save = function(&$data){
  77. $device_addr = trim($data['DeviceAddr']);
  78. $where = array( 'DeviceAddr'=>$device_addr);
  79. $dpsb_device = M('dpsb_device');
  80. $device_info = $dpsb_device->field('DeviceGroupId')->where($where)->find();
  81. if( !$device_info ){
  82. json_fail('设备序列号:'.$device_addr . ' 未上报');
  83. }
  84. if( $device_info['DeviceGroupId'] > 0 ){
  85. json_fail('该设备已有设备组');
  86. }
  87. $save_data = array(
  88. 'DeviceGroupId' => I('get.id'),
  89. 'DeviceTypeId' => $data['DeviceTypeId'],
  90. 'WorkUnitName' => $data['WorkUnitName']
  91. );
  92. $result = $dpsb_device->createSave($where,$save_data);
  93. if($result === false){
  94. json_fail('导入失败');
  95. }else{
  96. json_success('导入成功');
  97. }
  98. };
  99. $form->form_filter = function(&$form){
  100. //显示设备类型
  101. $type_list = \Zndp\Device\Option::getDeviceTypeOption();
  102. $form['fields']['DeviceTypeId']['editor'] = array('options'=>$type_list);
  103. };
  104. $form->display($this);
  105. }
  106. }