项目第三天afterclass课后取派_第1页
项目第三天afterclass课后取派_第2页
项目第三天afterclass课后取派_第3页
项目第三天afterclass课后取派_第4页
项目第三天afterclass课后取派_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第三天 货物收派标准1.业务模块: 基础设置模块1.1. 分析基础设置模块需求基础设置 : 数据字典 ,举例 :线路类型、保险类型、 商品分类、 取件配置要求类别 都属于 数据字典数据字典很多情况下 是用来下拉列表项目前需要在此设置的基础包括:线路类型、取派员类型、签收类型、保险类型、受理备注说明、配载信息、返货原因、消单原因、取消签收类型、返货类型、大物流类型基础信息 采用一对多 两张表, 在实际开发中,数据可以被缓存 !收派标准将承接的货物,按照重量和体积两个标准,双纬度定义货物的标准。以便将不同标准的货物分给不同收取和派送能力的。由运营部门制定。指派送,取件时遵循的标准班车设置班车设置、

2、 线路管理信息 ,对应需求文档 “路由管理”收派信息管理管理 取货和送货的信息收派时间管理收派,取派是有固定时间段排班和替班指定哪个取派员 在什么时间段进行工作,将不同取派员 进行一天排班设置, 允许取派员进行请假,替班区域管理模块此功能区域为行政区域列表,为价格、商务数据。、工作单始发站、目的站等来源的基础管理分区因为行政比较大,必然进行划分,成为很多小的分区管理定区定区?将很多分区,指定取派负责 ,成为定区 ,在定区中管理客户可以被关联定区上, 自动获得客户对应负责取派1.2. 数据库设计针对需求分析文档,使用昨天学习erDesigner 工具,绘制 PDM文件中,下发 “_基础设置.pd

3、m”开发任务 :收派标准取派员信息管理区域管理分区管理定区管理系统用户登录后, 指定收派标准 (一对多)取派员使用一个收派标准 ,一个标准被多个取派员使用 (一对多)一个行政区域,可以被划分为多个分区 (一对多)将分区划分给取派员负责,将几个分区组成一个定区 ,定区由分区组成将定区指定给取派员负责 ,一个取派员 负责 多个定区 (一对多)(一对多)根据 PDM 生成 SQL 建表语句因为系统有很多模块,所以为每个模块数据表 定义前缀,区分数据所属模块 bc模块 简码bc_standard收派标准表 bc_staff 取派员表 bc_region 区域信息表 bc_subarea 分区信息表bc

