From 376eaefb1d45e24890ba8a10ccf4517a6f100ba8 Mon Sep 17 00:00:00 2001 From: weiz <736250432@qq.com> Date: Mon, 15 Apr 2024 11:32:22 +0800 Subject: [PATCH] update --- .../FinancialBidStatisticsController.php | 187 ++++++++++++++++++ 1 file changed, 187 insertions(+) create mode 100644 app/adminapi/controller/financial/FinancialBidStatisticsController.php diff --git a/app/adminapi/controller/financial/FinancialBidStatisticsController.php b/app/adminapi/controller/financial/FinancialBidStatisticsController.php new file mode 100644 index 000000000..bc5155929 --- /dev/null +++ b/app/adminapi/controller/financial/FinancialBidStatisticsController.php @@ -0,0 +1,187 @@ +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; + $data['performance_money_expiration_time'] = $data?->performance_money_expiration_time; + $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)->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], + ['name' => '待回收数', 'value' => $total - $yhs], + + ]; + return $this->success('success', compact('column', 'data')); + } + } \ No newline at end of file