javaWEB模块物流项目四.docx

上传人:b****5 文档编号:26404917 上传时间:2023-06-19 格式:DOCX 页数:19 大小:751.56KB
下载 相关 举报
javaWEB模块物流项目四.docx_第1页
第1页 / 共19页
javaWEB模块物流项目四.docx_第2页
第2页 / 共19页
javaWEB模块物流项目四.docx_第3页
第3页 / 共19页
javaWEB模块物流项目四.docx_第4页
第4页 / 共19页
javaWEB模块物流项目四.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

javaWEB模块物流项目四.docx

《javaWEB模块物流项目四.docx》由会员分享,可在线阅读,更多相关《javaWEB模块物流项目四.docx(19页珍藏版)》请在冰豆网上搜索。

javaWEB模块物流项目四.docx

javaWEB模块物流项目四

BOS物流管理系统第四天区域管理

今天内容安排:

1:

取派员修改

2、区域批量导入功能

(jqueryocupload一键上传、POIExcel文件解析、pinyin4j工具包)

3、区域列表查询(复习datagrid分页)

1.分页查询数据结果集优化配置

后续所有分页查询--->配置全局结果集配置

在不同XxxAction分页查询代码内部结果集统一配置SUCCESS

以后只要结果集是success--->json结果集

1:

BaseAction代码

子类Action分页代码

struts.xml结果集配置

2.任务一:

基础设置模块需求分析

参见需求文档2.6基础档案

●2.6.5区域设置

管理物流业务所能覆盖行政区域(省、市、区…)

行政区域信息不可更改!

●2.6.6管理分区

举例:

你是一个快递员,让你负责上海闵行区快件配送----行政区域太大了,不能直接分配给快递员负责,将区域进行划分,成为分区

●2.6.7管理定区、调度排班

区域、分区、定区几个概念的区别?

区域,行政区域,国家划分省、市、区

分区,因为区域很大,需要划分

(如果每个取派员负责一个分区,这样物流配送业务不够灵活)

定区:

为几个取派员划分到几个分区的负责,几个分区组成一个定区

3.任务二:

区域信息批量导入功能

导入功能,实现数据快速添加---------上传数据文件

区域数据文件上传

一键文件上传原理分析

回顾文件上传:

客户端:

●formenctype=”multipart/form-data”采用多媒体表单数据编码

●请求方式必须为post

文件框,提供name属性

服务器:

●javaweb:

apachecommons-fileupload工具包实现上传

●struts2:

提供FileUploadInterceptor,将commons-fileupload进行封装

企业的系统,越来越多使用一键上传

好处:

页面只需要提供一个按钮或者链接,不需要上传浏览框

一键上传,页面没有刷新,使用隐藏iframe模拟Ajax效果

jqueryocupload(one-click)插件实现一键上传

下载网址:

获得:

jquery.ocupload-1.1.2.js

在项目引入ocupload

--一键上传-->region.jsp页面导入脚本

可以对页面任何一个元素使用一键上传

jqueryeasyui表格按钮

根据ocuploadoptions设置一键上传属性文档说明

●上面代码有点问题,没有添加文件格式校验

问题:

现在上传文件扩展名.xls或者.xlsx

选择文件后,不要立刻提交autoSubmit设置false,在onSelect进行校验,满足文件格式要求后,再进行提交

测试客户端上传完成!

struts2FileUploadInterceptor接收上传文件

FileUploadIntercptor就在DefaultStack中,无需任何其它配置

编写RegionAction接收上传文件

只需要在Action中提供成员变量和setter方法,自动将上传文件设置进来

文档查看完成开发excel解析

解析Excel中数据

解析Excel,生成Excel常用开发组件:

ApachePOI、JXL

官网:

http:

//poi.apache.org/

企业最常用的是使用POI解析Excel,生成Excel!

HSSF解析.xls格式(Excel97-2007前),XSSF解析.xlsx格式(Excel2007)

阅读“POI3.5_HSSF_和XSSF_Excel操作快速入门手册.pdf”

参考“POI整理.doc”

