diff --git a/app/adminapi/lists/project/ProjectTotalBudgetLists.php b/app/adminapi/lists/project/ProjectTotalBudgetLists.php index 943bc3334..e69772586 100644 --- a/app/adminapi/lists/project/ProjectTotalBudgetLists.php +++ b/app/adminapi/lists/project/ProjectTotalBudgetLists.php @@ -11,115 +11,115 @@ // +---------------------------------------------------------------------- // | author: likeadminTeam // +---------------------------------------------------------------------- - -namespace app\adminapi\lists\project; - - -use app\adminapi\lists\BaseAdminDataLists; -use app\common\lists\ListsExcelInterface; -use app\common\model\project\Project; -use app\common\model\project\ProjectTotalBudget; -use app\common\lists\ListsSearchInterface; - - -/** - * 项目总预算列表 - * Class ProjectTotalBudgetLists - * @package app\adminapi\listsproject - */ -class ProjectTotalBudgetLists extends BaseAdminDataLists implements ListsSearchInterface,ListsExcelInterface -{ - - - /** - * @notes 设置搜索条件 - * @return \string[][] - * @author likeadmin - * @date 2024/01/08 14:25 - */ - public function setSearch(): array - { - return [ - '=' => ['project_id'], - '%like%' => ['total_budget_code', 'project_manager'], - - ]; - } - - - /** - * @notes 获取项目总预算列表 - * @return array - * @throws \think\db\exception\DataNotFoundException - * @throws \think\db\exception\DbException - * @throws \think\db\exception\ModelNotFoundException - * @author likeadmin - * @date 2024/01/08 14:25 - */ - public function lists(): array - { - return ProjectTotalBudget::where($this->searchWhere) - ->field('id,project_id,total_budget_code,project_manager,budget_date,contract_amount,cl_cost,fb_cost,rg_cost,fy_cost,jj_cost,remark,budget_list') - ->limit($this->limitOffset, $this->limitLength) - ->order(['id' => 'desc']) - ->select()->each(function($data){ - $project = Project::field('name,project_code')->where('id',$data['project_id'])->findOrEmpty(); - $data['project_name'] = $project['name']; - $data['project_code'] = $project['project_code']; - //总成本 - $data['total_cost'] = $data['cl_cost'] + $data['fb_cost'] + $data['rg_cost'] + $data['fy_cost'] + $data['jj_cost']; - //项目利润 - $data['profit'] = $data['contract_amount'] - $data['total_cost']; - //利润率 - $data['profit_rate'] = $data['profit'] / $data['contract_amount']; - return $data; - }) - ->toArray(); - } - - - /** - * @notes 获取项目总预算数量 - * @return int - * @author likeadmin - * @date 2024/01/08 14:25 - */ - public function count(): int - { - return ProjectTotalBudget::where($this->searchWhere)->count(); - } - public function setFileName(): string - { - return '总预算列表'; - } + namespace app\adminapi\lists\project; + + + use app\adminapi\lists\BaseAdminDataLists; + use app\common\lists\ListsExcelInterface; + use app\common\lists\ListsSearchInterface; + use app\common\model\project\Project; + use app\common\model\project\ProjectTotalBudget; + /** - * @notes 导出字段 - * @return string[] - * @author 段誉 - * @date 2022/11/24 16:17 + * 项目总预算列表 + * Class ProjectTotalBudgetLists + * @package app\adminapi\listsproject */ - public function setExcelFields(): array + class ProjectTotalBudgetLists extends BaseAdminDataLists implements ListsSearchInterface, ListsExcelInterface { - return [ - "id" => "id", - "total_budget_code" => "预算单号", - "project_name" => "项目名称", - "project_code" => "项目编码", - "project_manager" => "项目经理", - "budget_date" => "预算日期", - "contract_amount" => "合同金额", - "total_cost" => "总成本", - "profit" => "项目利润", - "profit_rate" => "项目利润率", - "cl_cost" => "材料预算成本", - "fb_cost" => "分包预算成本", - "rg_cost" => "人工预算成本", - "fy_cost" => "费用预算成本", - "jj_cost" => "机具预算成本", - "remark" => "备注", - ]; - } - -} \ No newline at end of file + + + /** + * @notes 设置搜索条件 + * @return \string[][] + * @author likeadmin + * @date 2024/01/08 14:25 + */ + public function setSearch(): array + { + return [ + '=' => ['project_id'], + '%like%' => ['total_budget_code', 'project_manager'], + + ]; + } + + + /** + * @notes 获取项目总预算列表 + * @return array + * @throws \think\db\exception\DataNotFoundException + * @throws \think\db\exception\DbException + * @throws \think\db\exception\ModelNotFoundException + * @author likeadmin + * @date 2024/01/08 14:25 + */ + public function lists(): array + { + return ProjectTotalBudget::where($this->searchWhere) + ->field('id,project_id,total_budget_code,project_manager,budget_date,contract_amount,cl_cost,fb_cost,rg_cost,fy_cost,jj_cost,remark,budget_list') + ->limit($this->limitOffset, $this->limitLength) + ->order(['id' => 'desc']) + ->select()->each(function ($data) { + $project = Project::field('name,project_code')->where('id', $data['project_id'])->findOrEmpty(); + $data['project_name'] = $project['name']; + $data['project_code'] = $project['project_code']; + //总成本 + $data['total_cost'] = $data['cl_cost'] + $data['fb_cost'] + $data['rg_cost'] + $data['fy_cost'] + $data['jj_cost']; + //项目利润 + $data['profit'] = $data['contract_amount'] - $data['total_cost']; + //利润率 + $data['profit_rate'] = !empty((float)$data['contract_amount']) ? ($data['profit'] / $data['contract_amount']) : 0; + return $data; + }) + ->toArray(); + } + + + /** + * @notes 获取项目总预算数量 + * @return int + * @author likeadmin + * @date 2024/01/08 14:25 + */ + public function count(): int + { + return ProjectTotalBudget::where($this->searchWhere)->count(); + } + + public function setFileName(): string + { + return '总预算列表'; + } + + /** + * @notes 导出字段 + * @return string[] + * @author 段誉 + * @date 2022/11/24 16:17 + */ + public function setExcelFields(): array + { + return [ + "id" => "id", + "total_budget_code" => "预算单号", + "project_name" => "项目名称", + "project_code" => "项目编码", + "project_manager" => "项目经理", + "budget_date" => "预算日期", + "contract_amount" => "合同金额", + "total_cost" => "总成本", + "profit" => "项目利润", + "profit_rate" => "项目利润率", + "cl_cost" => "材料预算成本", + "fb_cost" => "分包预算成本", + "rg_cost" => "人工预算成本", + "fy_cost" => "费用预算成本", + "jj_cost" => "机具预算成本", + "remark" => "备注", + ]; + } + + } \ No newline at end of file