This commit is contained in:
weiz 2024-03-16 15:20:50 +08:00
parent 59234160a5
commit 9c1789c8b7
3 changed files with 37 additions and 26 deletions

View File

@ -68,32 +68,30 @@ class CostConsultationReportController extends BaseAdminController
// 造价项目信息汇总
public function cost_project_report()
{
$page_no = $this->request->param('page_no', 1);
$page_size = $this->request->param('page_size', 15);
$params = $this->request->param();
$project_name = $params['project_name'] ?? '';
$contract_name = $params['contract_name'] ?? '';
$aunit = $params['aunit'] ?? '';
$query = Db::name('cost_project')->alias('p')->leftJoin('cost_approved_project c', 'p.contract_id=c.id')->where(function ($query) use ($project_name, $contract_name, $aunit) {
if ($contract_name) {
$query->where('c.contract_name', 'like', '%' . $contract_name . '%');
}
if ($project_name) {
$query->where('p.project_name', 'like', '%' . $project_name . '%');
}
if ($aunit) {
$query->where('p.aunit', 'like', '%' . $aunit . '%');
}
});
$count = $query->count();
$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) {
$item['start_date'] = date('Y-m-d', $item['start_date']);
$item['end_date'] = date('Y-m-d', $item['end_date']);
return $item;
});
$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(!empty($params['contract_name'])){
$contract_ids1 = CostApprovedProject::where('contract_name','like','%'.$params['contract_name'].'%')->column('id');
$where[] = ['contract_id','in',$contract_ids1];
}
if(!empty($params['project_name'])){
$where[] = ['project_name','like','%'.$params['project_name'].'%'];
}
$lists = CostProject::field('id,contract_id,project_num,project_name,starting,endtime,types,invest')
->where($where)->page($page_no, $page_size)->order('id desc')->select()->each(function($data){
$contract = CostApprovedProject::field('contract_name')->where('id',$data['contract_id'])->findOrEmpty();
$data['contract_name'] = $contract['contract_name'];
$data['types'] = $data->types_text;
//开票金额
$data['total_invoice_amount'] = ZjzxInvoice::where('project_id',$data['id'])->sum('apply_amount');
//到账金额
$data['total_refund_amount'] = ZjzxRefund::where('project_id',$data['id'])->sum('amount');
//提成金额
$data['total_commission_amount'] = 0;
})->toArray();
$count = CostProject::where($where)->count();
return $this->success('成功', compact('count', 'lists', 'page_no', 'page_size'));
}

View File

@ -15,6 +15,7 @@
namespace app\adminapi\validate\cost_project;
use app\common\model\dict\DictData;
use app\common\validate\BaseValidate;
@ -120,4 +121,10 @@ class CostProjectValidate extends BaseValidate
return true;
}
public function checkTypes($value): bool|string
{
$dict = DictData::where('type_value','consultation_type')->column('value');
return !in_array($value,$dict) ? '咨询类型数据值无效' : true;
}
}

View File

@ -17,6 +17,7 @@ namespace app\common\model\cost_project;
use app\common\model\auth\Admin;
use app\common\model\BaseModel;
use app\common\model\dict\DictData;
use think\model\concern\SoftDelete;
@ -41,6 +42,11 @@ class CostProject extends BaseModel
return $this->hasOne(CostProjectContract::class, 'id','contract_id');
}
public function getTypesTextAttr($value,$data){
$dict = DictData::where('type_value','consultation_type')->column('name','value');
return !empty($data['types']) ? $dict[$data['types']] : '';
}
public function getPersonAttr($value){
return !empty($value) ? json_decode($value,true) : '';
}