资源描述
本科毕业答辩论文格式软件工程样例
中文题目:物流管理系统
外文题目:LOGISTICS MANAGEMENT SYSTEM
毕业设计(论文)共 ××页(其中:外文文献及译文××页)图纸共 0张
完成日期 20××年×月 答辩日期20××年×月
摘要
本物流管理系统应用于物流公司管理物流信息,主要使用了JSP、Struts、JDBC技术。控制层由Action控制流程,并调用业务层的相应方法进行不同的业务处理管理员端主要包括货物信息管理、物流信息管理、车辆信息管理、企业信息管理、客户订单管理、客户信息管理以及个人管理,管理员能对客户和货物、物流、车辆等进行增、删、查、改的操作,还能修改自己的基本信息并且在订单签订时操作员能自动提取目前登陆的用户名。客户端能查看货物车辆物流公司概况等基本信息,以及根据物流编号对物流信息进行查询,修改个人信息等操作。能更高效的提高物流公司的管理。
关键词:物流;JSP; Struts;管理
ABSTRACT
The logistics management system used in logistics company management logistics information, The main use the JSP, Struts, JDBC technology. the administrator mainly includes cargo information management, logistics information management, vehicle information management, enterprise information management, management of customer orders, customer information management, and personal management, the administrator can to client and goods, logistics, vehicles and so on them, delete, check, change of operation, also can modify your basic information and signed in order when the operator can automatically extracted at present on the user name. The client can check goods vehicle logistics company profile and other basic information, and according to the logistics Numbers in logistics information query, modify the personal information and other operational. Can more efficient logistics to improve the management of the company.
Keywords: logistics, JSP, Struts, management,
目录
引言
1项目概述 1
2可行性分析 1
3系统需求分析 1
2
2
2
2
2
4系统概要设计 2
E-R图 3
物流信息 3
货物信息 4
车辆信息 4
企业信息 5
5
5系统详细设计 9
9
: 10
: 10
货物信息管理: 12
物流信息管理: 16
18
20
21
22
6系统测试 23
7 结论 23
致谢 24
参考文献 24
引言
在当今高速发展的信息社会,现代物流行业突飞猛进发展,伴随着我国国民经济连续多年的高速增长,为现代物流发展创造了良好的条件。目前,我国各类物流企业有14万家左右,展望整个21世纪,可以说现代物流业还将有更大的发展。
在发达国家,物流理论促使物流实践快速发展。经济全球化及现代物流业发展的系统化、信息化、仓储运输的现代化和综合化等趋势,对我国物流业的发展提出了全方位的挑战。传统物流行业的操作模式已经不适应现代的物流行业,如何缩短物流过程,降低产品库存,加速对市场的反应,这是所有企业所面对的问题。本系统就是针对这些问题根据中小型企业的实际需求而开发的一套物流管理系统。系统的开发能够帮助企业实现对物流全过程的优化调度和动态控制,高效整合企业的物流业务,以全面提高经济效益和效率为目的,提供高效、实用、技术的物流管理系统和运营手段。
物流管理系统是集现代运输、仓储配送、搬运、调度、跟踪为一体的网络系统,系统的开发实现了商品从原料供应商、制造商、分销商到零售商再到消费者的各个环节的有机结合。
1项目背景和意义
在当今高速发展的信息社会,现代物流行业突飞猛进发展,伴随着我国国民经济连续多年的高速增长,为现代物流发展创造了良好的条件。目前,我国各类物流企业有14万家左右,展望整个21世纪,可以说现代物流业还将有更大的发展。
本系统就是针对这些问题根据中小型企业的实际需求而开发的一套物流管理系统。系统的开发能够帮助企业实现对物流全过程的优化调度和动态控制,高效整合企业的物流业务,以全面提高经济效益和效率为目的,提供高效、实用、技术的物流管理系统和运营手段。
物流管理系统从物流行业的实际需求出发,参照先进的物流理念和多家领先的物流公司实际的运营流程开发而成,系统从完善的基础信息设置到货物的托运管理、信息查询、到最后订单的生成,清晰的业务流程,使操作人员能够按照流程清晰的进行实际的操作,保证物流运作有序而高效的进行。
本文档旨在陈述本人在完成该招商管理系统中所遵循项目开发流程,系统、详细地介绍了物流管理系统的各项工作,从需求分析、总体设计、详细设计三个层面展开详述了该系统的开发过程,简洁、直观,具有很强的可读性、实用性和可操作性,是物流管理系统使用和维护的必备的工作手册。
2可行性分析
系统运行于Apache Tomcat + Mysql平台。主要使用了JSP、Struts、JDBC技术。控制层由Action控制流程,并调用业务层的相应方法进行不同的业务处理,可以对数据库中的表进行增、删、改、查等基本操作。表示层则由JSP页面通过struts标签显示。
实现逻辑:
DB
Dao类
Service类
Action类
页面
数据库连接
对用户身份进行判断,管理员进入到管理员操作界面,普通用户进入到普通用户操作界面。对用户名输入框及密码输入框做非空判断处理。
用于调用各个功能模块。
货物信息管理:能增加、修改、删除和编辑货物,也可以根据货物编号查找货物信息,添加时货物编号(主键)自动生成。
物流信息管理:能增加、修改、删除和编辑物流信息,也可以根据运单号查找物流信息
车辆信息管理:能增加、修改、删除和编辑车辆
企业信息管理:能增加、修改、删除和编辑企业信息
、客户信息管理
客户信息管理:能增加、修改、删除和编辑客户信息
客户订单管理:能够多订单进行签订、编辑、修改、删除操作。
、个人信息管理
个人信息管理:对自己的详细信息进行编辑(密码修改等)
4、系统概要设计
物流系统处理流程如图4-1所示
登陆
主页
基本信息
客户管理
快速查询
个人管理
首页
货物信息
物流信息
车辆信息
企业信息
会员信息
客户订单
货物状态查询
客户信息查询
个人管理
安全设置
总体流程图
物流信息E-R图如图4-2所示
货物类型
货物重量
货物数量
货物编号
货物名称
起始省份
起始城市
备注
物流信息
到达省份
收件人电话
到达城市
收件人
发件人
发件人
收件人地址
收件人电话
收件人电话
收件人电话
发货时间
发件人电话
发件人地址
图4-2 物流信息E-R图
货物信息E-R图如图4-3所示
货物信息
货物名称
货物编号
货物类型
货物数量
货物重量
货物价格
货物状态
货物产地
备注
图4-3 货物信息E-R图
车辆信息E-R图如图4-4所示
车辆信息
车辆编号
车辆类型
车辆名称
车辆载重量
备注
联系人
使用年限
联系电话
使用年限
车牌号
驾驶员驾龄
驾驶证号
图4-4 车辆信息E-R图
企业信息E-R图如图4-5所示
企业信息
企业编号
企业名称
企业类型
企业邮箱
联系电话
联系人
经营范围
企业地址
企业网址
图4-5 企业信息E-R图
、数据库表
本次设计主要要用到的数据库表分别如表4-1,4-2,4-3,4-4,4-5,4-6所示:
4-1 货物信息表
字 段
类 型
描 述
是否允许为空
是否为主键
code
Varchar(20)
货物编号
否
是
name
Varchar(20)
货物名称
否
否
price
Varchar(20)
货物价格
否
否
type
Varchar(20)
货物类型
否
否
count
Varchar(20)
货物重量
否
否
number
Varchar(20)
货物数量
否
否
state
Varchar(20)
货物状态
否
否
originaddr
Varchar(20)
货物产地
否
否
remark
Varchar(20)
货物简介
是
否
opuser_cd
Varchar(20)
添加人
否
否
4-2物流信息表
字 段
类 型
描 述
是否允许为空
是否为主键
billId
Varchar(20)
物流编号
否
是
code
Varchar(20)
货物编号
否
外键(货物表)
name
Varchar(20)
货物名称
否
外键(货物表)
gcount
Varchar(20)
货物重量
否
否
gnum
Varchar(20)
货物数量
否
否
company
Varchar(20)
货运公司
否
否
sprov
Varchar(20)
起始省份
否
否
scity
Varchar(20)
起始城市
否
否
eprov
Varchar(20)
到达省份
否
否
ecity
Varchar(20)
到达城市
否
否
addr
Varchar(30)
收件人地址
否
否
gname
Varchar(20)
收件人
否
否
tel
Varchar(20)
收件人电话
否
否
date
Varchar(20)
添加时间
否
否
sender
Varchar(20)
发件人
否
否
sendtel
Varchar(20)
发件人电话
否
否
sendaddr
Varchar(20)
发件人地址
否
否
4-3车辆信息表
字 段
类 型
描 述
是否允许为空
是否为主键
vehicleId
Varchar(20)
车辆编号
否
是
vehiclename
Varchar(20)
车辆名称
否
否
vehicletype
Varchar(20)
车辆类型
否
否
vehiclenum
Varchar(20)
车牌号
否
否
years
Varchar(20)
使用年限
否
否
dname
Varchar(20)
司机姓名
否
否
dage
Varchar(20)
司机驾龄
否
否
dtel
Varchar(20)
司机电话
否
否
remark
Varchar(20)
备注信息
是
否
licensenum
Varchar(20)
假证号码
否
否
4-4 企业信息表
字 段
类 型
描 述
是否允许为空
是否为主键
qyId
Varchar(20)
企业编号
否
是
qyname
Varchar(20)
企业名称
否
否
qytype
Varchar(20)
企业类型
否
否
qywz
Varchar(20)
企业网址
否
否
email
Varchar(20)
企业邮箱
否
否
tel
Varchar(20)
企业电话
否
否
addr
Varchar(20)
企业地址
否
否
name
Varchar(20)
联系人
否
否
remark
Varchar(20)
备注信息
是
否
scope
Varchar(20)
经营范围
否
否
4-5订单信息表
字 段
类 型
描 述
是否允许为空
是否为主键
orderId
Varchar(20)
订单编号
否
是
clientname
Varchar(20)
客户名称
否
否
visatime
Varchar(20)
签订日期
否
否
payment
Varchar(20)
付款方式
否
否
price
Float(10)
货物价格
否
否
name
Varchar(20)
货物名称
否
否
Code
Varchar(20)
货物编号
否
否
company
Varchar(20)
货运公司
否
否
gname
Varchar(20)
收件人姓名
是
否
addr
Varchar(20)
收件人地址
是
否
Tel
Varchar(20)
收件人电话
否
否
4-6会员信息表
No.
对象名
字段名
类型
长度
Null许可
主键
1
客户编号
empId
char
15
否
PK
2
客户密码
emppassword
char
20
否
3
客户姓名
name
varchar
30
否
4
性别
sex
char
2
否
5
年龄
age
char
4
否
6
职位
job
varchar
30
是
7
身份证号码
codeid
varchar
40
是
8
学历
studyeffort
varchar
40
是
9
现住址
empadress
varchar
50
是
10
联系电话
tel
varchar
50
是
11
邮箱
email
varchar
50
是
12
录入时间
imputtime
varchar
12
是
13
操作员
operator
varchar
20
是
5、系统详细设计
5-1类模块具体设置
模块
实现类(action)
数据存储类
(form)
事务处理类
(DAO)
处理类
(service)
实现页面
(jsp)
Cargo
CargoInfoAction
CargocAction
cargo
CargoDao
CargocDao
CargoInfoService
CargocService
CargoInfo.jsp
Cargoc.jsp
Company
CompanyAction
CompanyForm
CompanyDao
CompanyService
company.jsp
addcompany.jsp
detailcp.jsp
Logistic
LogisticAction
LogisticcAction
LogisticForm
LogisticDao
LogisticcDao
LogisticService
LogisticcService
logistic.jsp
opencode.jsp
logisticc.jsp
Vehicle
VehicleAction
VehicleForm
VehicleDao
VehicleService
addVehicle.jsp
Vehicle.jsp
Detailvehicle.jsp
Personal
LoginAction
LoginForm
LoginDao
LoginService
personInfo.jsp
safe.jsp
personc.jsp
OrderForm
orderformAction
OrderForm
orderFormDao
orderFormService
orderForm.jsp
openCargo.jsp
huiyuan
EmployeeAction
EmployeeForm
EmployeeDao
EmployeeService
OwnerInfo.jsp
Login
Loginc
LoginAction
LogincAction
LoginForm
LoginDao
LogincDao
LoginService
LogincService
main.jsp
vehicle. jsp
index.jsp
login.jsp
loginc.jsp
cargoInfo.jsp
company.jsp
logistic.jsp
Regusersign.jsp
、具体功能模块设计:
、登录模块:
登录模块用Javascript代码实现了用户名、密码非空判断。若用户名或者密码为空则提示:用户名为空或者密码为空。直到用户名和密码都输入,则调用Service里面的getUser ()方法判断用户名是否存在,密码是否错误。直到输入正确的用户名或者密码便进入主界面,截图如5-1所示:
5-1 主界面截图
登陆进去后能获取到用户名和当前时间。
重点代码:public ActionForward getInfo(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws Exception{
LoginForm tf=(LoginForm)form;
String userName = ("opUserName");
String password = ("userPassword");
(userName);
(password);
int x=(tf);
if(x==1){
("message","用户名不存在");
return ("login");
}
else if(x==3){
("message","密码错误");
return ("login");
}
//获得登录者的相关信息
LoginForm loginForm = (LoginForm)form;
String operatorId = (userName,password);
String operatorName = ();
HttpSession session = ();
("operatorName",operatorName);
("operatorId",operatorId);
return ("index");
}
}
货物信息管理:
图 5-2 初始界面
(1)初始界面默认显示货物的所有信息,上方信息录入框显示第一条货物信息,仅“添加”“返回”按钮可用。输入货物编号,可查找到相应信息。
图 5-2 货物信息1
(2)点击货物编号链接,“编辑”按钮可用,上方信息录入框显示链接货物信息。点击“编辑”按钮,录入框中输入框可用,此时可以修改货物信息,点击“取消”取消编辑操作,点击“保存”保存修改后的信息。
(3)点击“添加”可以增加货物信息,货物编号系统自动生成,在保存时可以自动判断输入信息的正误,提示引导用户填入有效数据。
(4)点击删除可删除货物信息。
物流信息管理:
图5-3 货物信息管理11
(1)页面初始化上半部分显示表中第一条详细记录,不可修改,只有“添加”和“返回”按钮可操作,下半部分列表中显示所有物流信息。点击右面的“删除”可永久注销员工信息,并注销相对应的登录编号。
(2)点击“添加”按钮进入添加界面,运单号自动获取,点击货物编号旁边按钮客从货物列表中获得货物编号和货物名称自动填取进去,发货时间选用隐式添加,鼠标点击自动出来日历,并且对各个输入框做了非空判断,点击保存即可添加成功。
图5-4 物流信息管理
(2)点击“编辑”、“取消”、“返回”、“保存”按钮可对数据库中信息进行相关操作。添加员工信息时,录入时间和操作员隐式添加,入职时间用日历组件选录。
(3)查询文本框可根运单号查询此运单信息,结果显示在下面的列表框。
(4)点击下半部分列表中的某个员运单号,在上半部分各数据项文本框中可显示对应单号的详细信息。
重点代码:
public ActionForward getList(ActionMapping mapping,ActionForm form,
HttpServletRequest request,HttpServletResponse response)throws Exception{
List list = ();
("list",list);//把查询结果list放入request容器中,以便页面取值
LogisticForm tf = new LogisticForm();
if(()!=0){//将第一条信息提取到表单
tf = (LogisticForm)(0);//将查询结果的第一条信息赋值给tf
}
("LogisticForm",tf);//将hf放入request容器中
return ("logistic");
}
public static void updateLogistic(LogisticForm tf) throws SQLException {
String sql = " update t_logistics set
billId='"+()+"'code='"+()+"',name='"+()+"',gname='"+()+"'gcount='"+()+"',company='"+()+"',sprov='"+()+"',scity='"+()+"',eprov='"+()+"' ,ecity='"+()+"' ,sender='"+()+"',addr='"+()+"',sendaddr='"+()+"',"tel='"+()+"',date='"+()+"',sendtel='"+()+"' where billId='"+()+"'";
(sql);}
、车辆信息管理模块
图5-5 车辆信息管理
主要实现对车辆信息的管理。从数据库中提取车辆信息显示在表中,对其中的每一个车辆信息项目,都有编辑和删除两个操作。
点击操作中的编辑,会自动跳转到编辑收车辆信息的页面,在此页面中填入相关信息,提交之后会对车辆信息列表中的该记录进行更新。点击编辑车辆信息详细页面中的返回则退回到车辆信息列表页面,即未对车辆信息进行修改。
图5-6 车辆信息详细
点击车辆信息管理中的删除,则删除数据库中的该条记录的所有相关信息。
点击车辆信息管理页面中的增加车辆,则会跳转到添加车辆信息页面,实现对车辆信息添加操作。提交之后显示添加成功,该记录已自动添加到列表中。点击添加车辆信息页面中的“返回”按钮则退回到车辆信息列表。
图5-7 增加车辆信息
点击车辆信息管理中的返回,则返回到一进入系统时的显示页面。
重点代码:
public ActionForward addCargo(ActionMapping mapping,ActionForm form,
HttpServletRequest request,HttpServletResponse response )throws Exception{
cargo tf = (cargo)form;
String code=("code");
if(("******"))
{code=();
(code);
}
(tf);
List list = ();
("list",list);
("CargoInfoForm",tf);
return ("cargoInfo");
}
public static void addCargo(cargo tf) throws SQLException, DataBaseException {
String sql = “insert into cargo (code,name,number,count,state,price,type, originaddr, remark)values('"+()+"','"+()+"','"+()+"','"+()+"','"+()+"','"+()+"','"+()+"','"+()+"','"+()+"')";
(sql); }
、企业信息管理模块
图5-8 企业信息管理
主要实现对企业信息的管理。从数据库中提取企业信息显示在表中,对其中的每一个企业信息项目,都有编辑和删除两个操作。
具体操作同车辆信息相同。
、订单信息管理模块
图5-9 客户订单管理
(1)初始界面默认显示客户订单的所有信息,上方信息录入框显示第一条订单信息,仅“添加”“返回”按钮可用。下方显示所有订单信息,当超过一定数量的订单,自动添加滚动条。
(2)点击订单信息中订单链接,“编辑”按钮可用,上方信息录入框显示链接楼宇信息。点击“编辑”按钮,录入框中输入框可用,此时可以修改订单信息,点击“取消”取消编辑操作,点击“保存”保存修改后的信息。
(3)点击“添加”可以增加订单信息,订单编号系统自动生成,点击货物编号旁边按钮可从货物表中选择货物编号、货物名称和货物价格自动填入,
表5-1 订单信息
在保存时可以自动监测是否输入特殊字符和非空处理,提示引导用户填入有效数据。
(4)点击订单删除可删除订单信息。
重点代码:
public ActionForward getList(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
// TODO Auto-generated method stub
List list=();
if(()!=0){
OrderForm tf=(OrderForm) (0);
("OrderForm",tf);
("xdx",());}
else
{("xdx","");}
("message","0");
("list",list);
return ("order");
}
public static List getCargo() throws SQLException {
// TODO Auto-generated method stub
String sql="select * from cargo";
List list=(sql);
return list;
}
、个人信息管理模块
5-10 个人信息
5-11 修改密码
主要实现对个人信息的管理,安全设置中可以修改个人信息和登录密码。
重点代码:
public ActionForward upsafe(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws Exception {
LoginForm tf=(LoginForm)form;
HttpSession session = ();
String userId=(String) ("userid");
String password = ("pwd1");
(password);
(userId);
(tf);
String message="修改密码成功!";
("message",message);
return ("safe");
}
6 系统代码
重点代码:
(1) Action类
public ActionForward cargoInfoSelect(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
// TODO Auto-generated method stub
String code=("code");
cargo tf=(cargo) (code);
//把tf放入request中 页面进行读取
List list = ();
("list",list);
("CargoInfoForm",tf);
("updateDis","updateDis");//取消编辑按钮不可操作的属性
return ("cargoInfo");
}
(2) Sevice类:
public static cargo getSelect(String code) throws SQLException, DataBaseException {
String sql = "select * from cargo where code='"+("'","''")+"'";
cargo tf= (sql);
//返回form
return tf;
}
public static void updateCargo(cargo tf) throws SQLException {
String sql = " update cargo set name='"+()+"',code='"+()+"',number='"+()+"',type='"+()+"',price='"+()+"',count='"+()+"',state='"+()+"',originaddr='"+()+"',remark='"+()+"' where code='"+()+"'";
(sql);}
public static void addCargo(cargo tf) throws SQLException, DataBaseException String sql = "insert into cargo(code,name,number,count,state,price,type, originaddr, remark)values('"+()+"','"+()+"','"+()+"','"+()+"',"'"+()+"','"+()+"','"+()+"','"+()+"','"+()+"')";
(sql);
}
//查找最大Id
public static String getId() throws SQLException, DataBaseException {
// TODO Auto-generated method stub
String sql="select max(code) from cargo";
String id=(sql);
if(id==null){
id="BH0001";
}else{
String test=(2,6);
test=((test)+1)+"";
for(int i=();i<4;i++){
test="0"+test;
}
id="BH"+test;
}
return id;
}
(3) Dao类:
public static List getList(String sql) throws DataBaseException, SQLException
{
List<cargo> list=new ArrayList<cargo>();
Connection con=();//进行sql预处理
PreparedStatement ps=(sql);//运行ps 结果集rs接受sql语句查询出的数据
ResultSet rs=();//进行rs取值操作? 存入form中并把form封装入list
while(())
{ca
展开阅读全文