poi3


区域批量导入、定区添加查询

0.1学习目标

         1.  能够使用 datagrid 的 formatter 属性自定义表格列 显示内容

2.  能够编写 js 代码获取 checkbox列表 id ,拼接为,分隔字符串

3.  能够说出一键上传原理

4.  能够使用ocupload  实现一键上传功能

5.  能够使用 POI 解析获取 Excel 数据

6.  能够使用Pinyin4j  工具,根据汉字生成拼音

7.  能够说出模型驱动抽取到BaseAction 代码的思想

8.  能够描述定区关联客户的业务流程

9.  能够使用现有架构快速复制搭建 CRM 系统

0.2学习指南

         区域批量导入poi的使用(重点)

         BaseAction抽取思想与定区关联客户业务描述(重要)

         搭建 CRM 系统(了解)

        

        

第一堂课

本节知识点

1、  快递员作废datagrid的formatter使用

2、  快递员批量作废功能实现

3、  区域批量导入一键上传原理分析

本节目标

         1.  能够使用 datagrid 的 formatter 属性自定义表格列 显示内容

2.  能够编写 js 代码获取 checkbox列表 id ,拼接为,分隔字符串

3.  能够说出一键上传原理

 

 

1.1  快递员作废datagrid的formatter使用
1.1.1知识概述

很多业务系统,提供删除功能大多是逻辑删除功能(并不是真的在数据库中删除记录,而是通过一个标记位,标记数据已经删除)业务规则, Courier数据表,提供 deltag 字段,如果字段为空(null) 表示是有效的快递员,如果deltag设置为 1 ,表示快递员已经作废

Datagrid 的列属性 formatter 使用

        

用来格式化表格数据显示,定制formatter,控制表格内容显示 !

1.1.2视频详情

1.1.3总结与补充

         无

        

1.1.4课堂提问与练习

         无

1.1.5习题答案

         无

1.2  快递员批量作废功能实现
1.2.1知识概述

1、 点击页面作废按钮时,获取所有勾选快递员 id

         2、 编写 CourierAction delBatch 实现批量作废

3、 编写业务层实现

4、自定义 DAO 的修改方法

 

 

1.2.2视频详情

1.2.3总结与补充

         无

1.2.4课堂提问与练习

         1.练习快递员作废功能

1.2.5习题答案

Action

// 作废快递员

         @Action(value = "courier_delBatch", results = { @Result(name = "success", location = "./pages/base/courier.html", type = "redirect") })

         public String delBatch() {

                  // 按,分隔ids

                  String[] idArray = ids.split(",");

                  // 调用业务层,批量作废

                  courierService.delBatch(idArray);

 

                  return SUCCESS;

         }

Service

@Override

         public void delBatch(String[] idArray) {

                  // 调用DAO实现 update修改操作,将deltag 修改为1

                  for (String idStr : idArray) {

                          Integer id = Integer.parseInt(idStr);

                          courierRepository.updateDelTag(id);

                  }

         }

Dao

package cn.itcast.bos.dao.base;

 

import org.springframework.data.jpa.repository.JpaRepository;

import org.springframework.data.jpa.repository.JpaSpecificationExecutor;

import org.springframework.data.jpa.repository.Modifying;

import org.springframework.data.jpa.repository.Query;

 

import cn.itcast.bos.domain.base.Courier;

 

public interface CourierRepository extends JpaRepository<Courier, Integer>,JpaSpecificationExecutor<Courier>{

        

        

         @Query(value="update Courier set deltag ='1' where id=?")

         @Modifying

         public void updateDelTag(Integer id);

 

}

 

 

1.3  区域批量导入一键上传原理分析
1.3.1知识概述

如何上传批量数据表格?

需要注意事项:
1、 必须同步提交 form 表单
2Form 表单编码方式 multipart/form-data
3
、 提交方式必须为 post
4
、 上传文件对应 input type=”file” 元素要提供 name 属性

一键上传原理

1.3.2视频详情

1.3.3总结与补充

         无

1.3.4课堂提问与练习

         无

 

1.3.5习题答案

        

第二堂课

本节知识点:

1、  区域批量导入ocupload一键上传效果实现

2、  区域批量导入ocupload一键上传文件类型验证

