javaWEB模块物流项目八.docx

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

javaWEB模块物流项目八.docx

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

javaWEB模块物流项目八.docx

javaWEB模块物流项目八

BOS物流管理系统第8天工作单管理和权限说明

今天内容安排:

1:

工作单(快递单)管理

datagrid行编辑(表格内部)

2:

工作单搜索,使用索引-----------------------HibernateSearch框架(底层Lucene)

3:

权限系统分析表设计原则

1.任务一:

工作单快速录入

快速录入功能,非常符合datagrid行内编辑

解决:

同一时间工作单非常多,无法等到信息录入完毕再进行发货,提供录入员快速录入工作单信息的功能,这些录入的数据都是为了满足物流配载的需求

在闲暇时候,对工作单信息进行补全、完善

jqueryeasyuidatagrid行内编辑

jqueryeasyuidatagrid行内编辑

第一步:

在datagrid需要编辑列属性,添加editor属性

第二步:

通过事件,调用datagrid方法,打开某一行数据编辑状态

第三步:

编辑后,可以选择取消编辑或者接收编辑(编辑有效)

第四步:

可以向datagrid插入一行数据

第五步:

和编辑相关事件

工作单快速录入实现

理解快速录入,新增一行代码

WEB-INF/pages/qupai/quickworkorder.jsp工作单快速录入页面

上面代码,保证用户只能编辑一行!

(注意:

因为editEdit被调用,必须满足所有editor验证都通过,如果验证不通过,无法执行endEdit)

结束编辑,触发onAfterEdit函数

datagrid组件内部添加onAfterEdit事件提交用户编辑数据给action

提交一个Ajax请求,发给服务器

编写服务器,添加工作单数据(代码实现)

修改实体WorkOrderManage采用默认主键策略

BaseAction注入service

Action代码

Service代码

DAO代码

无条件分页查询工作单

1:

页面添加datagridurl查询action

编写action代码完成分页查询

service

dao省略!

测试无条件分页查询!

ok!

2.任务二:

工作单索引建立和搜索

什么是全文索引?

为什么要建立索引?

对目标搜索内容中每一个词都建立索引,根据目标内容每一个词进行搜索

操作数据库,采用like模糊查找,无法使用数据库内部索引

全文索引保存在哪?

在硬盘上,是一组文件

对工作单数据建立索引

后期会有lucene课程,详细讲解lucene使用细节、solr搜索服务器

今天课程,通过hibernatesearch创建lucene全文索引

Hibernate+Lucene结合开发==========HibernateSearch

第一步:

修改pom.xml引入hibernatesearch和IK分词器的jar包

导入hibernatesearch

3.4.2.Final

org.hibernate

hibernate-search

${hibernate-search.version}

方式一:

导入ik分词器(不被maven管理)

--ik坐标配置-->

org.wltea

IKAnalyzer

2012_u6

system

--根据磁盘路径将ikjar粗放目录下即可-->

e:

/ik/IKAnalyzer2012_u6.jar

方式二:

可以将ik分词器下载本地硬盘发布到maven仓库

如何将第三方jar发布到maven仓库:

cmd窗口将下面命令拷贝回车即可

mvninstall:

install-file-Dfile=e:

/ik/IKAnalyzer2012_u6.jar-DgroupId=cn.itcast.ik-DartifactId=tpsik-Dversion=2.0.1-Dpackaging=jar-DgeneratePom=true-DcreateChecksum=true

cmd窗口复制该命令即可

-Dfile第三方jar所在的磁盘位置-DgroupIdjar在仓库坐标位置包名-DartifactId发布jar工程名称-Dversionjar版本

第二步:

IK分词器,可以在src/main/resources下提供配置文件

将IKAnalyzer.cfg.xml和stopword.dic复制src/main/resource目录根据用户不同需求进行分词!

cn.itcast.bos.ik

myik

2.0.1

第三步:

配置hibernatesearch(官方文档)

参考

配置索引库生成磁盘位置

需要配置hibernate属性

hibernate.search.default.indexBase索引硬盘目录

2:

告知索引库将那些实体类的字段信息分词建立索引引入三个注解

需要通过注解配置实体类,对哪些数据进行索引

@Indexed(类)、@DocumentId(主键)、@Field(建立索引字段)

hibernte-search自带分词器

