request->get(); $page_no = !empty($params['page_no']) ? $params['page_no'] : 1; $page_size = !empty($params['page_size']) ? $params['page_size'] : 15; $where = []; if (isset($params['business_opportunity_id']) && $params['business_opportunity_id'] != '') { $bid_evaluation_ids = MarketingBidEvaluation::where('business_opportunity_id', $params['business_opportunity_id'])->column('id'); $bid_info_ids = MarketingBidInfo::where('bid_evaluation_id', 'in', $bid_evaluation_ids)->column('id'); $where[] = ['bid_info_id', 'in', $bid_info_ids]; } if (isset($params['bid_head']) && $params['bid_head'] != '') { $bid_info_ids1 = MarketingBidInfo::where('bid_head', $params['bid_head'])->column('id'); $where[] = ['bid_info_id', 'in', $bid_info_ids1]; } if (isset($params['bid_open_date']) && $params['bid_open_date'] != '') { $date = explode(',', $params['bid_open_date']); $where[] = ['bid_open_date', 'between', [strtotime($date[0] . ' 00:00:00'), strtotime($date[1] . ' 23:59:59')]]; } $lists = MarketingBidResult::field('bid_result_code,bid_info_id,quotation,bid_open_date,manager')->where($where) ->page($page_no, $page_size)->order('id desc') ->select()->each(function ($data) { $bid_info = MarketingBidInfo::field('bid_evaluation_id,bid_head')->where('id', $data['bid_info_id'])->findOrEmpty(); $bid_evaluation = MarketingBidEvaluation::field('business_opportunity_id,bid_type')->where('id', $bid_info['bid_evaluation_id'])->findOrEmpty(); $business_opportunity = MarketingBusinessOpportunity::field('project_name,construct_company,total_investment,industry_nature,project_address')->where('id', $bid_evaluation['business_opportunity_id'])->findOrEmpty(); $construct_company = MarketingCustom::field('name')->where('id', $business_opportunity['construct_company'])->findOrEmpty(); $bid_head = Admin::field('name')->where('id', $bid_info['bid_head'])->findOrEmpty(); $manager = Admin::field('name')->where('id', $data['manager'])->findOrEmpty(); $data['project_name'] = $business_opportunity?->project_name; $data['construct_company'] = $construct_company?->name; $data['total_investment'] = $business_opportunity?->total_investment; $data['project_address'] = $business_opportunity?->project_address; $data['industry_nature'] = $business_opportunity?->industry_nature_text; $data['bid_type'] = $bid_evaluation?->bid_type_text; $data['bid_head'] = $bid_head?->name; $data['manager'] = $manager?->name; })->toArray(); $count = BidResult::where($where)->count(); return $this->success('成功', compact('count', 'lists', 'page_no', 'page_size')); } //投标项目状态明细表 public function bid_project_status(): Json { $column = [0 => '未启动投标', 1 => '参与投标', 2 => '未开标', 3 => '已中标', 4 => '未中标']; $data = []; foreach ($column as $k => $v) { $count = MarketingBusinessOpportunity::field('id')->where('status', $k)->count(); $data[] = [ 'name' => $v, 'value' => $count ]; } return $this->success('success', compact('column', 'data')); } //投标项目数量明细表 public function bid_project_number(): Json { $column = [0 => '未启动投标', 1 => '参与投标', 2 => '未开标', 3 => '已中标', 4 => '未中标']; $data = []; foreach ($column as $k => $v) { $data[] = [ 'name' => $v, 'value' => MarketingBusinessOpportunity::field('id')->where('status', $k)->count() ]; } return $this->success('success', compact('column', 'data')); } //投标项目分析 public function bid_project_analysis(): Json { $column = DictData::where('type_value', 'cost_consultation_business_nature')->column('name', 'value'); $data = []; foreach ($column as $k => $v) { $business_opportunity_ids = MarketingBusinessOpportunity::where('business_nature', $k)->column('id'); $bid_evaluation_ids = MarketingBidEvaluation::where('business_opportunity_id', 'in', $business_opportunity_ids)->column('id'); $bid_info_ids = MarketingBidInfo::where('bid_evaluation_id', 'in', $bid_evaluation_ids)->column('id'); $data[] = [ 'name' => $v, 'value' => MarketingBidResult::field('id')->where('bid_info_id', 'in', $bid_info_ids)->where('bid_result', 0)->count() ]; } return $this->success('success', compact('column', 'data')); } //行业投标分析 public function bid_industry_analysis(): Json { $column = DictData::where('type_value', 'cost_consultation_industry_nature')->column('name', 'value'); $total_series = [ 'name' => '总金额', 'data' => [] ]; $bid_series = [ 'name' => '中标金额', 'data' => [] ]; $not_bit_series = [ 'name' => '未中标金额', 'data' => [] ]; foreach ($column as $k => $v) { $business_opportunity_ids = MarketingBusinessOpportunity::where('industry_nature', $k)->column('id'); $bid_evaluation_ids = MarketingBidEvaluation::where('business_opportunity_id', 'in', $business_opportunity_ids)->column('id'); $bid_info_ids = MarketingBidInfo::where('bid_evaluation_id', 'in', $bid_evaluation_ids)->column('id'); $total_series['data'][] = MarketingBidResult::field('id')->where('bid_info_id', 'in', $bid_info_ids)->sum('quotation'); $bid_series['data'][] = MarketingBidResult::field('id')->where('bid_info_id', 'in', $bid_info_ids)->where('bid_result', 0)->sum('quotation'); $not_bit_series['data'][] = MarketingBidResult::field('id')->where('bid_info_id', 'in', $bid_info_ids)->where('bid_result', 1)->sum('quotation'); } $result = [ 'total_series' => $total_series, 'bid_series' => $bid_series, 'not_bit_series' => $not_bit_series, 'column' => $column, ]; return $this->success('success', $result); } }