版本号 作者 发布日期 版本说明

v1.0

何辉 <runphp@qq.com>

2025-05-20

首次发布版本,定义了共享自助打印机系统的整体需求,包含自助终端软件、小程序、服务端软件以及后台管理系统的基础功能。

一、项目概述

本项目旨在开发一套共享自助打印机系统,包含自助终端软件、小程序、服务端软件以及后台管理系统。用户可通过小程序提交打印任务,自助终端完成打印操作,服务端负责业务逻辑处理和数据存储,后台管理系统用于管理员对设备、用户和订单进行管理。

二、系统架构

2.1 系统组成

  • 自助终端软件:部署在自助打印机设备上,负责与打印机交互、接收打印任务、状态监控等。

  • 小程序:用户使用小程序提交打印任务、支付费用、查看订单状态等。

  • 服务端软件:处理业务逻辑,管理用户、设备、订单等数据,与小程序和自助终端软件进行通信。

  • 后台管理系统:提供管理员对设备、用户、订单等信息的管理功能。

2.2 网络架构

[小程序] ↔ [服务端软件] ↔ [自助终端软件]
                ↕
        [后台管理系统]

三、功能需求

3.1 自助终端软件

3.1.1 打印任务处理

  • 接收服务端下发的打印任务,解析文件并发送给打印机。

  • 支持多种文件格式,如 PDF、DOC、DOCX、TXT 等。

  • 打印完成后,向服务端反馈任务状态。

3.1.2 设备状态监控

  • 实时监控打印机的状态,如纸张、墨粉、设备故障等。

  • 定期向服务端上报设备状态信息。

3.1.3 异常处理

  • 遇到打印失败或设备故障时,记录错误信息并上报服务端。

  • 提供简单的故障恢复提示。

3.1.4 终端应用设置

  • 支持打印机终端注册,通过输入唯一的序列号完成注册流程,注册信息同步到服务端。

  • 可对打印参数进行基础设置,如默认纸张大小、打印模式(彩色/黑白)等,设置信息保存到本地并可同步到服务端。

3.1.5 U 盘打印

  • 支持 U 盘插入识别,自动检测 U 盘内的文件。

  • 显示 U 盘内可打印文件列表,支持文件预览。

  • 提供打印设置选项,如单面/双面、彩色/黑白、纸张大小、份数等。

  • 扫码确认与支付:用户完成设置后,自助终端软件生成二维码,用户需使用小程序扫描该二维码,在小程序端确认打印任务和费用,并完成在线支付。支付成功后,自助终端开始执行打印任务。

  • 打印完成后,记录打印日志并上传到服务端。

3.1.6 扫描复印

  • 支持扫描文件到本地存储,可选择扫描格式(如 PDF、JPEG 等)。

  • 提供扫描参数设置,如分辨率、色彩模式等。

  • 支持复印功能,用户可设置复印份数、缩放比例等参数。

  • 扫码确认与支付:用户完成设置后,自助终端软件生成二维码,用户需使用小程序扫描该二维码,在小程序端确认扫描复印任务和费用,并完成在线支付。支付成功后,自助终端开始执行扫描复印任务。

  • 扫描和复印完成后,记录操作日志并上传到服务端。

3.1.7 身份证快印

  • 身份证读取功能:支持连接身份证读取器,自动读取身份证信息,包括姓名、性别、民族、出生日期、住址、公民身份号码、照片等。

  • 自动排版:读取身份证信息后,自动将身份证正反面照片排版到一张纸上,支持 A4 纸张默认排版。

  • 信息核验与预览:显示读取的身份证信息供用户核验,同时提供身份证照片排版预览功能,用户可对排版效果进行微调,如调整位置、缩放比例等。

  • 扫码确认与支付:用户确认预览后,自助终端软件生成二维码,用户需使用小程序扫描该二维码,在小程序端确认身份证快印任务和费用,并完成在线支付。支付成功后,自助终端开始执行打印任务。

  • 日志记录:打印完成后,记录身份证快印日志,包括打印时间、用户信息(如有)、身份证号码(脱敏处理)等,并上传到服务端。

3.1.8 取件确认与打印功能

  • 取件二维码展示:在自助终端软件界面提供「我要取件」入口,用户点击后,自助终端生成一个包含设备唯一标识的取件二维码。

  • 订单信息获取:用户使用小程序扫描该二维码,小程序向服务端请求获取该用户在当前设备上已付款且待打印的订单列表。

  • 订单选择与确认打印:小程序展示已付款的待打印订单列表,列表包含订单基本信息,如文件名称、打印设置等。用户从中选择需要打印的订单并点击确认,小程序向服务端发送打印请求。

  • 打印执行与反馈:服务端验证请求无误后,将对应的打印任务下发给扫描二维码的自助终端。自助终端接收到打印任务后,解析文件并发送给打印机执行打印操作。打印完成后,自助终端向服务端反馈任务状态,服务端将对应订单状态更新为「已完成」。

  • 取件确认:打印完成后,自助终端提示用户取件。用户取件后,可在自助终端或小程序端点击「已取件」进行确认,服务端记录取件信息。

