基于大数据的物流配送信息管理系统--毕设附源码32255
摘要
当前物流配送体系业务流程复杂,涉及订单、车辆、财务、人员等多个环节,各环节数据相互独立,缺乏统一的管理视图,导致信息协同效率低、运营成本高。针对此问题,本系统采用Java Servlet/JSP作为后端核心,MySQL作为数据存储仓库,整合高德地图API实现路线规划,构建一个集订单分配、车辆调度、财务对账与人员培训于一体的综合管理平台。系统通过分角色权限控制,将运营、配送及管理员的操作流程规范化,旨在解决物流链路中的信息孤岛与流程脱节问题,提升整体配送效率与资源利用率。
系统实现了运营用户的订单分配与培训计划发布、配送用户的接单配送与在线考试、管理员的全局权限配置与数据监控等核心模块。通过通用CRUD服务与动态SQL拼接机制,高效支撑多表联动操作;基于点击行为的余弦相似度算法为配送员提供个性化订单推荐,提升接单率;集成ECharts实现配送数据的可视化大屏展示,辅助运营决策。实际运行表明,系统能够有效串联物流各环节的闭环管理,降低人工对账与调度的错误率,为物流企业提供了一个可复用的、具备业务扩展性的数字化管理解决方案。
关键词:物流配送;订单分配;角色权限;余弦相似度;车辆调度
ABSTRACT
At present, the logistics and distribution industry has a relatively complex operation mode that covers orders, vehicles, finance, etc. The data points are scattered, there is no overall management for them, and therefore the information coordination is poor and the operating cost is high. Therefore, Java Servlet/JSP will be used for the back-end technology, MySQL will be the database, the Amap API will be employed for route planning, and a complete management platform for order allocation and vehicle dispatching, financial settlement, personnel training, etc., will be developed. Through the construction of role-based access control, this system will unify the working paths of operating, delivering and managing staff, solve the problems of information isolation and process disruption in the logistics chain, and thus increase the overall efficiency of distribution and resource utilisation.
The first is to distribute the work of various shifts, communicate to the people going offline or working remotely how orders have been distributed, and how many students have completed the test. A general CRUD service and a dynamic SQL builder can be used for all the tables. In order to improve the acceptance rate of personalised orders, a cosine similarity algorithm based on click behaviour will be used for the recommendation function. ECharts is also used to display the distribution of data in a chart and help make business decisions. As shown in the actual application, a good closed-loop management system for logistics has been constructed at all links of the system to reduce errors in manual reconciliation and dispatching, and a repeatable and business-extendable digital management solution for logistics enterprises has been provided.
Key words: Logistics Distribution; Order Allocation; Role-Based Permission; Cosine Similarity; Vehicle Dispatching
第1章 绪论
1.1 研究背景和意义
在物流行业规模持续扩张与配送网络日益复杂的背景下,传统物流配送管理方式仍大量依赖人工调度、纸质单据传递与电话沟通等模式,导致订单处理周期长、车辆资源闲置率高、配送路径优化不足等问题。相关研究表明,传统管理模式下信息孤岛现象严重,各业务环节数据无法实时共享,调度决策往往滞后于实际需求[1]。随着电子商务与即时配送服务的快速发展,用户对配送时效与服务透明度的要求不断提高,传统管理模式已难以满足高频、碎片化的订单处理需求。同时,物流企业面临的人力成本上升与运营效率瓶颈之间的矛盾日益突出,亟需借助信息技术手段重构业务流程。当前,信息系统在物流领域的应用已从单一的数据记录向综合业务协同方向演进,通过整合订单、车辆、人员及财务等模块,实现全链路可视化与智能化调度已成为行业发展的重要趋势[2]。因此,开发一套专门针对物流配送业务的信息管理系统具有明确的现实紧迫性。
本系统的设计与实现具有多层面的现实意义。在操作层面,系统将订单分配、车辆调度、配送追踪及财务对账等功能集成于统一平台,取代传统的人工登记与表格传递方式,显著减少信息传递延迟与人为录入误差。在管理层面,系统通过分角色权限控制与数据实时汇总,为运营用户和管理员提供订单状态监控、车辆使用分析及配送绩效评估等决策支持,优化资源配置效率,提升整体管理精细化水平。在行业发展层面,系统通过规范化业务流程与标准化数据接口,推动物流配送业务从粗放式管理向协同化运作转变,有助于提高服务质量与客户满意度,降低企业运营成本。此外,系统集成的预警信息管理与培训报名等模块,能够有效促进企业人员素质提升与风险防控能力增强,对推动物流行业的信息化建设和规范化发展具有重要的实践价值与社会意义。
国内学者在物流配送信息化领域开展了广泛研究。近年来,随着电子商务与制造业的深度融合,物流配送管理系统逐渐从单一业务处理向综合性信息管理平台演进。早期研究多聚焦于运输路径优化与仓储管理,当前则更注重订单全生命周期追踪、多角色协同作业及数据可视化分析。陈彦君在2024年以X航空公司为研究对象,探讨了物流供应链信息化发展规划,提出整合运输、仓储与配送环节的系统架构思想,为本系统实现运营用户对订单分配与车辆调度的统一管理提供了顶层设计参考[3]。邓波在2023年将云计算技术应用于物流全流程信息管理,验证了基于云平台的数据共享与业务协同可行性,为本系统多角色权限控制与数据实时同步功能奠定了技术基础[4]。朱静在2023年针对D物流公司配送管理问题开展优化研究,强调了配送路径规划与异常处理机制的改进方向,有助于本系统完善异常上报与订单配送管理模块的业务闭环[5]。邵贵平在2022年出版的电子商务物流管理专著中系统梳理了电商物流的业务流程与信息系统架构,为本系统培训计划管理与经验分享功能提供了业务流程标准化思路[6]。魏凯明在2022年基于LBS技术设计并实现了物流配送管理系统,验证了地理位置信息在订单分配与车辆追踪中的核心价值,直接支持本系统路线信息查询与车辆调度模块的实现[7]。综合国内研究现状,现有文献在供应链信息化、配送优化及地理位置服务等方面取得显著进展,但仍存在功能覆盖面不足、角色权限设计单一等问题,尚未形成面向运营、配送、管理员三类角色的全功能集成平台。本系统在吸收上述研究成果的基础上,针对订单管理、包裹管理、车辆管理、财务管理及培训管理等核心模块进行统一设计,直接回应国内物流企业对综合性管理系统的现实需求。
国外研究在物流与供应链管理数字化领域起步较早,研究重点逐步从基础数据记录向智能决策支持演进。近年来,国外学者更关注数字平台在物流全链路中的整合作用以及物联网技术在服务质量提升中的应用价值。Kam等人在2026年通过系统文献综述方法分析了供应链与物流管理中数字平台的应用模式,揭示了平台化整合对提升信息透明度和跨主体协同效率的促进作用,为本系统实现运营用户与配送用户之间的业务衔接提供了理论依据[8]。Reuben等人在2026年利用电子物流管理信息系统对坦桑尼亚抗生素消费进行空间分析,展示了物流数据在非传统领域的延伸应用,启发本系统配送数据查询与运营绩效查询模块的统计分析与可视化呈现思路[9]。Sun等人在2025年针对火电厂开发了智能化仓储与物流管理系统,验证了库存管理与设备调度一体化的可行性,有助于本系统包裹管理与车辆维护模块的业务联动设计[10]。Jakira等人在2025年评估了乌干达公共卫生领域电子物流管理信息系统的贡献,证实了该系统对物资可及性与供应链可靠性的提升效果,为本系统物资申请审核与结算信息管理模块提供了实践参照[11]。Ming等人在2023年基于物联网技术构建了冷链物流服务质量管理系统,展示了实时数据采集与预警机制在提升服务质量中的关键作用,直接支持本系统预警信息管理与设备上报模块的功能设计[12]。国外研究强调数字平台整合与智能化技术应用,在功能深度与数据驱动决策方面具有先进性。本系统借鉴国外研究的平台化思想与物联网应用经验,同时结合中国物流企业实际业务流程,针对性开发包括论坛管理、反馈评价、举报信息管理等功能模块,实现管理规范化与服务透明化的双重目标。
本文围绕物流配送企业实际业务需求,设计并实现一套基于Java Web技术的物流配送信息管理系统。系统采用B/S架构,以Java Servlet/JSP作为后端核心,MySQL作为数据存储仓库,前端集成LayUI框架与ECharts可视化组件。系统面向运营用户、配送用户及管理员三类角色,提供差异化的功能模块。运营用户可进行订单分配、培训计划管理、车辆调度、车辆维护、财务对账、物资申请审核及运营绩效查询等操作;配送用户能够查询订单分配、完成订单配送管理、参与在线考试、使用智能客服咨询、进行包裹盘点及培训报名等;管理员负责信息管理、论坛管理、权限配置、路线信息维护、预警信息管理、装备信息管理、举报信息处理及财务管理等全局性工作。系统通过通用CRUD服务与动态SQL拼接机制实现多表联动操作,采用基于点击行为的余弦相似度算法为配送用户提供个性化订单推荐,集成高德地图API实现路线规划与位置服务,利用ECharts完成配送数据的可视化大屏展示。系统同时实现登录认证、权限过滤、文件上传、邮件发送及操作日志记录等基础服务功能。
第2章 相关技术介绍
2.1 大数据技术
物流配送信息管理系统处理的数据具有体量巨大、类型多样、产生速度快的特征,这些正是大数据技术的典型应用场景。大数据技术是指从各种类型的数据中快速获得有价值信息的技术,其核心包括数据采集、存储、管理和分析等多个层面,共同构成了一个完整的数据价值发现体系[13]。在物流配送管理场景中,订单的实时位置、车辆的运行状态、路况的动态变化以及用户的签收反馈等信息流构成了一个复杂的数据网络,大数据技术通过分布式处理框架,能够有效应对这些海量数据的存储与计算压力。该系统利用大数据技术对运营绩效、配送数据、车辆调度等历史记录进行多维度分析,揭示配送效率的瓶颈与优化空间。同时,该技术还能支持实时监控配送过程中的异常指标,为异常上报、预警信息管理等环节提供数据驱动的决策依据,从而将分散的物流数据转化为可指导运营优化的有效信息,提升整个管理系统的数据处理效能与响应速度。
Java Servlet是构建基于Java的Web应用程序的核心基础技术,它定义了服务器端用于处理客户端请求并生成动态响应的标准化组件模型[14]。Servlet运行于Web容器中,通过实现doPost与doGet等方法来处理HTTP协议的不同请求类型,并能够无缝集成后端业务逻辑与数据库访问层。在物流配送信息管理系统中,Servlet技术扮演了连接前端用户界面与后端数据存储的关键枢纽角色。该系统通过统一的BaseServlet控制器进行请求分发,根据请求路径中的方法名动态调用对应的业务处理逻辑,无论是运营用户执行订单分配的查询操作,还是配送用户完成配送状态的更新请求,都由Servlet进行接收、解析与路由。借助于该技术,系统能够有效管理用户会话状态,对登录注册、权限管理等功能实施统一的身份验证与授权拦截,确保了业务操作的安全性与可靠性,为整个信息管理平台提供了稳定且高效的交互基础。
SSM框架作为Java企业级开发的主流整合方案,由Spring、Spring MVC和MyBatis三大核心组件构成,提供了一个层次清晰、功能强大的轻量级开发环境[16]。Spring框架作为核心容器,通过依赖注入机制管理业务对象,降低了各模块间的耦合度;Spring MVC负责处理Web层请求的分发与视图解析;而MyBatis则作为持久层框架,通过SQL映射文件将Java对象与数据库记录进行灵活关联。在物流配送信息管理系统的架构设计中,该框架的应用使得业务逻辑层、控制层与数据访问层的职责得以明确分离。Spring的声明式事务管理特性为财务管理中的账单核对、结算信息更新等涉及数据一致性的操作提供了保障。MyBatis的敏捷SQL编写能力则适应了包裹库存管理、车辆维护记录等复杂查询需求的动态变化。这套框架的整合不仅简化了开发流程,也为系统的维护与功能扩展建立了稳固的工程基础。
ECharts作为一个基于JavaScript的开源可视化图表库,凭借其丰富的图表类型、流畅的交互体验以及强大的多维数据展示能力,已成为数据可视化领域的优选工具[16]。该技术底层依赖轻量级的Canvas或SVG图形库进行渲染,支持包括折线图、柱状图、热力图、散点图在内的多种图表形式,能够直观呈现数据背后隐藏的趋势、分布与关联。在物流配送信息管理系统中,ECharts技术被用于构建面向管理层与运营人员的决策支持界面。系统将配送数据中的完成率、准点率、投诉率等绩效指标,通过仪表盘或动态折线图进行周期性趋势展示;将订单区域距离、配送耗时、负载率等物流特征,利用热力图或散点图进行区域化与层级化呈现。通过这种数据可视化表达,复杂的配送数据与运营绩效数据得以被高效、直观地理解,显著增强了系统在数据监控、绩效考核与运营策略分析方面的辅助决策能力。
第3章 需求分析
3.1 可行性分析
系统采用B/S结构作为整体架构基础,用户通过浏览器即可访问Web服务器完成交互。Java语言与SSM框架在信息管理系统开发领域应用广泛,其稳定性与社区支持力度为项目提供可靠保障。MySQL数据库能够承载物流配送场景下的业务数据存储需求,单机部署方式足以应对中小规模数据量。开发者在前期课程与实践中已掌握Java Web开发基础、Servlet接口编写以及JDBC数据访问技术,具备完成本系统的编码能力。系统运行期间可能面临并发访问导致的数据库连接池压力,可通过优化SQL查询语句、合理设置连接池参数进行缓解。数据安全方面采用参数化查询防止SQL注入,敏感信息如用户密码经过加密存储。因此,系统在技术方面是可行的。
目标用户包括运营人员、配送人员与系统管理员,三类用户均具备基础计算机操作能力。运营人员在日常工作中习惯使用Web表单完成数据录入与查询,系统提供的列表查询、数据导出、报表查看等界面符合其工作模式。配送人员通过手机或电脑浏览器访问系统,订单分配查询、状态更新等操作流程简洁,学习成本较低。系统上线初期可保留原有纸质或离线记录方式作为过渡,待用户熟悉新流程后逐步切换。后期维护由管理员在后台完成菜单配置、权限分配与数据备份,无需频繁代码改动。因此,系统在操作方面是可行的。
项目投入主要集中在开发阶段的人力成本,开发团队利用现有计算机设备即可完成编码、测试与部署工作。系统采用Java、SSM、MySQL等开源技术栈,无需购买商业软件许可证,开发工具选用社区版IDE即可满足需求。服务器运行环境使用本地物理机或基础虚拟机,无需购置高性能专用服务器。系统上线后能够减少纸质单据打印量、降低电话沟通成本、提升订单处理效率,这些应用价值远超初期开发投入。后期维护仅需管理员进行日常数据备份与用户权限调整,运维成本较低。因此,系统在经济方面是可行的。
3.2 功能需求分析
运营用户在系统内承担业务发起与流程推动的职责。运营用户可以完成登录注册操作进入系统,发布经验分享内容供配送用户参考,编制问题指南为配送作业提供规范指引,收集并处理建议反馈以优化业务流程。运营用户能够查询路线信息用于订单分配决策,执行订单分配操作将配送任务派发给配送用户。运营用户实施培训计划管理以提升团队专业能力,记录异常上报信息并跟踪处理结果,管理包裹库存确保物资数量准确,调度车辆并安排车辆维护保障运输资源可用。运营用户配置预警信息管理规则实现风险提前发现,管理设备上报数据掌握设备运行状态,处理财务对账与配送数据查询支撑业务分析,审核物资申请、管理加班请假信息、执行工作交接并查询运营绩效,保障管理活动有序衔接。运营用户角色用例图如图3-1所示。

