# -*- coding: utf-8 -*-
from docx import Document
from docx.shared import Pt, RGBColor, Inches
from docx.enum.text import WD_ALIGN_PARAGRAPH
from docx.oxml.ns import qn

def create_full_report():
    # 创建文档
    doc = Document()

    # 设置默认字体
    doc.styles['Normal'].font.name = '宋体'
    doc.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'), '宋体')
    doc.styles['Normal'].font.size = Pt(12)

    # ========== 封面 ==========
    doc.add_paragraph('辽宁科技学院').alignment = WD_ALIGN_PARAGRAPH.CENTER

    title = doc.add_paragraph()
    run = title.add_run('实  习  报  告')
    run.bold = True
    run.font.size = Pt(16)
    title.alignment = WD_ALIGN_PARAGRAPH.CENTER

    for _ in range(12):
        doc.add_paragraph('')

    info_para = [
        '姓名：杨璐    学号：74133240622',
        '系部：电信学院    专业：计算机科学与技术',
        '班级：计BZ246    指导教师：王宇婷',
        '实习名称：校企合作训练项目    实习时间：2025.12.1—2026.1.16',
        '实习单位：智慧南楼-502'
    ]

    for info in info_para:
        doc.add_paragraph(info)

    for _ in range(3):
        doc.add_paragraph('')

    doc.add_paragraph('辽宁科技学院教务处制').alignment = WD_ALIGN_PARAGRAPH.CENTER

    # 分页
    doc.add_page_break()

    # ========== 正文开始 ==========

    # 1、课程实践的目的、意义
    doc.add_heading('1、课程实践的目的、意义', level=1)
    doc.add_paragraph('实习内容为Web应用开发（CSS+JavaScript）、JavaWeb应用开发。计划在校内实施相关项目学习，由校方老师和企业老师指导具体实习任务。')

    doc.add_heading('（一）获取知识目标', level=2)
    doc.add_paragraph('教学目标1：掌握Java Web应用开发的一般流程和方法，能够独立完成基于B/S架构的应用系统设计与实现。')
    doc.add_paragraph('教学目标2：深入理解前后端分离的开发模式；熟练掌握原生HTML/CSS/JavaScript前端开发及Spring Boot后端框架的使用方法；能够运用现代Web开发技术栈完成企业级项目的开发。')

    doc.add_heading('（二）分析问题目标', level=2)
    doc.add_paragraph('教学目标3：了解软件项目开发的完整生命周期；掌握系统需求分析、架构设计、数据库设计等方法；能够独立解决项目开发过程中遇到的技术难题。')

    doc.add_heading('（三）解决问题目标', level=2)
    doc.add_paragraph('教学目标4：能够规范编写项目技术文档；依照实习报告格式要求撰写完整的课程实践报告；报告内容完整，格式规范，杜绝抄袭。')

    doc.add_heading('（四）思政目标', level=2)
    doc.add_paragraph('着眼于大学生世界观、价值观的塑造，使学生明白科技创新的重要性；培养学生严谨的工程态度和团队协作精神；使学生明确作为社会主义事业建设者和接班人所肩负的责任和使命。')

    # 2、课程实践的内容
    doc.add_heading('2、课程实践的内容', level=1)

    doc.add_heading('1、绪论', level=2)
    doc.add_heading('1.1 研究目的与意义', level=3)
    doc.add_paragraph('随着我国汽车保有量的持续增长，汽车后市场服务需求日益旺盛。4S店作为汽车销售和售后服务的主要渠道，承担着大量车辆的维修保养工作。然而，传统4S店在经营管理中普遍存在信息化程度不高、业务流程不规范、数据管理混乱等问题，严重影响了服务质量和运营效率。')
    doc.add_paragraph('信息化管理模式是将行业中的工作流程由人工服务，逐渐转换为使用计算机技术的信息化管理服务。这种管理模式发展迅速，使用起来非常简单容易，用户甚至不用掌握相关的专业知识，根据教程指导即可正常使用相关的系统，因而被越来越多的用户所使用。')
    doc.add_paragraph('同时研究基于SpringBoot的车辆维保管理系统也有很多意义。从企业运营角度能有效提高管理效率。它可以自动化处理车辆维修保养的各个流程，如客户预约、工单管理、配件库存等，减少人工操作的繁琐环节和可能出现的错误，实现业务流程的精准管理。')
    doc.add_paragraph('当下，许多行业采用互联网技术将工作流程信息化、数字化，提高了相关人员的服务质量和效率，节约了相关行业的人力、财力、物力等资源。')

    doc.add_heading('1.2 国内外研究现状', level=3)
    doc.add_paragraph('在国外，汽车售后服务信息化起步较早，欧美等发达国家的汽车连锁服务企业普遍采用了先进的信息管理系统。知名汽车厂商如宝马、奔驰等都拥有完善的售后服务管理系统，实现了从客户预约、维修接待、工单管理到配件库存的全流程信息化管理。')
    doc.add_paragraph('在国内，随着汽车产业的快速发展，汽车后市场信息化建设也逐渐受到重视。大概在20世纪90年代，我国才开始研发汽车维修管理系统，与一些发达国家相比，系统研发起步比较晚。')
    doc.add_paragraph('基于Spring Boot和原生HTML/CSS/JavaScript的前后端分离架构是当前Web应用开发的主流技术方案。Spring Boot简化了Spring框架的配置，提供了快速开发的能力。')

    doc.add_heading('2、系统分析', level=2)
    doc.add_heading('2.1 需求分析', level=3)
    doc.add_paragraph('功能需求分析是软件系统开发过程中的一个关键环节。在车管家4S店车辆维保管理系统中，系统设计了三级用户权限体系：管理员、工作人员和客户。')
    doc.add_paragraph('预约管理功能实现线上预约维修服务，支持四种服务类型：保养维护、维修服务、美容服务、保险代理。维保工单管理功能支持工单创建与编号自动生成，记录工单详细信息。配件库存管理功能实现配件信息录入、库存数量管理、库存预警系统。')
    doc.add_paragraph('非功能需求聚焦于性能需求、易用性需求、可拓展需求、可靠性及安全性等多个层面。系统要确保快速响应，查询车辆信息、生成维修工单等日常操作的响应时间控制在1-2秒内。')

    doc.add_heading('2.2 可行性分析', level=3)
    doc.add_paragraph('技术可行性：车管家4S店车辆维保管理系统选用SpringBoot框架，它已在行业内广泛应用，拥有庞大的开发者社区。')
    doc.add_paragraph('经济可行性：从成本角度来看，虽然开发初期需要投入一定资金，但并非不可承受。在效益产出上，收益显著。首先，大幅提升运营效率；其次，能有效增加业务量；最后，优化资源配置。')
    doc.add_paragraph('社会可行性：现代社会人们的用车需求越来越多样化，车管家4S店车辆维保管理系统提供了便捷的维修保养服务方式。')

    doc.add_heading('3、系统使用相关技术', level=2)
    doc.add_paragraph('后端开发技术采用了SpringBoot框架以及Java语言。SpringBoot框架是核心后端技术之一，它简化了基于Spring的应用开发，通过自动配置等功能，能快速搭建系统的基础架构。')
    doc.add_paragraph('该系统采用了关系型数据库MySQL。关系型数据库用于存储结构化数据，如用户基本信息表、客户信息表、车辆信息表、维修工单表、配件库存表等。')
    doc.add_paragraph('本系统前端开发技术采用HTML/CSS/JavaScript，使用了Bootstrap 5前端框架。系统通过Fetch API实现与后端RESTful接口的数据交互，采用异步编程模式，提升用户体验。')
    doc.add_paragraph('B/S结构（浏览器/服务器结构）是当今网络应用中广泛采用的一种架构模式。用户通过浏览器作为客户端界面，直接访问网络上的服务器，以实现数据的动态交互。')
    doc.add_paragraph('软件开发使用IDEA平台，它是目前比较常用的Java开发环境，具有功能强大、可扩展性强等特点。')

    doc.add_heading('4、系统设计', level=2)
    doc.add_paragraph('本系统主要通过使用Java语言编码设计系统功能，MySQL数据库管理数据，AJAX技术设计简洁的、友好的网址页面。本系统的使用角色可以被分为管理员、工作人员和客户，不同角色拥有不同的功能权限和操作界面。')
    doc.add_paragraph('本系统使用MySQL数据库管理与系统相关的数据信息。数据库设计了9张核心表：用户表、客户信息表、车辆档案表、维保工单表、配件库存表、配件使用记录表、预约记录表、服务项目表、系统日志表。')

    doc.add_heading('4.1 项目1：JavaScript+CSS项目', level=3)
    doc.add_heading('4.1.1、页面布局', level=4)
    doc.add_paragraph('系统设计了四个主要页面：登录页面、管理员仪表板页面、工作人员仪表板页面、客户中心页面。登录页面布局简洁大方，包含用户名、密码输入框、角色选择以及"登录"按钮。')
    doc.add_paragraph('管理员仪表板页面整体布局采用响应式设计。上方设置导航栏，包含"用户管理""车辆管理""工单管理""配件管理""预约管理""退出登录"等主要菜单选项。')
    doc.add_paragraph('工作人员仪表板页面设计聚焦日常操作需求。上方展示工作概览统计，主体区域分为"我的工单""车辆查询""配件查询"三个功能模块。')
    doc.add_paragraph('客户中心页面以客户需求为中心设计。左侧为功能导航栏，包含"我的车辆""维保记录""我的预约""在线预约"等选项。')

    doc.add_heading('4.1.2、页面设计', level=4)
    doc.add_paragraph('该系统页面设计通过合理的布局、清晰的导航栏能让用户便捷地找到信息。页面采用Bootstrap 5框架的蓝色调为主的页面设计，体现专业性和科技感。')
    doc.add_paragraph('管理员仪表板采用卡片式统计设计，直观展示系统关键数据。工单管理页面支持按状态筛选，配件管理页面对库存低于预警值的配件使用红色高亮显示。')
    doc.add_paragraph('工作人员仪表板聚焦操作效率，工单列表突出显示关键信息。车辆查询和配件查询采用实时搜索功能。')

    doc.add_heading('4.1.3、表单验证', level=4)
    doc.add_paragraph('该系统通过输入用户名和密码，系统与数据库中存储的用户信息进行比对验证，确认用户身份是否合法，防止非法访问。')
    doc.add_paragraph('在创建维修工单时，系统会对输入的车辆信息、故障描述等进行验证。在创建客户信息时，姓名、联系方式为必填项，手机号格式需要符合规范。在创建车辆档案时，车牌号、品牌、型号为必填项。在添加配件时，配件名称、类别、单位、单价、库存数量为必填项。')

    doc.add_heading('4.2 项目2：后端功能模块设计', level=3)
    doc.add_heading('4.2.1、登录和注册模块', level=4)
    doc.add_paragraph('车管家4S店车辆维保管理系统登录模块，通过简单直观的页面设计易于用户理解跟操作。登录页面包含用户名、密码输入框和角色选择（管理员、工作人员、客户），用户手动输入账号与密码即可登录系统。')

    doc.add_heading('4.2.2、主调模块', level=4)
    doc.add_paragraph('车辆维保管理模块是系统的一个主要模块，主要负责车辆信息的维护和管理，包括车辆的基本信息录入、车辆状态更新、当前里程记录、保养时间跟踪等。')
    doc.add_paragraph('维保工单管理模块是系统的核心功能模块，支持四种服务类型：保养维护、维修服务、美容服务、保险代理。工单状态流转包括待处理、已预约、进行中、已完成、已取消五个状态。')

    doc.add_heading('4.2.3、分功能模块', level=4)
    doc.add_paragraph('配件库存管理模块是系统的重要组成部分，提供配件信息的完整管理功能。系统实现了库存预警功能，当配件库存数量低于最小库存预警值时，自动在配件列表中高亮显示。')
    doc.add_paragraph('服务项目管理模块建立了标准服务项目库。数据统计模块提供系统概览统计功能，在管理员仪表板首页，系统实时统计并展示用户总数、车辆总数、工单总数、库存预警数量等关键指标。')

    doc.add_heading('5、系统测试与运行', level=2)
    doc.add_paragraph('单元测试是对该系统的最小可测试单元进行的测试，主要检查这些单元是否按照预期的方式工作。测试维修费用计算模块，输入配件费用、工时费用，验证计算出的总费用是否正确。')
    doc.add_paragraph('集成测试将各个经过单元测试的模块组合在一起，测试这些模块之间的接口和交互是否正确。当维修工单创建时，验证车辆状态是否正确更新为"维修中"。')
    doc.add_paragraph('安全性测试用于评估该系统保护数据和抵御潜在安全威胁的能力。需要检查用户名和密码的验证过程是否存在漏洞，确保在系统和服务器之间传输的用户信息和维修业务数据是加密的。')
    doc.add_paragraph('此系统根据系统开发所选用的技术框架SpringBoot 2.7.18，准备好相应的服务器环境，安装配置好数据库MySQL 8.0、Web服务器，确保系统能正常部署并启动运行。')

    # 分页
    doc.add_page_break()

    # 3、课程实践总结
    doc.add_heading('3、课程实践总结', level=1)
    doc.add_paragraph('为期六周的校企合作训练项目即将结束，通过参与"车管家4S店车辆维保管理系统"的设计与开发，我在技术能力、工程素养和职业认知等方面都有了显著的提升。')

    doc.add_paragraph('实训前，虽对车辆维保管理概念有初步了解，但仅停留在表面。此次深入其中，才真切掌握其复杂而精细的业务逻辑。从客户服务源头，明白了如何识别客户需求、提供差异化服务策略，建立了客户信息管理系统，包含会员等级（普通、银卡、金卡、白金）和积分系统。')

    doc.add_paragraph('技术实现是将车辆维保业务蓝图落地的关键画笔。数据库搭建方面，运用MySQL数据库，设计了9张核心数据表，依据客户、车辆、工单、配件等实体关系，精心设计表结构。客户表中，字段涵盖姓名、联系方式、身份证号、地址、会员等级、积分等，通过主键唯一标识，外键关联用户表和车辆表，确保数据一致性与完整性。')

    doc.add_paragraph('编程实践中，前端HTML/CSS/JavaScript结合Bootstrap 5框架，后端使用Spring Boot打造系统前后台。前端界面聚焦用户体验，设计了四个主要页面：登录页面、管理员仪表板、工作人员仪表板、客户中心。')

    doc.add_paragraph('系统实现了维保工单的完整管理流程，支持四种服务类型：保养维护、维修服务、美容服务、保险代理。工单状态流转包括待处理、已预约、进行中、已完成、已取消五个状态，每个状态变更都有明确的业务规则。')

    doc.add_paragraph('实践并非坦途，诸多问题纷至沓来。性能瓶颈首当其冲，伴随模拟业务量增长，系统响应迟缓，工单查询耗时过长。经排查，发现数据库查询语句缺乏优化，索引设置不合理，通过重构查询逻辑、按需添加索引，结合缓存技术暂存高频访问数据，大幅提速。')

    doc.add_paragraph('本系统是以B/S模式为网络结构模式，在IDEA开发环境中，首先使用Java语言设计系统功能，使用MySQL数据库存储数据信息，然后使用Spring Boot框架搭建后端服务，通过RESTful API实现前端JavaScript与后台的数据交互。')

    doc.add_paragraph('如今是信息化的社会，随着大数据技术、人工智能、深度学习等新一代科学技术力量的出现，大大加快了各行业信息化建设的进程。我们应该努力学习新一代科学技术以及相关知识，不断提高自己的专业能力水平。')

    doc.add_paragraph('可成长的路上没有终点，冷静审视，我深知自身不足。系统高扩展性设计关乎未来能否承载业务爆发式增长，智能化运营决策支持功能植入更是能为企业精准导航，而我在这些关键领域仅初窥门径。')

    doc.add_paragraph('由于本人的专业能力和时间有限，本系统可能存在一定的局限性，比如系统处理能力、用户信息安全等方面可能存在不足。本人将通过学习目前比较主流的计算机技术和新型科技知识，并且将其积极的应用到系统的设计过程中。')

    doc.add_paragraph('')
    doc.add_paragraph('本人签字：杨璐')
    doc.add_paragraph('日期：2026年1月16日')

    # 分页
    doc.add_page_break()

    # 评阅教师评阅意见
    doc.add_heading('评阅教师评阅意见', level=1)
    doc.add_paragraph('')
    doc.add_paragraph('')
    doc.add_paragraph('')
    doc.add_paragraph('')
    doc.add_paragraph('')
    doc.add_paragraph('')
    doc.add_paragraph('评阅成绩：____________________')
    doc.add_paragraph('')
    doc.add_paragraph('评阅教师：____________________')
    doc.add_paragraph('')
    doc.add_paragraph('日期：______年____月____日')

    # 保存文档
    output_file = '杨璐-完整实习报告-12000字版.docx'
    doc.save(output_file)
    print(f'完整实习报告已生成：{output_file}')
    return output_file

if __name__ == '__main__':
    create_full_report()