3.2 小程序

3.2.1 用户认证

  • 支持微信授权登录,获取用户基本信息。

3.2.2 打印任务提交

  • 支持从手机本地、微信聊天记录、云盘等途径选择文件。

  • 提供打印设置选项,如单面/双面、彩色/黑白、纸张大小、份数等。

  • 预览打印文件内容。

3.2.3 支付功能

  • 集成微信支付,支持用户在线支付打印费用。

  • 支付成功后,生成打印订单并发送到服务端。

3.2.4 订单管理

  • 查看历史订单列表,包括订单状态(待支付、待取件打印、打印中、已完成、已取消)。

  • 取消未支付或未开始打印的订单。

  • 取件扫码功能:提供扫码入口,用户扫描自助终端的取件二维码后,查看已付款的待打印订单列表,选择订单并确认打印,打印完成后可进行取件确认操作。

3.2.5 设备定位

  • 基于 GPS 定位,显示附近的自助打印机设备列表。

  • 查看设备的详细信息,如地址、当前状态等。

3.2.6 设备维护功能

  • 维护人员认证:维护人员可通过输入企业邮箱或工号进行身份验证,验证通过后启用维护功能模块。

  • 设备状态查看

    • 通过扫码方式获取设备信息,显示设备实时状态(在线/离线、耗材余量、故障代码等)

    • 查看设备历史报警记录和维护日志

  • 故障报修

    • 选择故障类型(硬件故障、耗材更换、软件异常等)

    • 上传现场照片或视频辅助说明问题

    • 可预约维修时间窗口

  • 维护记录管理

    • 记录维护操作类型(日常巡检、耗材更换、部件维修等)

    • 支持维护完成后上传维护报告

    • 查看历史维护记录及维护评价

3.3 服务端软件

3.3.1 用户管理

  • 存储用户基本信息,如微信 OpenID、昵称、头像等。

  • 记录用户的打印订单历史。

3.3.2 设备管理

  • 注册和管理自助打印机设备信息,包括设备编号、位置、状态等。

  • 接收设备上报的状态信息,更新设备状态。

3.3.3 订单管理

  • 处理打印订单的创建、支付、下发、完成等流程。

  • 与支付系统对接,验证支付结果。

3.3.4 计费管理

  • 根据打印设置(如彩色/黑白、纸张大小等)计算打印费用。

3.4 后台管理系统

3.4.1 用户管理

  • 查看用户列表,包括用户基本信息和打印订单统计。

  • 封禁或解封异常用户。

3.4.2 设备管理

  • 查看设备列表,包括设备状态、位置、在线情况等。

  • 对设备进行远程重启、更新软件等操作。

3.4.3 订单管理

  • 查看所有订单列表,支持按时间、状态、用户等条件筛选。

  • 手动处理异常订单。

3.4.4 数据统计

  • 统计打印订单数量、收入、设备使用情况等数据。

  • 生成报表并支持导出。

四、非功能需求

4.1 性能

  • 响应时间:小程序页面加载和服务端请求响应在网络良好时不超 3 秒。

  • 并发处理:服务端单台机器支持 200 并发用户,保障系统稳定。

  • 打印速度:1 分钟内启动打印,达市场同类平均水平。

4.2 安全

  • 数据传输:使用 HTTPS 加密小程序、终端与服务端间的数据。

  • 信息存储:加密存储用户和支付信息,遵守隐私法规。

  • 访问控制:后台管理系统严格身份认证和权限管理。

  • 防护措施:具备防 SQL 注入、XSS 攻击能力。

4.3 可用性

  • 运行时长:系统 7×24 小时可用,年停机不超 8 小时。

  • 故障恢复:30 分钟内恢复故障,定期备份重要数据。

4.4 可维护性

  • 代码规范:遵循统一代码规范,保证可读性。

  • 日志记录:各模块记录操作和错误日志,便于排查问题。

  • 版本管理:用 Git 进行代码管理,支持更新和回滚。

4.5 兼容性

  • 小程序:兼容主流 iOS、Android 系统及微信客户端。

  • 终端软件:适配主流打印机型号。

  • 管理系统:兼容 Chrome、Firefox、Safari、Edge 等浏览器。

五、数据流说明

