Update: refactor code and improve statistics functions in SupervisionProjectStatisticsLogic, add new models and statistics for problems, projects, and monthly reports

This commit is contained in:
mkm 2024-07-05 10:13:58 +08:00
parent 4f0252031f
commit a662ccf3c8

View File

@ -9,6 +9,9 @@ use app\common\model\financial\FinancialInvoice;
use app\common\model\financial\FinancialRefund;
use app\common\model\financial\FinancialSettlement;
use app\common\model\marketing\MarketingContract;
use app\common\model\supervision_connect\SupervisionProjectMonthlyReport;
use app\common\model\supervision_project\SupervisionProject;
use app\common\model\supervision_work\SupervisionProblem;
class SupervisionProjectStatisticsLogic extends BaseLogic
{
@ -22,6 +25,10 @@ class SupervisionProjectStatisticsLogic extends BaseLogic
$financialInvoice = new FinancialInvoice();
$financialRefund = new FinancialRefund();
$financialSettlement = new FinancialSettlement();
$supervisionProblem = new SupervisionProblem();
$supervisionProject = new SupervisionProject();
$supervisionProjectMonthlyReport = new SupervisionProjectMonthlyReport();
$total_apply_amount = $marketingContract->statistics_count([], $time, 'sum', '');
$apply_amount_value = $marketingContract->statistics_count([], $time, 'group', 'create_time');
@ -41,10 +48,21 @@ class SupervisionProjectStatisticsLogic extends BaseLogic
'value' => $apply_amount_value['y'] ?? 0,
'type' => 1,
];
//项目问题统计
$problem_cate = DictData::where('type_value', 'problem_cate')->column('name', 'value');
$contract_ids = $consultProject->column('contract');
foreach ($problem_cate as $k => $v) {
$total = $supervisionProblem->statistics_count(['problem_cate' => $k], $time, 'sum', '');
$value = $supervisionProblem->statistics_count(['problem_cate' => $k], $time, 'group', 'create_time');
$data[] = [
'title' => $v,
'desc' => '',
'total_money' => $total,
'value' => $value['y'] ?? 0,
'type' => 1,
];
}
$contract_ids = $supervisionProject->column('contract');
//开票金额
$where[] = ['contract_id', 'in', $contract_ids];
$total_apply_amount = $financialInvoice->ContractFinancialMoney($where, $time, 'sum', '', 'apply_amount');
@ -76,6 +94,38 @@ class SupervisionProjectStatisticsLogic extends BaseLogic
'value' => $amount_value['y'] ?? 0,
'type' => 1,
];
//工程进度
$total_apply_amount = $supervisionProjectMonthlyReport->statistics([], $time, 'sum', '', 'this_month_progress');
$apply_amount_value = $supervisionProjectMonthlyReport->statistics([], $time, 'group', 'create_time', 'this_month_progress');
$data[] = [
'title' => '工程进度',
'desc' => '',
'total_money' => $total_apply_amount,
'value' => $apply_amount_value['y'] ?? 0,
'type' => 1,
];
//工程完成
$total_apply_amount = $supervisionProjectMonthlyReport->statistics([], $time, 'sum', '', 'total_amount');
$apply_amount_value = $supervisionProjectMonthlyReport->statistics([], $time, 'group', 'create_time', 'total_amount');
$data[] = [
'title' => '工程完成',
'desc' => '',
'total_money' => $total_apply_amount,
'value' => $apply_amount_value['y'] ?? 0,
'type' => 1,
];
//支付总量
$total_apply_amount = $supervisionProjectMonthlyReport->statistics([], $time, 'sum', '', 'total_pay');
$apply_amount_value = $supervisionProjectMonthlyReport->statistics([], $time, 'group', 'create_time', 'total_pay');
$data[] = [
'title' => '支付总量',
'desc' => '',
'total_money' => $total_apply_amount,
'value' => $apply_amount_value['y'] ?? 0,
'type' => 1,
];
return $data;
}
}