update
This commit is contained in:
parent
8bc05198d1
commit
376eaefb1d
@ -0,0 +1,187 @@
|
||||
<?php
|
||||
|
||||
namespace app\adminapi\controller\financial;
|
||||
|
||||
use app\adminapi\controller\BaseAdminController;
|
||||
use app\common\model\financial\FinancialBidMargin;
|
||||
use app\common\model\financial\FinancialBidMarginRecovery;
|
||||
use app\common\model\financial\FinancialPerformanceMoneyApply;
|
||||
use app\common\model\financial\FinancialPerformanceMoneyRecovery;
|
||||
use app\common\model\marketing\MarketingBidEvaluation;
|
||||
use app\common\model\marketing\MarketingBidInfo;
|
||||
use app\common\model\marketing\MarketingBusinessOpportunity;
|
||||
use app\common\model\marketing\MarketingContract;
|
||||
use app\common\model\marketing\MarketingCustom;
|
||||
use think\response\Json;
|
||||
|
||||
class FinancialBidStatisticsController extends BaseAdminController
|
||||
{
|
||||
//投标保证回收查询
|
||||
public function bid_margin_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['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'));
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user