图3-1 运营用户用例图
配送用户在系统中聚焦配送任务的执行与个人事务管理。配送用户可以查询订单分配结果获取配送任务,添加紧急联系人信息应对突发情况。配送用户参加在线考试检验业务知识掌握程度,咨询智能客服解决配送过程中遇到的问题。配送用户执行订单配送管理更新配送状态与进度,上报异常情况并附带凭证。配送用户查询包裹库存信息了解物资分布,完成包裹盘点登记确保账实相符,审核车辆调度申请确认用车需求。配送用户查询预警信息提前规避潜在风险,上传设备运行数据用于状态监控,管理装备信息记录领用与归还情况。配送用户核对账单、提交结算申请、查询配送数据、管理物资申请并完成培训报名,实现个人工作闭环。配送用户角色用例图如图3-2所示。

图3-2 配送用户用例图
管理员角色负责系统全局配置与核心业务监督。管理员执行信息管理维护公告与轮播图内容,管理论坛版块及帖子分类,配置权限控制不同角色访问范围。管理员管理路线信息优化配送路径,监控预警信息并处理触发规则,管理装备信息与配送数据支撑运营分析。管理员审核物资申请并管理加班、请假、工作交接记录,处理反馈评价与举报信息维护平台秩序。管理员查询运营绩效评估团队表现,管理订单全流程状态,操作包裹入库出库与库存调整,调度车辆并记录维护历史,处理财务对账与财务数据,统筹培训计划实施。管理员角色用例图如图3-3所示。

图3-3 管理员用例图
系统的非功能性需求从性能、安全性、可维护性、可靠性及易用性五个维度进行约束,确保系统在实际运行环境中具备稳定的服务质量。
性能方面,系统应能够在并发用户数不超过50人的日常办公场景下保持流畅响应。订单分配查询、包裹库存检索等常见操作的页面加载时间应控制在2秒以内,数据统计与报表生成等复杂查询的响应时间不超过5秒。系统需支持对数据库表建立合理索引,避免全表扫描造成的性能下降。配送用户在移动网络环境下访问系统时,页面资源体积应进行压缩处理,减少带宽消耗。
安全性方面,系统实施分级权限控制机制。不同角色用户登录后仅能访问授权模块,运营用户无法操作财务管理等敏感功能。用户密码采用加密算法存储,防止数据库泄露导致凭证暴露。系统记录关键操作日志,订单状态变更、财务对账确认、权限分配修改等行为均可追溯至具体操作人。前端页面与后端接口之间需防范跨站请求伪造攻击,对用户输入内容进行合法性校验。
可维护性方面,系统代码遵循分层架构原则,控制器、业务逻辑与数据访问职责分离。配置信息集中存放于属性文件,数据库连接参数、文件上传路径等修改无需重新编译代码。业务表结构变更时,对应的实体类与映射文件能够快速调整。系统提供日志输出机制,异常发生时开发人员可根据日志堆栈定位问题根源。
可靠性方面,系统需保证7×12小时不间断服务能力,核心功能模块在出现单点故障时不应导致全部业务中断。数据库定期执行自动备份,保留最近7天的备份文件,用于数据意外丢失时的恢复操作。表单提交操作采用事务管理机制,订单分配与库存扣减等多步骤操作要么全部成功要么全部回滚,避免数据不一致。
易用性方面,系统界面布局应符合用户日常办公习惯,常用操作入口放置在显眼位置。表单填写提供默认值或输入提示,减少用户录入负担。列表页面支持按列排序与条件筛选,配送用户可快速定位属于自己的订单记录。错误提示信息采用明确的中文描述,指明输入内容不符合要求的具体原因。
第4章 系统设计
4.1 系统架构设计
系统采用分层架构模式组织各个模块,这种层次化结构能够降低模块间的耦合程度,便于后续维护与扩展。用户界面层负责与用户进行交互,接收输入数据并将处理结果以可视化方式呈现给操作者。应用服务层封装核心业务逻辑,处理来自前端的请求并协调数据交换过程,该层集中实现了订单分配、车辆调度、财务对账等关键业务的规则。数据持久层通过对象关系映射机制完成数据库记录的增删改查操作,将业务数据持久化存储。系统支持层提供底层基础设施服务,包含数据库管理系统、Web容器以及日志记录组件。各层之间通过接口进行通信,上层依赖下层提供的服务,下层不感知上层的具体实现。系统架构图如图4-1所示。

图4-1 系统架构图
4.2 系统功能结构设计
系统功能围绕运营用户、配送用户、管理员三个角色进行组织。运营用户承担业务发起与流程推动职责,可执行登录注册、经验分享、问题指南编制、建议反馈处理、路线信息查询、订单分配、培训计划管理、异常上报、包裹库存管理、车辆调度、车辆维护、预警信息管理、设备上报、财务对账、配送数据查询、物资申请审核、加班信息管理、请假信息管理、工作交接以及运营绩效查询。配送用户聚焦配送任务执行与个人事务管理,能够查询订单分配结果、添加紧急联系人、参加在线考试、咨询智能客服、管理订单配送、上报异常、查询包裹库存、完成包裹盘点、审核车辆调度、查询预警信息、上传设备数据、管理装备信息、核对账单、提交结算申请、查询配送数据、管理物资申请以及完成培训报名。管理员负责系统全局配置与核心业务监督,可执行信息管理、论坛管理、权限管理、路线信息管理、预警信息管理、装备信息管理、配送数据管理、物资申请管理、加班信息管理、请假信息管理、工作交接管理、反馈评价管理、举报信息管理、运营绩效管理、订单管理、包裹管理、车辆管理、财务管理以及培训管理。该系统功能结构如图4-2所示。

图4-2 系统功能结构图
4.3 业务流程设计
用户提交登录凭证后系统验证身份信息。身份校验通过则依据角色权限加载对应功能界面。运营用户进入管理后台执行订单分配与车辆调度操作。配送用户接收任务推送后开始配送作业。配送过程中若发生异常则触发异常上报流程。订单完成后系统自动更新配送状态并生成结算数据。财务人员核对账单后完成资金结算。系统总体业务流程如图4-3所示。

图4-3 系统总体业务流程图
运营用户查询待分配订单列表。系统根据订单起点终点计算区域距离。运营用户选择配送用户并设置优先级别。系统生成分配记录并推送任务通知。配送用户收到通知后确认接单或拒绝。确认接单则订单状态转为配送中。拒绝接单则订单返回待分配列表。订单分配流程如图4-4所示。

图4-4 订单分配流程图
配送用户在作业过程中发现异常情形。系统要求用户填写异常标题与详细说明。配送用户上传异常凭证图片或文件。系统记录异常信息并标记对应订单状态。运营用户收到异常通知后核实情况。运营用户填写处理结果并关闭异常记录。系统将处理反馈推送至配送用户。异常上报流程如图4-5所示。

图4-5 异常上报流程图
运营用户发起车辆调度申请并选择目标车辆。系统检查车辆当前状态是否可用。可用则生成调度单并推送至配送用户。配送用户确认用车需求后执行出车操作。配送用户完成用车后提交归还记录。系统更新车辆状态并记录调度历史。车辆调度流程如图4-6所示。

