




已阅读5页,还剩44页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
BOS 物流管理系统 第三天 取派员管理今天内容安排:1、 基础设置模块 业务需求分析 (重点)2、 PDM - 生成SQL - 建表 - 生成实体类 hibernate3-maven-plugin 使用 ,依赖Hibernate Tools 工具包 3、 取派员 增加功能 (jquery easyui form 表单控件 ,进行数据客户端校验 )4、 取派员 列表查询 (jquery easyui datagrid ) 无条件、分页查询 datagrid 分页原理 、 spring data jpa 如何实现分页 5、 取派员批量删除(逻辑删除) Spring data jpa 提供批量删除方法 6、 取派员修改功能Jquery easyui form 装载数据的load方法1. 用户密码修改要点: ajax编程、 struts2-json-plugin、 spring data jpa 修改单个字段方法 1.1. jquery easyui window 插件制作弹窗 对div 添加class=easyui-window - 变为一个窗口 点击确定按钮 校验密码是否一致 (自定义密码规则 (非空 空白字符 )UserAction编写业务层+dao实现第二步;编写UserAction 添加 editpassword 方法 DAO测试!ok 学生作业: 退出系统实现!2. 任务一: 基础设置模块 需求分析 参见 需求文档 2.6 基础档案 项目面试, 介绍开发功能需求 ,讲解使用什么技术解决需求问题 l 2.6.1 基础档案设置 l 2.6.2 收派标准 快递员 取货 排货, 根据货物大小、重量 , 选择不同 运输工具 l 2.6.3 班车设置 管理 快递车辆 配送路线 l 2.6.4 取派设置/替班 (取派员管理)管理快递员信息 、 替换班信息查询 l 2.6.5 区域设置 管理 物流业务所能覆盖行政区域(省、市、区 ) 行政区域信息 不可更改 !l 2.6.6 管理分区 举例: 你是一个快递员,让你负责上海闵行区 快件配送 - 行政区域太大了,不能直接分配给快递员负责 , 将区域进行划分 ,成为分区 l 2.6.7 管理定区、调度排班 区域、分区、定区 几个概念的区别 ? 区域 ,行政区域,国家划分省、市、区分区 ,因为区域很大,需要划分 (如果每个取派员负责一个分区,这样物流配送业务 不够灵活 )定区: 为几个取派员 划分到 几个分区的 负责 ,几个分区组成一个定区 l 2.6.8 收派时间管理 管理取派员 上下班 时间 小结: 基础设置模块 两个核心 取派员 、 区域 取派员 (收派标准、收派时间、车辆线路、 排班 )区域 (区域、 分区、 定区 )- 为后期 客户下单,自动分单,分配取派员 提供基础数据信息 3. 任务二:数据库建模设计、实体生成3.1. 基础设置PDM建表取派员表 bc_staff - 快递员 区域表 bc_region - 行政区域分区表 bc_subarea - 将区域细分,成为很多分区 定区表 bc_decidedzone - 定区 将几个快递员分配负责几个分区 (固定配送区域)一个区域,划分 多个分区 几个分区 组成 一个定区 一个取派员 负责 一个定区 (业务: 几个取派员负责一个定区,需要排班 )生成sql建表 表的创建完成!3.2. 根据数据表生成实体和映射 使用 hibernate3-maven-plugin 实现 根据数据表生成实体类和映射 插件用途说明: 编写maven 命令 直接由表 生成对应实体类!网址:/hibernate3-maven-plugin/ 插件: 既可以生成 实体类和hbm映射文件 也可以生成实体类+注解资源文件说明第一步: 需要在pom.xml 配置插件 org.codehaus.mojohibernate3-maven-plugin2.2hbm2hbmxmljdbcconfigurationtarget/generated-resources/hibernatehbm2javajdbcconfigurationtarget/generated-sources/hibernatesrc/main/resources/reveng.xmlsrc/main/resources/pertiescn.itcast.bos.domaintruetruecglibcglib-nodep2.2.2com.oracleojdbc14$oracle.versionruntime还需要配置 hibernate tools 支持 3.2.4.GAorg.hibernatehibernate-tools$hibernate-tools.versionpom.xml 3.2.12.RELEASE 1.4.1.RELEASE 3.6.10.Final 3.2.4.GA 1.7.6 .0 2.5 2.0 4.11 org.springframework spring-context $spring.version org.springframework spring-aspects $spring.version org.springframework spring-orm $spring.version org.springframework spring-web $spring.version org.springframework spring-test $spring.version org.springframework.data spring-data-jpa $spring.data.version org.hibernate hibernate-core $hibernate.version org.slf4j slf4j-log4j12 $sl4j.version org.hibernate hibernate-entitymanager $hibernate.version org.hibernatehibernate-tools$hibernate-tools.version org.apache.struts struts2-core $struts2.version org.apache.struts struts2-spring-plugin $struts2.version org.apache.struts struts2-convention-plugin $struts2.version org.apache.struts struts2-json-plugin $struts2.version c3p0 c3p0 $c3p0.version com.oracle ojdbc14 $oracle.version javax.servlet servlet-api $servlet.version provided javax.servlet jsp-api $jsp.version provided junitjunit$junit.versiontest org.codehaus.mojohibernate3-maven-plugin2.2hbm2hbmxmljdbcconfigurationtarget/generated-resources/hibernatehbm2javajdbcconfigurationtarget/generated-sources/hibernatesrc/main/resources/reveng.xmlsrc/main/resources/pertiescn.itcast.bos.domaintruetruecglibcglib-nodep2.2.2com.oracleojdbc14$oracle.versionruntime org.apache.tomcat.maven tomcat7-maven-plugin 80 2.1 第二步: 在src/main/resources 建立 perties 第三步: 在src/main/resources 配置 reveng.xml 反转规则文件 第四步: 执行 maven命令 mvn hibernate3:hbm2java 测试效果拷贝实体类 到 src/main/javaapplicationContext.xml 实体类扫描配置4. 任务三:取派员添加功能回顾: datagrid 配置 $(“#tableId”).datagrid( url: 加载远程数据 columns: 列信息 toolbar: 表格上方功能按钮 );通过 json/menu.json 菜单数据信息,找到取派员页面 page_base_staff.action 对应 WEB-INF/pages/base/staff.jsp 添加取派员操作,在页面弹窗(jquery easyui window 插件 )完成4.1. 取派员添加 form客户端校验使用 jquery easyui 开发,使用form 控件中验证器l 非空验证 添加 class=”easyui-validatebox” 添加 required属性设置为true ,还可以使用其它验证器 添加validType属性l 长度验证 l 数字框 esyui-numberboxl 日期框 easyui-datebox l 手机号码的校验说明l 自定义规则 js函数 按照文档规范编写即可!客户端校验完成!收派员信息!- -!- 取派员编号 -!- -!- -姓名手机 单位是否有PDA取派标准 自定义手机号码js代码/ 手机号码校验 校验器扩展.$.extend($.fn.validatebox.defaults.rules, telephone: validator: function(value,param) / value 用户输入值 param 定义规则 var reg = /13|4|5|7|8d9$/; return reg.test(value);, message: 手机号码必须是13,14,15,17,18开头的11位数字 );4.2. 提交form,实现取派员信息添加 4.2.1. form提交前,通过validate校验点击页面保存按钮,触发js事件,提交当前的form 完成form提交路径信息 对save保存按钮 添加click事件 使用form的validate方法进行校验 学生作业1: 要求staff 表 主键采用assigned 主键由程序员手动维护 完成 输入取派员编号 离焦发送ajax 校验取派员编号唯一性!修改Staff实体类主键策略学员作业2: 手机号码ajax唯一性校验.4.2.2. 编写添加取派员服务器代码 l Struts2 注解访问到Actionl Action、Service 交给Spring管理 ,Service添加事务TransactionalAction代码 父类 注入所有业务层接口对象Service代码l DAO 使用Spring Data 接口方式 bc_staff 数据表,提供 deltag逻辑删除标识,在程序设置默认值 0,未删除5. 任务四:取派员信息分页列表查询 5.1. datagrid服务器返回json格式json 文件: 分页查询 流程 服务器接受 easyui 客户端 发送请求参数: page 当前页码 rows 每页显示记录数 服务器接受上述两个参数之后 调用业务+dao(spring data) 分页查询 -回送给easyui 框架 下述的数据格式 掌握 jquery easyui datagrid 编写数据表格 回顾 :第一天 datagrid使用 Datagrid数据格式 (两种 )l 不分页 key:value / 每个对象就是一条记录 l 分页 total: 总记录数,rows : 当前页数据 5.2. datagrid分页原理分析 1)在页面加载后,自动向datagrid的url发起请求 请求数据中自动提交两个参数 page 页码 、rows 每页显示记录数服务器返回json数据,客户端自动显示2) 当前改变页码或者每页记录数,自动发起新的请求 服务器端只需要根据 page和rows,查询当前页对应数据,以json返回,即可实现分页查询! Spring Data 如何实现服务器分页查询 ? PagingAndSortingRepository 提供分页查询方法 该方法 对象 Page 分页数据响应对象 该对象封装 分页查询所有数据 Pageable对象 接受分页请求参数 请求数据: 用户需要 将easyui提交 page和rows ,封装到Pageable对象 查询结果: Page对象 (实现类 PageImpl) getNumber 当前页返回多少记录getSize 查询每页多少条 getTotalPages 总页数getTotalElements 总记录数getContent 当前页数据 小节: 分页查询步骤:1: 将分页请求参数 page rows 封装 Pageable 对象中调用spring data 提供 传递给该方法即可 spring data 自己完成分页查询 将分页结果数据 封装 Page对象2: 将Page对象数据中 总记录数 和 每页查询数据 获取 生成json 格式:/ 每页查询分页数据public List getContent() return Collections.unmodifiableList(content);/ 获取 总记录数public long getTotalElements() return total;/ 生成下面json 格式5.3. 使用Spring Data JPA 实现分页查询 第一步: 修改staff.jsp中 datagrid的url 地址 第二步: 在StaffAction 添加pageQuery 查询方法 Service 业务层实现类Action 控制代码 BaseAction 提供分页请求参数封装业务层: 测试: 问题: 问题1: 延迟加载错误 加载Staff中Decidedzone 信息 ,使用JSON注解排除 问题2: Page 转换为json , number、size 这些属性 都没了 当要转换为json的对象,实现Iterable 接口 ,不会转换里面属性,将对象当做Collection 集合对象 序列化 , 集合形式修改 Action 分页查询代码,将结果json转换, 符合easyui 需要 问题3: 查询从第二页开始查询 spring data 默认 从0 源码: 原因: easyui 分页页码从1开始, spring data Pageable 页码从0开始 测试:小节 easyui+spring data 分页实现: 客户端 easyui : datagrid 组件 发送分页查询url地址 自动 发送 page 当前页码 rows 每页显示记录数 客户端 完成分页查询 必须响应的数据 easyui 格式要求 total:表的总记录数 rows 页码对应查询数据 服务器: hibernate jdbc dbutils spring data 目标: 将总记录数 和 每页页码对应数据List- 封装Map (key: total key :rows)-jsonspring data 实现简单化 完成 findAll方法实现程序员将 Pageable 对象封装 传递给该方法即可! spring data 就会帮助我们完成分页查询 并将分页各种数据封装 Page对象代码开发: Pageable 封装 : 源码 构造方法封装 页面从0开始 从Page对象获取分页响应数据 即可 -封装到Map 即可分页完成!5.4. datagrid的列属性formatter的使用 (重点)是否有PDA 列 数据库存放是1 ,页面显示 “有”服务器json返回 haspda 内容就是1, 在页面进行转换 Datagrid的列属性 提供formatter属性6. 任务五:取派员作废和修改 6.1. 取派员作废业务: 有些取派员已经离职,将不能再安排取派员 进行配送,不能从数据库真正删除取派员 ,在staff数据表,提供deltag 逻辑删除标记字段,如果为0 正常使用, 如果为
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年凝血因子VIII、IX项目规划申请报告
- 迎新年美食汇活动方案策划
- 关爱动物小组活动方案策划
- 2025年静脉输液耗材项目提案报告模板
- 青岛文旅水景施工方案
- 咨询牙科装修设计方案
- 个体防护用品研究与应用-洞察及研究
- 2025年光伏组件生产设备自动化改造方案报告
- 2025年光伏组件效率提升技术在光伏建筑一体化中的应用前景报告
- 电控营销方案
- 2025年储能技术在电力系统需求侧响应中的应用报告
- LED交通诱导屏运行维护手册
- 《Matlab编程与应用》课程简介与教学大纲
- 白内障合并青光眼护理查房
- 2025-2026学年人教大同版(2024)小学英语四年级上册(全册)教学设计(附目录)
- 物业员工培训及考核制度
- 2025年弘扬伟大抗战精神主题讲座课件【铭记历史 缅怀先烈】(含讲稿)
- 用户信息管理办法
- 800个产粮大县名单
- 2025年广西中考语文试题卷(含答案及解析)
- 透析室护理不良事件分析
评论
0/150
提交评论