$params['project_id'], 'address' => $params['address'], 'service_scope' => $params['service_scope'], 'area' => $params['area'], 'invest' => $params['invest'], 'basic_type' => $params['basic_type'], 'duration' => $params['duration'], 'structure_type' => $params['structure_type'] ?? '', 'land_floors' => $params['land_floors'] ?? 0, 'underground_floors' => $params['underground_floors'] ?? 0, 'owner_unit' => $params['owner_unit'] ?? '', 'owner_unit_contact' => $params['owner_unit_contact'] ?? '', 'design_unit' => $params['design_unit'] ?? '', 'design_unit_contact' => $params['design_unit_contact'] ?? '', 'survey_unit' => $params['survey_unit'] ?? '', 'survey_unit_contact' => $params['survey_unit_contact'] ?? '', 'build_unit' => $params['build_unit'] ?? '', 'build_unit_contact' => $params['build_unit_contact'] ?? '', 'project_manager' => $params['project_manager'] ?? '', 'deputy_project_manager' => $params['deputy_project_manager'] ?? '', 'engineer' => $params['engineer'] ?? '', 'content' => $params['content'] ?? '', 'create_user' => $params['create_user'], 'create_time' => !empty($params['create_time']) ? strtotime($params['create_time']) : time(), ]); if (!empty($params['evolve'])) { foreach ($params['evolve'] as $v) { ConsultProjectEvolve::create([ 'new_start_project_id' => $res->id, 'name' => $v['name'], 'progress_status' => $v['progress_status'], 'resp_user' => $v['resp_user'] ]); } } if (!empty($params['preparation'])) { foreach ($params['preparation'] as $v) { ConsultProjectPreparation::create([ 'new_start_project_id' => $res->id, 'name' => $v['name'], 'progress_status' => $v['progress_status'], 'resp_user' => $v['resp_user'] ]); } } 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/11 10:27 */ public static function edit(array $params): bool { Db::startTrans(); try { ConsultNewStartProject::where('id', $params['id'])->update([ 'project_id' => $params['project_id'], 'address' => $params['address'], 'service_scope' => $params['service_scope'], 'area' => $params['area'], 'invest' => $params['invest'], 'basic_type' => $params['basic_type'], 'duration' => $params['duration'], 'structure_type' => $params['structure_type'] ?? '', 'land_floors' => $params['land_floors'] ?? 0, 'underground_floors' => $params['underground_floors'] ?? 0, 'owner_unit' => $params['owner_unit'] ?? '', 'owner_unit_contact' => $params['owner_unit_contact'] ?? '', 'design_unit' => $params['design_unit'] ?? '', 'design_unit_contact' => $params['design_unit_contact'] ?? '', 'survey_unit' => $params['survey_unit'] ?? '', 'survey_unit_contact' => $params['survey_unit_contact'] ?? '', 'build_unit' => $params['build_unit'] ?? '', 'build_unit_contact' => $params['build_unit_contact'] ?? '', 'project_manager' => $params['project_manager'] ?? '', 'deputy_project_manager' => $params['deputy_project_manager'] ?? '', 'engineer' => $params['engineer'] ?? '', 'content' => $params['content'] ?? '', 'create_user' => $params['create_user'], 'create_time' => !empty($params['create_time']) ? strtotime($params['create_time']) : time(), ]); if (!empty($params['evolve'])) { foreach ($params['evolve'] as $v) { if (!empty($v['id'])) { ConsultProjectEvolve::where('id', $v['id'])->update([ 'new_start_project_id' => $params['id'], 'name' => $v['name'], 'progress_status' => $v['progress_status'], 'resp_user' => $v['resp_user'] ]); } else { ConsultProjectEvolve::create([ 'new_start_project_id' => $params['id'], 'name' => $v['name'], 'progress_status' => $v['progress_status'], 'resp_user' => $v['resp_user'] ]); } } } if (!empty($params['preparation'])) { foreach ($params['preparation'] as $v) { if (!empty($v['id'])) { ConsultProjectPreparation::where('id', $v['id'])->update([ 'new_start_project_id' => $params['id'], 'name' => $v['name'], 'progress_status' => $v['progress_status'], 'resp_user' => $v['resp_user'] ]); } else { ConsultProjectPreparation::create([ 'new_start_project_id' => $params['id'], 'name' => $v['name'], 'progress_status' => $v['progress_status'], 'resp_user' => $v['resp_user'] ]); } } } 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/11 10:27 */ public static function delete(array $params): bool { $evolve = ConsultProjectEvolve::where('new_start_project_id', 'in', $params['id'])->findOrEmpty(); if (!$evolve->isEmpty()) { self::setError('此数据下存在项目组工作开展情况数据,须先删除项目组工作开展情况数据'); return false; } $preparation = ConsultProjectPreparation::where('new_start_project_id', 'in', $params['id'])->findOrEmpty(); if (!$preparation->isEmpty()) { self::setError('此数据下存在项目组后勤准备工作数据,须先删除项目组后勤准备工作数据'); return false; } return ConsultNewStartProject::destroy($params['id']); } /** * @notes 获取项目咨询--新开工项目管理详情 * @param $params * @return array * @author likeadmin * @date 2024/03/11 10:27 */ public static function detail($params): array { $data = ConsultNewStartProject::withoutField('update_time,delete_time')->findOrEmpty($params['id']); $project = ConsultProject::field('project_name')->where('id', $data['project_id'])->findOrEmpty(); $data['project_name'] = $project['project_name']; $admin = Admin::where('id', 'in', [$data['project_manager'], $data['deputy_project_manager'], $data['engineer']])->column('name', 'id'); $data['project_manager_name'] = $admin[$data['project_manager']] ?? ''; $data['deputy_project_manager_name'] = $admin[$data['deputy_project_manager']] ?? ''; $data['engineer_name'] = $admin[$data['engineer']] ?? ''; return $data->toArray(); } }