4、_decidedzone 定区信息表基础重新建表,向 user 表一条数据inserto user(id,username,password) values(x,admin,md5(admin);新建cn.bc包,建立基础数据PO 类和 hbm收派标准数据表 CURD 操作2.2.1. 分析 PO 类数据模型使用 MyEclipse 动态生成 PO 类和 hbm Standard 类 收派标准类默认生成 hbm,varchar 类型主键,使用assigned 策略,修改为uuid在企业数据开发中, 删除数据大多使用逻辑删除(在数据表设置标记位 0 未删除, 1经删除), 而并不会使用物理删除已

5、页面只需要输入 name 、minweight、maxweight可以完成 标准信息录入!2.2. 收派标准添加2.2.1.对添加表单 form 进行校验使用 EasyUI 的 隐藏window 窗口。点击添加,弹出窗口$(#addStandardWindow).window(open);添加标准,使用 EasyUI 表单校验控件validatebox 校验框该输入框必须添加,否则产生警告信息numberbox 数字输入框/ 点击保存按钮,提交标准formfunction commitStandardForm()/ 先判断form 是否通过校验,如果通过 ,提交表单if($(#standard

6、Form).form(validate)/ 执行EasyUI/ 通过校验$(#standardForm).submit();else/ 没通过校验校验方法$.messager.alert(警告,表单存在 ,warning);数据,请重新输入2.2.2.编写服务器代码,完成表单数据添加public class StandardAction extends BaseAction implementsMDriven publicerfatandardServicepublic class StandardServiceImpl StandardService extends BaseServicei

7、mplements将注入 BaseService将 Service 注入 BaseAction配置struts.xmlapplicationContext-action.xml applicationContext-service.xmlapplicationContext-.xml3.数据表格控件 datagrid 使用Flex 、 ExtJS 、 EasyUI 几乎所有前端 UI 框架都提供 数据表格数据表格 ,实现数据显示、分页、排序、查询3.1.Datagrid可以对任何 HTML 表格数据使用:class=”easyui-datagrid” 为每个标题列设置 field 属性常用属性

8、分析:singleSelect : 单选效果rownumbers : 显示行号pagination : 显示分页工具条3.2.Datagrid 加载数据 (json 格式)3.3.使用 JavaScript 创建 Datagrid ()通过 toolbar 定义按钮, columns 定义表头列信息,url 加载数据3.4. 分页列表查询3.4.1.分页查询分析数据表格控件,使用有两种方式第一种:第二种:对HTML Table 数据 应用表格效果对 table 应用 datagrid ,数据是绑定服务器返回 json 格式数据数据格式:key:value, key:value ,key:val

9、ue, key:value ,问题: 使用上面数据格式,可以将数据显示出来,不能够解决分页显示需要实际显示数据数量 和总数数量 是不同的total 代表录数, rows 代表当页数据3.4.2.设计通用分页查询组件请求参数 :page 当前页码, rows 每页多少条响应参数:total录数 和 rows 当页数据新建 cn./*.page 存放分页组件封装 分页查询 请求参数*author seawind*/public classprivate privatePageRequestBean page; / 当前页码rows; / 每页条数/ 保存查询条件private DetachedCr

10、iteria detachedCriteria;/面象条件查询备注: 如果不使用 hibernate,必须要动态拼接 SQL/*封装分页查询 结果数据*author seawind*/ SuppressWarnings(all)public class PageResponseBean privaprivaong total; /录数 ist rows; / 当前页数据3.4.3.实现分页列表查询Ajax 功能开发步骤:1、 发起请求修改 datagrid 控件,绑定 url 参数url : $pageContext.reqontextPath/standard_pageQuery.actio

11、n,(备注: datagrid 数据请求,在页面加载时 自动发出)2、 服务器处理数据,获得数据结果在 StandardAction 中添加 pageQuery 的查询方法问题: 如何StandardAction 接收 page 和rows 查询参数/ 属性驱动privateprivatepage;rows;public void setPage(this.page = page;page) public void setRows(this.rows = rows;rows) 将分页查询参数,封装 PageRequestBean 对象中!查询录数DetachedCriteria criteri

12、a = DetachedCriteria.forClass(Standard.class)生成语句 : select * from standard ; 查询所有列数据进行投影 : criteria.setProjections(Projections.rowCount();生成语句 : select count(*) from standard ; 查询录数3、 将服务器数据结果,转换 json 格式 返回/ 将分页查询结果数据,转换 json格式 ActionContext.getContext().put(pageResponseBean, pageResponseBean);在 str

13、uts.xml 配置结果数据需要定制哪些属性转换为 json 返回pageResponseBeantotal, rowsd+.id, rowsd+.name, rowsd+.minweight, rowsd+.maxweight, rowsd+.updatetime,rowsd+.user.username,rowsd+.user.sion4、 使用firebug 抓包调试问题:.apache.struts2.json.JSONException:.apache.struts2.json.JSONException:.hibernacn.azyInitializationException:

14、failed to lazily initialize a collection of role:.bc.Standard.staffs, no sesInViewor seswas closed解决: OpenSes配置 web.xml!- OpenSesInView -OpenSesInView.springframework.orm.hibernate3.support.OpenSessionInViewFilterOpenSesInView/*已经正确返回 结果数据3.4.4.自定义列属性 formatter 控制具体显示Jquery EASY UI 的 datagrid 在指定 fi

15、eld ,只能和返回对象之间属性匹配,不能和返回对象关联对象的属性匹配 , 关联数据复杂属性无法显示 ,可以自定义 formatter4.收派标准数据修改传统的修改实现: 先根据 id 查询,回显form 数据,再进行修改使用 datagrid ,所有数据 缓存到客户端浏览器,以对象方式保存 ,点击修改时,无需查询服务器,直接从 datagrid 获取数据,回显到 form 表单中 !4.1. 数据表格双击事件,点击行数据,进行修改/ 修改数据function doDblClickRow(rowIndex, rowData) / rowIndex行号,rowData双击行数据/ form回显$

16、().val(rowD);$(#minweight).numberbox(setValue, rowData.minweight);$(#maxweight).numberbox(setValue, rowData.maxweight);$(#id).val(rowData.id) ;/ 弹出修改窗口$(#addStandardWindow).window(open);4.2. 新增和修改功能使用 同一个 Action 的同一个方法使用 saveOrUpdate 方法Batch update returned unexpected row count from update 0; actual row count: 0; expected: 1问题原因: 新增数据,id 有值 ,是空串”空串对于 saveOrUpdate 方法,Hibernate 认为有值,执行 update 操作!解决方案: Hibernate 认为空串是无值在 Standard.hbm.xml 添加 unsaved-value 属性Hibernate 认为 null 或者 空串,都是临时对象,执行 save 操作 !5.收派标准

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论