success('员工资料接口'); } /** * 获取部门列表 */ public function getDepartment(){ if (Request::instance()->isGet() == false){ $this->error('非法请求'); } // 1. 查询所有有效人员(按部门+工序分组) $list = db('人员_基本资料') ->field('dept_name as 所在部门, big_process as 生产工序, COUNT(*) AS count') ->whereNull('mod_rq') ->group('所在部门, 生产工序') ->order('id asc') ->select(); // 2. 构建 部门 → 工序 二级结构 $tree = []; foreach ($list as $item) { $dept = $item['所在部门']; $process = $item['生产工序']; $count = $item['count']; // 初始化部门 if (!isset($tree[$dept])) { $tree[$dept] = [ 'label' => $dept, 'count' => 0, 'children' => [] ]; } // 总数量累加 $tree[$dept]['count'] += $count; // 有生产工序 → 加入二级 if (!empty($process)) { $tree[$dept]['children'][] = [ 'label' => $process, 'count' => $count ]; } } $result = array_values($tree); $this->success('获取部门数据', $result); } /** * 获取员工列表信息 */ public function getStaffList(){ if (Request::instance()->isGet() == false){ $this->error('非法请求'); } $params = Request::instance()->param(); $where = []; if (!empty($params['search'])){ $where['staff_no|staff_name'] = array('like','%'.$params['search'].'%'); } if (!empty($params['department_code'])){ $where['team_name|big_process|dept_name'] = $params['department_code']; } $limit = $params['limit']; if (empty($limit)){ $limit = 15; } $pages = $params['page']; if (empty($pages)){ $pages = 1; } $list = db('人员_基本资料') ->field(' id, staff_no as 员工编号, staff_name as 员工姓名, gender as 性别, team_id, team_name as 所在小组, big_process as 生产工序, position as 职称职务, dept_name as 所在部门, status as 状态, sys_rq as 创建日期, sys_id as 创建人员 ') ->where($where)->page($pages)->limit($limit)->order('id desc')->whereNull('mod_rq')->select(); $total = db('人员_基本资料')->where($where)->whereNull('mod_rq')->count(); $data['list'] = $list; $data['total'] = $total; $this->success('获取员工列表信息',$data); } /** * 获取员工资料 * @ApiMethod GET * @params string code */ public function getStaffInfo(){ if (Request::instance()->isGet() == false){ $this->error('非法请求'); } $params = Request::instance()->param(); $where = []; if (isset($params['id'])){ $where['id'] = $params['id']; } // 1. 查询人员基础信息 $staffList = db('人员_基本资料') ->field(' id, staff_no as 员工编号, staff_name as 员工姓名, gender as 性别, team_id, team_name as 所在小组, big_process as 生产工序, position as 职称职务, dept_name as 所在部门, status as 状态, sys_rq as 创建日期, sys_id as 创建人员 ') ->where($where) ->whereNull('mod_rq') ->select(); $this->success('获取员工资料', $staffList); } /** * 新增员工资料 */ public function PostStaffAdd(){ if (Request::instance()->isPost() == false){ $this->error('非法请求'); } $params = Request::instance()->param(); $staff_no = $params['员工编号'] ?? ''; if(empty($staff_no)){ $this->error('员工编号不能为空'); } // 查询数据库是否已存在 $Find_list = Db::name('人员_基本资料')->where('staff_no', $staff_no)->find(); if($Find_list){ $this->error('员工编号已存在'); } $data = []; $data['staff_no'] = $params['员工编号']; $data['staff_name'] = $params['员工姓名']; $data['gender'] = $params['性别']; $data['big_process'] = $params['生产工序']; $data['position'] = $params['职称职务']; $data['team_name'] = $params['所在小组']; $data['team_id'] = $params['UniqId']; $data['dept_name'] = '生产部'; $data['status'] = 1; $data['sys_rq'] = date('Y-m-d H:i:s'); $data['sys_id'] = $params['sys_id']; $res = Db::name('人员_基本资料')->insert($data); if ($res !== false){ $this->success('新增成功'); }else{ $this->error('新增失败'); } } /** * 修改员工资料 * @ApiMethod POST * */ public function PostStaffEdit(){ if (!Request::instance()->isPost()){ $this->error('非法请求'); } $params = Request::instance()->param(); //必传参数校验 if (empty($params['id'])){ $this->error('参数不能为空'); } if (empty($params['员工编号'])){ $this->error('员工编号不能为空'); } //查询员工是否存在(未删除) $info = db('人员_基本资料') ->where('id', $params['id']) ->whereNull('mod_rq') ->find(); if (!$info){ $this->error('员工不存在'); } //员工编号重复判断(排除自身) $exist = db('人员_基本资料') ->where('staff_no', $params['员工编号']) ->where('id', '<>', $params['id']) // 排除自己 ->whereNull('mod_rq') ->find(); if ($exist) { $this->error('员工编号已存在'); } //修改数据 $data = []; $data['staff_no'] = $params['员工编号']; $data['staff_name'] = $params['员工姓名']; $data['gender'] = $params['性别']; $data['big_process'] = $params['生产工序']; $data['position'] = $params['职称职务']; $data['team_name'] = $params['所在小组']; $data['team_id'] = $params['UniqId']; $data['dept_name'] = '生产部'; $data['updatetime'] = date('Y-m-d H:i:s'); $data['sys_id'] = $params['sys_id']; $res = db('人员_基本资料') ->where('id', $params['id']) ->update($data); if ($res !== false){ $this->success('更新成功'); }else{ $this->error('更新失败'); } } /** * 删除员工资料 */ public function PostStaffDelete() { if (Request::instance()->isPost() == false){ $this->error('非法请求'); } $params = Request::instance()->param(); if (empty($params['id'])){ $this->error('参数不能为空'); } $staffCode = $params['id']; $sql = db('人员_基本资料')->where('id',$staffCode)->fetchSql(true)->update(['mod_rq'=>date('Y-m-d H:i:s')]); $res = Db::query($sql); if ($res !== false){ $this->success('删除成功'); }else{ $this->error('删除失败'); } } /** * 获取设备编组 */ public function GetDeviceNameList(){ if (Request::instance()->isGet() == false){ $this->error('非法请求'); } $list = Db::name('设备_基本资料') ->field('UniqId,设备编组,生产工序,工序') ->where('设备名称','1') ->whereNull('mod_rq') ->group('设备编组') ->order('工序,UniqId asc') ->select(); $this->success('获取设备编组成功', $list); } }