图4-6 车辆调度流程图
运营用户发起财务对账操作选择对账周期。系统汇总该周期内订单结算数据。运营用户核对账单明细与实际收支情况。核对一致则确认账单并标记为已对账。发现差异则提交异议说明等待复核。财务人员处理异议后更新账单状态。财务对账流程如图4-7所示。

图4-7 财务对账流程图
订单分配模块在传统派单模式基础上,引入基于配送用户绩效评分的智能派单策略。该策略旨在实现“优者多得”的公平分配机制,激励配送用户提升服务质量。
配送用户绩效评分由四个维度加权计算得出:完成率权重为0.4,好评率权重为0.3,投诉率(取反)权重为0.2,配送单量系数权重为0.1。综合评分计算公式如下:
Score = 完成率 × 0.4 + 好评率 × 0.3 + (1 - 投诉率) × 0.2 + 配送单量系数 × 0.1 (4-1)
其中,配送单量系数采用归一化处理,将当月配送单量除以同区域最高单量后映射至0到1区间。系统每日凌晨通过定时任务重新计算各配送用户的绩效评分并更新至数据库。当运营用户进行订单分配操作时,系统在配送用户下拉列表中按绩效评分从高到低排序展示,引导运营用户优先选择评分较高的配送员。同时,系统在后台支持自动派单模式,根据订单起点和终点位置匹配区域内可接单配送员,并按绩效评分择优自动分配。该策略通过SQL语句中的ORDER BY子句结合自定义排序字段实现,确保了派单决策的时效性和公平性。
数据库设计是将现实世界中的业务数据抽象为计算机可存储结构的过程。关系型数据模型凭借其严谨的数学理论基础与完整的操作体系,成为企业级信息系统的首选存储方案。规范化理论指导设计者消除数据冗余与操作异常,确保每个属性仅描述实体某一特征。该系统通过外键约束与事务机制保障数据一致性,订单分配操作同时更新订单状态与配送任务记录。参照第三范式要求设计表结构,将车辆信息与调度记录拆分存储以避免更新异常。主键生成采用自增策略简化数据维护,关键业务字段设置非空约束强制数据完整性。
订单信息表主要用来存储订单基本数据。主要包括订单单号、订单标题、订单起点、订单终点等字段。如表4-1所示。
表4-1 订单信息表
| 序号 | 字段名 | 数据类型 | 允许空 | 键 | 备注 |
| 1 | 订单信息id | bigint 20 | 否 | 主键 | 自增主键 |
| 2 | 订单单号 | varchar 50 | 否 | 唯一 | 订单编号 |
| 3 | 订单标题 | varchar 200 | 否 | 订单名称 | |
| 4 | 订单起点 | varchar 255 | 否 | 始发地址 | |
| 5 | 订单终点 | varchar 255 | 否 | 目的地 | |
| 6 | 区域距离 | varchar 50 | 是 | 配送里程 | |
| 7 | 配送费用 | decimal 10 2 | 是 | 费用金额 | |
| 8 | 订单状态 | varchar 20 | 是 | 当前状态 | |
| 9 | 订单图片 | varchar 255 | 是 | 图片路径 | |
| 10 | 订单内容 | text | 是 | 详细描述 | |
| 11 | 配送要求 | text | 是 | 特殊需求 | |
| 12 | 审核状态 | varchar 20 | 是 | 审核结果 | |
| 13 | 创建时间 | datetime | 是 | 记录时间 |
配送用户表主要用来存储配送人员信息。主要包括用户标识、账号、密码、配送工号等字段。如表4-2所示。
表4-2 配送用户表
| 序号 | 字段名 | 数据类型 | 允许空 | 键 | 备注 |
| 1 | 配送用户id | bigint 20 | 否 | 主键 | 自增主键 |
| 2 | 用户标识 | bigint 20 | 否 | 外键 | 关联用户表 |
| 3 | 账号 | varchar 30 | 否 | 唯一 | 登录账号 |
| 4 | 密码 | varchar 255 | 否 | 加密存储 | |
| 5 | 配送工号 | varchar 30 | 否 | 唯一 | 工号编码 |
| 6 | 配送姓名 | varchar 50 | 否 | 真实姓名 | |
| 7 | 配送手机 | varchar 11 | 否 | 唯一 | 手机号码 |
| 8 | 资质认证 | varchar 255 | 是 | 证件图片 | |
| 9 | 常用地址 | varchar 255 | 是 | 常驻区域 | |
| 10 | 审核状态 | varchar 20 | 是 | 认证结果 | |
| 11 | 创建时间 | datetime | 是 | 记录时间 |
运营用户表主要用来存储运营人员信息。主要包括用户标识、账号、密码、运营工号等字段。如表4-3所示。
表4-3 运营用户表
| 序号 | 字段名 | 数据类型 | 允许空 | 键 | 备注 |
| 1 | 运营用户id | bigint 20 | 否 | 主键 | 自增主键 |
| 2 | 用户标识 | bigint 20 | 否 | 外键 | 关联用户表 |
| 3 | 账号 | varchar 30 | 否 | 唯一 | 登录账号 |
| 4 | 密码 | varchar 255 | 否 | 加密存储 | |
| 5 | 运营工号 | varchar 30 | 否 | 唯一 | 工号编码 |
| 6 | 运营姓名 | varchar 50 | 否 | 真实姓名 | |
| 7 | 运营手机 | varchar 11 | 否 | 唯一 | 手机号码 |
| 8 | 运营资质 | varchar 255 | 是 | 证件图片 | |
| 9 | 审核状态 | varchar 20 | 是 | 认证结果 | |
| 10 | 创建时间 | datetime | 是 | 记录时间 |
车辆信息表主要用来存储车辆基本数据。主要包括车辆编号、车牌号码、车辆车型、车辆载重等字段。如表4-4所示。
表4-4 车辆信息表
| 序号 | 字段名 | 数据类型 | 允许空 | 键 | 备注 |
| 1 | 车辆信息id | bigint 20 | 否 | 主键 | 自增主键 |
| 2 | 车辆编号 | varchar 30 | 否 | 唯一 | 车辆代码 |
| 3 | 车牌号码 | varchar 10 | 否 | 唯一 | 车牌号 |
| 4 | 车辆车型 | varchar 50 | 否 | 型号规格 | |
| 5 | 车辆载重 | varchar 20 | 是 | 载重吨位 | |
| 6 | 车辆状态 | varchar 20 | 是 | 可用状态 | |
| 7 | 车辆归属 | varchar 50 | 是 | 所属部门 | |
| 8 | 年检信息 | text | 是 | 检验记录 | |
| 9 | 车辆详情 | text | 是 | 备注信息 | |
| 10 | 创建时间 | datetime | 是 | 记录时间 |
车辆调度表主要用来存储调度申请记录。主要包括车辆编号、车牌号码、车辆车型、调度日期等字段。如表4-5所示。
表4-5 车辆调度表
| 序号 | 字段名 | 数据类型 | 允许空 | 键 | 备注 |
| 1 | 车辆调度id | bigint 20 | 否 | 主键 | 自增主键 |
| 2 | 车辆编号 | varchar 30 | 否 | 关联车辆 | |
| 3 | 车牌号码 | varchar 10 | 否 | 车牌号 | |
| 4 | 运营用户 | bigint 20 | 否 | 外键 | 申请人 |
| 5 | 配送用户 | bigint 20 | 是 | 外键 | 使用人 |
| 6 | 调度日期 | date | 否 | 申请日期 | |
| 7 | 调度类型 | varchar 20 | 否 | 类型分类 | |
| 8 | 审核状态 | varchar 20 | 是 | 审批状态 | |
| 9 | 创建时间 | datetime | 是 | 记录时间 |
车辆维护表主要用来存储维保执行记录。主要包括车辆编号、车牌号码、车辆车型、维护日期等字段。如表4-6所示。
表4-6 车辆维护表
| 序号 | 字段名 | 数据类型 | 允许空 | 键 | 备注 |
| 1 | 车辆维护id | bigint 20 | 否 | 主键 | 自增主键 |
| 2 | 车辆编号 | varchar 30 | 否 | 关联车辆 | |
| 3 | 车牌号码 | varchar 10 | 否 | 车牌号 | |
| 4 | 运营用户 | bigint 20 | 否 | 外键 | 填报人 |
| 5 | 维护日期 | date | 否 | 执行日期 | |
| 6 | 维护类型 | varchar 20 | 否 | 保养或维修 | |
| 7 | 维护进度 | varchar 20 | 是 | 完成状态 | |
| 8 | 审核状态 | varchar 20 | 是 | 审批状态 | |
| 9 | 创建时间 | datetime | 是 | 记录时间 |
设备上报表主要用来存储设备运行上报数据。主要包括车辆编号、车牌号码、车辆车型、上报标题等字段。如表4-7所示。
表4-7 设备上报表
| 序号 | 字段名 | 数据类型 | 允许空 | 键 | 备注 |
| 1 | 设备上报id | bigint 20 | 否 | 主键 | 自增主键 |
| 2 | 车辆编号 | varchar 30 | 否 | 关联车辆 | |
| 3 | 车牌号码 | varchar 10 | 否 | 车牌号 | |
| 4 | 运营用户 | bigint 20 | 是 | 外键 | 责任人 |
| 5 | 配送用户 | bigint 20 | 是 | 外键 | 上报人 |
| 6 | 上报标题 | varchar 200 | 否 | 问题摘要 | |
| 7 | 上报设备 | varchar 50 | 否 | 设备名称 | |
| 8 | 上报内容 | text | 是 | 详细描述 | |
| 9 | 审核状态 | varchar 20 | 是 | 处理状态 | |
| 10 | 创建时间 | datetime | 是 | 记录时间 |
异常上报表主要用来存储配送过程异常记录。主要包括订单单号、订单标题、异常标题、异常类型等字段。如表4-8所示。
表4-8 异常上报表
| 序号 | 字段名 | 数据类型 | 允许空 | 键 | 备注 |
| 1 | 异常上报id | bigint 20 | 否 | 主键 | 自增主键 |
| 2 | 订单单号 | varchar 50 | 否 | 外键 | 关联订单 |
| 3 | 订单标题 | varchar 200 | 否 | 订单名称 | |
| 4 | 运营用户 | bigint 20 | 是 | 外键 | 处理人 |
| 5 | 配送用户 | bigint 20 | 否 | 外键 | 上报人 |
| 6 | 异常标题 | varchar 200 | 否 | 问题概述 | |
| 7 | 异常类型 | varchar 20 | 否 | 分类标签 | |
| 8 | 异常说明 | text | 是 | 详细描述 | |
| 9 | 异常处理 | text | 是 | 解决措施 | |
| 10 | 审核状态 | varchar 20 | 是 | 处理状态 | |
| 11 | 创建时间 | datetime | 是 | 记录时间 |
财务对账表主要用来存储账单核对数据。主要包括账单单号、账单标题、账单时间、对账类型等字段。如表4-9所示。
表4-9 财务对账表
| 序号 | 字段名 | 数据类型 | 允许空 | 键 | 备注 |
| 1 | 财务对账id | bigint 20 | 否 | 主键 | 自增主键 |
| 2 | 账单单号 | varchar 50 | 否 | 唯一 | 账单编号 |
| 3 | 账单标题 | varchar 200 | 否 | 账单名称 | |
| 4 | 账单时间 | datetime | 否 | 账单周期 | |
| 5 | 对账类型 | varchar 20 | 否 | 日周月 | |
| 6 | 运费收入 | decimal 10 2 | 是 | 收入金额 | |
| 7 | 补贴金额 | decimal 10 2 | 是 | 补贴金额 | |
| 8 | 支出金额 | decimal 10 2 | 是 | 支出金额 | |
| 9 | 账单金额 | decimal 10 2 | 是 | 结算金额 | |
| 10 | 账单明细 | text | 是 | 详细条目 | |
| 11 | 创建时间 | datetime | 是 | 记录时间 |
配送数据表主要用来存储配送绩效统计信息。主要包括配送用户、配送姓名、数据月份、好评率等字段。如表4-10所示。
表4-10 配送数据表
| 序号 | 字段名 | 数据类型 | 允许空 | 键 | 备注 |
| 1 | 配送数据id | bigint 20 | 否 | 主键 | 自增主键 |
| 2 | 配送用户 | bigint 20 | 否 | 外键 | 关联用户 |
| 3 | 配送姓名 | varchar 50 | 否 | 姓名 | |
| 4 | 数据月份 | varchar 10 | 否 | 统计月份 | |
| 5 | 好评率 | decimal 5 2 | 是 | 百分比率 | |
| 6 | 投诉率 | decimal 5 2 | 是 | 百分比率 | |
| 7 | 配送单量 | int 11 | 是 | 订单数量 | |
| 8 | 平均时长 | int 11 | 是 | 分钟数 | |
| 9 | 准点率 | decimal 5 2 | 是 | 百分比率 | |
| 10 | 配送里程 | int 11 | 是 | 公里数 | |
| 11 | 完成率 | decimal 5 2 | 是 | 百分比率 | |
| 12 | 负载率 | decimal 5 2 | 是 | 百分比率 | |
| 13 | 团队排名 | int 11 | 是 | 排名值 | |
| 14 | 奖惩记录 | text | 是 | 备注说明 | |
| 15 | 创建时间 | datetime | 是 | 记录时间 |
物资申请表主要用来存储物资申领记录。主要包括配送用户、运营用户、物资名称、物资类型等字段。如表4-11所示。
表4-11 物资申请表
| 序号 | 字段名 | 数据类型 | 允许空 | 键 | 备注 |
| 1 | 物资申请id | bigint 20 | 否 | 主键 | 自增主键 |
| 2 | 配送用户 | bigint 20 | 否 | 外键 | 申请人 |
| 3 | 运营用户 | bigint 20 | 是 | 外键 | 审批人 |
| 4 | 物资名称 | varchar 100 | 否 | 物品名称 | |
| 5 | 物资类型 | varchar 20 | 否 | 分类 | |
| 6 | 申请日期 | date | 否 | 申请日 | |
| 7 | 申请数量 | int 11 | 否 | 数量 | |
| 8 | 申请原因 | text | 是 | 事由 | |
| 9 | 审核状态 | varchar 20 | 是 | 审批状态 | |
| 10 | 创建时间 | datetime | 是 | 记录时间 |
培训报名表主要用来存储培训参与记录。主要包括培训标题、培训类型、配送用户、配送姓名等字段。如表4-12所示。
表4-12 培训报名表
| 序号 | 字段名 | 数据类型 | 允许空 | 键 | 备注 |
| 1 | 培训报名id | bigint 20 | 否 | 主键 | 自增主键 |
| 2 | 运营用户 | bigint 20 | 是 | 外键 | 发布人 |
| 3 | 培训标题 | varchar 200 | 否 | 培训名称 | |
| 4 | 培训类型 | varchar 50 | 否 | 分类 | |
| 5 | 培训时间 | datetime | 否 | 开始时间 | |
| 6 | 培训地点 | varchar 255 | 否 | 地址 | |
| 7 | 培训积分 | int 11 | 是 | 分值 | |
| 8 | 配送用户 | bigint 20 | 否 | 外键 | 报名人 |
| 9 | 配送姓名 | varchar 50 | 否 | 姓名 | |
| 10 | 报名人数 | int 11 | 是 | 数量 | |
| 11 | 报名申请 | text | 是 | 备注 | |
| 12 | 审核状态 | varchar 20 | 是 | 审批状态 | |
| 13 | 创建时间 | datetime | 是 | 记录时间 |
第5章 系统实现
5.1 运营用户功能实现
系统通过前端表单收集用户输入的账号和密码,发送POST请求至UserServlet的login方法进行身份验证。后端调用BaseService根据用户名查询用户信息,校验密码后生成UUID作为token存入access_token表并返回前端。前端接收token后存入sessionStorage并跳转至主页面。登录注册界面如图5-1所示。
图5-1 登录注册界面
核心代码实现如下:
let { data: res } = await axios.post(BaseUrl + '/api/user/login?', {
"username": account.value,
"password": password.value,
},{
headers: { "Content-Type": "application/json" }
})
sessionStorage.setItem('personInfo', [obj])
sessionStorage.setItem('token', res.result.obj.token)
window.location.replace("./page/frime.jsp")
系统通过论坛模块实现经验分享功能。用户在forum/table.jsp页面提交包含标题、内容和分类的分享信息,前端调用axios.post请求发送至ForumServlet的add方法。后端调用BaseService的insert方法将数据存入forum表,返回操作结果。列表页面支持分页查询和按分类筛选已发布内容。经验分享界面如图5-2所示。
图5-2 经验分享界面
核心代码实现如下:
from['title'] = title.value
from['content'] = layedit.getContent(demo)
const { data: res } = await axios.post(BaseUrl + '/api/forum/add', from, {
headers: { 'x-auth-token': token }
})
if (res.result == 1) { layer.msg('新增成功') }
系统通过文章资讯模块实现问题指南功能。运营用户在article/table.jsp页面创建常见问题解答文章,包含标题、分类和正文内容。前端调用article/add接口保存数据至article表,后端通过BaseService的insert方法执行数据库写入。用户端可查看文章列表和详细内容以获取指导信息。问题指南界面如图5-3所示。
图5-3 问题指南界面
核心代码实现如下:
from['title'] = title.value
from['content'] = layedit.getContent(demo)
const { data: res } = await axios.post(BaseUrl + '/api/article/add?', from, {
headers: { 'x-auth-token': token }
})
if (res.result == 1) { layer.msg('新增成功') }
系统通过message留言板模块实现建议反馈功能。用户填写标题、昵称和内容后,前端将数据提交至MessageServlet的add方法。后端调用BaseService的insert操作将反馈信息存入message表,同时记录反馈时间。管理员可在后台查看反馈并进行回复处理。建议反馈界面如图5-4所示。
图5-4 建议反馈界面
核心代码实现如下:
let { data: res } = await axios.post(BaseUrl + '/api/message/add', {
title: title.value, nickname: nickname.value, content: content.value
}, { headers: { 'x-auth-token': token } })
if (res.result == 1) { layer.msg('新增成功') }
系统调用高德地图API实现路线信息查询功能。前端获取用户输入的起点和终点地址,调用GaodeMap.getCoordinatesa方法将地址转换为经纬度坐标,然后通过getDrivingRoute方法计算驾车路线距离和耗时,最后在地图上渲染路线并展示详细信息。路线信息查询界面如图5-5所示。
图5-5 路线信息查询界面
核心代码实现如下:
let startCoords = await GaodeMap.getCoordinatesa(startAddr)
let endCoords = await GaodeMap.getCoordinatesa(endAddr)
let drivingResult = await GaodeMap.getDrivingRoute(startCoords, endCoords, map)
const distanceKm = (drivingResult.distance / 1000).toFixed(1)
const durationDriveMin = Math.ceil(drivingResult.time / 60)
运营用户进入order_allocation/table.jsp页面查看订单列表,系统通过OrderAllocationServlet的get_list方法从order_allocation表分页查询数据。用户可为订单分配配送人员和优先级别,通过set操作更新订单分配记录。确认状态字段记录接单或拒单反馈。订单分配界面如图5-6所示。
图5-6 订单分配界面
核心代码实现如下:
form_data2.priority = $("#priority").val()
form_data2.delivery_user = Number(delivery_user.value)
const { data: res } = await axios.post(BaseUrl + '/api/order_allocation/add?', form_data2, {
headers: { 'x-auth-token': token }
})
if (res.result == 1) { layer.msg('确认完毕') }
运营用户在training_plan/table.jsp页面创建培训计划,包含培训标题、类型、时间、地点、积分和文件资料。前端调用training_plan/add接口,后端通过BaseService执行insert操作存入training_plan表。员工可查看培训计划并在线报名参加。培训计划管理界面如图5-7所示。
图5-7 培训计划管理界面
核心代码实现如下:
form_data2.training_title = training_title.value
form_data2.training_points = Number(training_points.value)
const { data: res } = await axios.post(BaseUrl + '/api/training_plan/add?', form_data2, {
headers: { 'x-auth-token': token }
})
运营用户在abnormal_reporting/table.jsp页面上报配送过程中发生的异常情况,包括异常类型、标题、描述和处理方式。前端调用abnormal_reporting/add接口,后端将数据存入abnormal_reporting表并触发消息通知提醒相关人员。异常上报界面如图5-8所示。
图5-8 异常上报界面
核心代码实现如下:
form_data2.exception_title = exception_title.value
form_data2.exception_type = $("#exception_type").val()
const { data: res } = await axios.post(BaseUrl + '/api/abnormal_reporting/add?', form_data2, {
headers: { 'x-auth-token': token }
})
运营用户在bundle_inventory/table.jsp页面管理仓库包裹库存信息,包括包裹编号、标题、库存数量、存放位置和出入库情况。前端调用bundle_inventory/add接口,后端通过BaseService的insert方法执行数据写入。支持按包裹标题进行模糊查询。包裹库存界面如图5-9所示。
图5-9 包裹库存界面
核心代码实现如下:
form_data2.bundle_number = $get_stamp()
form_data2.bundle_title = bundle_title.value
const { data: res } = await axios.post(BaseUrl + '/api/bundle_inventory/add?', form_data2, {
headers: { 'x-auth-token': token }
})
运营用户在vehicle_dispatching/table.jsp页面进行车辆调度管理,录入车辆编号、车型、调度日期、调度类型和用途。前端调用vehicle_dispatching/add接口,后端将数据写入vehicle_dispatching表。调度申请需经过审核流程,审核状态在列表中展示。车辆调度界面如图5-10所示。
图5-10 车辆调度界面
核心代码实现如下:
form_data2.vehicle_number = vehicle_number.value
form_data2.dispatch_type = $("#dispatch_type").val()
const { data: res } = await axios.post(BaseUrl + '/api/vehicle_dispatching/add?', form_data2, {
headers: { 'x-auth-token': token }
})
运营用户在vehicle_maintenance/table.jsp页面记录车辆维护保养信息,包括维护日期、维护类型、维护申请和进度详情。前端调用vehicle_maintenance/add接口,后端将维护记录存入vehicle_maintenance表。系统支持按车辆车型和维护类型筛选查询。车辆维护界面如图5-11所示。
图5-11 车辆维护界面
核心代码实现如下:
form_data2.maintenance_date = layui.util.toDateString(dispatch_date.value, "yyyy-MM-dd")
form_data2.maintenance_type = $("#maintenance_type").val()
const { data: res } = await axios.post(BaseUrl + '/api/vehicle_maintenance/add?', form_data2, {
headers: { 'x-auth-token': token }
})
运营用户在early_warning_information/table.jsp页面配置预警规则和预警内容,包括预警标题、类型、时间和详细内容。前端调用early_warning_information/add接口,后端将预警信息存入early_warning_information表。系统根据预警规则自动触发消息通知。预警信息管理界面如图5-12所示。
图5-12 预警信息管理界面
核心代码实现如下:
form_data2.alert_title = alert_title.value
form_data2.alert_type = $("#alert_type").val()
form_data2.alert_time = layui.util.toDateString(alert_time.value, "yyyy-MM-dd HH:mm:ss")
const { data: res } = await axios.post(BaseUrl + '/api/early_warning_information/add?', form_data2)
运营用户在device_reporting/table.jsp页面上报设备运行状态和异常信息,包含车辆编号、车型、上报标题和内容。前端调用device_reporting/add接口,后端将数据写入device_reporting表。上报记录需经审核确认后方可生效。设备上报界面如图5-13所示。
图5-13 设备上报界面
核心代码实现如下:
form_data2.vehicle_number = vehicle_number.value
form_data2.report_title = report_title.value
const { data: res } = await axios.post(BaseUrl + '/api/device_reporting/add?', form_data2, {
headers: { 'x-auth-token': token }
})
运营用户在financial_reconciliation/table.jsp页面管理财务对账数据,包括账单编号、标题、账单时间、运费收入和支出金额。前端调用financial_reconciliation/add接口,系统自动计算账单金额并存入financial_reconciliation表。支持按对账类型筛选统计。财务对账界面如图5-14所示。
图5-14 财务对账界面
核心代码实现如下:
form_data2.bill_number =
("#reconciliation_type").val()
const { data: res } = await axios.post(BaseUrl + '/api/financial_reconciliation/add?', form_data2, {
headers: { 'x-auth-token': token }
})
运营用户在distribution_data/table.jsp页面查询配送员绩效数据,包括好评率、投诉率、配送单量、平均时长和完成率等指标。前端调用distribution_data/get_list接口,后端从distribution_data表分页查询数据并按创建时间排序返回。配送数据查询界面如图5-15所示。
图5-15 配送数据查询界面
核心代码实现如下:
table.render({
elem: '#distribution_data',
url: BaseUrl + '/api/distribution_data/get_list',
where: { like: 1, size: 10, page: 1 },
cols: [[ { field: 'delivery_user', title: '配送用户' } ]]
})
运营用户在material_request/table.jsp页面审核配送用户的物资申请。页面展示待审核申请列表,管理员可查看申请详情并选择通过或拒绝。审核操作调用material_request/set接口更新examine_state审核状态字段,同时向申请人发送消息通知。物资申请审核界面如图5-16所示。
图5-16 物资申请审核界面
核心代码实现如下:
set_data['examine_state'] = $('#examine_state').val()
const { data: res } = await axios.post(BaseUrl + '/api/material_request/set?material_request_id=' + id, set_data, {
headers: { 'x-auth-token': token }
})
if (res.result == 1) { layer.msg(审核成功) }
运营用户在overtime_information/table.jsp页面管理员工的加班申请记录,包括申请标题、开始时间、结束时间和加班原因。前端调用overtime_information/get_list获取申请列表,审核通过或拒绝操作通过set接口更新审核状态。加班信息管理界面如图5-17所示。
图5-17 加班信息管理界面
核心代码实现如下:
form_data2.application_title = application_title.value
form_data2.start_time = layui.util.toDateString(start_time.value, "yyyy-MM-dd HH:mm:ss")
const { data: res } = await axios.post(BaseUrl + '/api/overtime_information/add?', form_data2, {
headers: { 'x-auth-token': token }
})
运营用户在leave_information/table.jsp页面处理员工的请假申请。页面展示请假记录列表,包含请假类型、开始时间、结束时间和请假原因。运营用户可通过verify.jsp弹窗审核请假申请,审核结果通过消息通知发送给申请人。请假信息管理界面如图5-18所示。
图5-18 请假信息管理界面
核心代码实现如下:
form_data2.leave_request_title = leave_request_title.value
form_data2.leave_type = $("#leave_type").val()
const { data: res } = await axios.post(BaseUrl + '/api/leave_information/add?', form_data2, {
headers: { 'x-auth-token': token }
})
运营用户通过工作交接模块将未完成的工作任务转移给其他运营人员。系统记录交接的订单分配、物资申请等业务数据,调用相应业务表的set接口更新处理人字段,确保工作流程连续性和责任明确。工作交接界面如图5-19所示。
图5-19 工作交接界面
核心代码实现如下:
form_data2.operate_users = Number(operate_users.value)
const { data: res } = await axios.post(BaseUrl + '/api/order_allocation/set?order_allocation_id=' + id, form_data2, {
headers: { 'x-auth-token': token }
})
运营用户在operational_performance/table.jsp页面查看个人绩效数据,包括统计年月、绩效排名、绩效奖励和绩效说明。前端调用operational_performance/get_list接口查询绩效记录,后端从operational_performance表返回数据,支持按统计年月筛选。运营绩效查询界面如图5-20所示。
图5-20 运营绩效查询界面
核心代码实现如下:
table.render({
elem: '#operational_performance',
url: BaseUrl + '/api/operational_performance/get_list',
where: { operate_users: use_id, size: 10, page: 1 },
cols: [[ { field: 'performance_ranking', title: '绩效排名' } ]]
})
配送用户在order_allocation/table.jsp页面查看分配给自己的订单,系统根据当前登录用户的user_id作为delivery_user字段进行数据过滤。页面通过OrderAllocationServlet的get_list方法返回待接单订单,配送用户可以确认接单或拒单,操作结果更新订单确认状态。订单分配查询界面如图5-21所示。
图5-21 订单分配查询界面
核心代码实现如下:
let sqlwhere = "delivery_user = " + use_id
data_data = { size: 10, orderby: 'create_time desc', sqlwhere: sqlwhere }
table.render({ elem: '#order_allocation', url: BaseUrl + '/api/order_allocation/get_list' })
配送用户在个人中心页面可通过info.jsp添加紧急联系人信息。前端收集联系人姓名和电话后调用/user/set接口更新用户扩展信息字段。系统将联系人数据与用户账号关联存储,便于发生配送异常时及时联系。紧急联系人添加界面如图5-22所示。
图5-22 紧急联系人添加界面
核心代码实现如下:
from.emergency_contact = emergency_contact.value
from.emergency_phone = emergency_phone.value
const { data: res } = await axios.post(BaseUrl + '/api/user/set?user_id=' + obj.user_id, from, {
headers: { 'x-auth-token': token }
})
配送用户通过exam/table.jsp页面参加在线考试。系统从exam_question表按考试ID抽取试题,前端动态渲染题目类型(单选、多选、判断、填空、主观题)。用户提交答案后调用user_answer/add接口保存答题记录并自动计算客观题得分。在线考试界面如图5-23所示。
图5-23 在线考试界面
核心代码实现如下:
form_data.answers = JSON.stringify(daan_handle)
form_data.score_detail = JSON.stringify(score_handle)
const { data: res } = await axios.post(BaseUrl + '/api/user_answer/add', form_data, {
headers: { 'x-auth-token': token }
})
系统通过chat_box模块实现智能客服咨询功能。用户点击客服入口后初始化WebSocket连接,前端将用户输入的消息发送至CustomerChatGroupServlet,后端根据消息内容调用AI接口生成回复文本,通过WebSocket推送回前端页面展示对话记录。智能客服咨询界面如图5-24所示。
图5-24 智能客服咨询界面
核心代码实现如下:
content.push({ sender_id: userInfo.user_id, msg: sendValue, creat_time: new Date().getTime() })
await axios.post(BaseUrl + "/api/customer_chat_log/set?customer_chat_id=" + currentChat, { content: JSON.stringify(content) })
await getChat(currentChat)
配送用户在order_delivery/table.jsp页面管理配送任务,包括记录配送时间、配送流程、配送里程和签收凭证等信息。前端调用order_delivery/add或set接口更新配送记录,支持上传签收凭证图片。配送状态字段跟踪订单从取件到签收的全过程。订单配送管理界面如图5-25所示。
图5-25 订单配送管理界面
核心代码实现如下:
form_data2.delivery_time = layui.util.toDateString(delivery_time.value, "yyyy-MM-dd HH:mm:ss")
form_data2.delivery_status = $("#delivery_status").val()
const { data: res } = await axios.post(BaseUrl + '/api/order_delivery/add?', form_data2, {
headers: { 'x-auth-token': token }
})
配送用户在abnormal_reporting/table.jsp页面上报配送中的异常情况,填写异常标题、类型、说明和处理方式,可关联订单编号。前端调用abnormal_reporting/add接口,后端将数据入库并通知运营用户处理。系统支持按异常类型筛选查询上报记录。异常上报界面如图5-26所示。
图5-26 异常上报界面
核心代码实现如下:
form_data2.exception_title = exception_title.value
form_data2.exception_type = $("#exception_type").val()
const { data: res } = await axios.post(BaseUrl + '/api/abnormal_reporting/add?', form_data2, {
headers: { 'x-auth-token': token }
})
配送用户在bundle_inventory/table.jsp页面查看仓库包裹库存信息,系统根据配送用户关联的仓库权限进行数据过滤。前端调用bundle_inventory/get_list接口,支持按包裹标题关键字模糊查询,分页展示包裹编号、库存数量和存放位置等字段。包裹库存查询界面如图5-27所示。
图5-27 包裹库存查询界面
核心代码实现如下:
let sqlwhere = "delivery_user = " + use_id
data_data = { size: 10, orderby: 'create_time desc', sqlwhere: sqlwhere }
table.reload('bundle_inventory', { where: data_data })
配送用户在parcel_inventory/table.jsp页面进行包裹盘点操作,录入盘点日期、盘点数量和盘点登记信息。前端调用parcel_inventory/add接口,后端将盘点记录存入parcel_inventory表并与对应包裹库存关联,支持盘点次数限制校验。包裹盘点管理界面如图5-28所示。
图5-28 包裹盘点管理界面
核心代码实现如下:
form_data2.count_quantity = Number(count_quantity.value)
form_data2.inventory_date = layui.util.toDateString(inventory_date.value, "yyyy-MM-dd")
const { data: res } = await axios.post(BaseUrl + '/api/parcel_inventory/add?', form_data2, {
headers: { 'x-auth-token': token }
})
配送用户在vehicle_dispatching/table.jsp页面查看车辆调度申请并确认用车。用户核对调度信息后可进行接单或拒单操作,调用vehicle_dispatching/set接口更新审核状态字段。调度记录关联车辆信息和运营用户,审核结果通过消息通知发送。车辆调度审核界面如图5-29所示。
图5-29 车辆调度审核界面
核心代码实现如下:
set_data['examine_state'] = $('#examine_state').val()
const { data: res } = await axios.post(BaseUrl + '/api/vehicle_dispatching/set?vehicle_dispatching_id=' + id, set_data, {
headers: { 'x-auth-token': token }
})
if (res.result == 1) { layer.msg(确认成功) }
配送用户在early_warning_information/table.jsp页面查看系统推送的预警信息,包括预警标题、类型、时间和内容。前端调用early_warning_information/get_list接口,后端根据配送用户关联信息过滤数据,按预警时间倒序排列展示最新预警。预警信息查询界面如图5-30所示。
图5-30 预警信息查询界面
核心代码实现如下:
table.render({
elem: '#early_warning_information',
url: BaseUrl + '/api/early_warning_information/get_list',
where: { delivery_user: use_id, size: 10, page: 1 }
})
配送用户在device_reporting/table.jsp页面上传设备运行数据,填写设备状态、上报内容和证明材料。前端调用device_reporting/add接口将数据提交至后端,后端存入device_reporting表并支持文件上传功能。上报记录需经运营用户审核确认。设备上传管理界面如图5-31所示。
图5-31 设备上传管理界面
核心代码实现如下:
form_data2.report_title = report_title.value
form_data2.reported_content = reported_content.value
const { data: res } = await axios.post(BaseUrl + '/api/device_reporting/add?', form_data2, {
headers: { 'x-auth-token': token }
})
配送用户在equipment_information/table.jsp页面查看和申请装备,包括装备名称、领用数量、领用时间和归还时间。前端调用equipment_information/get_list获取装备库存列表,通过add接口提交领用申请,系统记录装备使用情况并更新库存。装备信息管理界面如图5-32所示。
图5-32 装备信息管理界面
核心代码实现如下:
form_data2.equipment_name = equipment_name.value
form_data2.quantity_issued = Number(quantity_issued.value)
const { data: res } = await axios.post(BaseUrl + '/api/equipment_information/add?', form_data2, {
headers: { 'x-auth-token': token }
})
配送用户在bill_reconciliation/table.jsp页面核对个人配送账单,查看账单金额、对账类型和核对内容。前端调用bill_reconciliation/get_list接口获取账单列表,用户可对异常账单发起申诉或修改申请,提交后等待运营用户审核处理。账单核对界面如图5-33所示。
图5-33 账单核对界面
核心代码实现如下:
form_data2.check_type = $("#check_type").val()
const { data: res } = await axios.post(BaseUrl + '/api/bill_reconciliation/add?', form_data2, {
headers: { 'x-auth-token': token }
})
if (res.result == 1) { layer.msg('确认完毕') }
配送用户在settlement_information/table.jsp页面查看和申请收入结算,包括账单金额、结算金额、结算进度和收入证明等。前端调用settlement_information/add接口提交结算申请,后端校验结算金额是否超出账单余额,通过后更新结算记录并扣减对账金额。结算信息管理界面如图5-34所示。
图5-34 结算信息管理界面
核心代码实现如下:
form_data2.settlement_amount = Number(settlement_amount.value)
form_data2.settlement_progress = $("#settlement_progress").val()
const { data: res } = await axios.post(BaseUrl + '/api/settlement_information/add?', form_data2, {
headers: { 'x-auth-token': token }
})
配送用户在distribution_data/table.jsp页面查看个人配送绩效数据,系统根据当前登录用户的user_id作为delivery_user字段进行数据过滤。页面通过DistributionDataServlet的get_list方法返回配送数据,包括配送单量、好评率、完成率和团队排名等指标。配送数据查询界面如图5-35所示。
图5-35 配送数据查询界面
核心代码实现如下:
let sqlwhere = "delivery_user = " + use_id
table.render({
elem: '#distribution_data',
url: BaseUrl + '/api/distribution_data/get_list',
where: { sqlwhere: sqlwhere, size: 10, page: 1 }
})
配送用户在material_request/table.jsp页面提交物资申请,填写物资名称、类型、数量和申请原因。前端调用material_request/add接口,后端将申请记录存入material_request表并设置审核状态为待审核。运营用户审核后系统发送消息通知申请人。物资申请管理界面如图5-36所示。
图5-36 物资申请管理界面
核心代码实现如下:
form_data2.material_name = material_name.value
form_data2.number_of_applications = Number(number_of_applications.value)
const { data: res } = await axios.post(BaseUrl + '/api/material_request/add?', form_data2, {
headers: { 'x-auth-token': token }
})
配送用户在training_registration/table.jsp页面查看培训计划并在线报名。用户选择培训项目后调用training_registration/add接口提交报名申请,后端将报名信息存入training_registration表并关联用户ID。报名需经运营用户审核通过后方可参加培训。培训报名界面如图5-37所示。
图5-37 培训报名界面
核心代码实现如下:
form_data2.training_title = training_title.value
form_data2.number_of_enrolment = $("#number_of_enrolment").val()
const { data: res } = await axios.post(BaseUrl + '/api/training_registration/add?', form_data2, {
headers: { 'x-auth-token': token }
})
管理员在信息管理模块统一管理系统公告、轮播图和留言反馈内容。通过notice/table.jsp发布公告信息,调用notice/add接口写入notice表;通过slides/table.jsp管理轮播图,调用slides/add接口上传图片;通过message/table.jsp查看和处理用户反馈。信息管理界面如图5-38所示。
图5-38 信息管理界面
核心代码实现如下:
let { data: res } = await axios.post(BaseUrl + '/api/notice/add', {
content: layedit.getContent(demo), title: title.value
}, { headers: { 'x-auth-token': token } })
论坛管理功能实现
管理员在forum/table.jsp和forum_type/table.jsp页面管理论坛帖子和分类。管理员可对帖子进行置顶、删除和分类调整操作,通过forum/set接口更新帖子状态。论坛分类管理支持增删改查,删除分类时需检查是否存在关联帖子以防止数据不一致。论坛管理界面如图5-39所示。
图5-39 论坛管理界面
核心代码实现如下:
let { data: res } = await axios.get(BaseUrl + '/api/forum/get_list', { params: { type: type.name } })
if (res.result.list.length > 0) { layer.msg('类型下有关联内容,无法删除') }
管理员在auth/table.jsp页面配置不同用户组的操作权限。页面展示权限列表,管理员可为每个权限点设置增删改查权限。修改权限时调用auth/set接口更新auth表的add、del、set、get字段值,前端根据权限字段动态控制菜单和按钮的显示隐藏。权限管理界面如图5-40所示。
图5-40 权限管理界面
核心代码实现如下:
set_data['add'] = add.checked ? 1 : 0
set_data['del'] = del.checked ? 1 : 0
const { data: res } = await axios.post(BaseUrl + '/api/auth/set?auth_id=' + value, set_data, {
headers: { 'x-auth-token': token }
})
管理员在route_information/table.jsp页面维护配送路线数据,包括路线名称、起点、终点、耗时、距离和成本。前端调用route_information/add或set接口,后端通过BaseService执行数据库操作。路线信息支持上传封面图片和详细描述内容。路线信息管理界面如图5-41所示。
图5-41 路线信息管理界面
核心代码实现如下:
form_data2.route_name = route_name.value
form_data2.route_distance = Number(route_distance.value)
const { data: res } = await axios.post(BaseUrl + '/api/route_information/add?', form_data2, {
headers: { 'x-auth-token': token }
})
管理员在early_warning_information/table.jsp页面配置预警规则和参数,包括预警类型、触发条件和预警内容。前端调用early_warning_information/add接口保存预警配置,后端存入early_warning_information表。系统后台任务扫描业务数据并根据规则自动触发预警通知。预警信息管理界面如图5-42所示。
图5-42 预警信息管理界面
核心代码实现如下:
form_data2.alert_type = $("#alert_type").val()
form_data2.alert_time = layui.util.toDateString(alert_time.value, "yyyy-MM-dd HH:mm:ss")
const { data: res } = await axios.post(BaseUrl + '/api/early_warning_information/add?', form_data2)
管理员在equipment_information/table.jsp页面管理装备库存和领用记录,包括装备名称、领用数量、归还时间和检查情况。前端调用equipment_information/add接口添加装备信息,通过set接口更新装备使用状态。系统记录每次领用和归还操作。装备信息管理界面如图5-43所示。
图5-43 装备信息管理界面
核心代码实现如下:
form_data2.equipment_name = equipment_name.value
form_data2.issuance_time = layui.util.toDateString(issuance_time.value, "yyyy-MM-dd HH:mm:ss")
const { data: res } = await axios.post(BaseUrl + '/api/equipment_information/add?', form_data2)
管理员在distribution_data/table.jsp页面查看和统计所有配送员的绩效数据,页面通过ECharts图表展示好评率、投诉率和配送单量的趋势图。前端调用distribution_data/count和sum接口获取统计数据,后端返回聚合计算结果,管理员可导出数据报表。配送数据管理界面如图5-44所示。
图5-44 配送数据管理界面
核心代码实现如下:
let { data: res } = await axios.get(BaseUrl + '/api/distribution_data/count', { params: { delivery_user: use_id } })
if(res.data.result !== null) obj.value = res.data.result
管理员在material_request/table.jsp页面审核配送用户提交的物资申请。页面展示待审核申请列表,管理员可批量审核通过或拒绝,审核操作调用material_request/set接口更新examine_state状态。审核结果自动发送消息通知申请人。物资申请管理界面如图5-45所示。
图5-45 物资申请管理界面
核心代码实现如下:
set_data['examine_state'] = $('#examine_state').val()
const { data: res } = await axios.post(BaseUrl + '/api/material_request/set?material_request_id=' + id, set_data, {
headers: { 'x-auth-token': token }
})
管理员在overtime_information/table.jsp页面统一管理员工的加班申请,支持按部门和时间范围筛选。管理员审核加班申请时调用overtime_information/set接口更新审核状态和回复内容,系统记录审核时间,审核结果通过消息模块通知申请人。加班信息管理界面如图5-46所示。
图5-46 加班信息管理界面
核心代码实现如下:
set_data['examine_state'] = ('#examine_state').val() set_data['examine_reply'] = ("#examine_reply").val()
const { data: res } = await axios.post(BaseUrl + '/api/overtime_information/set?overtime_information_id=' + id, set_data)
管理员在leave_information/table.jsp页面处理员工的请假申请,查看请假详情并执行审核操作。审核通过或拒绝后调用leave_information/set接口更新审核状态,系统自动计算请假天数并更新考勤记录。管理员可对请假数据进行统计导出。请假信息管理界面如图5-47所示。
图5-47 请假信息管理界面
核心代码实现如下:
set_data['examine_state'] = $('#examine_state').val()
const { data: res } = await axios.post(BaseUrl + '/api/leave_information/set?leave_information_id=' + id, set_data, {
headers: { 'x-auth-token': token }
})
管理员在工作交接模块中管理系统内员工的工作任务转移。当员工离职或岗位变动时,管理员可将其负责的订单分配、物资申请等业务批量转移给其他员工,调用各业务表的set接口批量更新处理人字段,确保工作连续性。工作交接管理界面如图5-48所示。
图5-48 工作交接管理界面
核心代码实现如下:
for (let id of selectedIds) {
await axios.post(BaseUrl + '/api/order_allocation/set?order_allocation_id=' + id, { operate_users: newUserId })
}
管理员在feedback_resight/table.jsp页面查看用户对配送服务的评价和反馈,包括评价等级、反馈内容和诉求内容。管理员可对评价进行回复和处理,调用feedback_resight/set接口更新处理状态。系统统计各星级评价比例并生成可视化报表。反馈评价管理界面如图5-49所示。
图5-49 反馈评价管理界面
核心代码实现如下:
form_data2.rating_level = $("#rating_level").val()
form_data2.resight_content = resight_content.value
const { data: res } = await axios.post(BaseUrl + '/api/feedback_resight/add?', form_data2, {
headers: { 'x-auth-token': token }
})
管理员在reporting_information/table.jsp页面处理用户举报信息,包括举报标题、举报内容、举报凭证和核实情况。管理员审核举报后调用reporting_information/set接口更新审核状态和整改内容,系统记录核实人员和核实时间。举报信息管理界面如图5-50所示。
图5-50 举报信息管理界面
核心代码实现如下:
set_data['examine_state'] = $('#examine_state').val()
set_data['rectification_content'] = rectification_content.value
const { data: res } = await axios.post(BaseUrl + '/api/reporting_information/set?reporting_information_id=' + id, set_data)
管理员在operational_performance/table.jsp页面查看和评估运营人员的绩效数据,包括绩效排名、绩效奖励和绩效说明。管理员可录入和修改绩效数据,调用operational_performance/add或set接口。系统支持按统计年月导出绩效报表供管理决策参考。运营绩效管理界面如图5-51所示。
图5-51 运营绩效管理界面
核心代码实现如下:
form_data2.performance_ranking = performance_ranking.value
form_data2.performance_bonus = performance_bonus.value
const { data: res } = await axios.post(BaseUrl + '/api/operational_performance/add?', form_data2, {
headers: { 'x-auth-token': token }
})
管理员在order_information/table.jsp和order_allocation/table.jsp页面全面管理订单数据和分配情况。管理员可创建、修改和删除订单信息,查看订单配送进度,处理异常订单。订单状态变更时系统自动记录操作日志并通知相关人员。订单管理界面如图5-52所示。
图5-52 订单管理界面
核心代码实现如下:
form_data2.order_status = $("#order_status").val()
const { data: res } = await axios.post(BaseUrl + '/api/order_information/add?', form_data2, {
headers: { 'x-auth-token': token }
})
管理员在bundle_inventory/table.jsp和parcel_inventory/table.jsp页面全面管理包裹库存和盘点记录。管理员可批量导入包裹信息、设置库存预警阈值、查看盘点历史。系统支持按存放位置和入库时间进行多维度查询统计。包裹管理界面如图5-53所示。
图5-53 包裹管理界面
核心代码实现如下:
form_data2.bundle_inventory = Number(bundle_inventory.value)
const { data: res } = await axios.post(BaseUrl + '/api/bundle_inventory/add?', form_data2, {
headers: { 'x-auth-token': token }
})
管理员在vehicle_information/table.jsp和vehicle_maintenance/table.jsp页面管理车队信息和维护记录。管理员可添加车辆档案、记录年检信息、安排保养计划。系统跟踪车辆使用状态和维护历史,支持按车型和车牌号检索车辆信息。车辆管理界面如图5-54所示。
图5-54 车辆管理界面
核心代码实现如下:
form_data2.vehicle_load = vehicle_load.value
form_data2.annual_inspection_information = annual_inspection_information.value
const { data: res } = await axios.post(BaseUrl + '/api/vehicle_information/add?', form_data2)
管理员在financial_reconciliation/table.jsp和settlement_information/table.jsp页面管理企业财务对账和配送员结算。管理员审核财务对账单,确认账单金额和结算明细。系统自动计算运费收入和支出差额,生成财务报表。管理员可导出对账数据用于财务审计。财务管理界面如图5-55所示。
图5-55 财务管理界面
核心代码实现如下:
form_data2.freight_revenue = Number(freight_revenue.value)
form_data2.expense_amount = Number(expense_amount.value)
const { data: res } = await axios.post(BaseUrl + '/api/financial_reconciliation/add?', form_data2)
管理员在training_plan/table.jsp、training_registration/table.jsp和training_sign_in/table.jsp页面全面管理培训工作。管理员制定培训计划并发布,审核员工报名申请,记录培训签到情况和获得证书。系统统计培训完成率并生成培训评估报告。培训管理界面如图5-56所示。
图5-56 培训管理界面
核心代码实现如下:
form_data2.training_title = training_title.value
form_data2.training_points = Number(training_points.value)
const { data: res } = await axios.post(BaseUrl + '/api/training_plan/add?', form_data2)
订单分配功能在查询可配送用户时,同步获取配送用户的绩效评分并按降序排列。绩效评分在配送用户表中增加performance_score字段存储,每日凌晨由定时任务更新。运营用户在分配页面看到的配送用户列表已按评分排序,评分高者位于列表靠前位置。自动派单模式下,系统筛选出当前位置与订单起点距离在5公里以内且状态为可接单的配送用户,从中选取绩效评分最高的用户进行自动分配。订单分配记录中同时保存分配时的配送用户绩效评分快照,便于后续进行派单效果分析和策略优化。核心实现代码如下:
int performanceScore = (int)(completionRate * 0.4 + positiveRate * 0.3
(1 - complaintRate) * 0.2 + orderQuantityCoefficient * 0.1)
UPDATE delivery_user SET performance_score = ? WHERE delivery_user_id = ?
SELECT delivery_user_id, delivery_name FROM delivery_user
WHERE status = 1 ORDER BY performance_score DESC
第6章 系统测试
系统测试环境配置如下:服务端采用JDK 1.8作为Java运行环境,使用Apache Maven 3.6进行项目构建和依赖管理,Web容器选用Jetty 9.4,配置监听80端口。数据库采用MySQL 5.7,使用JDBC驱动进行连接。前端运行于Chrome 120版本浏览器,操作系统为Windows 10。测试工具包括Postman用于接口测试,JMeter用于性能测试,浏览器开发者工具用于前端调试。测试环境硬件配置为8核CPU、16GB内存、256GB固态硬盘。测试环境配置如表6-1所示。
表6-1 测试环境配置表
| 配置项 | 规格参数 |
| 操作系统 | Windows 10 专业版 |
| CPU | Intel Core i7-10750H 2.6GHz |
| 内存 | 16GB DDR4 |
| JDK版本 | 1.8.0_281 |
| MySQL版本 | 5.7.34 |
| 浏览器 | Chrome 120.0 |
| 测试工具 | Postman v10、JMeter 5.5 |
功能测试旨在验证系统各模块是否按照需求规格说明书的预期正常工作。测试采用黑盒测试方法,覆盖运营用户、配送用户和管理员三大角色下的所有功能模块。每个功能模块设计正常场景测试用例和异常场景测试用例,验证输入输出的正确性、数据持久化的完整性以及权限控制的准确性。测试过程中记录实际结果与预期结果的对比,对发现的问题进行缺陷跟踪和修复验证。
运营用户功能测试覆盖登录注册、订单分配、培训计划管理、异常上报、车辆调度、财务对账等核心业务模块。测试重点验证运营用户对各业务数据的增删改查操作权限,以及审核流程的正确性。登录功能测试验证账号密码校验和token生成机制,订单分配测试验证配送人员分配和优先级别设置的合理性。运营用户功能测试用例如表6-2所示。
表6-2 运营用户功能测试用例表
| 测试模块 | 测试用例描述 | 预期结果 | 实际结果 | 状态 |
| 登录注册 | 输入正确账号密码点击登录 | 跳转至主页并存储token | 与预期一致 | 通过 |
| 登录注册 | 输入错误密码点击登录 | 提示“密码错误” | 与预期一致 | 通过 |
| 订单分配 | 为订单选择配送用户并保存 | 订单分配成功,状态更新 | 与预期一致 | 通过 |
| 培训计划管理 | 新增培训计划填写完整信息 | 计划保存成功,列表显示 | 与预期一致 | 通过 |
| 智能订单分配 | 完成率高的配送用户优先出现在分配列表中 | 绩效评分高的用户排在列表前端 | 与预期一致 | 通过 |
| 自动派单模式 | 订单到达时按绩效评分自动分配配送员 | 评分最高的可接单配送员被选中 | 与预期一致 | 通过 |
| 异常上报 | 填写异常信息并提交 | 异常记录保存,通知运营 | 与预期一致 | 通过 |
| 包裹库存 | 新增包裹库存信息 | 库存记录保存成功 | 与预期一致 | 通过 |
| 车辆调度 | 创建调度申请并提交审核 | 调度记录保存,待审核 | 与预期一致 | 通过 |
| 车辆维护 | 记录车辆维护信息 | 维护记录保存成功 | 与预期一致 | 通过 |
| 预警信息管理 | 新增预警规则并保存 | 预警配置保存成功 | 与预期一致 | 通过 |
| 设备上报 | 上报设备异常信息 | 上报记录保存,待审核 | 与预期一致 | 通过 |
| 财务对账 | 录入对账数据并保存 | 对账记录保存,金额自动计算 | 与预期一致 | 通过 |
| 配送数据查询 | 按月份筛选配送数据 | 正确显示筛选结果 | 与预期一致 | 通过 |
| 物资申请审核 | 审核通过物资申请 | 申请状态变为已通过 | 与预期一致 | 通过 |
| 加班信息管理 | 审核加班申请 | 申请状态更新,通知申请人 | 与预期一致 | 通过 |
| 请假信息管理 | 审核请假申请 | 申请状态更新,假期扣减 | 与预期一致 | 通过 |
配送用户功能测试覆盖订单查询、在线考试、智能客服、订单配送管理、包裹盘点、结算信息管理等模块。测试重点验证配送用户个人数据的隔离性,确保用户只能查看和操作与自己关联的业务数据。订单配送管理测试验证配送流程的状态流转和签收凭证上传功能,结算信息管理测试验证结算申请的提交和金额校验逻辑。配送用户功能测试用例如表6-3所示。
表6-3 配送用户功能测试用例表
| 测试模块 | 测试用例描述 | 预期结果 | 实际结果 | 状态 |
| 订单分配查询 | 登录查看分配给自己的订单 | 只显示本人配送订单 | 与预期一致 | 通过 |
| 紧急联系人添加 | 填写紧急联系人信息并保存 | 联系人信息更新成功 | 与预期一致 | 通过 |
| 在线考试 | 完成答题并提交试卷 | 客观题自动评分,记录保存 | 与预期一致 | 通过 |
| 智能客服咨询 | 发送咨询消息给客服 | AI自动回复或人工回复 | 与预期一致 | 通过 |
| 订单配送管理 | 更新配送状态并上传签收凭证 | 状态更新,凭证图片保存 | 与预期一致 | 通过 |
| 异常上报 | 上报配送异常信息 | 异常记录保存,通知运营 | 与预期一致 | 通过 |
| 包裹库存查询 | 查询仓库包裹库存 | 显示有权限查看的包裹 | 与预期一致 | 通过 |
| 包裹盘点管理 | 录入盘点数据 | 盘点记录保存,库存更新 | 与预期一致 | 通过 |
| 车辆调度审核 | 确认或拒绝车辆调度申请 | 调度状态更新 | 与预期一致 | 通过 |
| 预警信息查询 | 查看个人预警信息 | 显示与本人相关的预警 | 与预期一致 | 通过 |
| 装备信息管理 | 申请领用装备 | 申请记录保存 | 与预期一致 | 通过 |
| 账单核对 | 对账单发起申诉申请 | 申诉记录保存,待审核 | 与预期一致 | 通过 |
| 结算信息管理 | 提交结算申请 | 结算申请保存,金额校验 | 与预期一致 | 通过 |
| 配送数据查询 | 查询个人绩效数据 | 显示本人配送统计数据 | 与预期一致 | 通过 |
| 物资申请管理 | 提交物资申请 | 申请记录保存,待审核 | 与预期一致 | 通过 |
| 培训报名 | 报名参加培训计划 | 报名记录保存,待审核 | 与预期一致 | 通过 |
管理员功能测试覆盖信息管理、论坛管理、权限管理、订单管理、车辆管理、财务管理等模块。测试重点验证管理员对全系统数据的查看和操作权限,以及数据统计报表的准确性。权限管理测试验证角色权限配置的生效情况,确保权限变更后前端菜单和后端接口访问控制同时生效。管理员功能测试用例如表6-4所示。
表6-4 管理员功能测试用例表
| 测试模块 | 测试用例描述 | 预期结果 | 实际结果 | 状态 |
| 信息管理 | 发布系统公告 | 公告保存并显示在首页 | 与预期一致 | 通过 |
| 论坛管理 | 置顶或删除论坛帖子 | 帖子状态更新 | 与预期一致 | 通过 |
| 权限管理 | 修改用户组权限配置 | 权限变更立即生效 | 与预期一致 | 通过 |
| 路线信息管理 | 新增配送路线 | 路线信息保存成功 | 与预期一致 | 通过 |
| 预警信息管理 | 配置全局预警规则 | 预警规则保存生效 | 与预期一致 | 通过 |
| 装备信息管理 | 批量导入装备数据 | 装备数据导入成功 | 与预期一致 | 通过 |
| 配送数据管理 | 导出配送绩效报表 | 报表导出为Excel文件 | 与预期一致 | 通过 |
| 物资申请管理 | 批量审核物资申请 | 选中申请状态批量更新 | 与预期一致 | 通过 |
| 加班信息管理 | 统计月度加班数据 | 统计数据正确显示 | 与预期一致 | 通过 |
| 请假信息管理 | 导出请假记录报表 | 报表导出成功 | 与预期一致 | 通过 |
| 工作交接管理 | 转移员工工作任务 | 任务处理人批量更新 | 与预期一致 | 通过 |
| 反馈评价管理 | 回复用户评价反馈 | 回复内容保存并通知用户 | 与预期一致 | 通过 |
| 举报信息管理 | 审核举报并填写处理意见 | 举报状态更新 | 与预期一致 | 通过 |
| 运营绩效管理 | 录入运营人员绩效 | 绩效记录保存 | 与预期一致 | 通过 |
| 订单管理 | 查看和修改任意订单 | 订单信息可正常修改 | 与预期一致 | 通过 |
| 车辆管理 | 查看所有车辆档案 | 显示全部车辆信息 | 与预期一致 | 通过 |
| 财务管理 | 导出财务报表 | 报表数据完整导出 | 与预期一致 | 通过 |
| 培训管理 | 查看培训完成率统计 | 统计数据正确显示 | 与预期一致 | 通过 |
性能测试使用JMeter工具模拟多用户并发访问场景,测试系统的响应时间和吞吐量。测试场景包括用户登录并发测试、订单查询并发测试和数据报表生成测试。测试设置线程数为50、100、200,每个线程循环执行5次。测试指标包括平均响应时间、95百分位响应时间、吞吐量和错误率。性能测试结果如表6-5所示。
表6-5 性能测试结果表
| 测试场景 | 并发线程数 | 平均响应时间(ms) | 95%响应时间(ms) | 吞吐量(req/s) | 错误率 |
| 用户登录 | 50 | 156 | 245 | 312 | 0% |
| 用户登录 | 100 | 289 | 412 | 335 | 0% |
| 用户登录 | 200 | 523 | 789 | 368 | 0.5% |
| 订单查询 | 50 | 98 | 167 | 489 | 0% |
| 订单查询 | 100 | 178 | 256 | 532 | 0% |
| 订单查询 | 200 | 356 | 523 | 556 | 0.2% |
| 报表生成 | 50 | 342 | 523 | 142 | 0% |
| 报表生成 | 100 | 589 | 845 | 165 | 0% |
| 报表生成 | 200 | 1023 | 1567 | 178 | 1.2% |
经过全面的功能测试和性能测试,系统各项功能均达到预期设计目标。功能测试共设计49个测试用例,全部通过,通过率100%。登录认证、权限控制、数据隔离等安全机制运行正常,各角色只能访问授权模块。订单分配、异常上报、结算申请等核心业务流程完整闭环,数据一致性得到保证。性能测试结果显示,在100并发用户场景下,用户登录平均响应时间为289ms,订单查询平均响应时间为178ms,系统吞吐量稳定在300req/s以上,满足物流配送业务对系统响应速度的要求。在200并发高负载场景下,系统出现少量请求超时,建议后续通过增加服务器节点和优化数据库查询进一步提升系统并发处理能力。
第7章 总结
本文针对物流配送行业信息化程度低、信息孤岛严重、配送效率难以量化评估等实际问题,设计并实现了一套基于B/S架构的物流配送信息管理系统。系统采用Java Servlet作为后端核心框架,结合MySQL数据库进行数据存储与管理,前端使用JSP、LayUI及ECharts技术构建用户交互界面与数据可视化大屏。系统通过整合运营用户、配送用户及管理员三大角色,覆盖了订单分配、配送追踪、车辆调度、财务管理、培训考试等物流配送全流程业务场景,有效解决了传统物流管理中信息流转不畅、数据统计困难、绩效考核缺乏依据等痛点。经过系统测试验证,系统各功能模块运行稳定,完成了预期设计目标。
在系统实现过程中,首先通过需求分析明确了各角色的功能边界与权限控制要求,完成了数据库的概念模型与逻辑模型设计,共构建55张业务数据表。系统基于MVC模式进行分层架构设计,前端通过Axios发送异步请求,后端采用BaseServlet统一处理请求分发,利用BaseService封装通用CRUD操作及动态SQL拼接,实现了代码的高复用性与可维护性。系统在订单分配模块实现了基于优先级的配送员分配机制,在配送数据模块实现了配送员绩效的多维度统计与ECharts图表可视化展示,在考试培训模块实现了在线答题与自动评分功能。三大角色协同工作,运营用户负责订单分配与业务审核,配送用户执行配送任务并上报异常,管理员统筹系统配置与数据管理,形成了完整的物流配送管理闭环。
目前系统仍存在一些不足之处。在线考试模块仅支持客观题的自动评分,主观题仍需人工阅卷;智能客服功能仅集成了基础的自然语言处理接口,对话上下文理解能力有限;财务管理模块未对接真实第三方支付网关,结算流程为模拟状态;配送路线规划基于静态地图API,未结合实时路况数据进行动态优化;系统未引入大数据分析算法,对配送效率、用户行为等数据的挖掘深度不足;订单分配模块虽实现了基于绩效评分的优先派单策略,但评分指标权重设定较为简单,未引入机器学习算法进行动态调优,对实时路况、配送员当前位置等因素的考虑不足,自动派单的时空匹配精度有待提升。
针对上述不足,未来可从以下几个方面进行改进。一是集成高德或百度地图的实时路况接口,实现基于实时交通信息的动态路径规划与配送时长预测。二是引入机器学习算法对历史配送数据进行分析,构建配送员画像和订单热度预测模型,提升订单分配的科学性。三是接入支付宝或微信支付SDK,实现真实的在线结算与对账功能。四是优化智能客服模块,引入大语言模型提升问答准确率和自然语言理解能力。该系统具有良好的扩展性和应用前景,可推广至同城配送、电商物流等更多业务场景中发挥实际价值。
参考文献
- 陈素婷. 融合边缘计算的实时物流信息管理系统设计与实现[J]. 信息技术与信息化, 2026, (2): 59-62.
- 申文娟. 种业产品物流配送体系的构建与管理[J]. 分子植物育种, 2025, 23(9): 3151-3156.
- 陈彦君. X航空公司物流供应链信息化发展规划研究[D]. 咸阳: 西北农林科技大学, 2024: 45-48.
- 邓波. 云计算技术在物流全流程信息管理中的应用研究[J]. 电子元器件与信息技术, 2023, 7(5): 115-118.
- 朱静. D物流公司物流配送管理优化研究[D]. 镇江: 江苏大学, 2023: 67-70.
- 邵贵平. 电子商务物流管理[M]. 北京: 人民邮电出版社, 2022: 189-212.
- 魏凯明. 基于LBS的物流配送管理系统的设计与实现[J]. 电子技术与软件工程, 2022, 12(17): 186-189.
- Kam B, Ahsan K, Deng H, et al. Digital platforms in supply chain and logistics management: A systematic literature review[J]. Transportation Research Part E, 2026, 209: 104737-104740.
- Reuben W, Makenya B F, Sangeda Z R, et al. Geospatial analysis of regional variations in antibiotic consumption in Tanzania from 2020 to 2024 using the electronic logistics management information system[J]. Antimicrobial Stewardship & Healthcare Epidemiology, 2026, 6(1): e48-e52.
- Sun C, Shan L, Meng N, et al. Development of Intelligent Storage and Logistics Management System for Thermal Power Plant[J]. Journal of Electronic Research and Application, 2025, 9(6): 194-199.
- Jakira A, Mukanyangenzi F M, Karengera S, et al. Evaluating the contribution of a new electronic logistics management information system on the availability of HIV, TB and Malaria commodities in public hospitals in Uganda[J]. BMC Digital Health, 2025, 3(1): 47-50.
- Ming Y T, Yin K C, Ting W K, et al. IoT-Based Information System on Cold-Chain Logistics Service Quality (ICCLSQ) Management in Logistics 4.0[J]. Information Systems Frontiers, 2023, 26(2): 689-708.
- 王博,陈晓亮. 大数据技术优化企业内部控制审计问题研究[J/OL].中国企业经营管理知识仓库,1-7[2026-05-16].https://doi.org/10.27006/j.cnki.qyjy.20260513.010.
- 肖川.Jakarta Servlet开发教程[M].中国铁道出版社:202310:253.
- 刘丰睿,廖凡勋,赵刚,等. 基于SSM框架的实习学员个性化心理服务平台的开发与应用研究[J].中国高等医学教育,2026,(02):39-41.
- 曹慧敏,彭月,何永青,等. 基于ECharts技术的四川地区实况气象数据统计分析可视化[J].科技与创新,2026,(07):169-171.
致谢
时光荏苒,大学时光即将画上句号。回首这段毕业设计创作历程,从最初的选题迷茫到系统框架的逐步清晰,再到如今论文的最终定稿,每一步都凝聚着师长与亲友的关怀与支持。在此,我谨向所有帮助过我的人致以最诚挚的谢意。
衷心感谢我的校内指导教师。从选题方向的确定到开题报告的撰写,从系统功能模块的设计到数据库结构的优化,再到论文的反复修改与最终定稿,老师始终以严谨的治学态度和耐心的指导方式陪伴我走过每一个环节。老师不仅在学术上为我答疑解惑,更在研究方法与思维方式上给予了我深刻的启发。同时,感谢企业指导老师在技术实践方面的帮助,使我能够将理论知识与工程实践更好地结合,让系统设计更加贴近实际需求。
本次毕业设计的创作过程让我受益匪浅。从最初面对技术选型时的迷茫,到攻克前后端联调、数据可视化、权限控制等技术难题时的豁然开朗,每一次突破都让我对专业知识有了更深的理解。大学四年,我系统学习了软件工程、数据库原理、Web开发等核心课程,构建了较为完整的知识体系。这段经历不仅提升了我的实践能力,更培养了我独立分析问题和解决问题的信心。
感谢学院各位领导、辅导员及任课老师多年来的辛勤付出与谆谆教诲,你们的每一堂课都为我的成长奠定了坚实基础。感谢同窗好友及实验室伙伴们在学习和生活中的互助与陪伴,那些一起讨论问题、调试代码的日子将是我最珍贵的回忆。
最后,我要深深感谢我的父母和家人。你们始终是我最坚强的后盾,用无私的关爱与默默的支持托举我走到今天。未来,我将带着这份感恩之心,脚踏实地,努力回馈社会,不负青春与期望。
点赞+收藏+关注 → 私信领取本源代码、数据库
更多推荐
所有评论(0)