物流系统开发.docx

上传人:b****6 文档编号:12382105 上传时间:2023-06-05 格式:DOCX 页数:53 大小:30.48KB
下载 相关 举报
物流系统开发.docx_第1页
第1页 / 共53页
物流系统开发.docx_第2页
第2页 / 共53页
物流系统开发.docx_第3页
第3页 / 共53页
物流系统开发.docx_第4页
第4页 / 共53页
物流系统开发.docx_第5页
第5页 / 共53页
物流系统开发.docx_第6页
第6页 / 共53页
物流系统开发.docx_第7页
第7页 / 共53页
物流系统开发.docx_第8页
第8页 / 共53页
物流系统开发.docx_第9页
第9页 / 共53页
物流系统开发.docx_第10页
第10页 / 共53页
物流系统开发.docx_第11页
第11页 / 共53页
物流系统开发.docx_第12页
第12页 / 共53页
物流系统开发.docx_第13页
第13页 / 共53页
物流系统开发.docx_第14页
第14页 / 共53页
物流系统开发.docx_第15页
第15页 / 共53页
物流系统开发.docx_第16页
第16页 / 共53页
物流系统开发.docx_第17页
第17页 / 共53页
物流系统开发.docx_第18页
第18页 / 共53页
物流系统开发.docx_第19页
第19页 / 共53页
物流系统开发.docx_第20页
第20页 / 共53页
亲,该文档总共53页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

物流系统开发.docx

《物流系统开发.docx》由会员分享,可在线阅读,更多相关《物流系统开发.docx(53页珍藏版)》请在冰点文库上搜索。

物流系统开发.docx

物流系统开发

作者:

尤帅

物流系统开发文档

1.概述

本报告对一个物流系统的分析、设计及编码实现进行了介绍。

该报告说明了物流系统的需求,软件设计以及编码实现。

本系统采用J2EE进行实现,采用MVC模式设计结构,采用Struts2+Hibernate框架+MSQL数据库系统。

2.系统分析与总体设计

2.1系统分析

2.1.1需求描述

物流系统是用于物流公司处理物流与配送的业务,这个系统主要具有以下功能:

1)仓库管理员揽货点节后用户的货物、称重、打包、填单、收费,用于系统管理员将信息输入计算机中,要求将送货单号扫描入数据库。

2)送货员到各个网点接送货物,将货物集中到物流仓库。

3)仓库管理员每天将集中的货物根据送达目的地不同而分拣成不同区域。

有送货员分别送到不同的地方或收货人手中。

4)各个阶段均由系统管理员通过扫描进入数据库。

5)客户可以根据送货单号查询到货物状态

6)财务部分根据送货单的信息处理收货以及各相关人的结算。

2.1.2用例分析

用例图是用来显示外部参与者与系统的交互吗,能够更直观的描述系统的功能。

从角色来看,物流系统主要分为5个角色,分别是:

系统管理员、客户、送货员、仓库管理员、签收人。

下图为物流系统的用例图。

2.2总体设计

2.2.1系统软件结构设计

2.2.2功能模块设计

子系统

模块名

子功能

描述

后台

订单管理模块

订单信息输入

管理员输入订单信息

订单查询

管理员查询订单信息

订单信息更新

管理员更新订单信息

送货员信息管理模块

送货员信息输入

管理员输入送货员信息

送货员信息更新

管理员更新送货员信息

送货员信息查询

管理员查询送货员信息

工资结算

管理员结算查询送货员的工资

送货管理模块

送货明细

管理员查询送货明细信息

订单签收

送货员送货,让客户签收

订单支付

客户付款

送货员工资结算

管理员结算送货员的工资

仓库管理模块

货物信息输入

管理员输入货物信息

货物分拣

管理员进行货物分拣处理

货物发送

管理员把货物让送货员发送

货物信息更新

管理员更新货物信息

2.2.3数据库设计

货物单

(t_send_foods)货物

编号

字段名

是否为空

长度

描述

1

id

not

int

主键

2

Consignor_name

not

Varchar(64)

发货员名字

3

Consignor_address

not

Varchar(64)

发货地址

4

Consignor_tel

not

Varchar(64)

发货人电话号码

5

Recess_name

not

Varchar(32)

收货人名字

6

Recess_tel

not

Varchar(32)

收货人电话号码

7

Recess_address

not

Varchar(32)

收货人地址

8

Charge_method

not

Varchar(64)

收费方法

9

cost

not

float

费用

10

Goods_weight

not

Varchar(32)

货物重量

11

Goods_volume

not

Varchar(32)

货物体积

12

Is_sign

not

Int(3)

是否签收

13

Is_cost

not

Int(3)

是否收费

14

acceptor

not

Varchar(3)

受理人

送货员

