$params['project_id'], 'name' => $params['name'], 'idcard' => $params['idcard'], 'mobile' => $params['mobile'], 'work_type' => $params['work_type'], 'unit_price' => $params['unit_price'], 'daily_living_expenses' => $params['daily_living_expenses'], 'idcard_front' => $params['idcard_front'], 'idcard_backend' => $params['idcard_backend'], 'bank_card' => $params['bank_card'], 'bank_no' => $params['bank_no'], 'deposit_bank' => $params['deposit_bank'], 'remark' => $params['remark'], 'opening_income' => $params['opening_income'], 'add_user' => $admin_id, 'update_user' => $admin_id, ]); Db::commit(); return true; } catch (\Exception $e) { Db::rollback(); self::setError($e->getMessage()); return false; } } /** * @notes 编辑项目人员 * @param array $params * @return bool * @author likeadmin * @date 2023/12/22 14:38 */ public static function edit(array $params,$admin_id): bool { Db::startTrans(); try { ProjectPersonnel::where('id', $params['id'])->update([ 'project_id' => $params['project_id'], 'name' => $params['name'], 'idcard' => $params['idcard'], 'mobile' => $params['mobile'], 'work_type' => $params['work_type'], 'unit_price' => $params['unit_price'], 'daily_living_expenses' => $params['daily_living_expenses'], 'idcard_front' => $params['idcard_front'], 'idcard_backend' => $params['idcard_backend'], 'bank_card' => $params['bank_card'], 'bank_no' => $params['bank_no'], 'deposit_bank' => $params['deposit_bank'], 'remark' => $params['remark'], 'opening_income' => $params['opening_income'], 'update_user' => $admin_id, 'update_time' => time(), ]); Db::commit(); return true; } catch (\Exception $e) { Db::rollback(); self::setError($e->getMessage()); return false; } } /** * @notes 删除项目人员 * @param array $params * @return bool * @author likeadmin * @date 2023/12/22 14:38 */ public static function delete(array $params): bool { return ProjectPersonnel::destroy($params['id']); } /** * @notes 获取项目人员详情 * @param $params * @return array * @author likeadmin * @date 2023/12/22 14:38 */ public static function detail($params): array { $data = ProjectPersonnel::findOrEmpty($params['id']); if($data->isEmpty()) return []; $data['work_type_text'] = $data->work_type_text; $project = Project::field('name,project_code')->where('id',$data['project_id'])->findOrEmpty(); $admin = Admin::where('id','in',[$data['add_user'],$data['update_user']])->column('name','id'); $data['project_name'] = $project['name']; $data['project_code'] = $project['project_code']; $data['add_user_name'] = $admin[$data['add_user']]; $data['update_user_name'] = $admin[$data['update_user']]; $data['daily_income'] = ProjectAttendanceDetail::where('person_id',$data['id'])->sum('daily_income'); $build_report_details = BuildReportDetail::field('report_id,work_num')->where('person_id',$data['id'])->select()->each(function($item){ $report = BuildReport::field('plan_id')->where('id',$item['report_id'])->findOrEmpty(); $plan = BuildPlan::field('price')->where('id',$report['plan_id'])->findOrEmpty(); $item['amount'] = $item['work_num'] * $plan['price']; })->toArray(); $work_income = 0; foreach($build_report_details as $v){ $work_income += $v['amount']; } $data['work_income'] = $work_income; $data['total_income'] = $data['daily_income'] + $data['work_income']; $data['pay_out'] = ProjectSalaryDetail::where('person_id',$data['id'])->sum('apply_amount'); $data['balance'] = $data['total_income'] - $data['pay_out']; return $data->toArray(); } }