showAllTree(); $this->traverseArray($tree); // halt($tree); $this->assign('tree',$tree); return $this->fetch(); } /** * 新增/编辑 */ public function add($pid=0,$t=0,$id=0){ if(request()->isPost()){ $res = model('EnergyWater')->updates(); if($res){ $this->success('操作成功',url('index')); }else{ $this->error(model('EnergyWater')->getError()); } }else{ $meta_title = '新增'; if($id){ $info = db('energy_water')->where('id',$id)->find(); $info['dep'] = explode(',',$info['dep']); $this->assign('info',$info); $info['s'] = $info['share'] ? (string)$info['share'] : ''; $meta_title = '编辑'; } $map[] = ['del','=',0]; $map[]= ['enable','=',1]; $map[]= ['org_id','=',$this->orgId]; $alists = db('energy_area') ->field('id,title') ->where($map) ->where('pid',0) ->select(); foreach ($alists as $k=>$v) { $alists[$k]['children'] = db('energy_area') ->field('id,title') ->where('pid', $v['id']) ->where($map) ->select(); foreach ($alists[$k]['children'] as $kk => $vv) { $alists[$k]['children'][$kk]['children'] = db('energy_area') ->field('id,title') ->where('pid', $vv['id']) ->where($map) ->select(); } } $dlists = db('energy_dep') ->field('id,name') ->where($map) ->select(); $this->assign('alist',$alists); $this->assign('dlist',$dlists); $this->assign('pid',$pid); $this->assign('t',$t); $this->assign('meta_title',$meta_title); return $this->fetch(); } } /** * 拆分电表 */ public function split($id=0) { if(request()->isPost()){ $id = input('post.id'); $split = input('post.split'); $res = Db::name('energy_water')->where('org_id',$this->orgId)->where('id',$id)->setField(['split'=>$split]); if($res){ $this->success('操作成功',url('index')); }else{ $this->error('操作失败'); } }else{ $info = db('energy_water')->where('org_id',$this->orgId)->where('id',$id)->find(); $this->assign('info',$info); $map[] = ['del','=',0]; $map[]= ['enable','=',1]; $map[]= ['org_id','=',$this->orgId]; $map[]= ['id','<>',$id]; $list = Db::name('energy_water') ->where('parent_id','>',0) ->where($map) ->where('type_w',$info['type_w']) ->select(); foreach ($list as $k=>$v) { $list[$k]['number'] = $v['name'].'————'.$v['number']; } $this->assign('list',$list); $this->assign('id',$id); return $this->fetch(); } } public function changeEnable($id=0,$enable=0){ if($id <= 0){ $this->error('参数错误'); } $ret = Db::name('energy_water')->where('org_id',$this->orgId)->where('id',$id)->setField('enable',$enable); if(!$ret){ $this->error('操作失败'); } $this->success('操作成功'); } /** * 删除记录 * @param int $id */ public function del($id=0){ if(!$id){ $this->error('参数错误'); } // 检查是否有子级 $ret = Db::name('energy_water')->where('org_id',$this->orgId)->where('parent_id',$id)->where('del',0)->find(); if($ret){ $this->error('有子水表不能删除'); } $res = Db::name('energy_water')->where('org_id',$this->orgId)->where('id',$id)->setField('del',1); if($res){ $this->success('删除成功'); }else{ $this->error('删除失败'); } } /** * 循环tree给字段重新赋值 */ public function traverseArray(&$array) { foreach ($array as &$item) { // 修改type_e的值 if (isset($item['type_w'])) { $item['type_w'] = $item['type_w'] == 0 ? '冷水' : ($item['type_w'] == 1 ? '热水进水' :'热水回水'); } // 如果存在children,递归调用 if (isset($item['children']) && is_array($item['children'])) { $this->traverseArray($item['children']); } } } /** * 换表 * @param string $sn */ public function change($sn=''){ if(!$sn){ $this->error('参数错误'); } $record = Db::name('energy_water_record') ->where('sn',$sn) ->where('del',0) ->order('read_yyyymmdd desc') ->field('degree,read_time') ->findOrEmpty(); if (empty($record)){ $this->error('该表没有抄表记录'); } $res = Db::name('energy_change_log') ->insert([ 'org_id'=>$this->orgId, 'sn'=>$sn, 'degree'=>$record['degree'], 'read_time'=>$record['read_time'], 'create_time'=>getTime(), ]); if($res){ $this->success('换表成功'); }else{ $this->error('换表失败'); } } public function getDep() { $data = $this->request->param(); $value = $data['param']; if ($value){ $map[] = ['address','like','%'.$value.'%']; }else{ $map[] = ['address','=',0]; } $map[] = ['del','=',0]; $map[]= ['enable','=',1]; $map[]= ['org_id','=',$this->orgId]; $lists = db('energy_dep') ->field('id,name') ->where($map) ->select(); return json(['data'=>$lists]); } }