注解的最大的好处,不需要写lucene代码,进行hibernate添加操作时,自动创建索引、修改索引、删除索引

插入工作单!

对应Productarrivecity字段建立索引!

第四步:

使用luke工具,查看索引文件

运行java-jar路径

查询索引建立完成!

使用IK分词器分词实现:

引入ik分词器坐标

查看分词索引库文件信息

java-jarlukeall.jar

ik分词器扩展配置文件说明可以将用户指定词条选择分词或者不分词

引入配置文件src/main/resources目录下

测试:

分了.....

3.任务三:

工作单搜索功能(全文索引)

使用hibernatesearch建立索引

1)POM导入jar包

hibernatejar包、lucenejar包、hibernatesearchjar包、ik分词器jar包

2)配置hibernate属性

hibernate.search.default.indexBase

3)使用hibernatesearch提供注解,修饰哪些数据需要建立索引

实体类@Indexed、实体类@Analyzer、主键属性@DocumentId、需要创建索引属性@Field

4)hibernate、JPAAPI对实体数据进行增加、修改、删除操作,hibernatesearch自动同步操作索引库

jqueryeasyuisearchbox制作搜索框

下拉选择条件搜索

WEB-INF/pages/qupai/quickworkorder.jsp页面

1、页面提供north区域div,编写搜索框

2、通过input设置class=”easyui-searchbox”

3、通过设置搜索框menu指向div的id(下拉搜索项)

4、通过设置搜索框prompt属性提供搜索框默认提示信息

5、通过设置搜索框searcher属性指定点击搜索指向js函数名称

js函数value:

用户输入数据name:

搜索的name属性值

编写后台action接受name和value发送ajaxdatagrid提供load方法!

js函数采用load发送请求!

同一个方法!

load就可以向后台发同一个地址请求

服务器修改pageQuery方法!

引入条件分页查询+Luncen搜索查询!

编写服务器实现搜索功能

修改datagrid的url属性

检索查询实现

action判断是否含有条件参数接受条件参数如果进行索引查询执行else代码将easyui分页查询的的数据total和rows存放到Map(data)即可

service

1:

无条件分页查询

2:

有条件索引查询

业务层的实现

dao接口注意此时采用lucence索引检索目标数据我们需要自定义接口实现类编写索引查询!

查询索引库根据索引库的分词实现数据库的分页查询!

此时springdata会自动搜索以Impl结尾的类!

@SuppressWarnings("unchecked")

publicclassWorkOrderManageDaoImpl{

//索引查询索引自定义分页条件查询

//1:

获取EntityManager==session

@PersistenceContext

privateEntityManagerentityManager;

publicPagepageQueryByHibernateSearch(PageablepageRequest,StringconditionName,StringconditionValue){

try{

//官方文档2第三方文档

//EntityManagerem=entityManagerFactory.createEntityManager();

//2:

获取全文检索FullTextEntiyManager--->获取全文检索Query

FullTextEntityManagerfullTextEntityManager=org.hibernate.search.jpa.Search.getFullTextEntityManager(entityManager);

//3:

准备luncenQuery对象luceneQuery封装查询条件没有模糊匹配

//2:

解析词条

QueryParserqueryParser=newQueryParser(Version.LUCENE_31,conditionName,newIKAnalyzer());

Queryquery1=queryParser.parse(conditionValue);//完全匹配查询

WildcardQueryquery2=newWildcardQuery(newTerm(conditionName,"*"+conditionValue+"*"));//扩展查询*通配符

////3:

两个查询合并成一个查询BooleanQuery

BooleanQuerybooleanQuery=newBooleanQuery();

booleanQuery.add(query1,Occur.SHOULD);//should表示或者关系or

booleanQuery.add(query2,Occur.SHOULD);//should表示或者关系or

//4获取全文检索query

//javax.persistence.QueryfullTextQuery=fullTextEntityManager.createFullTextQuery(booleanQuery);

FullTextQueryfullTextQuery=fullTextEntityManager.createFullTextQuery(booleanQuery,WorkOrderManage.class);

//5

inttotalCounts=fullTextQuery.getResultSize();//总记录数total

//6:

分页查询

fullTextQuery.setFirstResult(pageRequest.getOffset());//起始记录数

fullTextQuery.setMaxResults(pageRequest.getPageSize());//每页显示记录数

ListresultList=fullTextQuery.getResultList();//rows

//7:

获取接口Page接口实现类

Pagedata=newPageImpl(resultList,pageRequest,totalCounts);

returndata;

}catch(ParseExceptione){

e.printStackTrace();

thrownewRuntimeException("索引查询失败"+e);

}

}

}测试完成!