3、  区域批量导入编写Action接收上传文件

本节目标:

1. 能够使用 ocupload  实现一键上传功能

2.1        区域批量导入ocupload一键上传效果实现
2.1.1知识概述

使用 jQueryocupload 实现一键上传

ocupload one-clickupload
官网: http://code.google.com/p/ocupload/

1、 导入 jquery.ocupload-1.1.2.js到项目中

2、 在页面引入 ocupload.js

 

2.1.2视频详情

2.1.3总结与补充

         无

2.1.4课堂提问与练习

         无

2.1.5习题答案

        

 

2.2        区域批量导入ocupload一键上传文件类型验证
2.2.1知识概述

         限制只能上传指定格式的文件

思路:在选择文件后,关闭自动提交,判定文件格式,再手动提交

2.2.2视频详情

2.2.3总结与补充

         无

2.2.4课堂提问与练习

         1.练习上传文件的类型校验

 

2.2.5习题答案

        

// 为导入按钮,添加一键上传效果

                              $("#button-import").upload({

                                       // 默认name为file

                                       action : '../../area_batchImport.action',

                                       onSelect :function(){

                                                // 选中文件后,关闭自动提交

                                                this.autoSubmit = false ;

                                                // 判定文件格式 ,以.xls 或者 .xlsx 结尾

                                                var filename = this.filename();

                                                var regex = /^.*\.(xls|xlsx)$/ ;

                                                if(regex.test(filename)){

                                                        // 满足

                                                        this.submit();

                                                }else{

                                                        $.messager.alert("警告","只能上传.xls或.xlsx结尾的文件!","warning");

                                                }

                                       },

                                       onComplete : function(response){

                                                alert("文件上传成功!");

                                       }

                              });

 

2.3        区域批量导入编写Action接收上传文件
2.3.1知识概述

使用 struts2文件上传机制,接收上传文件
struts2-default.xml配置

拦截器已经被配置defaultStack 中

编写 AreaAction接收上传文件

在 Action 定义三个成员变量

private File [页面元素 name]

private String [页面元素 name]ContentType;

private String [页面元素 name]FileName;

2.3.2视频详情

2.3.3总结与补充

         无

 

2.3.4课堂提问与练习

         无

2.3.5习题答案

         无

第三堂课

本节知识点

1、  区域批量导入POI实现Excel解析

2、  使用pinyin4j生成区域简码和城市编码

本节目标

1.  能够使用 POI 解析获取 Excel 数据

2.  能够使用 Pinyin4j  工具,根据汉字生成拼音

 

3.1        区域批量导入POI实现Excel解析
3.1.1知识概述

实现 Excel文件解析

官网:http://poi.apache.org/

目标要解析 Excel 使用 SS 组件