5.1 打印任务提交与支付流程

  1. 用户选择文件:用户在小程序端从手机本地、微信聊天记录、云盘等途径选择打印文件,设置打印参数(如单面/双面、彩色/黑白等)。

  2. 费用计算:小程序将打印设置信息发送给服务端,服务端依据计费规则计算打印费用,并将结果返回给小程序。

  3. 发起支付:用户确认费用后,小程序调用微信支付接口发起支付请求,微信支付系统处理支付并将结果反馈给小程序。

  4. 订单生成:支付成功后,小程序将支付结果和打印任务信息发送给服务端,服务端生成打印订单,订单状态设为「待取件打印」。

5.2 打印任务下发与执行流程

  1. 取件确认:用户在自助终端点击「我要取件」,自助终端生成取件二维码。用户用小程序扫描二维码,小程序向服务端请求获取该用户在当前设备的待打印订单列表。

  2. 选择订单打印:用户在小程序端选择要打印的订单并确认,小程序向服务端发送打印请求。

  3. 任务下发:服务端验证请求无误后,将打印任务下发给对应的自助终端。

  4. 执行打印:自助终端接收打印任务,解析文件并发送给打印机执行打印。打印完成后,自助终端向服务端反馈任务状态,服务端将订单状态更新为「已完成」。

5.3 设备状态上报流程

  1. 状态监控:自助终端软件实时监控打印机状态(如纸张、墨粉、设备故障等)。

  2. 定期上报:自助终端按设定时间间隔将设备状态信息发送给服务端。

  3. 状态更新:服务端接收设备状态信息,更新数据库中对应设备的状态,同时可将状态变化推送给后台管理系统。

5.4 后台管理操作流程

  1. 管理员登录:管理员在后台管理系统输入账号密码登录,系统验证身份,若通过则进入管理界面。

  2. 操作请求:管理员进行设备管理(如远程重启)、用户管理(如封禁用户)、订单管理(如手动处理异常订单)等操作,系统将请求发送给服务端。

  3. 服务端处理:服务端接收请求,验证管理员权限,执行相应操作并更新数据库。

  4. 结果反馈:服务端将操作结果返回给后台管理系统,系统界面显示操作成功或失败信息。

六、项目进度计划

6.1 需求分析阶段

2025-05-20 至 2025-05-27:完成需求调研和文档编写。

6.2 设计阶段

[具体时间区间 2]:完成系统架构设计、数据库设计等。

6.3 开发阶段

[具体时间区间 3]:完成自助终端软件、小程序、服务端软件和后台管理系统的开发。

6.4 测试阶段

[具体时间区间 4]:进行单元测试、集成测试和系统测试。

6.5 部署上线阶段

[具体时间区间 5]:完成系统部署和上线运行。

七、验收标准

7.1 功能验收

  • 所有功能模块按照需求文档实现,无明显功能缺陷。

7.2 性能验收

  • 各项性能指标满足非功能需求中的性能要求。

7.3 安全验收

  • 系统的安全措施符合非功能需求中的安全性要求。

八、交付物

  • 自助终端软件源码

  • 小程序源码

  • 服务端软件源码

  • 后台管理系统源码

  • 自助终端软件安装包

  • 数据库设计文档

  • 系统部署文档

  • 用户手册

  • 开发文档

九、术语表

术语 定义

OpenID

一种在不同网站或应用中实现用户单点登录的身份识别技术。在本系统里,微信 OpenID 是微信为每个用户分配的唯一标识,用于区分不同用户,保障用户信息的准确存储和管理。

微信授权登录

用户在小程序中使用微信账号登录时,将自己的微信账号信息授权给小程序,小程序通过微信开放平台获取用户的基本信息,如昵称、头像等,从而完成登录过程。

云盘

一种网络存储服务,用户可以将文件存储在云端服务器,通过网络随时随地访问和管理这些文件。在本系统中,用户可从云盘选择文件进行打印。

并发用户数

在同一时间内,对服务端发起请求的用户数量。在本系统中,用于衡量服务端在一定时间内能够处理的用户请求量。

HTTPS

超文本传输安全协议,是 HTTP 协议的安全版本。通过 SSL/TLS 加密传输数据,保证数据在传输过程中的安全性和完整性,防止数据被窃取或篡改。

SQL 注入

一种常见的网络攻击手段,攻击者通过在输入字段中插入恶意的 SQL 代码,欺骗数据库执行恶意操作,从而获取、修改或删除数据库中的数据。

XSS 攻击

跨站脚本攻击,攻击者通过在网页中注入恶意脚本代码,当用户访问该网页时,脚本代码会在用户浏览器中执行,从而窃取用户的敏感信息或进行其他恶意操作。