免费预览已结束,剩余45页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本本 科科 毕毕 业业 论论 文文 嵌入式零售终端机嵌入式零售终端机 网上交易子系统的设计与实现网上交易子系统的设计与实现 The Design and Implement of Online Trading Subsystem of Embedded Retail Terminal 姓 名: 学 号: 学 院:软件学院 系:软件工程 专 业:软件工程 年 级: 指导教师: 年年 月月 I 摘摘 要要 本课题的设计主要是为了实现嵌入式零售终端机的网上交易功能,并提供 额外接口,在单据生成并确认收货后,提交数据到库存管理模块。网上交易子 系统又可划分为三个子模块,预订单管理,订单管理以及历史数据查询。该系 统的主要职责是为了给零售户提供一个快捷稳定的终端,方便零售户在有网络 资源的情况下可以随时在网上进行订单的一系列操作。 技术实现主要依赖于 Android 系统上基于 java 语言的开发,包括 Android 内 置的 SDK,内置的 SQLite 数据库,数据套接字 DataGramSocket 以及数据报包 DataGramPacket 以支持网络层的开发。采用的 UDP 协议的原因主要是不管接收 方是否处于活跃的状态,服务端可以随时发送数据给客户端,增加了系统网络 层的灵活性。Android 作为开源的一个系统,它方便程序员进行应用程序的开发, 方便程序员移入移出应用程序,方便了后期系统软件的扩展。 预期达到的目标是实现网上交易系统的所有功能,包括订单的增添、查询 及删除,方便零售户对订单进行管理。此外,包括与其他子系统模块进行集成, 能快速、稳定、安全地运行在零售终端机上。 关键词:关键词:嵌入式零售终端机;网上交易;Android;SQLite II Abstract The purpose of this subject is to realize the function of Online Trading in Embedded Retail Terminal and provides an interface to transfer the data to the Stock Control Model after creating orders and receiving products.Online Trading Subsytem contains three submodule,preorder management,order management and historical data quering.The responsibility of the subsystem is to provide retail dealer a fast and steady teminal to handle orders online anytime. Technology reliazation depends on java programming in Android,which contains internal SDK and SQLite, and DatagramSocket as well as DataGramPacket for supporting the network.The reason why we choose UDP protocol is that no matter receiving terminal is active or not,sending terminal will sending data to reciever anytime,which makes system more flexible.As an opensource system,it is conveniently for programmer developing,transfering applications,and the extention of the system. The prospective targets is to realize all the features of Online Trading Subsystem,including addition and deletion of orders,as well as query and modification of orders,which is much convinient for users to handle.In addition,it is certain that after integrating with other subsystems,it will run on the terminal quickly and stably in security. Key words: Embedded Retail Terminal;Online Trading;Android;SQLite III 目目 录录 第一章第一章 绪论绪论.1 1.11.1 引言引言.1 1.21.2 论文组织结构论文组织结构.2 第二章第二章 系统相关技术概述系统相关技术概述.3 2.12.1 Android 简介简介3 2.1.1 平台功能.3 2.1.2 框架组成.3 2.22.2 SQLite .5 2.2.1 SQLite 简介.5 2.2.2 SQLite 操作的组件类.6 2.32.3 基于基于 Android 的的 MVC 架构架构.6 2.42.4 本章小结本章小结6 第三章第三章 系统概要设计系统概要设计.7 3.13.1 需求分析需求分析7 3.23.2 系统模块划分系统模块划分.7 3.33.3 子系统模块划分子系统模块划分.7 3.43.4 系统用例图系统用例图.9 3.53.5 数据库设计数据库设计.9 3.63.6 本章小结本章小结.12 第四章第四章 系统设计与实系统设计与实现现.13 4.14.1 系统概述及功能系统概述及功能.13 4.1.1 开发背景与系统目标13 4.1.2 系统业务流程图13 4.24.2 系统的框架设计系统的框架设计.15 4.24.2 子模块实现子模块实现.16 4.3.1 主入口实现.16 4.3.2 预订单及订单管理的实现.16 4.3.3 烟草管理模块的实现25 4.44.4 表操作表操作.26 IV 4.54.5 本章小结本章小结27 第五章第五章 系统测试及运行结果系统测试及运行结果.28 5.15.1 系统测试系统测试.28 5.1.1 测试计划.28 5.1.2 测试用例.30 5.25.2 运行结运行结果果33 5.2.1 子系统主界面的运行结果.33 5.2.2 烟草管理的运行结果33 5.2.3 增加订单的运行结果34 5.2.4 订单管理的运行结果35 5.35.3 本章小本章小结结39 第六章第六章 总结与展望总结与展望.40 6.16.1 论文总结论文总结.40 6.26.2 工作展望工作展望.40 参考文献参考文献.41 致致 谢谢.42 V Contents Chapter 1 Preface1 1.1 Introduction1 1.2 The structure of this paper .2 Chapter 2 System related technologies outline.3 2.1 The summary of Android3 2.1.1 Function of platform3 2.1.2 Structure.3 2.2 SQLite .5 2.2.1 The summary of SQLite.5 2.2.2 The component class of SQLite6 2.3 MVC based on Android.6 2.4 Summary.6 Chapter 3 Preliminary design of System.7 3.1 Demand analysis.7 3.2 The division of System.7 3.3 The division of SubSystem 7 3.4 Usecase of System.9 3.5 Database design9 3.6 Summary.12 Chapter 4 Design and Implement of System.13 4.1 System profiler and function.13 4.1.1 Development background and overall objective.13 4.1.2 FlowChart of System.13 4.2 System architecture .15 4.3 Implement of SubSytem16 4.3.1 Implement of main page.16 4.3.2 Implement of Preorder and Order Module.16 4.3.3 Implement of Tobacco Management Module25 4.4 Operation of Tables .26 VI 4.5 Summary.27 Chapter 5 System testing and the running results .28 5.1 System testion.28 5.1.1 Testing plan.28 5.1.2 Testing case.30 5.2 Running results 33 5.2.1 Main page running results33 5.2.2 Tobacco Management running results.33 5.2.3 Adding order running results.34 5.2.4 Order Management running results35 5.3 Summary.39 Chapter 6 Summary and future works .40 6.1 Summary of this paper40 6.2 Improvements and future works40 References 41 Acknowledgements42 第一章 绪论 1 第一章第一章 绪论绪论 1.11.1 引言引言 随着网络信息化的普及,市场需求的不断变动,烟草行业的营销体系也逐 渐在调整。烟草局局长前年在全省销售网络建设南平现场会上提出了建设面向 市场、面向消费者的营销体系。其中重要的一点就是深化终端建设,提升网络 功能。要求我们更加注重零售客户资源的开发利用,深入挖掘终端网络的价值。 要建立系统完善的终端资源数据库,全面掌握零售客户的各类商业信息,完善 终端资源基础信息。 基于当前的烟草行业背景,我们的项目嵌入式零售终端机系统也 孕育而生。嵌入式零售终端机通过采集零售户详细过程信息,吸收消费者 VIP 会员,对零售客户和消费者的信息进行统计和分析,有利于烟草企业规范订单 采集流程,提高市场把握能力,并最终实现按订单组织货源。 零售户可以通过终端管理,使烟草商业企业与零售户之间不仅仅是单独的 卷烟交易关系,更是一种服务与被服务,使双方建立起相互依赖和长久合作的 供需关系,在保证商业企业拥有稳定的卷烟销售渠道的同时有效的控制零售客 户的规范经营。在服务的同时,可深入乡镇各零售户调查卷烟市场行情,广泛 采集销售环节的意见和消费者的需求,把收集到的信息及时反馈到决策部门, 一方面有利于卷烟工商业企业做好品牌培育工作;另一方面也可以更好地帮零 售客户做好销售预测,提高企业对市场的需求预测能力。 此外,通过零售终端的建设,实施统一形象,统一服务,统一管理等手段 为卷烟零售客户树立规范经营榜样,让消费者感受到零售客户和商业企业的诚 信服务态度,树立零售客户的社会形象。 为了实现零售终端机的功能,项目小组首先进行了需求分析,数据库设计, 并根据系统模块进行划分,本人负责的模块是网上交易子系统。网上交易系统 作为该系统的子系统,它需要实现的总体目标包括以下几点: 一、零售户可以实时地新增预订单、订单,并发送单据到服务端进 行审核验证,审核通过后单据自动转换单据状态。 二、零售户可以随时对订单进行管理,包括对预订单、订单的修改 嵌入式零售终端机网上交易子系统的设计与实现 2 及删除,以及对订单进行收货验证,并保存单据到进货单,供零售 户进行库存管理。 三、零售户可以随时查看服务端所提供的烟草信息,同步更新最新 数据。 1.21.2 论文组织结构论文组织结构 本论文共分为六章,具体安排如下: 第一章,介绍了烟草的行业背景,指出了基于该行业背景所运营的项目目标及 项目意义,提出了该项目系统的子系统网上交易模块的总体目标。 第二章,介绍了项目所涉及到的相关技术。 第三章,为嵌入式终端机系统总体设计,介绍了系统的整体结构以及系统的模 块划分。 第四章,为嵌入式终端机系统详细设计,介绍了网上交易子系统的具体实现。 第五章,为系统测试及运行结果,提出了测试计划并且展示出运行结果。 第六章,总结了毕业设计所做的工作,并且指明了下一步的计划。 第二章 系统相关技术概述 3 第二章第二章 系统相关技术概述系统相关技术概述 2.12.1 Android 简介简介 2.1.12.1.1 平台功能平台功能 Android 平台下层结构的核心为嵌入式 Linux2.6 操作系统,中间是 Google 为 Android 开发的 Libraries(函数库)及 Android Runtime(核心库、Dalvik 虚 拟机) ,上层为 Application Framework(应用程序框架)1。由此来开发各种不 同的应用程序,如图所示: 图图 2-12-1:Android 框架框架 2.1.22.1.2 框架组成框架组成 Android 框架共由 5 部分组成2。分别是: Applications(应用程序层) ; Application Framework(应用程序框架) ; 嵌入式零售终端机网上交易子系统的设计与实现 4 Android Runtime(Android 执行环境,包括 Android Core Libraries 和 Dalvik Virtual Machine) ; Libraries(函数库) ; Linux Kernel(Linux 内核) 。 下面首先讨论 Applications(应用程序层)及 Application Framework(应用程序 框架) ,然后讨论 Libraries(函数库) 、Android Runtime(Android 执行环境) 及 Linux Kernel(Linux 内核) 。 2.1.2.12.1.2.1 Android 应用程序层应用程序层 Android 会同一系列核心应用程序包一起发布,该应用程序包包括 E-mail 客 户端、SMS 短消息程序、日历、地图、浏览器及联系人管理程序等。所有的应 用程序都是使用 Java 语言编写的,如图 2-1“APPLICATIONS”一栏所示。 2.1.2.22.1.2.2 Android 应用框架应用框架 开发人员可以完全访问 Android 核心应用程序所使用的 API 框架。该应用 程序的架构设计简化了组建的重用;任何一个应用程序都可以发布它的功能块, 并且任何其他的应用程序都可以使用其他所发布的功能块(不过要遵循框架的 安全性限制) 。同样,该应用程序重用机制也可以使用户方便地替换程序组件。 隐藏在每个应用后面的是一系列的服务和系统,其中包括以下几种: 丰富而又可扩展的视图(Views)可以用来构建应用程序,包括列表 (Lists) 、网格(Grids) 、文本框(Text Boxex)及按钮(Buttons)等; 内容提供器(Content Providers)使得应用程序可以访问另一个应用程 序的数据, (如联系人数据库) ,或者共享它们自己的数据; 资源管理器(Resource Manager)提供非代码资源的访问,如本地字符 串、图形和布局文件(Layout Files) ; 通知管理器(Notification Manager)使得应用程序可以在状态栏中显示 自定义的提示信息; 活动管理器(Activity Manager)用来管理应用程序生命周期提供常用的 第二章 系统相关技术概述 5 导航回退功能。 2.1.2.32.1.2.3 Android 运行库运行库 Android 包括了一个核心库,该核心库提供了 Java 编程语言核心库的大多 数功能。 Dalvik 虚拟机是一种寄存器形态的虚拟机,缩写为 DVM。虚拟机可运行于 Java 平台应用程序,这些应用程序被转换成紧凑的 Dalvik 可执行格式(.dex) , 该格式适合内存和处理器速度受限的系统。为了满足低内存要求而不断优化, Dalvik 虚拟机有一些独特的、有别于其他标准虚拟机的如下特征: 虚拟机很小,使用的空间也小; Dalvik 没有 JT 编译器; 常量池已被修改为只使用 32 位的索引,以简化解释器; 使用自己的字节码,而非 Java 字节码。 2.1.2.42.1.2.4 Android 程序库程序库 Android 包含一些 C/C+库,这些库能被 Android 系统中不同的组件使用。 它们通通过 Android 应用程序框架为开发者提供服务。 2.1.2.52.1.2.5 Android 内核内核 Android 的核心服务依赖于 Linux2.6 内核,如安全性、内存管理、进程管理、 网络协议栈和驱动模型。Linux 内核也同时作为硬件和软件之间的抽象层,如 图 2-1“LINUX KERNEL”一栏所示。 2.22.2 SQLite 2.2.12.2.1 SQLite 简介简介 SQLite 是一款轻型的数据库,是遵守 ACID 的关联式数据库管理系统,它 的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用 嵌入式零售终端机网上交易子系统的设计与实现 6 资源 非常的低,在嵌入式设备中,可能只需要几百 K 的内存就够了3。它能够 支持 Windows/Linux/Unix 等等主流的操作系统,同时能够跟很多程序语言 相 结合,比如 Tcl、PHP、Java 等,还有 ODBC 接口,同样比起 Mysql、PostgreSQL 这两款开源世界著名的数据库管理系统来讲,它的处理速 度比他们都快。 2.2.22.2.2 SQLite 操作的组件类操作的组件类 Android SDK 提供了一些类来表示 SQLite 的行、操作返回值等。 ContentValues 类用于表示数据库的行,一个 ContentValues 对象代表了数据 库的一行数据,其中包含了各列的数据值。在向 SQLite 数据库插入数据时, ContentValues 对象提供了列名和数据的映射关系。 Cursor 类用于操作数据库查询结果,Android 提供了在 Activity 中管理 Cursor 资源的机制。应用程序的 Activity 提供了 startManagingCursor 方法以将 Cursor 的生命周期集成到 Activity 的生命周期管理中。当完成 Cursor 的使用后, 可以通过调用 Activity 提供的 stopManagingCursor 来解除集成关系。 2.32.3 基于基于 Android 的的 MVC 架构架构 前面介绍了 Android 的应用程序框架,而该项目就是基于此框架开发而成 的。基于 MVC 原理,我们又可对此框架进行架构,按照 MVC 机制把架构分为 三层,即 Model、View 和 Controller4。 在 View 层,Android 提供了大量丰富的视图可以用来构建应用程序,每个 视图都对应一个 Activity。 在 Model 层,我们自定义了业务逻辑类,此外 Android 提供了 Content Provider 使得程序可以访问不同应用程序的数据或者共享数据。 在 Controller 层,Android 使用 Activity 来管理应用程序生命周期。 2.42.4 本章小结本章小结 本章主要介绍了 Android 系统的平台功能,框架组成,以及关系型数据库 SQLite。并着重介绍了 Android 框架的各个组成部分,以 Android 为基础而设计 的 MVC 架构。 第三章 系统概要设计 7 接下来介绍网上交易子系统的概要设计。 第三章第三章 系统概要设计系统概要设计 3.13.1 需求分析需求分析 网上交易子系统为零售户提供一个安全、快速、稳定的平台,使零售可以 实时地通过网络进行网上订单。在本地终端机可以对历史单据进行查询以及修 改等操作。 3.23.2 系统模块划分系统模块划分 下图为嵌入式零售终端机系统总模块,红色方框区域为本人负责模块。 图图 3-13-1:系统总模块划分:系统总模块划分 嵌入式零售终端机网上交易子系统的设计与实现 8 3.33.3 子系统模块划分子系统模块划分 该子系统包括三个子模块,如下图所示 图图 3-23-2:网上交易子系统模块划分图:网上交易子系统模块划分图 预订单管理:预订单管理为用户提供更方便的订货自由度,零售户 可以根据实际需要提前预定下一次的商品以及需求。预订单只提供 用户订货的意向,零售户可以输入所预购的商品和需求量,该预订 单并不是最终的客户订单;预订单只有在订货日当天通过系统自动 逻审,才能转换成订单;转换后的订单的商品的订单量不一定就是 零售户制定预订单时所输入的需求量;转换之前,预订单可以任意 修改,转换完毕以后,预订单不可再修改。 订单管理:订单管理是零售户订货的模块。零售户只有在订货当日 方可订货,而且一天只能订货一单,生成的订单与电访中心同步。 零售户订货完毕以后,电访中心立即可以查询到零售户的订货情况。 零售户订货完毕以后,在电访未提交之前可以自由修改;也可以打 800 电话,通过电访员修改。零售户通过 800 电话订购的订单,也 可以通过网上订货系统进行修改,两边的数据时时同步。 第三章 系统概要设计 9 历史单据查询:销售数据查询模块提供零售户最近三个月内单据明 细的查询,并提供所查单据各个品牌的汇总。 3.43.4 系统用例图系统用例图 下面为该子系统的用例图5,该图显示了普通管理员和系统管理员在网上交 易子系统中的不同权限。普通管理员没有权限进行预订单、订单的删除,系统 管理员才有权限。 图图 3-33-3:系统用例图:系统用例图 3.53.5 数据库设计数据库设计 下图为本模块的 E-R 图6, 嵌入式零售终端机网上交易子系统的设计与实现 10 FK_ORDERDET_REFERENCE_PREORDER PreOrderId Id FK_ORDERDET_REFERENCE_ORDERINF OrderId Id FK_PREORDER_REFERENCE_USERINFO FK_ORDERINF_REFERENCE_USERINFO FK_PREORDER_REFERENCE_CONFIG FK_ORDERINF_REFERENCE_CONFIG FK_ORDERDET_REFERENCE_GOODS PREORDERINFO ID ORDERID AMOUNT DATE USERNAME AGENCYID DESCRIPTION STATUS integer varchar(20) float date varchar(20) integer text char(1) ORDERINFO ID ORDERID AMOUNT DATE USERNAME AGENCYID DESCRIPTION STAUTS RECIEVE integer varchar(20) float date varchar(20) integer text char(1) char(1) ORDERDETAIL ID PREORDERID ORDERID BRANDCODE PRICE BRANDCOUNT FORMAT AMOUNT integer integer integer integer float integer varchar(20) float USERINFO ID USERNAME PASSWORD PRIV STATUS ATTEPT_COUNT integer varchar(0) varchar(0) integer integer integer CONFIG ID CONFIG_CATEGORY CONFIG_NAME CONFIG_DESC CONFIG_VALUE CONFIG_CODE integer varchar(0) varchar(0) varchar(0) varchar(0) integer GOODS ID KINDS_ID MAIN_ID GOODSCODE GOODSNAME GOODSFORMAT integer integer integer varchar(20) varchar(20) varchar(20) 图图 3-43-4:数据库:数据库 E-RE-R 图图 下表为本模块所涉及到的数据库表及功能: 表表 3-13-1 数据库表数据库表 模块模块表名表名功能说明功能说明 PREORDERINFO 预订单总表,包含 订单细表,即烟草 种类的名称,价格, 数量,金额等信息。 ORDERINFO 订单总表,包含订 单细表,即烟草种 类的名称,价格, 数量,金额等信息。 网上交易子系统 ORDERDETAIL 订单细表,即商品 信息 其他子系统USERS 用户表,包括不同 角色的用户 第三章 系统概要设计 11 CONFIG 全局表,包含机构 的具体信息 GOODS 商品信息表 数据库表如下: 表表 3-2 预订单总表(预订单总表(PreOrderInfo) 字段名称数据类型可否为空约束条件注释 IdInteger否关键字,自动 编号 orderIdInteger否预订单总单号 AmountInteger否金额 DateTimestamp否订单日期 UserNameVarchar(20)否外键,用户表开单人员 AgencyIdInteger是外键,全局变 量表 机构代码 DescriptionText是备注 StatusChar否是否转换为订 单 表表 3-3 订单总表(订单总表(OrderInfo) 字段名称数据类型可否为空约束条件注释 IdInteger否关键字,自动 编号 orderIdInteger否订单总单号 AmountInteger否金额 DateTimestamp否订单日期 UserNameVarchar(20)否外键,用户表开单人员 AgencyIdInteger是外键,全局变 量表 机构代码 DescriptionText是备注 StatusChar否是否电访提交 ReceiveChar否是否收货 表表 3-4 订单细表(订单细表(OrderDetail) 字段名称数据类型可否为空约束条件注释 IdInteger否关键字,自动 嵌入式零售终端机网上交易子系统的设计与实现 12 编号 PreOrderIdInteger是预订单号 OrderIdInteger是订单号 BrandCodeVarchar(20)否外键,商品表商品代码 PriceFloat否单价 BrandCountInteger否数量 FormatVarchar(20)是规格 AmountFloat是金额 3.63.6 本章小结本章小结 本章主要介绍了本人负责的模块,并阐述了该模块下各个子模块的功能。 接下来介绍该子系统的设计与实现。 第四章 系统设计与实现 13 第四章第四章 系统设计与实现系统设计与实现 4.14.1 系统概述及功能系统概述及功能 4.1.14.1.1 开发背景开发背景与系统目标与系统目标 毕业设计项目为嵌入式零售终端机网上交易子系统中的基于 Android 系 统的开发,是嵌入式零售终端机系统的子项目。该项目针对当前的烟草行 业背景而开发供零售户方便快速使用的终端机系统,适应当前的烟草行业的营 销体系与建设目标。该子系统的主要目标在第一章已有体现,在此不多重复。 4.1.24.1.2 系统业务流程图系统业务流程图 新增订 单 输入许可证号 及密码,并插 入USB KEY 身份是否合 法 是新增订单 新增品牌 否 是否可以订 货 是 结束 否 输入真实需求 量 是否还要添 加品牌 是 提交提交 是否通过审 核 订货成功 是 修改订单 否 是否修改 否 保存/提交 否 保存 保存 是 是否新增订 单但未提交 是 否 图图 4-14-1:新增订单:新增订单 嵌入式零售终端机网上交易子系统的设计与实现 14 零售户新增订单并提交服务端进行半实时化处理。当用户选择订单类型为 “预订单” ,并且由服务端审核通过后,可以转换成订单。订单可以通过电访 提交,并正式生成,服务端根据该订单进行发货处理,此功能点涉及到网络操 作。 查询/修 改/删除 订单 输入许可证号 及密码,并插 入USB KEY 身份是否合 法 是输入查询条件 查询 否 结束 修改 否 修改 是否进行其 他操作 是 修改/删除订 单 是否可修改 是 否 是否可删除 删除 是 否删除 图图 4-24-2:查询、修改、删除订单:查询、修改、删除订单 第四章 系统设计与实现 15 零售户由本机进行查询、修改、删除订单并提交服务端进行半实时化处理。 在修改之后可以进行保存/提交操作,具体流程与新增订单中的流程相同。此功 能点涉及到网络操作。 4.24.2 系统的框架设计系统的框架设计 在第二章系统技术概述中我们提出了以 Android 为基础的 MVC 架构,项目 正是以此为架构进行开发7。 如下表所示: 表表 4-14-1 架构设计表架构设计表 设计设计 PreOrderContentProvider预订单总表类,实现与数据库的交互 OrderContentProvider订单总表类,实现与数据库的交互 持久层持久层 OrderDetailContentProvider订单细表,即具体包含的商品及信息, 实现与数据库的交互 OptionActivity子系统主入口,供零售户选择子功能 模块 AddOrderActivity增加预订单,订单,并同步到数据库 EditOrderActivity修改预订单,订单,并同步到数据库 QueryOrderActicity查询预订单,订单,并通过 intent 触 发 EditOrderActivity 对订单进行修改, 此外可以删除指定的订单 业务层业务层 TobaccoActivity获取从服务端传来的烟草信息,并同 步到数据库 Onlinemain.xml子系统主入口,获取零售户的操作 Order.xml,Order_item.xml增加,修改订单主界面,获取零售户 的操作 Query.xml,Grid_item.xml查询订单主界面,获取零售户的操作 展示层展示层 Tobacco.xml,Tobacco_item.xm l 烟草信息主界面 嵌入式零售终端机网上交易子系统的设计与实现 16 4.24.2 子模块实现子模块实现 4.3.14.3.1 主入口实现主入口实现 当零售户点击进入网上交易子系统模块时,系统会判断该用户是否有权限, 有权限继续操作,否则返回,下图为序列图: 件 件 件 件 件 件 件 件 件 件 件 件 件 件 件 件 件 件 件 件 件 件 件 件 件 件 件 件 件 件 件 件 件 件 件 件 件 图图 4-34-3:主入口序列图:主入口序列图 4.3.24.3.2 预订单及订单管理的实现预订单及订单管理的实现 由于预订单与订单的数据库表设计几乎一致,业务逻辑也基本相同,在实 现这两个子模块的时候为了不出现系统上功能的重复,把这两个模块按照具体 的业务逻辑来划分,即“增加订单”及“订单管理” 。 第四章 系统设计与实现 17 4.3.2.14.3.2.1 增加订单的实现增加订单的实现 零售户在增加订单的时候,可以选择订单类型,预订单或者订单。当零售 户选择预订单的时候,订单日期必须选择当天日期或者之后日期。当零售户选 择订单的时候,订单日期将设为不可编辑,并自动查找数据库当天是否已新增 订单,如果没有可以继续操作并且设置值为当天日期,否则跳出提示信息通知 零售户不可操作。当零售户添加完相关数据后,点击提交。 下图为该功能的序列图: 件 件 件 件 件 件 件 件 件 件 件 件 件 件 件 件 件 件 件 件 件 件 件 件 件 件 件 件 件 件 件 件 件 件 件 件件 件 件件 件 件 件 件 件 件 件 件 件 件 件 件 件 件 件 件 件 件 件 件 件 件 件 件 件 件 件 件 件 件 件 件 件 图图 4-44-4:增加订单序列图:增加订单序列图 类图如下: 嵌入式零售终端机网上交易子系统的设计与实现 18 AddOrderActivity - - - - - - - - - onCreate () fillBrandSpinner () fillAgencyText () initView () setListeners () isValidDate () isInteger () AddOrder () AddOrderDetail () : void : void : void : void : void : boolean : boolean : Uri : Uri OrderProvider - - - DATABASE_NAME DATABASE_TABLE DATABASE_CREATE : String : String : String + + + + + + delete () getType () insert () onCreate () query () update () : int : String : Uri : boolean : Cursor : int Order - - - - - - - - - - CONTENT_URI KEY_ID KEY_ORDERID KEY_DATE KEY_USERNAME KEY_AMOUNT KEY_AGENCYID KEY_DESC KEY_STATUS KEY_RECIEVE : Uri : String : String : String : String : String : String : String : String : String PreOrder - - - - - - - - - CONTENT_URI KEY_ID KEY_ORDERID KEY_DATE KEY_USERNAME KEY_AMOUNT KEY_AGENCYID KEY_DESC KEY_STATUS : Uri : String : String : String : String : String : String : String : String PreOrderProvider - - - DATABASE_NAME DATABASE_TABLE DATABASE_CREATE : String : String : String + + + + + + delete () getType () insert () onCreate () query () update () : int : String : Uri : boolean : Cursor : int OrderDetailProvider - - - DATABASE_NAME DATABASE_TABLE DATABASE_CREATE : String : String : String + + + + + + delete () getType () insert () onCreate () query () update () : int : String : Uri : boolean : Cursor : int OrderDetail - - - - - - - - - CONTENT_URI KEY_ID KEY_PREORDERID KEY_ORDERID KEY_BRANDCODE KEY_BRANDCOUNT KEY_FORMAT KEY_PRICE KEY_AMOUNT : Uri : String : String : String : String : String : String : String : String 图图 4-54-5:增加订单模块类图:增加订单模块类图 在 AddOrderActivity 中,首先调用 private boolean isValidDate() return true; private boolean isInteger(String number) return true; 两个函数对输入的数据进行检验,判断日期是否符合条件,判断输入的商品数 量是否为整数。确认无误后,执行 private Uri AddOrder(Uri uriType, String orderId, String date, String amount, String agencyId, String userName, String desc, String status) 第四章 系统设计与实现 19 Uri uri = getContentResolver().insert(uriType, values); return uri; private Uri addOrderDetail(String brand, String format, String price, String count, String amount) Uri uri = getContentResolver().insert(OrderDetail.CONTENT_URI, values); return uri; 将预订单或者订单总表,订单细表同步到数据库。并且通过网络传输把数据传 输到服务器端进行审核。getContentResolver()可以通过指定的 Uri 获取与之对应 的 ContentProvider,从而进行对数据库的操作。 4.3.2.24.3.2.2 订单管理查询的实现订单管理查询的实现 订单管理模块同时也集成了预订单与订单两个子模块的查询,修改,删除 等具体功能。零售户进入该模块时,订单类型默认为预订单,并且为零售户列 出所有的预订单,当零售户需要转换订单类型时,只需点击下拉框进行选择。 零售户可以通过在查询栏输入单据号或者开始时间、结束时间获取所需的正确 数据。 下图为该序列图: 图图 4-64-6:查询订单序列图:查询订单序列图 嵌入式零售终端机网上交易子系统的设计与实现 20 类图如下: queryOrderActivity - - - - - - - - + + + onCreate () fillDataMaps () dillDetailDataMaps () initView () setListeners () setListAdapter () setDetailListAdapter () onMenuItemselected () openRecieveDialog () openDelDialog () acitonForEditMenuItem () : void : void : void : void : void : void : void : void : void : void : void OrderProvider - - - DATABASE_NAME DATABASE_TABLE DATABASE_CREATE : String : String : String + + + + + + delete () getType () insert () onCreate () query () update () : int : String : Uri : boolean : Cursor : int Order - - - - - - - - - - CONTENT_URI KEY_ID KEY_ORDERID KEY_DATE KEY_USERNAME KEY_AMOUNT KEY_AGENCYID KEY_DESC KEY_STATUS KEY_RECIEVE : Uri : String : String : String : String : String : String : String : String : String PreOrder - - - - - - - - - CONTENT_URI KEY_ID KEY_ORDERID KEY_DATE KEY_USERNAME KEY_AMOUNT KEY_AGENCYID KEY_DESC KEY_STATUS : Uri : String : String : String : String : String : String : String : String PreOrderProvider - - - DATABASE_NAME DATABASE_TABLE DATABASE_CREATE : String : String : String + + + + + + delete () getType () insert () onCreate () query () update () : int : String : Uri : boolean : Cursor : int OrderDetailProvider - - - DATABASE_NAME DATABASE_TABLE DATABASE_CREATE : String : String : String + + + + + + delete () getType () insert () onCreate () query () update () : int : String : Uri : boolean : Cursor : int OrderDetail - - - - - - - - - CONTENT_URI KEY_ID KEY_PREORDERID KEY_ORDERID KEY_BRANDCODE KEY_BRANDCOUNT KEY_FORMAT KEY_PRICE KEY_AMOUNT : Uri : String : String : String : String : String : Stri
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年基本面分析师招聘面试题库及参考答案
- 2025年护理管理研究员招聘面试题库及参考答案
- 2025年操作研究分析师招聘面试题库及参考答案
- 2025年军事专家招聘面试题库及参考答案
- 2025年非营利机构经理招聘面试题库及参考答案
- 2025年现场施工专员招聘面试题库及参考答案
- 2025年公关活动专员招聘面试参考题库及答案
- 2025年医疗健康经理招聘面试题库及参考答案
- 2025年企业资源计划专员招聘面试参考题库及答案
- 2025年流程优化顾问招聘面试参考题库及答案
- 高中英语新课标3000词汇表(新高考)
- 宣传物料印刷合同范本3篇
- 2025年黑龙江省交通投资集团招聘笔试参考题库含答案解析
- 医院2025年人才工作总结和2025年工作计划
- 初中生心理健康家长会
- 手术室与科室沟通内容
- 【MOOC】健康传播:基础与应用-暨南大学 中国大学慕课MOOC答案
- 幼儿园课件-中班科学课件:《种子在哪里》
- 人音版七年级音乐上册教案全册
- 基于人工智能的供应链物流优化合同
- 20以内的加法口算练习题4000题 205
评论
0/150
提交评论