java web 物流管理系统设计与实现
本文介绍了一个基于B/S架构的物流管理系统设计与实现。系统采用Java(SpringBoot/SSM)、Vue等技术开发,包含管理员和普通用户两种权限。主要功能模块包括登录验证、运单管理、机构管理、管理员管理等,并详细设计了数据库表结构(如管理员表、机构表、运单表等)。系统实现了物流全流程管理功能,包括入库、入站、派送等环节。文章提供了完整的系统架构设计、功能流程图和数据库ER图,展示了系统各模块
博主介绍:专注于Java(springboot ssm 等开发框架) vue .net php phython node.js uniapp 微信小程序 等诸多技术领域和毕业项目实战、企业信息化系统建设,从业十五余年开发设计教学工作
☆☆☆ 精彩专栏推荐订阅☆☆☆☆☆不然下次找不到哟
我的博客空间发布了2000+毕设题目 方便大家学习使用
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人
文末下方有源码获取地址

4.1 系统总体模块图
物流管理系统主要分为2个权限:管理员权限、普通权限。不同的身份登录系统会有不同的权限,进行不同的操作,系统主要设计了管理员信息管理与查看,机构信息管理与查看,用户信息管理与查看,运单信息管理与查看,入库信息管理与查看,入站信息管理与查看,派送信息管理与查看等,具体功能模块图如4.1所示:

图4.1 系统总体模块图
4.2 系统体系结构
B/S结构(Browser/Server,浏览器/服务器模式),是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。
其网络拓扑结构图如图,

图B/S架构工作流系统网络拓扑图
物流管理系统的开发模式为 B/S 架构设计,从物理上分表现层(终端)、中间层(接入层和应用层)和数据层。相应的服务器为学院已经具备的HP及IBM 服务器,系统使用网络为学院的校园网络。物流管理系统的物理网络架构图如图所示。

图 物流管理系统的物理网络架构图
当用户需要登录的时候,需要有响应的页面来实现这一功能。登录界面是用来支持用户进行登录功能操作的界面,当在界面中输入用的用户名和密码后,就可以通过身份验证进入该系统。 登录界面需要让用户输入用户名、密码。如果是错误登录信息造成的还要显示错误信息。否则,当信息输入和权限选择正确时,将分别将用户导入各自对应的操作界面首页。
此系统用户分为注册用户和管理员两种。每种用户具有不同的权限,能完成不同的操作。管理员用户具有系统的最高管理权限。但是需要管理员进行统一管理。用户登录和身份验证功能模块的设计流程如图所示:

登录流程图
用户登录信息验证界面是非常重要的一部分,它接收登录表单提交的信息,并在用户信息表里检验是否存在对应的用户,和判断用户的类型以便获得相应的权限。
运单管理:对运单信息进行添加、删除、修改和查看,如图所示:

机构管理:对机构信息进行添加、删除、修改和查看,如图所示:

管理员管理:对管理员信息进行添加、删除、修改和查看,如图所示:

4.4.1 概念模型设计
(2)系统中实体E-R图
根据物流管理系统的详细设计系统的要求,规划出了以下一些实体。


在信息化物流管理系统中,实体有管理员实体,机构实体,用户实体,运单实体,入库实体,入站实体,派送实体等等,他们之间的关系如图4.11所示:

