From f72cd218ead690b82a7333450816a5ee23564d1d Mon Sep 17 00:00:00 2001 From: mkm <727897186@qq.com> Date: Mon, 11 Mar 2024 11:27:07 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E5=BC=80=E7=A5=A8=E6=94=B6?= =?UTF-8?q?=E6=AC=BE=E6=B1=87=E6=80=BB=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CostConsultationReportController.php | 73 ++++++++++++++----- app/common/model/cost_project/CostProject.php | 5 ++ .../cost_project/CostProjectContract.php | 33 +++++++++ 3 files changed, 93 insertions(+), 18 deletions(-) create mode 100644 app/common/model/cost_project/CostProjectContract.php diff --git a/app/adminapi/controller/CostConsultationReportController.php b/app/adminapi/controller/CostConsultationReportController.php index 6f4a9649b..27bfd5e5c 100644 --- a/app/adminapi/controller/CostConsultationReportController.php +++ b/app/adminapi/controller/CostConsultationReportController.php @@ -3,6 +3,7 @@ namespace app\adminapi\controller; use app\common\model\cost_project\CostApprovedProject; +use app\common\model\cost_project\CostProject; use app\common\model\DataReception; use app\common\model\dept\Dept; use app\common\model\task\TaskAllocation; @@ -24,17 +25,17 @@ class CostConsultationReportController extends BaseAdminController $part_a = $params['part_a'] ?? ''; $query = Db::name('cost_approved_project')->where(function ($query) use ($contract_name, $contract_num, $part_a) { if ($contract_name) { - $query->where('contract_name', 'like', '%'.$contract_name.'%'); + $query->where('contract_name', 'like', '%' . $contract_name . '%'); } if ($contract_num) { $query->where('contract_num', '=', $contract_num); } if ($part_a) { - $query->where('part_a', 'like', '%'.$part_a.'%'); + $query->where('part_a', 'like', '%' . $part_a . '%'); } }); $count = $query->count(); - $lists = $query->page($page_no, $page_size)->select()->each(function($item){ + $lists = $query->page($page_no, $page_size)->select()->each(function ($item) { $item['start_date'] = date('Y-m-d', $item['start_date']); $item['end_date'] = date('Y-m-d', $item['end_date']); $item['due_time'] = date('Y-m-d', $item['due_time']); @@ -57,22 +58,22 @@ class CostConsultationReportController extends BaseAdminController $query = Db::name('cost_project')->alias('p')->leftJoin('cost_approved_project c', 'p.contract_id=c.id')->where(function ($query) use ($project_name, $project_num, $contract_name, $aunit) { if ($contract_name) { - $query->where('c.contract_name', 'like', '%'.$contract_name.'%'); + $query->where('c.contract_name', 'like', '%' . $contract_name . '%'); } if ($project_num) { $query->where('p.project_num', '=', $project_num); } if ($project_name) { - $query->where('p.project_name', 'like', '%'.$project_name.'%'); + $query->where('p.project_name', 'like', '%' . $project_name . '%'); } if ($aunit) { - $query->where('p.aunit', 'like', '%'.$aunit.'%'); + $query->where('p.aunit', 'like', '%' . $aunit . '%'); } }); $count = $query->count(); - $lists = $query->append(['dept'])->withAttr('dept', function ($value, $data){ + $lists = $query->append(['dept'])->withAttr('dept', function ($value, $data) { return Dept::where('id', $data['depar'])->findOrEmpty()->toArray(); - })->page($page_no, $page_size)->select()->each(function($item){ + })->page($page_no, $page_size)->select()->each(function ($item) { $item['start_date'] = date('Y-m-d', $item['start_date']); $item['end_date'] = date('Y-m-d', $item['end_date']); return $item; @@ -92,29 +93,65 @@ class CostConsultationReportController extends BaseAdminController $query = Db::name('cost_project')->alias('p')->leftJoin('cost_approved_project c', 'p.contract_id=c.id')->where(function ($query) use ($project_name, $project_num, $contract_name) { if ($contract_name) { - $query->where('c.contract_name', 'like', '%'.$contract_name.'%'); + $query->where('c.contract_name', 'like', '%' . $contract_name . '%'); } if ($project_num) { $query->where('p.project_num', '=', $project_num); } if ($project_name) { - $query->where('p.project_name', 'like', '%'.$project_name.'%'); + $query->where('p.project_name', 'like', '%' . $project_name . '%'); } })->append(['task_allocation_status', 'task_handling_three_level_review_status', 'data_reception_status']) - ->withAttr('task_allocation_status', function ($data, $value){ + ->withAttr('task_allocation_status', function ($data, $value) { $count = TaskAllocation::where('cost_project_id', $value['id'])->count(); - return $count > 0 ? 1: 0; - })->withAttr('task_handling_three_level_review_status', function ($data, $value){ + return $count > 0 ? 1 : 0; + })->withAttr('task_handling_three_level_review_status', function ($data, $value) { $count = TaskHandlingThreeLevelReview::where('project_id', $value['id'])->count(); - return $count > 0 ? 1: 0; - })->withAttr('data_reception_status', function ($data, $value){ + return $count > 0 ? 1 : 0; + })->withAttr('data_reception_status', function ($data, $value) { $count = DataReception::where('project_id', $value['id'])->count(); - return $count > 0 ? 1: 0; + return $count > 0 ? 1 : 0; }); $count = $query->count(); - $lists = $query->append(['dept'])->withAttr('dept', function ($value, $data){ + $lists = $query->append(['dept'])->withAttr('dept', function ($value, $data) { return Dept::where('id', $data['depar'])->findOrEmpty()->toArray(); })->page($page_no, $page_size)->select(); return $this->success('成功', compact('count', 'lists', 'page_no', 'page_size')); } -} \ No newline at end of file + + /** + * 项目开票收款汇总表 + */ + public function project_invoice_receipt() + { + $page_no = $this->request->param('page_no', 1); + $page_size = $this->request->param('page_size', 15); + $project_name = $params['project_name'] ?? ''; + $depar_id = $params['depar_id'] ?? 0; + $query = (new CostProject)->with(['cost_project_contract']); + $field='id,project_num,project_name,depar,principal,contract_id'; + if ($project_name) { + $query->where('project_name', 'like', '%' . $project_name . '%'); + } + if ($depar_id) { + $query->where('depar',$depar_id); + } + + $count = $query->count(); + $lists = $query->field($field)->page($page_no, $page_size)->select()->each(function ($item) { + $item['start_date'] = date('Y-m-d', $item['start_date']); + $item['end_date'] = date('Y-m-d', $item['end_date']); + if($item['depar']>0){ + $item['depar'] =Dept::where('id', $item['depar'])->value('name'); + } + if($item['principal']>0){ + $item['principal'] =Dept::where('id', $item['principal'])->value('name'); + } + $item['has_invoice_amount']=0; + $item['amount_Collected']=0; + return $item; + }); + return $this->success('成功', compact('count', 'lists', 'page_no', 'page_size')); + + } +} diff --git a/app/common/model/cost_project/CostProject.php b/app/common/model/cost_project/CostProject.php index 47042df08..57085c7f8 100644 --- a/app/common/model/cost_project/CostProject.php +++ b/app/common/model/cost_project/CostProject.php @@ -34,4 +34,9 @@ class CostProject extends BaseModel { return $this->hasOne(CostApprovedProject::class, 'id','contract_id'); } + + public function CostProjectContract() + { + return $this->hasOne(CostProjectContract::class, 'id','contract_id'); + } } \ No newline at end of file diff --git a/app/common/model/cost_project/CostProjectContract.php b/app/common/model/cost_project/CostProjectContract.php new file mode 100644 index 000000000..0671df490 --- /dev/null +++ b/app/common/model/cost_project/CostProjectContract.php @@ -0,0 +1,33 @@ +