HSSF解析 Excel 97-2007 格式 (.xls
XSSF解析 Excel 2007 格式 (.xlsx

基于maven坐标导入 POI 支持
poi…jar 解析 HSSF
poi ooxml .. jar
解析 XSSF (以来 POI 包 )

解析Excel逻辑
工作薄 --- sheet --- row --- cell

编写业务层

编写DAO

 

3.1.2视频详情

3.1.3总结与补充
3.1.4课堂提问与练习

         无

3.1.5习题答案

         无

3.2        使用pinyin4j生成区域简码和城市编码
3.2.1知识概述

使用 Pinyin4j生成区域简码和城市编码

什么是城市编码?什么是简码 ?
北京市 ---- 城市编码 beijing
北京市海淀区 --- 简码 BJHD

1、 使用 maven 坐标导入 pinyin4j

2、 导入资料 Pinyin4jUtils工具类

 

3.2.2视频详情

3.21.3总结与补充
3.2.4课堂提问与练习

         无

3.2.5习题答案

   无

第四堂课

本节知识点:

1、  区域条件分页列表查询功能实现

2、  代码重构优化模型驱动抽取

3、  代码重构优化分页代码抽取

 

本节目标:

1、能够说出模型驱动抽取到 BaseAction 代码的思想

4.1        区域条件分页列表查询功能实现
4.1.1知识概述

         区域分页列表查询功能

1、 在 area.html 页面中添加一个 查询按钮,点击按钮,弹出查询窗口

2、 对查询窗口,查询按钮,添加点击事件, 效果将查询表单数据转换为json,绑定 datagrid

3、 修改 datagrid url 地址

4、 在 AreaAction 添加 pageQuery 查询方法

5、 编写 AreaService 代码

6、 编写 DAO 代码

7、 在 Area 实体类, 对多属性 getter 方法上 @JSON 注解

 

 

4.1.2视频详情

4.1.3总结与补充

         无

4.1.4课堂提问与练习

         无

4.1.5习题答案

        

 

4.2        代码重构优化模型驱动抽取
4.2.1知识概述

代码重构优化, 优化掉每次编写都需要重复编写的代码,实现代码简化编写。

优化 Action 代码,抽取 BaseAction

抽取模型驱动的代码

 

4.2.2视频详情

4.2.3总结与补充

         无

 

 

4.2.4课堂提问与练习

         无

4.2.5习题答案

         无

 

 

 

 

4.3        代码重构优化分页代码抽取
4.3.1知识概述

分页查询代码重构优化

 

4.3.2视频详情

4.3.3总结与补充

         无

 

 

4.3.4课堂提问与练习

         无

4.3.5习题答案

         无

 

 

第五堂课

本节知识点:

1、  第四章主要内容概述

2、  定区添加功能实现

3、  定区条件分页查询实现

 

        

5.1        第四章主要内容概述
5.1.1知识概述
5.1.2视频详情

5.1.3总结与补充

         无

 

5.1.4课堂提问与练习

         无

5.1.5习题答案

         无

5.2  定区添加功能实现
5.2.1知识概述

1、 完善 form 表单信息

2、 对保存按钮,添加点击事件

3、 编写 FixedAreaAction 代码, 提供 save 方法

4、 编写业务层代码逻辑

5、 编写 DAO

 

5.2.2视频详情

5.2.3总结与补充

         无

5.2.4课堂提问与练习

         无

5.2.5习题答案

         无

5.3  定区条件分页查询实现
5.3.1知识概述

1、 修改 fixed_area.html 页面 点击查询窗口中查询按钮, 将查询表单数据 转换为json,绑定 datagrid

为查询 form 指定 id

为查询按钮,添加点击事件

2、 在 FixedAreaAction 添加 pageQuery 查询方法

3、 编写 Service 代码

4、 排除关联 集合属性

 

5.3.2视频详情

5.3.3总结与补充

         无

5.3.4课堂提问与练习

         无

5.3.5习题答案

         无

第六堂课

本节知识点:

1、  定区关联客户业务分析

2、  CRM系统初始搭建

本节目标:

1.  能够描述定区关联客户的业务流程

2.  能够使用现有架构快速复制搭建 CRM 系统

 

6.1        定区关联客户业务分析
6.1.1知识概述

业务分析

业务需求: 定区就是物流覆盖配送区域 , 快递员将为这个定区中所有客户进行快递
业务服务, 关联快递员 就是排班功能 ,关联客户 就是将客户关联到定区,目的 可以在
客户下单时,通过所在定区,找到匹配的快递员,实现自动分单
在整合物流平台系统中,客户信息不是保存在BOS 系统中,而是保存在 CRM 系统中

1、 需要一个 CRM 系统,存放客户信息
2、 学习 WebService 技术,完成 BOS CRM 数据通信

6.1.2视频详情

6.1.3总结与补充
6.1.4课堂提问与练习

         无

6.1.5习题答案

         无

 

 

6.2        CRM系统初始搭建
6.2.1知识概述

搭建 CRM 系统

crm_management CRM 后台管理系统
crm_domain存放客户系统实体类,方便共享实体类BOS 项目也可以引入实体

1、 将两个项目复制 git 版本控制目录

2、 在 STS 中引入 crm 项目

         crm_management 引入 crm_domain 依赖

3CRM 系统需要单独数据库空间

需要在 oracle 创建 用户 crm/密码 crm
-- Create the user
create user crm
identified by crm;
-- Grant/Revoke role privileges
grant resource to crm;
grant connect to crm;

4、 运行 crm_management 生成数据表 customer

设置 CRM 系统运行端口 9002

 

6.2.2视频详情

6.2.3总结与补充

         无

6.2.4课堂提问与练习

6.2.5习题答案

    无

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值