user = get_admin_info(); parent::__construct(); //$this->user = Session::get('AdminLogin'); //debugger } /** * 默认生成的方法为index/add/edit/del/status 五个方法 * 当创建CURD的时候,DIY的函数体和模板为空,请自行编写代码 */ /*** * 获取组织架构 */ public function getOrgTree(){ $deptId = request()->input('deptId'); if(!$deptId){ $deptId = 1; } $list = Db::name('department')->where(['pid'=>$deptId,'status'=>1])->select(); $data = []; foreach($list as $row =>$key){ $data[] = ['id'=>$key['id'],'name'=>$key['title'],"select"=>false,"type"=>"dept",'sex'=>null,'avatar'=>null]; $userlist = Db::name('admin')->where(['department_id'=>$key['id']])->select(); foreach($userlist as $row =>$user){ $data[] = ['id'=>$user['id'],'name'=>$user['nickname'],"select"=>false,"type"=>"user",'sex'=>null,'avatar'=>null]; } } $result =['code' =>200,'data' =>$data] ; return json($result); } /*** * 获取组织架构 */ public function search($userName){ $data = []; $list = Db::name('admin')->field('id,nickname as name')->where(['status'=>1])->where('nickname','like',"%$userName%")->select(); foreach($list as $row =>$key){ $data[] = ['id'=>$key['id'],'name'=>$key['title'],"select"=>false,"type"=>"role",'sex'=>null,'avatar'=>null]; } $result =['code' =>200,'data' =>$data] ; return json($result); } public function getRole(){ $data = []; $list = Db::name('jobs')->field('id,title')->where(['status'=>1])->select(); foreach($list as $row =>$key){ $data[] = ['id'=>$key['id'],'name'=>$key['title'],"select"=>false,"type"=>"role",'sex'=>null,'avatar'=>null]; } $result =['code' =>200,'data' =>$data] ; return json($result); } public function getFlowGroup() { $groupList = Db::name('flow_group')->field('id,name')->select(); $data = []; foreach($groupList as $row =>$group){ $data1 = ['id'=>$group['id'],'label'=>$group['name'],'type'=>'group']; $flowList = Db::name('flow_scheme')->where(['group'=>$group['id']])->select(); $dataFlow=[]; foreach($flowList as $row =>$flow){ $dataFlow[]=['id'=>$flow['id'],'icon'=>$flow['icon'],'isstop'=>$flow['isstop']==1?true:false,'type'=>'scheme', 'label'=>$flow['name'],'remark'=>$flow['remark'],'tgId'=>$flow['tgId'],'updated'=>$flow['updatetime'], 'background'=>$flow['background'],'group'=>$flow['group']]; } $data1['children'] = $dataFlow; $data[] = $data1; } //停用的流程 /*$data2 = ['id'=>0,'label'=>'已停用','type'=>'group']; $flowList = Db::name('flow_scheme')->where(['isstop'=>0])->select(); $dataFlowDisable=[]; foreach($flowList as $row =>$flow){ $dataFlowDisable[]=['id'=>$flow['id'],'icon'=>$flow['icon'],'isstop'=>true,'type'=>'scheme', 'label'=>$flow['name'],'remark'=>$flow['remark'],'tgId'=>$flow['tgId'],'updated'=>$flow['updatetime'], 'background'=>$flow['background'],'group'=>$flow['group']]; } $data2['children'] = $dataFlowDisable; $data[] = $data2;*/ $isAdmin = $this->user['group_id'] == 1?true:false; $result =['code' =>200,'data' =>$data,'isAdmin'=>$isAdmin] ; return json($result); } public function updateFlowGroup() { $method = request()->method(); $params = \request()->all(); $result =null; $msg = null; try{ switch ($method) { case 'POST': $name = $params['name']; $data = ['name'=>$name]; Db::name('flow_group')->insertGetId($data); $result = "添加$name 分组成功"; break; case 'DELETE': $id = $params['id']; $isexist = Db::name('flow_scheme')->where('group',$id)->find(); if($isexist){ throw new Exception('分组有流程无法删除'); } Db::name('flow_group')->delete($id); $msg = "删除成功"; break; case 'PUT': Db::name('flow_group')->save($params); $msg='修改成功'; break; } $result =['code' =>200,'data' =>$result,'msg'=>$msg ] ; } catch(Throwable $th){ $result =['code' =>500,'msg' =>$th->getMessage() ] ; } return json($result); } public function updateFlowForm() { $method = request()->method(); $params = \request()->all(); $result =null; $msg = null; switch ($method) { case 'GET': $id = $params['formId']; $result = Db::name('flow_scheme')->where('id', $id)->find(); break; case 'DELETE': $id = $params['id']; $msg = "删除成功"; break; case 'PUT': $params['id']= $params['formId']; $params['isstop'] = isset($params['isstop'])?$params['isstop']: 0; Db::name('flow_scheme')->strict(false)->save($params); $msg='修改成功'; break; } $result =['code' =>200,'data' =>$result,'msg'=>$msg] ; return json($result); } public function getSysTable() { $database = function_exists('get_env') ? get_env('DATABASE_DATABASE') : getenv('DATABASE_DATABASE'); $sql = "SELECT table_name as tablebame ,table_name as name FROM information_schema.tables WHERE table_schema = '$database' AND table_type = 'BASE TABLE'"; $result = Db::query($sql); $result =['code' =>200,'data' =>$result] ; return json($result); } public function updateTemplate() { $result =['code' =>200,'data' =>'保存成功'] ; return json($result); } public function getWorkItemList() { $params = request()->post(); $currentPage = $params['currentPage']; $pageSize = $params['pageSize']; $group=$params['group']; $where = ['status'=>'0','receiveid'=>$this->user['id']]; $whereIn = ''; $totalResult = 0; if($group){ if($group['type'] == 'scheme'){ $where['scheme'] = $group['id']; $data = Db::name('flow_workitem_view')->order('createtime', 'desc')->where($where)->page($currentPage,$pageSize)->select(); $totalResult = Db::name('flow_workitem_view')->where($where)->page($currentPage,$pageSize)->count(); }else{ $groupId = $group['id']; $shemes = Db::name('flow_scheme')->where('group',$groupId)->select(); $wherescheme = []; foreach($shemes as $sheme){ array_unshift($wherescheme,$sheme['id']); } $data = Db::name('flow_workitem_view')->whereIn('scheme',implode(',',$wherescheme))->where($where)->order('createtime', 'desc')->page($currentPage,$pageSize)->select(); $totalResult = Db::name('flow_workitem_view')->whereIn('scheme',implode(',',$wherescheme))->where($where)->page($currentPage,$pageSize)->count(); } } else{ $data = Db::name('flow_workitem_view')->where($where)->order('createtime', 'desc')->page($currentPage,$pageSize)->select(); $totalResult = Db::name('flow_workitem_view')->where($where)->page($currentPage,$pageSize)->count(); } $result =['code' =>200,'data' =>$data,'input'=>$group,'total'=>$totalResult] ; return json($result); } public function getInstanceList() { $params = request()->post(); $currentPage = $params['currentPage']; $pageSize = $params['pageSize']; $group=$params['group']; $where = []; $whereIn = ''; $totalResult = 0; if($group){ if($group['type'] == 'scheme'){ $where['scheme'] = $group['id']; $data = Db::name('flow_workitem_view')->order('createtime', 'desc')->where($where)->page($currentPage,$pageSize)->select(); $totalResult = Db::name('flow_workitem_view')->where($where)->page($currentPage,$pageSize)->count(); }else{ $groupId = $group['id']; $shemes = Db::name('flow_scheme')->where('group',$groupId)->select(); $wherescheme = []; foreach($shemes as $sheme){ array_unshift($wherescheme,$sheme['id']); } $data = Db::name('flow_workitem_view')->whereIn('scheme',implode(',',$wherescheme))->where($where)->order('createtime', 'desc')->page($currentPage,$pageSize)->select(); $totalResult = Db::name('flow_workitem_view')->whereIn('scheme',implode(',',$wherescheme))->where($where)->page($currentPage,$pageSize)->count(); } } else{ $data = Db::name('flow_workitem_view')->where($where)->order('createtime', 'desc')->page($currentPage,$pageSize)->select(); $totalResult = Db::name('flow_workitem_view')->where($where)->page($currentPage,$pageSize)->count(); } $result =['code' =>200,'data' =>$data,'input'=>$group,'total'=>$totalResult] ; return json($result); } public function getFinishList() { $params = request()->post(); $currentPage = $params['currentPage']; $pageSize = $params['pageSize']; $group=$params['group']; $where = ['status'=>'2','receiveid'=>$this->user['id']]; $whereIn = ''; $totalResult = 0; if($group){ if($group['type'] == 'scheme'){ $where['scheme'] = $group['id']; $data = Db::name('flow_workitem_view')->where($where)->order('completedtime', 'desc')->page($currentPage,$pageSize)->select(); $totalResult = Db::name('flow_workitem_view')->where($where)->page($currentPage,$pageSize)->count(); }else{ $groupId = $group['id']; $shemes = Db::name('flow_scheme')->where('group',$groupId)->select(); $wherescheme = []; foreach($shemes as $sheme){ array_unshift($wherescheme,$sheme['id']); } $data = Db::name('flow_workitem_view')->whereIn('scheme',implode(',',$wherescheme))->where($where)->order('completedtime', 'desc')->page($currentPage,$pageSize)->select(); $totalResult = Db::name('flow_workitem_view')->whereIn('scheme',implode(',',$wherescheme))->where($where)->page($currentPage,$pageSize)->count(); } } else{ $data = Db::name('flow_workitem_view')->where($where)->order('completedtime', 'desc')->page($currentPage,$pageSize)->select(); $totalResult = Db::name('flow_workitem_view')->where($where)->page($currentPage,$pageSize)->count(); } $result =['code' =>200,'data' =>$data,'input'=>$group,'total'=>$totalResult] ; return json($result); } public function getMyList() { $params = request()->post(); $currentPage = $params['currentPage']; $pageSize = $params['pageSize']; $group=$params['group']; $where = ['originator'=>$this->user['id']]; $whereIn = ''; $totalResult = 0; if($group){ if($group['type'] == 'scheme'){ $where['scheme'] = $group['id']; $data = Db::name('flow_instace_view') ->where($where)->order('createtime', 'desc')->page($currentPage,$pageSize)->select(); $totalResult = Db::name('flow_instace_view')->where($where)->page($currentPage,$pageSize)->count(); }else{ $groupId = $group['id']; $shemes = Db::name('flow_scheme')->where('group',$groupId)->select(); $wherescheme = []; foreach($shemes as $sheme){ array_unshift($wherescheme,$sheme['id']); } $data = Db::name('flow_instace_view') ->whereIn('scheme',implode(',',$wherescheme))->where($where)->order('createtime', 'desc')->page($currentPage,$pageSize)->select(); $totalResult = Db::name('flow_instace_view')->whereIn('scheme',implode(',',$wherescheme))->where($where)->page($currentPage,$pageSize)->count(); } } else{ $data = Db::name('flow_instace_view') ->where($where)->order('createtime', 'desc')->page($currentPage,$pageSize)->select(); $totalResult = Db::name('flow_instace_view')->where($where)->page($currentPage,$pageSize)->count(); } $result =['code' =>200,'data' =>$data,'input'=>$group,'total'=>$totalResult] ; return json($result); } public function getFieldList() { $formId = request()->input('formId'); //$result = Db::name('flow_scheme')->where('id', $formId)->find(); $database = function_exists('get_env') ? get_env('DATABASE_DATABASE') : getenv('DATABASE_DATABASE'); $fieldListAll = Db::name('flow_field_view')->where(['table_name'=>$formId,'TABLE_SCHEMA'=>$database])->select(); //$result =['code' =>200,'data' =>$fieldListAll] ; return json($fieldListAll); } }