由各个关系模式和根据需求分析阶段数据字典的数据项描述,给出各数据表结构。
(1)管理员信息表如表4.1所示:
表4.1 管理员信息表
|
序号 |
字段名称 |
数据类型 |
长度 |
主键 |
描述 |
|
1 |
glyid |
INTEGER |
11 |
是 |
管理员编号 |
|
2 |
yhm |
VARCHAR |
40 |
否 |
用户名 |
|
3 |
mm |
VARCHAR |
40 |
否 |
密码 |
|
4 |
xm |
VARCHAR |
40 |
否 |
姓名 |
(2)机构信息表如表4.2所示:
表4.2 机构信息表
|
序号 |
字段名称 |
数据类型 |
长度 |
主键 |
描述 |
|
1 |
jgid |
INTEGER |
11 |
是 |
机构编号 |
|
2 |
jgmc |
VARCHAR |
40 |
否 |
机构名称 |
|
3 |
lx |
VARCHAR |
40 |
否 |
类型 |
(3)用户信息表如表4.3所示:
表4.3 用户信息表
|
序号 |
字段名称 |
数据类型 |
长度 |
主键 |
描述 |
|
1 |
yhid |
INTEGER |
11 |
是 |
用户编号 |
|
2 |
yhm |
VARCHAR |
40 |
否 |
用户名 |
|
3 |
mm |
VARCHAR |
40 |
否 |
密码 |
|
4 |
xm |
VARCHAR |
40 |
否 |
姓名 |
|
5 |
jg |
VARCHAR |
40 |
否 |
机构 |
|
6 |
lxdh |
VARCHAR |
40 |
否 |
联系电话 |
|
7 |
lxdz |
VARCHAR |
40 |
否 |
联系地址 |
(4)运单信息表如表4.4所示:
表4.4 运单信息表
|
序号 |
字段名称 |
数据类型 |
长度 |
主键 |
描述 |
|
1 |
ydid |
INTEGER |
11 |
是 |
运单编号 |
|
2 |
dh |
VARCHAR |
40 |
否 |
单号 |
|
3 |
fjr |
VARCHAR |
40 |
否 |
发件人 |
|
4 |
fjdh |
VARCHAR |
40 |
否 |
发件电话 |
|
5 |
fjdz |
VARCHAR |
40 |
否 |
发件地址 |
|
6 |
sjr |
VARCHAR |
40 |
否 |
收件人 |
|
7 |
sjrdh |
VARCHAR |
40 |
否 |
收件人电话 |
|
8 |
sjdz |
VARCHAR |
40 |
否 |
收件地址 |
|
9 |
bgnr |
VARCHAR |
40 |
否 |
包裹内容 |
|
10 |
zt |
VARCHAR |
40 |
否 |
状态 |
(5)入库信息表如表4.5所示:
表4.5 入库信息表
|
序号 |
字段名称 |
数据类型 |
长度 |
主键 |
描述 |
|
1 |
rkid |
INTEGER |
11 |
是 |
入库编号 |
|
2 |
yd |
VARCHAR |
40 |
否 |
运单 |
|
3 |
fjzx |
VARCHAR |
40 |
否 |
分拣中心 |
|
4 |
yh |
VARCHAR |
40 |
否 |
用户 |
|
5 |
czsj |
VARCHAR |
40 |
否 |
操作时间 |
|
6 |
ywzd |
VARCHAR |
40 |
否 |
运往站点 |
|
7 |
cksj |
VARCHAR |
40 |
否 |
出库时间 |
|
8 |
zt |
VARCHAR |
40 |
否 |
状态 |
(6)入站信息表如表4.6所示:
表4.6 入站信息表
|
序号 |
字段名称 |
数据类型 |
长度 |
主键 |
描述 |
|
1 |
rzid |
INTEGER |
11 |
是 |
入站编号 |
|
2 |
yd |
VARCHAR |
40 |
否 |
运单 |
|
3 |
zdmc |
VARCHAR |
40 |
否 |
站点名称 |
|
4 |
yh |
VARCHAR |
40 |
否 |
用户 |
|
5 |
czsj |
VARCHAR |
40 |
否 |
操作时间 |
|
6 |
pssj |
VARCHAR |
40 |
否 |
派送时间 |
|
7 |
zt |
VARCHAR |
40 |
否 |
状态 |
(7)派送信息表如表4.7所示:
表4.7 派送信息表
|
序号 |
字段名称 |
数据类型 |
长度 |
主键 |
描述 |
|
1 |
psid |
INTEGER |
11 |
是 |
派送编号 |
|
2 |
yd |
VARCHAR |
40 |
否 |
运单 |
|
3 |
yh |
VARCHAR |
40 |
否 |
用户 |
|
4 |
czsj |
VARCHAR |
40 |
否 |
操作时间 |
|
5 |
pszt |
VARCHAR |
40 |
否 |
派送状态 |
|
6 |
sm |
VARCHAR |
40 |
否 |
说明 |
1 管理员( 管理员编号,用户名,密码,姓名 )
2 机构( 机构编号,机构名称,类型 )
3 用户( 用户编号,用户名,密码,姓名,机构,联系电话,联系地址 )
4 运单( 运单编号,单号,发件人,发件电话,发件地址,收件人,收件人电话,收件地址,包裹内容,状态 )
5 入库( 入库编号,运单,分拣中心,用户,操作时间,运往站点,出库时间,状态 )
6 入站( 入站编号,运单,站点名称,用户,操作时间,派送时间,状态 )
7 派送( 派送编号,运单,用户,操作时间,派送状态,说明 )
本章主要介绍的内容是总体设计或者概要设计,介绍了信物流管理系统的设计,主要是在架构设计、总体模块设计和数据库设计的方面介绍的,为进一步的系统实现计做准备。
系统实现是指将系统设计阶段的结果在计算机上实现,将原来纸面上的·类似于设计图式的新系统方案转换成可执行的应用软件。实施阶段的主要活动:物理系统的建立,程序的编制,系统调试,系统切换,系统维护,系统评价。
界面也称作UI(User Interface),是人机交互重要部分,也是系统给用户使用的第一印象,是整个系统的重要组成部分。所谓的用户体验大部分就是指界面设计的体验。
5.1 登录模块界面
登录系统首页,出现用户名、密码的输入框,填写用户名和密码点击【提交】按钮,即可登录;也可以点击【重置】按钮,进行重新录入。具体的登录页面如图6.1所示:

