$params['project_name'], 'project_code' => data_unique_code('XM'), 'nature' => $params['nature'], 'industry' => $params['industry'], 'build_unit' => $params['build_unit'] ?? '', 'build_area' => $params['build_area'], 'address' => $params['address'] ?? '', 'project_level' => $params['project_level'], 'total_investment' => $params['total_investment'], 'engineering_status' => $params['engineering_status'], 'contract_content' => $params['contract_content'] ?? '', 'project_overview' => $params['project_overview'] ?? '', 'project_requirements' => $params['project_requirements'] ?? '', 'planned_start_date' => !empty($params['planned_start_date']) ? strtotime($params['planned_start_date']) : 0, 'planned_end_date' => !empty($params['planned_end_date']) ? strtotime($params['planned_end_date']) : 0, 'actual_start_date' => !empty($params['actual_start_date']) ? strtotime($params['actual_start_date']) : 0, 'actual_end_date' => !empty($params['actual_end_date']) ? strtotime($params['actual_end_date']) : 0, 'implementation_department' => $params['implementation_department'] ?? '', 'supervision_department' => $params['supervision_department'] ?? '', 'project_manager' => $params['project_manager'], 'initiation_date' => !empty($params['initiation_date']) ? strtotime($params['initiation_date']) : 0, 'project_leader' => $params['project_leader'] ?? '', 'project_department' => $params['project_department'] ?? '', 'remark' => $params['remark'] ?? '', 'contract' => $params['contract'] ?? '', 'part_a_unit' => $params['part_a_unit'] ?? '', 'annex' => $params['annex'] ? json_encode($params['annex']) : null, 'create_user' => $params['create_user'], 'create_time' => !empty($params['create_time']) ? strtotime($params['actual_end_date']) : 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 2024/03/07 10:49 */ public static function edit(array $params): bool { Db::startTrans(); try { ManageProject::where('id', $params['id'])->update([ 'project_name' => $params['project_name'], 'nature' => $params['nature'], 'industry' => $params['industry'], 'build_unit' => $params['build_unit'] ?? '', 'build_area' => $params['build_area'], 'address' => $params['address'] ?? '', 'project_level' => $params['project_level'], 'total_investment' => $params['total_investment'], 'engineering_status' => $params['engineering_status'], 'contract_content' => $params['contract_content'] ?? '', 'project_overview' => $params['project_overview'] ?? '', 'project_requirements' => $params['project_requirements'] ?? '', 'planned_start_date' => !empty($params['planned_start_date']) ? strtotime($params['planned_start_date']) : 0, 'planned_end_date' => !empty($params['planned_end_date']) ? strtotime($params['planned_end_date']) : 0, 'actual_start_date' => !empty($params['actual_start_date']) ? strtotime($params['actual_start_date']) : 0, 'actual_end_date' => !empty($params['actual_end_date']) ? strtotime($params['actual_end_date']) : 0, 'implementation_department' => $params['implementation_department'] ?? '', 'supervision_department' => $params['supervision_department'] ?? '', 'project_manager' => $params['project_manager'], 'initiation_date' => !empty($params['initiation_date']) ? strtotime($params['initiation_date']) : 0, 'project_leader' => $params['project_leader'] ?? '', 'project_department' => $params['project_department'] ?? '', 'remark' => $params['remark'] ?? '', 'contract' => $params['contract'] ?? '', 'part_a_unit' => $params['part_a_unit'] ?? '', 'annex' => $params['annex'] ? json_encode($params['annex']) : null, 'create_user' => $params['create_user'], 'create_time' => !empty($params['create_time']) ? strtotime($params['actual_end_date']) : time(), '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 2024/03/07 10:49 */ public static function delete(array $params): bool { //获取参建单位 $company = ManageCompany::where('project_id',$params['id'])->findOrEmpty(); if(!$company->isEmpty()){ self::setError('该数据下存在参建单位信息,须删除参建单位信息'); return false; } //获取计量支付信息 $metered_payment = ManageMeteredPayment::where('project_id',$params['id'])->findOrEmpty(); if(!$metered_payment->isEmpty()){ self::setError('该数据下存在计量支付信息,须删除计量支付信息'); return false; } //获取工程变更信息 $engineering_changes = ManageEngineeringChanges::where('project_id',$params['id'])->findOrEmpty(); if(!$engineering_changes->isEmpty()){ self::setError('该数据下存在工程变更信息,须删除工程变更信息'); return false; } //获取工程进度月报信息 $progress_report = ManageMonthlyProgressReport::where('project_id',$params['id'])->findOrEmpty(); if(!$progress_report->isEmpty()){ self::setError('该数据下存在进度月报信息,须删除进度月报信息'); return false; } //todo return ManageProject::destroy($params['id']); } /** * @notes 获取项目管理--项目信息详情 * @param $params * @return array * @author likeadmin * @date 2024/03/07 10:49 */ public static function detail($params): array { $data = ManageProject::withoutField('update_time,delete_time')->findOrEmpty($params['id']); $data['industry_text'] = $data->industry_text; $data['nature_text'] = $data->nature_text; $data['build_area_text'] = $data->build_area_text; $data['project_level_text'] = $data->project_level_text; $data['engineering_status_text'] = $data->engineering_status_text; return $data->toArray(); } }