post(); $ret = db('develop_project')->where('project_state', $param['state'])->select(); return $this->sendSuccess($ret); } public function GetProjectInfo() { $param = request()->post(); $ProjectInfo = db('develop_project')->where('project_id', $param['project_id'])->find(); $members = explode(',', $ProjectInfo['project_members']); $ProjectInfo['project_members']=''; if (count($members)>0) { $ret = db('hr_staff')->where('staff_id', 'in', $members) ->column('staff_name'); $ProjectInfo['project_members'] = implode(',', $ret); //数组转字符串 } $ProjectInfo['project_manager'] = ''; $ret = db('hr_staff')->where('staff_id', $ProjectInfo['project_manager']) ->find(); if (null != $ret) { $ProjectInfo['project_manager'] = $ret['staff_name']; } return $this->sendSuccess($ProjectInfo); } public function GetProjectMaterialsList() { $param = request()->post(); // if ( $param['materials_type'] > 1) // { // $param['issue_id'] = 0; // } if(is_array($param['materials_type'])){ $MaterialsInfoList = db('develop_materials_info') ->where('project_id', $param['project_id']) ->where('issue_id', $param['issue_id']) ->where(function ($query) use ($param) { $query->whereOr('materials_type', $param['materials_type'][0]) ->whereOr('materials_type',$param['materials_type'][1]); }) ->order('create_time desc') ->select(); }else{ $MaterialsInfoList = db('develop_materials_info') ->where('project_id', $param['project_id']) ->where('issue_id', $param['issue_id']) ->where('materials_type', $param['materials_type']) ->order('create_time desc') ->select(); } return $this->sendSuccess($MaterialsInfoList); } public function GetIssueTypeList() { $ret = db('develop_issue_state')->select(); return $this->sendSuccess($ret); } public function editIssueType() { $param = request()->post(); if($param){ if($param['project_types'] === 1){ $update = []; if($param['issue_state'] === 11){ $issues_info = db('project_issues')->where('issue_id',$param['issue_id'])->find(); if($issues_info){ $createTime = $issues_info['create_time']; $createTimestamp = strtotime($createTime); $currentTimestamp = time(); $timeDifference = $currentTimestamp - $createTimestamp; $update['consuming_time'] = $timeDifference; } } if($param['issue_state'] === 9){ $issues_info = db('project_issues')->where('issue_id',$param['issue_id'])->find(); if($issues_info){ $update['issue_processor'] = $issues_info['issue_creator']; } } $update['issue_id'] = $param['issue_id']; $update['issue_state'] = $param['issue_state']; $ret = db('project_issues')->where('issue_id',$param['issue_id'])->update($update); if($ret){ return $this->sendSuccess("修改成功"); }else{ return $this->sendError('',"修改失败"); } }else if ($param['project_types'] === 2){ $update = []; $update['issue_id'] = $param['issue_id']; $update['issue_state'] = $param['issue_state']; $ret = db('develop_issues')->where('issue_id',$param['issue_id'])->update($update); if($ret){ return $this->sendSuccess("修改成功"); }else{ return $this->sendError('',"修改失败"); } } } return $this->sendError('',"失败"); } public function GetProjectIssueList() { $param = request()->post(); $user = new User(); $where = []; $where['i.project_id'] = $param['project_id']; if (isset($param['issue_state'])) { if (1 == $param['issue_state']) //小于10的为未解决 { $where['i.issue_state'] = array('<', 10); } else if (2 == $param['issue_state']) //大于等于10的为已关闭 { $where['i.issue_state'] = array('>=', 10); } } $staff_list = db('hr_staff')->select(); $ret = db('develop_issues')->alias('i') ->join('develop_issue_state s', 's.id =i.issue_state', 'left') ->where($where) ->field('i.*, s.desp as issue_state_name') ->select(); for ($i=0; $iGetUserInfoByLoginId($ret[$i]['issue_creator']); if ($create_user != null) { $ret[$i]['issue_creator'] = $create_user['id']; $ret[$i]['issue_creator_name'] = $create_user['name']; } $processor_user = $user->GetUserInfoByLoginId($ret[$i]['issue_processor']); if ($processor_user != null) { $ret[$i]['issue_processor'] = $processor_user['id']; $ret[$i]['issue_processor_name'] = $processor_user['name']; } } } return $this->sendSuccess($ret); } //添加项目资料 public function AddProjectMaterialsInfo() { $param = request()->post(); $insert_info = []; $insert_info['project_id'] = $param['project_id']; $insert_info['materials_intro'] = $param['materials_intro']; $insert_info['materials_url'] = $param['materials_url']; $insert_info['create_time'] = $param['create_time']; $insert_info['materials_type'] = $param['materials_type']; db('develop_materials_info')->insert($insert_info); } //编辑项目资料 public function EditProjectMaterialsInfo() { $param = request()->post(); if($param != null){ $update = []; $update['materials_intro'] = $param['materials_intro']; if ($param['materials_url'] != '') { $update['materials_url'] = $param['materials_url']; } $update['create_time'] = $param['create_time']; $ret = db('develop_materials_info')->where('materials_id',$param['materials_id'])->update($update); if($ret){ return $this->sendSuccess('修改成功'); }else{ return $this->sendError('修改失败'); } } } public function GetCutomerMemberInfo() { $param = request()->post(); $MemberInfo = db('project_info')->alias('i') ->join('customer_info c', 'c.customer_id =i.customer_id', 'left') ->join('customer_visitor v', 'v.visitorid =i.c.customer_id', 'left') ->where('i.project_id', $param['project_id']) ->field('v.*') ->select(); return $this->sendSuccess($MemberInfo); //$param['project_id'] } /*public function AddProjectInfo() { $param = request()->post(); $ret = db('project_type')->where('type_id', $param['project_type'])->field('type_id,super_type_id')->find(); if ($ret != null) { $insert_info = []; $insert_info['project_number'] = $param['project_number']; $insert_info['project_name'] = $param['project_name']; $insert_info['create_time'] = $param['create_time']; $insert_info['project_price'] = $param['project_price']; $insert_info['project_type'] = $param['project_type']; //合同父类型ID $insert_info['project_category']= $param['project_category']; if($param['project_url'] == ''){ $insert_info['project_url'] = ''; }else{ $insert_info['project_url'] = $param['project_url']; } db('project_info')->insert($insert_info); } }*/ public function AddProjectInfo() { $param = request()->post(); $insert_info = []; $insert_info['project_number'] = $param['project_number']; $insert_info['project_name'] = $param['project_name']; $insert_info['create_time'] = $param['create_time']; $insert_info['customer_id'] = $param['customer_id']; $insert_info['project_intro'] = $param['project_intro']; $insert_info['project_state'] = $param['project_state']; db('project_info')->insert($insert_info); } public function EditProjectInfo() { $param = request()->post(); if($param != null){ $update = []; $update['project_number'] = $param['project_number']; $update['project_name'] = $param['project_name']; $update['create_time'] = $param['create_time']; $update['project_intro'] = $param['project_intro']; $update['project_state'] = $param['project_state']; $ret = db('project_info')->where('project_id',$param['project_id'])->update($update); if($ret){ return $this->sendSuccess('修改成功'); }else{ return $this->sendError('修改失败'); } } } public function GetProjectStateList() { $Ret = db('project_state')->select(); return $this->sendSuccess($Ret); } public function updateProjectInfo() { $param = request()->post(); if($param != null){ $update = []; $update['project_name'] = $param['project_name']; $update['project_category'] = $param['project_category']; $update['project_number'] = $param['project_number']; if($param['project_url'] != '') { $update['project_url'] = $param['project_url']; } $update['project_price'] = $param['project_price']; $update['create_time'] = $param['create_time']; $ret = db('project_info')->where('project_id',$param['project_id'])->update($update); if($ret){ return $this->sendSuccess('修改成功'); }else{ return $this->sendError('修改失败'); } } } public function StartProject() { $param = request()->post(); if($param != null){ $update = []; $update['involve_members'] = implode(',', $param['members']); //数组转字符串 //$update['involve_manager'] = $param['manager']; $update['project_state'] = 2; //$update['tech_protocol'] = $param['tech_protocol']; //$update['create_time'] = $param['create_time']; $ret = db('project_info')->where('project_id',$param['project_id'])->update($update); if($ret){ return $this->sendSuccess('启动成功'); }else{ return $this->sendError('启动失败'); } } } public function RemoveProjectMember() { $param = request()->post(); $project_id = $param['project_id']; $remove_member = $param['staff_id'].''; $ret = db('project_info')->where('project_id', $project_id)->find(); $member_arr = explode(',', $ret['involve_members']); // 使用array_filter()函数删除指定值 $resultArray = array_filter($member_arr, function ($value) use ($remove_member) { return $value !== $remove_member; }); $update['involve_members'] = implode(',', $resultArray); $ret = db('project_info')->where('project_id',$project_id)->update($update); return $this->sendSuccess('移除成功'); } public function UpdateProjectMember() { $param = request()->post(); $update['involve_members'] = implode(',', $param['involve_members']); //数组转字符串 $ret = db('project_info')->where('project_id',$param['project_id'])->update($update); return $this->sendSuccess('更新成功'); } public function UpdateProjectManager() { $param = request()->post(); $update['involve_manager'] = $param['involve_manager']; //数组转字符串 $ret = db('project_info')->where('project_id',$param['project_id'])->update($update); return $this->sendSuccess('更新成功'); } //添加项目外部成员 public function AddProjectExternalMember() { $param = request()->post(); $insert = []; $insert['project_id'] = $param['project_id']; $insert['contacts_type'] = $param['contacts_type']; $insert['contacts_customer'] = $param['contacts_customer']; $insert['contacts_id'] = $param['contacts_id']; db('project_contacts')->insert($insert); return $this->sendSuccess('添加成功'); } //获取项目外部成员 public function GetProjectExternalMember() { $param = request()->post(); $member = []; $ret = db('project_contacts')->where('project_id', $param['project_id'])->select(); for ($i=0; $ialias('i') ->join('customer_contacts c', 'c.customer_id =i.customer_id', 'left') ->where('c.visitor_id', $ret[$i]['contacts_id']) ->field('c.visitor_name, c.visitor_idcard, c.visitor_phone, i.customer_name as company_name') ->find(); } //供应商 else if ($ret[$i]['contacts_type'] == 3) { $find = db('supplier_info')->alias('i') ->join('supplier_contacts c', 'c.customer_id =i.supplier_id', 'left') ->where('c.visitor_id', $ret[$i]['contacts_id']) ->field('c.visitor_name, c.visitor_idcard, c.visitor_phone, i.supplier_name as company_name') ->find(); } if ($find != null) { $member[] = $find; } } return $this->sendSuccess($member); } //添加项目资料 public function GetIssueListByStaff() { $ret = db('project_issues')->select(); return $this->sendSuccess($ret); } public function GetProjectIssueMyHome() { $param = request()->post(); $user = new User(); $currPage = empty($param['currPage']) ? 1 : $param['currPage']; $pageSize = empty($param['pageSize']) ? 10 : $param['pageSize']; $ret_issues = db('develop_issues')->alias('di') ->join('develop_project_state dps','di.issue_state = dps.id') ->where('di.issue_creator',$param['issue_creator']) ->where('di.issue_state','<',10) ->whereOr('di.issue_processor',$param['issue_creator']) ->page($currPage, $pageSize) ->order('di.create_time', 'desc') ->field('di.*,dps.desp ,2 as project_types') ->select(); $count = db('develop_issues') ->where('issue_creator',$param['issue_creator']) ->where('issue_state','<',10) ->whereOr('issue_processor',$param['issue_creator']) ->count(); for ($i = 0; $i < count($ret_issues); $i++) { $processorInfo = $user->GetUserInfoByLoginId($ret_issues[$i]['issue_processor']); if ($processorInfo !== null && isset($processorInfo['name'])) { $ret_issues[$i]['issue_processor_name'] = $processorInfo['name']; } else { $ret_issues[$i]['issue_processor_name'] = '未分配'; } $creatorInfo = $user->GetUserInfoByLoginId($ret_issues[$i]['issue_creator']); if ($creatorInfo !== null && isset($creatorInfo['name'])) { $ret_issues[$i]['issue_creator_name'] = $creatorInfo['name']; } else { $ret_issues[$i]['issue_creator_name'] = '未分配'; } } $ret = []; $ret['data'] = $ret_issues; $ret['total'] = $count; return $this->sendSuccess($ret); } public function AddDevelopMaterialsInfo() { $param = request()->post(); if($param){ $MaterTypeInfo = db('develop_materials_type')->where('type_id',$param['materials_type'])->field('type_name')->find(); $insertMaterInfo = []; $insertMaterInfo['project_id'] = $param['project_id']; $insertMaterInfo['issue_id'] = $param['issue_id']; $insertMaterInfo['materials_type'] = $param['materials_type']; $insertMaterInfo['materials_intro'] = $MaterTypeInfo['type_name']; $insertMaterInfo['materials_url'] = $param['materials_url']; $insertMaterInfo['materials_des'] = $param['materials_des']; $insertMaterInfo['create_time'] = date('Y-m-d H:i:s',time()); if(db('develop_materials_info')->insert($insertMaterInfo)){ return $this->sendSuccess('添加成功'); }else{ return $this->sendError('','添加失败'); } } } }