(t_delivery)送货员

编号

字段名

是否为空

长度

描述

1

id

not

int

主键

2

Worker_nub

not

Varchar(64)

职工号

3

Delivery_address

not

Varchar(64)

送货员家庭地址

4

Delivery_tel

not

Varchar(64)

送货员电话号码

5

Delivery_name

not

Varchar(32)

送货员名字

6

sex

not

Varchar(32)

性别

7

age

not

Varchar(32)

年龄

8

Id_car

not

Varchar(64)

身份证号

9

Delivery_area

not

float

送货范围

入库明细表

(t_warehousing_detail)入库明细表

编号

字段名

是否为空

长度

描述

1

id

not

int

主键

2

Warehousing_date

not

Varchar(64)

入库时间

3

Send_id

not

int

送货单号

4

Warehouse_manager

not

Varchar(64)

仓库管理员

5

Warehousing_area

not

Varchar(32)

入库存放区

分拣明细表

(t_manage_detail)入库明细表

编号

字段名

是否为空

长度

描述

1

id

not

int

主键

2

manage_date

not

Varchar(64)

分拣时间

3

Send_id

not

int

送货单号

4

Manage_name

not

Varchar(64)

分拣员

5

area

not

Varchar(32)

目的地区域

送货明细表

(t_detail)送货明细表

编号

字段名

是否为空

长度

描述

1

id

not

int

主键

2

Send_date

not

time

送货时间

3

Send_id

not

int

送货单号

4

Charge__method

not

Varchar(64)

收费方法

5

Consignor_name

not

Varchar(32)

发货员名字

6

Delivery_name

not

Varchar(32)

送货员名字

7

Real_cost

not

Varchar(32)

实收费用

8

Send_status

not

Varchar(64)

送货状态

9

Sign_name

Varchar(64)

签收人姓名

10

Is_sign

Varchar(64)

是否签收

费用结算表

(t_settlement)送货明细表

编号

字段名

是否为空

长度

描述

1

id

not

int

主键

2

settlement_date

not

time

结算时间

3

Send_id

not

int

送货职工号

4

Send_nub

not

Varchar(64)

送货数量

5

Lose_debits

not

Varchar(32)

损耗扣款

6

Real_money

not

Varchar(32)

实发总数

7

Total_commission

not

Varchar(32)

提成总数

8

salary

not

Varchar(64)

底薪

物流系统数据库表及其关系

2.2.4系统结构设计

系统采用分层结构,整体上分为4层:

视图层、控制层、业务逻辑层和数据访问层

项目名称为logisticsSys。

数据访问层与业务逻辑层采用SH框架的Struts2+Hibernate技术实现。

视图层和控制层采用JSP技术实现。

包名

说明

org.logistic.action

控制类包

org.logistic.dao

数据访问层接口包

org.logistic.dao.impl

数据访问层实现类包

org.logistic.entity

数据模型类包,实体包

org.logistic.service

业务逻辑层接口包

org.logistic.service.impl

业务逻辑层实现类

org.logistic.util

配置文件包

logisticsSys包的划分

WebRoot文件的划分

2.2.5界面设计样式

该部分为界面设计的公共部分,给界面提供样式。

2.2.6通用组件配置文件

3.功能模块的详细设计与实现

3.1接单管理模块

3.1.1接单管理总体结构

3.1.2订单信息MVC模式的设计

层次

功能

所在的包/位置

程序

M

接单信息管理相关实体接口类

org.logistic.dao

SendFoodsDao.java

接单信息管理相关实体接口实现类

org.logistic.dao.impl

SendFoodsDao,impl.java

接单信息管理相关实体类

org.logistic.entity

SendFoods.java

接单信息管理相关实体类的配置

org.logistic.entity

SendFoods.hbm.xml

V

接单信息管理逻辑类

org.logistic.service

SendFoodsService.java

接单信息管理的逻辑实现类

org.logistic.service.impl

SendFoodsService,impl.java

接单信息管理相关实体类

org.logistic.action

SendFoodsAction.java

C

接单输入页面

logisticsSys\jsp

Send_foods_Add.jsp

接单信息列表页面

logisticsSys\jsp

Send_foods_list.jsp

接单信息编辑页面

logisticsSys\jsp

Send_foods_update.jsp

接单入库页面

logisticsSys\jsp

warehourse.jsp

3.1.3接单信息实体类的实现

SendFoods.java

publicclassSendFoods{

privateintid;

privateStringconsignorName;

privateStringconsignorAddress;

privateStringconsignorTel;

privateStringrecessName;

privateStringrecessTel;

privateStringchargeMethod;

privatefloatcost;

privateStringgoodsWeight;

privateStringgoodsVolume;

privatebooleanisSign;

privatebooleanisCost;

privateStringacceptor;

privateStringrecessAddress;

}

