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'] != '') { $where[] = ['business_opportunity_id', $params['business_opportunity_id']]; } if (isset($params['part_a']) && $params['part_a'] != '') { $where[] = ['part_a', $params['part_a']]; } if (isset($params['create_user']) && $params['create_user'] != '') { $where[] = ['create_user', 'like', '%' . $params['create_user'] . '%']; } if (isset($params['create_time']) && $params['create_time'] != '') { $date = explode(',', $params['create_time']); $where[] = ['create_time', 'between', [strtotime($date[0] . ' 00:00:00'), strtotime($date[1] . ' 23:59:59')]]; } $lists = FinancialBidMarginRecovery::field('business_opportunity_id,part_a,create_user,create_time,recovery_amount,pay_amount')->where($where) ->page($page_no, $page_size)->order('id desc') ->select()->each(function ($data) { $project = MarketingBusinessOpportunity::field('project_name')->where('id', $data['business_opportunity_id'])->findOrEmpty(); $company = MarketingCustom::field('name')->where('id', $data['part_a'])->findOrEmpty(); $data['project_name'] = $project?->project_name; $data['part_a_name'] = $company?->name; })->toArray(); $count = FinancialBidMarginRecovery::where($where)->count(); return $this->success('成功', compact('count', 'lists', 'page_no', 'page_size')); } //履约金回收查询 public function performance_money_recovery_search(): Json { $params = $this->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['contract_id']) && $params['contract_id'] != '') { $where[] = ['contract_id', $params['contract_id']]; } if (isset($params['recovery_date']) && $params['recovery_date'] != '') { $date = explode(',', $params['recovery_date']); $where[] = ['recovery_date', 'between', [strtotime($date[0] . ' 00:00:00'), strtotime($date[1] . ' 23:59:59')]]; } if (isset($params['create_user']) && $params['create_user'] != '') { $where[] = ['create_user', 'like', '%' . $params['create_user'] . '%']; } $lists = FinancialPerformanceMoneyRecovery::field('contract_id,recovery_amount,recovery_date,create_user,create_time')->where($where) ->page($page_no, $page_size)->order('id desc') ->select()->each(function ($data) { $contract = MarketingContract::field('contract_name,part_a,performance_money,performance_money_expiration_time')->where('id', $data['contract_id'])->findOrEmpty(); $part_a = MarketingCustom::field('name')->where('id', $contract['part_a'])->findOrEmpty(); $data['contract_name'] = $contract?->contract_name; $data['part_a'] = $part_a?->name; $data['performance_money'] = $contract?->performance_money; $data['performance_money_expiration_time'] = $contract?->performance_money_expiration_time; })->toArray(); $count = FinancialPerformanceMoneyRecovery::where($where)->count(); return $this->success('成功', compact('count', 'lists', 'page_no', 'page_size')); } //履约金一览表 public function performance_money_list(): Json { $params = $this->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['contract_id']) && $params['contract_id'] != '') { $where[] = ['contract_id', $params['contract_id']]; } if (isset($params['part_a']) && $params['part_a'] != '') { $contract_ids = MarketingContract::where('party_a', $params['party_a'])->column('id'); $where[] = ['contract_id', 'in', $contract_ids]; } if (isset($params['performance_money_expiration_time']) && $params['performance_money_expiration_time'] != '') { $date = explode(',', $params['performance_money_expiration_time']); $where[] = ['performance_money_expiration_time', 'between', [strtotime($date[0] . ' 00:00:00'), strtotime($date[1] . ' 23:59:59')]]; } $lists = MarketingContract::field('id,contract_name,part_a,performance_money,performance_money_expiration_time')->where($where) ->page($page_no, $page_size)->order('id desc') ->select()->each(function ($data) { $part_a = MarketingCustom::field('name')->where('id', $data['part_a'])->findOrEmpty(); $data['part_a'] = $part_a?->name; $data['performance_money'] = $data?->performance_money; $performance_money_apply = FinancialPerformanceMoneyApply::where('contract_id', $data['id'])->findOrEmpty(); if ($performance_money_apply->isEmpty()) { $data['apply_status'] = '未申请'; } else { $data['apply_status'] = '已申请'; } $performance_money_recovery = FinancialPerformanceMoneyRecovery::where('contract_id', $data['id'])->findOrEmpty(); if ($performance_money_recovery->isEmpty()) { $data['recovery_status'] = '未回收'; } else { $data['recovery_status'] = '已回收'; } })->toArray(); $count = MarketingContract::where($where)->count(); return $this->success('成功', compact('count', 'lists', 'page_no', 'page_size')); } //保证金一览表 public function bid_margin_list(): Json { $params = $this->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_ids0 = MarketingBidEvaluation::where('business_opportunity_id', $params['business_opportunity_id'])->column('id'); $where[] = ['bid_evaluation_id', 'in', $bid_evaluation_ids0]; } if (isset($params['construct_company']) && $params['construct_company'] != '') { $business_opportunity_ids = MarketingBusinessOpportunity::where('construct_company', $params['construct_company'])->column('id'); $bid_evaluation_ids = MarketingBidEvaluation::where('business_opportunity_id', 'in', $business_opportunity_ids)->column('id'); $where[] = ['bid_evaluation_id', 'in', $bid_evaluation_ids]; } $lists = MarketingBidInfo::field('id,bid_evaluation_id,margin_end_date,expected_return_date')->where($where)->where('bid_status', 1) ->page($page_no, $page_size)->order('id desc') ->select()->each(function ($data) { $bid_evaluation = MarketingBidEvaluation::field('business_opportunity_id,bid_margin')->where('id', $data['bid_evaluation_id'])->findOrEmpty(); $business_opportunity = MarketingBusinessOpportunity::field('project_name,construct_company')->where('id', $bid_evaluation['business_opportunity_id'])->findOrEmpty(); $construct_company = MarketingCustom::field('name')->where('id', $business_opportunity['construct_company'])->findOrEmpty(); $data['bid_margin'] = $bid_evaluation?->bid_margin; $data['project_name'] = $business_opportunity?->project_name; $data['construct_company'] = $construct_company?->name; $bid_margin_apply = FinancialBidMargin::where('bid_info_id', $data['id'])->findOrEmpty(); if ($bid_margin_apply->isEmpty()) { $data['apply_status'] = '未申请'; } else { $data['apply_status'] = '已申请'; } $bid_margin_recovery = FinancialBidMarginRecovery::where('bid_info_id', $data['id'])->findOrEmpty(); if ($bid_margin_recovery->isEmpty()) { $data['recovery_status'] = '未回收'; $data['payment_status'] = '未支付'; } else { $data['recovery_status'] = '已回收'; if (!empty($bid_margin_recovery['pay_date']) && !empty($bid_margin_recovery['pay_amount'])) { $data['payment_status'] = '已支付'; } else { $data['payment_status'] = '未支付'; } } })->toArray(); $count = MarketingBidInfo::where($where)->where('bid_status', 1)->count(); return $this->success('成功', compact('count', 'lists', 'page_no', 'page_size')); } //保证金统计表 public function bid_margin_statistics(): Json { $total = MarketingBidInfo::where('bid_status', 1)->count(); $ytj = FinancialBidMargin::count(); $yhs = FinancialBidMarginRecovery::count(); $column = [0 => '提交总数', 1 => '未提交数', 2 => '待回收数']; $data = [ ['name' => '提交总数', 'value' => $total], ['name' => '未提交数', 'value' => ($total - $ytj) <= 0 ? 0 : $total - $ytj], ['name' => '待回收数', 'value' => ($total - $yhs) <= 0 ? 0 : $total - $yhs], ]; return $this->success('success', compact('column', 'data')); } }