登录界面图
5.2管理员管理界面
点击管理员管理菜单,显示添加管理员信息和管理员信息列表界面,点击添加管理员信息,右侧界面呈现出添加的管理员信息界面,包括管理员管理员编号,用户名,密码,姓名等信息,添加管理员信息完毕点击“提交”按钮,则添加管理员信息成功。点击“管理员列表”,右侧界面呈现出需要管理员的具体信息,包括管理员编号,用户名,密码,姓名等信息,可对逐条管理员信息进行查看、删除和修改

点击机构管理菜单,显示添加机构信息和机构信息列表界面,点击添加机构信息,右侧界面呈现出添加的机构信息界面,包括机构机构编号,机构名称,类型等信息,添加机构信息完毕点击“提交”按钮,则添加机构信息成功。点击“机构列表”,右侧界面呈现出需要机构的具体信息,包括机构编号,机构名称,类型等信息,可对逐条机构信息进行查看、删除和修改

点击运单管理菜单,显示添加运单信息和运单信息列表界面,点击添加运单信息,右侧界面呈现出添加的运单信息界面,包括运单运单编号,单号,发件人,发件电话,发件地址,收件人,收件人电话,收件地址,包裹内容,状态等信息,添加运单信息完毕点击“提交”按钮,则添加运单信息成功。点击“运单列表”,右侧界面呈现出需要运单的具体信息,包括运单编号,单号,发件人,发件电话,发件地址,收件人,收件人电话,收件地址,包裹内容,状态等信息,可对逐条运单信息进行查看、删除和修改