第一步:

在项目引入POI,使用maven坐标

org.apache.poi

poi

${poi.version}

org.apache.poi

poi-ooxml

${poi.version}

建议使用3.9的版本

3.9

第二步:

完善RegionAction的oneKeyUpload方法

POI解析:

Workbook文件----sheet工作薄----row行----cell单元格

action代码如下使用poi读取struts2上传文件!

步骤二修改Region注解主键策略因为区域表数据主键由外部文件excel提供

编写Action业务方法解析excel文件

代码编写

Sheet对象forEach迭代

父类BaseAction注入业务层对象

@Action(value="regionAction_importData",results={@Result(name="importData",type="json")})

publicStringimportData(){

//upload上传excel解析...apachepoi技术

//目标要明确excel数据解析封装java对象---->插入数据库List--->service--->Dao

//创建对Excel工作簿文件的引用

try{

HSSFWorkbookworkbook=newHSSFWorkbook(newFileInputStream(upload));

//创建对工作表的引用。

//本例是按名引用(让我们假定那张表有着缺省名"Sheet1")

HSSFSheetsheet=workbook.getSheetAt(0);

Listregions=newArrayList();

for(Rowrow:

sheet){

//每一行...0

if(row.getRowNum()==0){

continue;

}

//第二行读取数据一行对应一个Region对象

Regionr=newRegion();

//当前行第一个单元格数据

r.setId(row.getCell(0).getStringCellValue());

r.setProvince(row.getCell

(1).getStringCellValue());

r.setCity(row.getCell

(2).getStringCellValue());

r.setDistrict(row.getCell(3).getStringCellValue());

r.setPostcode(row.getCell(4).getStringCellValue());

//后期为了查询快捷设计城市简码简码由省市区自动生成...江苏省南京市玄武区njsjssnjsxwq

//r.setShortcode(shortcode);

//r.setCitycode(citycode);

regions.add(r);

}

regionService.save(regions);

push(true);

}catch(Exceptione){

push(false);

e.printStackTrace();

}

return"importData";

}

第三步:

调用业务层,批量添加region

DAO接口

第四步:

完善客户端回调函数

生成区域简码和城市编码

什么是区域简码?

省市区首字母,例如河北省石家庄市长安区HBSJZCA

什么是城市编码?

城市全拼例如:

上海市shanghai

问题:

汉子转换为拼音有什么用?

检索!

使用pinyin4j工具包,完成汉字到拼音的转换

下载:

第一步:

使用maven坐标导入pinyin4j

com.belerweb

pinyin4j

2.5.0

第二步:

使用pinyin4j转换

在项目导入Pinyin4jUtils工作类

简码制作

执行操作

测试区域批量导入!

4.任务二:

区域添加

区域添加时,因为id要指定,页面添加id输入框,如何保证不重复采用ajax校验!

\\

学员作业:

1区域添加2:

区域修改(参照取派员修改即可)3:

删除(可以做物理删除)

5.任务三区域分页查询

1:

分页查询

2:

编写action

3:

业务层

分页查询完成测试

分区数据查询区域时候不需要的排除

回顾:

jqueryeasyuidatagrid分页实现过程

1、编写datagrid设置url

2、页面第一次加载后,自动向url发送请求,请求包含page页码和rows每页记录数

3、服务器根据page和rows封装Pageable对象(PageRequest)

4、调用Springdata

PagefindAll(Pageable)返回Page对象

5、将Page数据转换到符合easyuidatagrid格式对象中Map

封装total总记录数、rows当前页数据

6、将结果转换json返回

修改页面url

在RegionActon添加pageQuery查询方法接收page和rows可以通过BaseAction复用

BaseAction代码

RegionAction代码将json结果集配置成全局结果集视图!

struts.xml

Action注解继承bos包

==================================

Action代码

Service代码

延迟加载错误,排除Region关联

6.当天完成作业:

1:

取派员修改easyui插件的使用回显数据

2:

poi批量导入解析过程掌握

3:

datagrid分页查询实现掌握

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

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1