SendFoods.hbm.xml

xmlversion="1.0"encoding="UTF-8"?

>

DOCTYPEhibernate-mappingPUBLIC

"-//Hibernate/HibernateMappingDTD3.0//EN"

"

3.1.4接单信息实体接口类

SendFoodDao.java

publicinterfaceSendFoodsDaoextendsIBaseDao{

publicbooleanwarehouse(WarehousingDetailwarehousingDetail);

publicStringgetHQL(SendFoodssendFoods);

}

3.1.5接单信息实体接口的实现类

SendFoodDaoImpl.java

publicclassSendFoodsDaoImplextendsHibernateSessionimplementsSendFoodsDao{

publicbooleandelete(intid){

returnsuper.deleteEntityBean(SendFoods.class,id);

}

@SuppressWarnings("unchecked")

publicListfindAll(StringsendFoods){

returnsuper.getQueryList("from"+sendFoods);

}

publicbooleansave(SendFoodssendFoods){

returnsuper.insertEntityBean(sendFoods);

}

publicbooleanupdate(SendFoodssendFoods){

returnsuper.updateEntityBean(sendFoods);

}

@SuppressWarnings("unchecked")

publicListfindById(intid){

Stringsql="fromSendFoodswhereid="+id;

returnsuper.getQueryList(sql);

}

/**

*分页查询

*@paramhql查询的条件

*@paramoffset开始记录

*@paramlength一次查询几条记录

*@return

*/

@SuppressWarnings("unchecked")

publicListfindBySQLForPage(Stringhql,intoffset,intlength){

returnsuper.getQueryList(hql,offset,length);

}

/**

*查询所有记录数

*@return总记录数

*/

publicintgetAllRowCount(Stringhql){

returnsuper.getQueryList(hql).size();

}

publicbooleanwarehouse(WarehousingDetailwarehousingDetail){

Stringhql1="fromWarehousingDetailwwherew.sendId='"+warehousingDetail.getSendId()+"'";

WarehousingDetailw=(WarehousingDetail)super.getEntityBean(hql1);

//如果查询有结果,则入库失败

if(w==null){

warehousingDetail.setWarehousingDate(newDate());

returnsuper.insertEntityBean(warehousingDetail);

}

returnfalse;

}

publicStringgetHQL(SendFoodssendFoods){

Stringhql="fromSendFoodss";//查询语句

if(sendFoods!

=null){

if(sendFoods.getConsignorName()!

=null){

hql+="wheres.consignorName='"+sendFoods.getConsignorName()+"'";

}

elseif(sendFoods.getConsignorTel()!

=null){

hql+="wheres.consignorTel='"+sendFoods.getConsignorTel()+"'";

}

elseif(sendFoods.getAcceptor()!

=null){

hql+="wheres.acceptor='"+sendFoods.getAcceptor()+"'";

}

elseif(sendFoods.getRecessTel()!

=null){

hql+="wheres.recessTel='"+sendFoods.getRecessTel()+"'";

}

else{

if(sendFoods.getIsSign()){

hql+="wheres.isSign=1";

}

else{

hql+="wheres.isSign=0";

}

}

}

returnhql;

}

}

3.1.6接单信息业务逻辑类

SendFoodsService.java

publicinterfaceSendFoodsService{

publicbooleandelete(intid);

publicListfindAll(Stringtable);

publicListfindById(intid);

publicbooleansave(SendFoodssendFoods);

publicbooleanupdate(SendFoodssendFoods);

publicPageBeanqueryForPage(intpageSize,intcurrentPage,SendFoodssendFoods);

publicintgetAllRowCount(Stringhql);

publicbooleanwarehouse(WarehousingDetailwarehousingDetail);

}

3.1.7接单信息业务逻辑类的实现类

SendFoodsServiceImpl.java

publicclassSendFoodsServiceImplimplementsSendFoodsService{

privateSendFoodsDaosendFoodsDao=newSendFoodsDaoImpl();

publicbooleandelete(intid){

returnsendFoodsDao.delete(id);

}

publicListfindAll(Stringtable){

returnsendFoodsDao.findAll(table);

}

publicListfindById(intid){

returnsendFoodsDao.findById(id);

}

publicbooleansave(SendFoodssendFoods){

returnsendFoodsDao.save(sendFoods);

}

publicbooleanupdate(SendFoodssendFoods){

sendFoodsDao.findById(sendFoods.getId());

returnsendFoodsDao.update(sendFoods);

}

publicSendFoodsDaogetSendFoodsDao(){

returnsendFoodsDao;

}

publicvoidsetSendFoodsDao(SendFoodsDaosendFoodsDao){

this.sendFoodsDao=sen

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2