<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<%@ page import="com.util.*"%>
<%
request.setCharacterEncoding("gb2312");//设置页面字符集
DBO db=new DBO();//初始数据链接
/*
运单信息添加页面
*/
String sql="";
ResultSet rs=null;
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<LINK href="../images/style.css" type=text/css rel=stylesheet>
<link rel="stylesheet" type="text/css" media="screen" href="../css/tinyTips.css" />
<script language="javascript">
function checkDo(){
if(form.dh.value==""){
alert("单号不能为空");
return false;
form.dh.focus();
}
if(form.fjr.value==""){
alert("发件人不能为空");
return false;
form.fjr.focus();
}
if(form.fjdh.value==""){
alert("发件电话不能为空");
return false;
form.fjdh.focus();
}
if(form.fjdz.value==""){
alert("发件地址不能为空");
return false;
form.fjdz.focus();
}
if(form.sjr.value==""){
alert("收件人不能为空");
return false;
form.sjr.focus();
}
if(form.sjrdh.value==""){
alert("收件人电话不能为空");
return false;
form.sjrdh.focus();
}
if(form.sjdz.value==""){
alert("收件地址不能为空");
return false;
form.sjdz.focus();
}
if(form.bgnr.value==""){
alert("包裹内容不能为空");
return false;
form.bgnr.focus();
}
if(form.zt.value==""){
alert("状态不能为空");
return false;
form.zt.focus();
}
form.action="yundando.jsp";
form.submit();
}
</script>
</head>
<body>
<form name="form" action="" method="post" >
<div class=formzone>
<DIV class=searchzone>
<TABLE height=30 cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD height=30>运单添加</TD>
<TD align=right colSpan=2> </TD>
</TR></TBODY></TABLE></DIV>
<div class=tablezone>
<div class=noticediv id=notice></div>
<%
java.util.Date now=new java.util.Date();
java.text.SimpleDateFormat formatter=new java.text.SimpleDateFormat("yyyyMMddHHmmss");
// System.out.print(formatter.format(now));
String ddid=""+formatter.format(now);
%>
<TABLE cellSpacing=0 cellPadding=2 width="100%" align=center border=0>
<TBODY>
<tr >
<td align=middle width=100 height=30>单号</td>
<td height=30><input type="text" class="input" style="FONT-SIZE: 12px; WIDTH: 300px" name="dh" value="<%=ddid%>" placeholder="请输入单号" required></td>
</tr>
<tr >
<td align=middle width=100 height=30>发件人</td>
<td height=30><input type="text" class="input" style="FONT-SIZE: 12px; WIDTH: 300px" name="fjr" value="" placeholder="请输入发件人" required></td>
</tr>
<tr >
<td align=middle width=100 height=30>发件电话</td>
<td height=30><input type="text" class="input" style="FONT-SIZE: 12px; WIDTH: 300px" name="fjdh" value="" placeholder="请输入发件电话" required></td>
</tr>
<tr >
<td align=middle width=100 height=30>发件地址</td>
<td height=30><input type="text" class="input" style="FONT-SIZE: 12px; WIDTH: 300px" name="fjdz" value="" placeholder="请输入发件地址" required></td>
</tr>
<tr >
<td align=middle width=100 height=30>收件人</td>
<td height=30><input type="text" class="input" style="FONT-SIZE: 12px; WIDTH: 300px" name="sjr" value="" placeholder="请输入收件人" required></td>
</tr>
<tr >
<td align=middle width=100 height=30>收件人电话</td>
<td height=30><input type="text" class="input" style="FONT-SIZE: 12px; WIDTH: 300px" name="sjrdh" value="" placeholder="请输入收件人电话" required></td>
</tr>
<tr >
<td align=middle width=100 height=30>收件地址</td>
<td height=30><input type="text" class="input" style="FONT-SIZE: 12px; WIDTH: 300px" name="sjdz" value="" placeholder="请输入收件地址" required></td>
</tr>
<tr >
<td align=middle width=100 height=30>包裹内容</td>
<td height=30><input type="text" class="input" style="FONT-SIZE: 12px; WIDTH: 300px" name="bgnr" value="" placeholder="请输入包裹内容" required></td>
</tr>
<tr >
<td align=middle width=100 height=30>状态</td>
<td height=30><input type="text" class="input" style="FONT-SIZE: 12px; WIDTH: 300px" name="zt" value="收寄" readonly="" placeholder="请输入状态" required></td>
</tr>
</TBODY></TABLE>
</div>
<DIV class=adminsubmit> <input type="button" value="保存" name="B1" class="button" style="width:60px" onclick="checkDo()" />
<input type="reset" value="取消" style="width:60px" name="chanel" class="button" />
</div>
</div>
</form>
</body>
</html>
点击入库管理菜单,显示添加入库信息和入库信息列表界面,点击添加入库信息,右侧界面呈现出添加的入库信息界面,包括入库入库编号,运单,分拣中心,用户,操作时间,运往站点,出库时间,状态等信息,添加入库信息完毕点击“提交”按钮,则添加入库信息成功。点击“入库列表”,右侧界面呈现出需要入库的具体信息,包括入库编号,运单,分拣中心,用户,操作时间,运往站点,出库时间,状态等信息,可对逐条入库信息进行查看、删除和修改

大家点赞、收藏、关注、评论啦 其他的定制服务 商务合作 下方联系卡片↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 或者私信作者
更多推荐

所有评论(0)