diff --git a/app/adminapi/controller/works/bgsp/OaApproveController.php b/app/adminapi/controller/works/bgsp/OaApproveController.php index 73354da15..64a87d075 100644 --- a/app/adminapi/controller/works/bgsp/OaApproveController.php +++ b/app/adminapi/controller/works/bgsp/OaApproveController.php @@ -470,7 +470,7 @@ } public function copy(){ - $param = $this->request->get(); + $params = $this->request->get(); $user_id = $this->adminId; //查询条件 $map = []; @@ -480,7 +480,7 @@ $page_size = !empty($params['page_size']) ? $params['page_size'] : 15; $list = Db::name('oa_approve') - ->field('f.*,a.name,d.title as department_name,t.title as flow_type') + ->field('f.*,a.name,d.name as department_name,t.title as flow_type') ->alias('f') ->join('admin a', 'a.id = f.admin_id', 'left') ->join('dept d', 'd.id = a.dept_id', 'left') @@ -489,7 +489,7 @@ ->order('f.id desc') ->group('f.id') ->page($page_no, $page_size) - ->each(function($item, $key){ + ->each(function($item){ $item['create_time'] = date('Y-m-d H:i', $item['create_time']); $item['check_user'] = '-'; if($item['check_status']<2 && !empty($item['check_admin_ids'])){ @@ -502,4 +502,87 @@ return $this->success('成功', compact('count', 'list', 'page_no', 'page_size')); } + public function lst(){ + $params = $this->request->get(); + $user_id = $this->adminId; + $status = $params['status'] ?? 0; + //查询条件 + $map1 = []; + $map2 = []; + $map1[] = ['', 'exp', Db::raw("FIND_IN_SET('{$user_id}',f.check_admin_ids)")]; + $map2[] = ['', 'exp', Db::raw("FIND_IN_SET('{$user_id}',f.flow_admin_ids)")]; + + $page_no = !empty($params['page_no']) ? $params['page_no'] : 1; + $page_size = !empty($params['page_size']) ? $params['page_size'] : 15; + + if($status == 0){ + $list = Db::name('oa_approve') + ->field('f.*,a.name,d.name as department_name,t.title as flow_type') + ->alias('f') + ->join('admin a', 'a.id = f.admin_id', 'left') + ->join('dept d', 'd.id = a.dept_id', 'left') + ->join('oa_flow_type t', 't.id = f.type', 'left') + ->whereOr([$map1,$map2]) + ->order('f.id desc') + ->group('f.id') + ->page($page_no, $page_size) + ->each(function($item){ + $item['create_time'] = date('Y-m-d H:i', $item['create_time']); + $item['check_user'] = '-'; + if($item['check_status']<2 && !empty($item['check_admin_ids'])){ + $check_user = Db::name('admin')->where('id','in',$item['check_admin_ids'])->column('name'); + $item['check_user'] = implode(',',$check_user); + } + return $item; + }); + $count = Db::name('oa_approve')->whereOr([$map1,$map2])->count(); + } + + if($status == 1){ + $list = Db::name('oa_approve') + ->field('f.*,a.name,d.name as department_name,t.title as flow_type') + ->alias('f') + ->join('admin a', 'a.id = f.admin_id', 'left') + ->join('dept d', 'd.id = a.dept_id', 'left') + ->join('oa_flow_type t', 't.id = f.type', 'left') + ->where($map1) + ->order('f.id desc') + ->group('f.id') + ->page($page_no, $page_size) + ->each(function($item){ + $item['create_time'] = date('Y-m-d H:i', $item['create_time']); + $item['check_user'] = '-'; + if($item['check_status']<2 && !empty($item['check_admin_ids'])){ + $check_user = Db::name('admin')->where('id','in',$item['check_admin_ids'])->column('name'); + $item['check_user'] = implode(',',$check_user); + } + return $item; + }); + $count = Db::name('oa_approve')->where($map1)->count(); + } + if($status == 2){ + $list = Db::name('oa_approve') + ->field('f.*,a.name,d.name as department_name,t.title as flow_type') + ->alias('f') + ->join('admin a', 'a.id = f.admin_id', 'left') + ->join('dept d', 'd.id = a.dept_id', 'left') + ->join('oa_flow_type t', 't.id = f.type', 'left') + ->where($map2) + ->order('f.id desc') + ->group('f.id') + ->page($page_no, $page_size) + ->each(function($item, $key){ + $item['create_time'] = date('Y-m-d H:i', $item['create_time']); + $item['check_user'] = '-'; + if($item['check_status']<2 && !empty($item['check_admin_ids'])){ + $check_user = Db::name('admin')->where('id','in',$item['check_admin_ids'])->column('name'); + $item['check_user'] = implode(',',$check_user); + } + return $item; + }); + $count = Db::name('oa_approve')->where($map2)->count(); + } + return $this->success('成功', compact('count', 'list', 'page_no', 'page_size')); + } + } \ No newline at end of file