From 69619f7eb8225630a8568e8398184b49cbddf70e Mon Sep 17 00:00:00 2001 From: mkm <727897186@qq.com> Date: Mon, 11 Mar 2024 13:41:17 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dperson=5Fid=20=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E9=A1=B9=E7=9B=AE=E9=83=A8=E9=97=A8=E5=88=86=E5=B8=83?= =?UTF-8?q?api?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CostConsultationReportController.php | 44 +++++++++++++++---- .../lists/cost_project/CostProjectLists.php | 14 +++++- .../logic/cost_project/CostProjectLogic.php | 4 +- 3 files changed, 51 insertions(+), 11 deletions(-) diff --git a/app/adminapi/controller/CostConsultationReportController.php b/app/adminapi/controller/CostConsultationReportController.php index 27bfd5e5c..cec0748ab 100644 --- a/app/adminapi/controller/CostConsultationReportController.php +++ b/app/adminapi/controller/CostConsultationReportController.php @@ -129,29 +129,57 @@ class CostConsultationReportController extends BaseAdminController $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'; + $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); + $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['depar'] > 0) { + $item['depar'] = Dept::where('id', $item['depar'])->value('name'); } - if($item['principal']>0){ - $item['principal'] =Dept::where('id', $item['principal'])->value('name'); + if ($item['principal'] > 0) { + $item['principal'] = Dept::where('id', $item['principal'])->value('name'); } - $item['has_invoice_amount']=0; - $item['amount_Collected']=0; + $item['has_invoice_amount'] = 0; + $item['amount_Collected'] = 0; return $item; }); return $this->success('成功', compact('count', 'lists', 'page_no', 'page_size')); + } + /** + * 项目部门分布 + + */ + public function distribution_project_departments() + { + $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); + $field = 'id,project_num,project_name,depar,principal'; + + + $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'); + } + return $item; + }); + return $this->success('成功', compact('count', 'lists', 'page_no', 'page_size')); } } diff --git a/app/adminapi/lists/cost_project/CostProjectLists.php b/app/adminapi/lists/cost_project/CostProjectLists.php index e5c53050f..44a6ca361 100644 --- a/app/adminapi/lists/cost_project/CostProjectLists.php +++ b/app/adminapi/lists/cost_project/CostProjectLists.php @@ -19,7 +19,7 @@ use app\adminapi\lists\BaseAdminDataLists; use app\common\lists\ListsExcelInterface; use app\common\model\cost_project\CostProject; use app\common\lists\ListsSearchInterface; - +use app\common\model\auth\Admin; /** * 造价项目台账列表 @@ -67,6 +67,12 @@ class CostProjectLists extends BaseAdminDataLists implements ListsSearchInterfac ->with(['contract']) ->order(['id' => 'desc']) ->select() + ->each(function($item){ + if($item['person']){ + $arr=explode(',',$item['person']); + Admin::whereIn('id',$arr)->column('name'); + } + }) ->toArray(); } return CostProject::where($this->searchWhere) @@ -74,6 +80,12 @@ class CostProjectLists extends BaseAdminDataLists implements ListsSearchInterfac ->with(['contract']) ->order(['id' => 'desc']) ->select() + ->each(function($item){ + if($item['person']){ + $arr=explode(',',$item['person']); + Admin::whereIn('id',$arr)->column('name'); + } + }) ->toArray(); } diff --git a/app/adminapi/logic/cost_project/CostProjectLogic.php b/app/adminapi/logic/cost_project/CostProjectLogic.php index 2f2657458..d6c8c0a92 100644 --- a/app/adminapi/logic/cost_project/CostProjectLogic.php +++ b/app/adminapi/logic/cost_project/CostProjectLogic.php @@ -55,7 +55,7 @@ class CostProjectLogic extends BaseLogic 'org_id' => $params['org_id'], 'depar' => $params['depar'], 'principal' => $params['principal'], - 'person' => $params['person'], + 'person' => $params['person_id'], 'invest' => $params['invest'], 'budget' => $params['budget'], 'cost' => $params['cost'], @@ -107,7 +107,7 @@ class CostProjectLogic extends BaseLogic 'org_id' => $params['org_id'], 'depar' => $params['depar'], 'principal' => $params['principal'], - 'person' => $params['person'], + 'person' => $params['person_id'], 'invest' => $params['invest'], 'budget' => $params['budget'], 'cost' => $params['cost'],