ok!

4.项目中间总结

第一天

1)jqueryeasyui系统页面布局(掌握)

layout、accordion、tabs和Ztree

2)jqueryeasyuidatagrid

HTML和JS开发方式

3)maven搭建一个项目

Maven安装配置、eclipse的maven配置、建立项目导入坐标

4)将所有页面通过page_*_*配置映射为一个Action,使用拦截器进行控制管理

第二天

5)PowerDesigner数据建模,生成SQL

Oracle配置不要引号

5)JPA注解配置实体类

@Entity、@Table、@Id、@GeneratedValue、@GenericGenerator、@Column

@Temporal日期、@Transiant不生成表

7)struts2xml配置校验、提示国际化

8)struts2注解开发

导入struts2-convention-plugin

Action必须在action、actions、struts、struts2四个包中,以Action结尾

@ParentPackage@Namespace@Action@Result

9)spring注解开发

@Controller(配置多例@Scope)@Service@Repository@Autowired

扫描

10)applicationContext配置spring整合springdatajpa

整合hibernate配置sessionFactory

整合JPA配置EntityManagerFactory

11)SpringData使用

接口继承提供默认方法

方法命名规则写方法,生成语句

@NamedQuery注解

@Query注解

=============================命名参数@Param、修改Query@Modifying

13)Hibernate使用HibernateTemplate抽取泛型通用DAO

14)jqueryeasyuimenubutton下拉菜单、messager消息窗口、window普通窗口

15)自定义拦截器,控制不登陆无法访问页面

16)Ajax功能编程、服务器struts2-json-plugin转换json使用

第一步:

事件触发ajax请求$.post

第二步:

服务器处理数据

第三步:

将处理结果压入值栈顶部,配置Action继承json-default包,使用json结果集

============================如果保存、修改操作没有处理结果

try{

map.put(“success”,true);

}catch{

map.put(“success”,false);

}

将map转换为json返回

第三四五天

17)jqueryeasyuiform校验效果(自定义校验规则)

18)jqueryeasyuidatagrid结合springdata实现分页

第一步:

客户端发送page、rows

第二步:

服务器将page和rows存入Pageable

第三步:

服务器调用DAO的PagefindAll(Pageable)查询

第四步:

新建map,将page中totalElements和content放入map,设置key为total和rows

第五步:

将map压入栈顶,使用json结果类型,返回

19)修改数据,使用form的load方法,装载数据回显

20)区域信息批量导入ocupload一键上传

21)struts2FileUploadInterceptor文件接收

22)POI的Excel解析

23)pinyin4j汉字转换拼音

24)分区多条件组合查询自定义插件form转换json

25)springdata的Specification实现查询

26)分区查询结果导出,文件下载,POI生成Excel

第六天

23)CXF编写CRM,提供服务接口

编写接口和实现(@WebService@WebMethod)、配置jaxws:

server配置(只有类通过jaxws:

endpoint配置)、配置servlet

24)BOS客户端接口联调,实现定区关联客户

25)能说出基础设置模块核心业务

基础档案设置、收派标准关联、收派时间管理、取派员管理、车辆线路管理、区域管理、分区管理、管理定区调度排班

第七天

26)能说出取派模块核心业务

业务受理、自动分单、查台转单、人工调度、工单管理、工作单快速录入、导入、打印、查询

27)datagrid行内编辑

28)HibernateSearch配置使用

为什么使用索引?

好处?

分词器?

配置过程?

5.权限系统

权限表设计分析apacheshiro框架

web阶段如何控制访问资源权限

URL级别权限管理!

Filter过滤器/*

表设计关系:

t_user用户表

role角色表

fucntion权限表

关系表:

user_role

一个用户可以允许多个角色

一个角色可以被授予多个用户

角色权限表role_function

一个角色可以允许多个权限

一个权限可以被授予多个角色

user--->user_role--->role--->role_function--->function

搭建虚拟表环境

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

当前位置:首页 > 工程科技 > 能源化工

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

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