随着信息技术与互联网技术的高速发展,特别是李克强总理在政府工作报告中提出,制定“互联网+”,推动信息化社会,信息技术正在各个行业被广泛运用,物流行业作为服务型行业,信息技术对其的变革正变得越来越大。物流行业所处的竞争环境正变得越来越激烈。钢铁物流行业正从过去单一的运输企业,向功能完善、管理严格的物流企业过渡。在物流行业中,提高效率、加强管理,正成为各个企业亟需解决的难题。物流行业日常人员繁多,运作的开销巨大,且项目很多。如何有效的记录和跟踪每笔运单,并将责任细化到个人,是企业非常关心的问题。在对每单业务的成本和收益了解之后,才能充分掌握企业的运转状况。作为服务型行业,客户的满意度是衡量一个企业服务质量的重要标志之一。在接收到客户的委托后,实时反馈进度,按时高效地完成任务,是提升客户满意度的重要方式。只有将先进的互联网技术融入物流行业,才能帮助企业高效率、低成本的运营日常业务,最终达成和客户的共赢。物流行业纷繁复杂,对承运商的管理是非常重要的环节,如何掌握钢材的运输状况,了解驾驶员的行程,以及货物的状态是企业面临的重要难题。伴随着企业的规模的壮大,业务量的增多,协调上层领导和基层员工之间的关系,需要处理信息量的加大,这些都是企业需要面临的重大挑战。TMS针对钢材货物,可以提供高效实时的物流解决方案,有效降低人工成本、提高工作效率,实现企业日常运作的精细化管理。将顾客的需求作为第一重任,以业务作为主线,加强各个方面的质量管理,对承运商集中管理、实时高效反馈工作进度、优化运输线路,充分体现以服务、高效及诚信来占领市场的策略。 第一章.绪论 本系统的设计是按物流运输管理业务的需求而进行的,利用网络代替传统的信息处理过程。客户只要通过网站就能查看委托货物的信息及进程,并可以实现与运输管理系统进行数据交互、信息的发布和反馈以及对个人事务进行良好管理的运输管理系统。从所用技术层面,本系统采用Java语言作为开发语言,后台数据用oracle10g进行存储。利用Mybatis数据库访问技术实现对数据库的各种操作。 1.1选题的依据及意义 随着经济的持续快速发展,货物运输在工农业生产及日常生活中占据着越来越重要的地位,因此承运方对货物运输的要求也越来越高。货物运输可以按交通工具分为陆、海、空三种,而在陆路运输中又以公路运输及铁路运输为主,公路运输中的主要交通工具是汽车,这就要求运输方能够科学合理的管理汽车及货物运输。南京嘉益仕认为对于个体户,科学的管理汽车及货物运输,会减少浪费,增加其收入;对于一个企业,科学的管理汽车及货物运输,就能够提高运输的效率,自然能提高企业的效益;同样的,对于一个社会,科学管理汽车及货物运输,就会加速经济的发展,促进社会的进步。 信息产业的持续快速发展使得计算机被应用在各个领域,自然有一些大型的企业使用计算机对车辆、货物及货物运输进行管理,计算机的使用给用户带来了许多的好处,但是类似的管理系统要么只适合用于大型企业的车辆管理,要么用于大型配货站的货物管理等,还没有专门面向小配货站、小车队的管理系统。这些小的个体配货站,小车队及个体运输户他们的业务量固定,但是他们的客户总是不确定的,业务非常零乱,在管理上更是非常的混乱。虽然他们都有计算机或有条件购买计算机,但大多数未使用计算机管理车辆及货物运输,针对这种情况,TMS运输管理系统能做到合理管理车辆及货物运输,而且功能要完善,容易学会,使用方便。 TMS运输管理系统能够切实地帮助用户管理车辆及货物运输情况,所以需要了解用户现在和未来一段时间内的使用需求,以确定系统的功能。运输管理系统的主要功能为管理汽车及货物运输。用户特点为在汽车及货物运输上管理混乱,比如个体用户所拥有的虽车辆少,但是业务零乱,配货站规模虽小,可是业务繁多而且零乱。而TMS针对经营钢铁原料/成品的物流企业,提供高效、实用的物流管理解决方案,为接单、调度、运输、跟踪、结算、成本控制等过程提供信息支持。 TMS运输管理系统在供应链协同应用平台中所扮演的角色及与其他系统的联系以及TMS系统的特点 1.2系统特点 TMS运输管理系统可以让运输管理系统化、数字化、规范化、作业标准可视化工作指导尽收各岗眼底。通过动态管理,正负面报导,实现管理方法牵引,减少管理责任不清等现象。让高层管理思路和卓越管理方法在中层、基层得以贯穿实现。实现自我管理运营,把规范制度容入软件来执行到位,再通过企业内部网站体现;三者结合为一体,实现企业人人都是管理者与被管理者。更系统化、数字化、规范化、作业标准可视化工作指导尽收各岗眼底。TMS系统体现了“以提单为物流核心、信息协同为手段”的思想。从信息化的角度满足钢铁物流企业业务需求,为多种的业务模式提供系统支持。本方案将调度、配车、跟踪、结算信息紧密地连为一体,使信息流、物流、资金流有效地整合在一起。此外,TMS能够扩展与其他系统的接口,包括ERP、财务等系统。TMS是目前功能齐全、技术先进的钢铁物流领域解决方案。TMS针对经营钢铁原料/成品的物流企业,提供高效、实用的物流管理解决方案。为接单、调度、运输、跟踪、结算、成本控制等过程提供信息支持。从系统层面支撑钢铁物流企业的日常运营活动,实现钢铁物流企业的精细化管理。 1.3系统开发的目的 降低成本 信息化模式不但提高了企业的工作效率,而且减少了企业的软硬件实施维护成本; 加强绩效管理 监控车辆的运营状况,掌握驾驶员和业务员工作效率,提升公司管理精细水平和客户满意度水平; 提升业务效率 从信息化的角度满足钢材物流企业各方业务需求,为多种的运输方式提供系统支持,提升公司业务效率,有限的时间内完成跟多的工作; 1.4系统研究内容 运输管理系统的定义和特点、运输管理系统的发展过程、运输管理系统的必要性、运输管理系统系统的一般功能; 研究基于Web的系统的开发过程,运用软件工程的基本思想指导系统开发实践; 研究在运输管理系统开发的过程中如何进行数据库设计,包括需求分析、概念结构设计、逻辑结构设计、物理结构设计等步骤; 研究用Java技术开发Web动态交互网页,包括使用Java来实现发送下载、上传文件功能及用SpringMVC+Mybatis+Jsp架构来设计能存取数据库的网页,读取、删除与修改数据的系统。 1.5系统功能 1.5.1系统功能概述 本运输管理系统依托互联网技术,致力于钢铁运输资源的整合与优化,以降低物流成本,管控过程风险,节约车辆资源,降低返程空载率为目标,努力为钢材生产商、交易商、承运打造一个诚信、安全、高效、便捷的钢铁物流运输平台。主要包括:业务操作、车辆成本管理、业务工具、结算管理、基础管理、系统管理等模块。其中业务操作部分是针对客户委托及承运商的流程进行管理,包括:客户委托、提单配载、装车返单管理、返单上传、扫描返单、应收费用、应付费用、投诉管理、价格管理等环节。 1.5.2业务处理范围 业务操作是系统的核心部分,对客户的委托信息进行处理。系统功能主要包括:业务操作、车辆成本管理、结算管理和基础管理等方面。 业务主要包括:(产品树) 表1-1 系统业务表 产品归属 | 产品种类 | 业务操作 | 客户委托 | 提单配载 | 装车返单管理 | 扫码返单 | 返单上传 | 批量扫码返单 | 应收费用 | 应付费用登记 | 投诉管理 | 价格管理 | 车辆成本管理 | 车辆维修 | 油料管理 | 过路费管理 | 结算管理 | 客户结算单 | 车队结算单 | 财务收款 | 开票审核 | 付款审核 | 开票申请 | 结算管理 | 客户管理 | 承运商管理 | 车船管理 | 驾驶员管理 | 地址管理 | 系统管理 | 用户管理 |
|
|
|
|
1.5.3功能结构图 TMS功能结构图 1.5.4专用名词解释 客户委托:客户在线提出需求或者给交易员打电话提出需求。 提单配载:接受客户的委托后,交易员在后台,将客户需要运输的货物分配到承运商。 应收费用:对客户委托的货物进行费用登记,收取客户运输货物的费用。 应付费用:对承运商运输货物费用的登记,支付承运商运输货物的费用。 投诉管理:对客户的投诉或建议进行处理。 扫描返单:承运商完成运输整个过程后,进行装车单号的填写完成。 第二章.系统分析与实现 2.1系统架构 本系统中采用经典MVC三层架构模式,这种架构模式的优点: MVC要求对应用分层,虽然要花费额外的工作,但产品的结构清晰,产品的应用通过模型可以更好地体现。采用合理的设计理念,与相关系统有良好的互联与兼容能力,能适应业务的扩展和变化。此外,这种开发技术,使系统具备安全、可靠和稳定的特性。立足实际业务特性和信息的高效流转,系统具备良好的操作性和实效性,最重要的是应该有多个视图对应一个模型的能力。 这种划分虽然看似多余,但是充分体现了“高内聚低耦合”的设计理念 在目前用户需求的快速变化下,可能有多种方式访问应用的要求具体的框架为SpringMVC,其四大组件中央处理器、处理器映射器、处理器适配器、视图解析器之间的关联如下: 组件的功能如下: DispatcherServlet前端控制器 用户请求到达前端控制器, dispatcherServlet是整个流程控制的中心,由它调用其它组件处理用户的请求,dispatcherServlet的存在降低了组件之间的耦合性。 HandlerMapping:处理器映射器 HandlerMapping负责根据用户请求找到Handler即处理器,springmvc提供了不同的映射器实现不同的映射方式,例如:配置文件方式,实现接口方式,注解方式等。 HandlAdapter:处理器适配器 通过HandlerAdapter对处理器进行执行,这是适配器模式的应用,通过扩展适配器可以对更多类型的处理器进行执行。 ViewResolver:视图解析器 ViewResolver负责将处理结果生成View视图,ViewResolver首先根据逻辑视图名解析成物理视图名即具体的页面地址,再生成View视图对象,最后对View进行渲染将处理结果通过页面展示给用户。 springmvc框架提供了很多的View视图类型,包括:jstlView、freemarkerView、pdfView等。 2.2系统开发环境配置 2.2.1 Hardware (硬件) 硬件环境(访问者):建议用户在允许的情况下采用较高配置硬件资源。 硬件环境(开发者):奔腾4处理器,1G内存,100G磁盘空间。 2.2.2 Software (软件) 访问者:访问者可IE浏览器上来进行浏览。 开发者: 1).Operating System (操作系统):Windows7 2).Tools (工具):eclipse。 3).Database (数据库):Oracle10g 4). Server (服务器) :Tomcat7.0 5).Run Circumstance (运行环境) :安装JDK1.7_0_65支持Java运行。 6).Technic (技术):前台网页的设计采用JSP技术制作,其能够结合JavaBeans技术来使网页中程序的功能得到扩充。实际上jsp程序就是我们所熟知的java程序,html文档和jsp元素的混合体,其中jsp以java为脚本语言,几乎可以说是集成了java的所有的特点。 2.3系统实现 在开发之前首先要考虑语言的选择,Java语言作为当下最流行的语言之一,其跨平台,且上手容易成为首选。要高效率开发必须选择合适的IDE,在IDE方面采用eclipse作为开发工具,因为eclipse软件出过很多版本,而且开源免费。后台数据用oracle10g进行存储。本系统采用的oracle数据库,在性能上由于其他小型数据库,一定程度上保证了数据库的水平程度的增长和垂直方向的增长,并且可以承受一定用户的并发访问。在与数据交互时,采用的是流行的mybatis持久层框架。mybatis并不是一个对象关系映射框架,在表字段很多的情况下,具有一定优势,如果采用Hibernate,这种重量级的框架,由于是面向对象思想设计的,在软件编写过程中很方便,但是,会加大数据库的压力,每次查询的是一个对象的所有字段,会连带着查询出一些不必要的信息。而mybatis可以让开发人员自己编写sql语句,这种细粒度的变成,会很大程度上减少数据库的压力,而且自定义sql语句会让程序实现很复杂的功能。在前端,采用JSP技术,JSP具有跨平台性,一次编写可以在多平台运行此外,它还有很好伸缩性,只需要一个小的jar文件,即可运行,不依赖其他组件,利于开发。而且系统具有很高的实用性,对每一个功能,基本上都提供了查询功能,用户可以很方便的查询到自己需要的信息。在新增时,由于需要填写的信息很多,可以复制原有的一条记录,只需要在原来的基础上进行修改即可,让用户有很好的体验效果修改后进行保存即可提交到数据库进行存储。修改一些记录时,用的和新增一样的页面,在一定程度上可以减少软件的冗余,新增和修改的不同之处在于,修改是这个记录已经存在,所以id是已经存在的,在保存时,通过判断是否有id即可知道用户的操作是新增还是修改。 (1)基于B/S模式开发TMS系统的实现 B/S(Browser/Server)模式结构即浏览器/服务器结构。本系统基于B/S模式,伴随着Internet技术的不断高速发展,B/S结构作为C/S架构的补充和改进,用户可以很方便的使用它是随着Internet技术的兴起,对C/S(客户端/服务器)结构的一种变化或者改进的结构[8]。在B/S结构下,用户工作界面通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层结构。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本。 (2)掌握网页编辑,界面设计等有关工具 本系统采用Java框架中的MVC经典架构作为网站开发工具,它具有功能强大、可视化、容易上手等优点。通过本课题的研究可以进一步提高网页制作和网站开发能力。 (3)掌握系统的开发流程 本课题将软件工程的基本原理与系统开发的具体实践相结合,加深对软件工程思想的理解,并积累系统开发的实践经验。 (4)掌握数据库在Web上的应用方法 本课题数据库设计时采用的是Oracle 10g,它是一种可扩展的、高性能的关系型数据库管理系统。通过本课题的研究可以加深对数据库基本概念和基本技术的理解,并获得数据库开发的实际经验。 (5)掌握Java语言的使用方法 Java是Sun公司开发的一套服务器端运行的脚本平台,可以结合HTML网页建立动态、交互且高效的Web服务器应用程序。Java具有简单易学、对服务器要求低、容易编写、易于维护、架构清晰等优点,比较适合本课题研究的运输管理系统的开发要求。 第三章.系统设计 3.1概述 完成软件的需求分析后,就可以开始软件设计了。在软件开发时期,设计阶段是最富有活力、最需要发挥创造精神的阶段。系统的总体设计阶段就是要把分析阶段产生的软件需求说明转换为用适当手段表示的软件设计的方案。 3.2数据库概念设计 数据库概念构设计是将需求按照需求说明书抽象成一个不依赖任何机器的数据模型,这种称为概念模型。概念模型使设计者的注意力能够不局限于细节,而是重点关注最重要的信息的组织结构和处理方式上。在分析系统设计时,要按照一定的次序进行,首先要进行数据分析,抽象出实体,将其规划好,建立模型[10]。 3.2.1定义实体集及属性 (1) 用户实体集t_03_user:用户id(id)、用户名称(user_name)、登录名(user_name)、密码(password)、所属客户id(customer_id)、电话 (mobile)。 (2) 委托表实体集:品种(publish_type_name)、起点 (shopsign)、终点(spec)、数量 (amount)、提货日期(start_th_date)、委托类型(type)、订单号(lading_bill)、客户Id(customer_id) 、 要求到货时间(other2)。 (3) 订单主表实体集:订单id(id)、货物名称 (huo_name)、货物类型(huo_type)、货物数量 (huo_number)、订单日期(bill_date)、订单状态(bill_status)、客户名称(order_cust_trade_name)、毛重(gross_weight)、净重(net_weight)、运单号(waybill_id)、提单号(landing_bill)。 (4) 订单子表实体集admin:订单主表ID(bill_id)、委托ID (publish_id)、收货客户名称(order_cust_receive_name)、起点(start_station_name)、终点(dest_station_name)、净重(net_weight)、毛重(gross_weight)、货物名(product_type_name)、创建时间(create_date) 、运费单价(unit_price)。 3.2.2 E-R 模型设计 用户实体: 委托单实体: 订单主表: 订单子表: 3.2.3 实体联系图 3.3数据库逻辑设计 用户(用户ID、姓名、登录名、用户密码、所属客户ID、电话、客户类型) 委托单(ID、委托类型、品种名称、起点、品种类型、终点、提单号、提货时间、客户ID、数量、要求到达时间) 订单(订单ID、净重、毛重、运单号、运费单价、委托客户ID、订单日期、委托ID、订单来源、创建人、备注) 订单子表(品种、委托ID、订单日期、提单号、起点、终点、净重、毛重、订单ID、委托客户ID) 3.4数据库实施 1).数据库的实施主要是根据逻辑结构设计和物理结构设计的结果,新建数据库,建立数据库对象,导入测试数据,进行相关各个方面的测试。此阶段相当于软件工程中的代码编写和程序调试的阶段。 2).打开数据库并管理员登录登陆 3).创建用户并授权[11] create user hbwk identified by hbwk grant connect,resource,dba to hbwk; 4).创建表对象 第四章.系统实现 4.1登录窗体 将项目发布到tomcat服务器中,启动tomcat服务器,在浏览器中输入系统的地址,即可进入到登录页面,如下所示: 4.2主界面 输入正确的用户名和密码正常登陆进入系统后可以看到主界面。 在页面的左侧是各种可以点击的菜单,这些菜单对应系统的所有业务操作,这些信息一目了然,可以提醒用户进行各种代办事宜的操作,其中客户委托显示有系统中总的提单数,有多少货物还没有下发,用户在看到相关信息后,可以及时对委托进行下发处理。在提单配载中提示有提单数,有多少货物还没有配载,还没有进行返单的提单数及货物数量,已经当天配载的数量。费用登记中显示了系统中的提单数已经还没有进行费用登记的货物的数量。结算开票显示了系统中还没有进行开票申请的客户结算单数量。 4.3业务操作模块 进入客户委托管理页面,输入查询条件,点击“查询”按钮,系统将符合条件的查询结果显示在列表中。 点击“新增”按钮,系统弹出新增客户委托明细页面,用户可以新增客户委托的详细信息。当填写完详细信息后,点击保存该客户委托但是没有下发,点击保存并下发,先保存,再下发,点击“X”返回上关闭新增页面。选中某一条记录可以进行点击“编辑”按钮进行编辑操作。选中某一条记录查看详情可以查看客户委托的进度,可以向客户及时反馈货物的信息。在客户委托没有下发的情况下,可以点击撤销委托,撤销客户的委托。 下发成功后,在提单配载页面可以看到待配载的委托单: 输入承运商的关键字,系统会列出所有承运商的信息供用户选择承运商,同样的方式可以选择车牌号和驾驶员,成功填完相关信息后,点击下一步即可成功配载并且弹出提示是否需要打印回单。 待货物到达卸货点,可以在装车返单管理页面进行系列操作: 当点击追加提单页面时,列出当前提单的信息,并可以输入其他提单号,将其追加到所选提单下。 可以选中某条记录进行撤销返单操作或者撤销装车操作,可以打印回单让收货人确认收货并核查货物种类和数量。可以编辑备注记录下装车返单过程中需要记录的事件。 到达卸货点后,可以点击达到卸货点。可以点击扫描返单,输入装车单号后,可以进行返单处理。 在投诉管理页面可以对承运商进行相关评价或者投诉建议,并且可以对投诉建议进行跟踪处理。知道客户满意为止。这种方式可以让企业不断地提升自身的业务水准,做到让客户满意放心。 第五章.程序的测试 5.1 测试的重要性及目的 1.测试的重要性 在一些软件业较发达的国家,因为在系统工程中软件开发占据的比重较大,因此软件测试也成为了开发过程中的一个有机组成部分。在以往,软件测试是产品交付之前保证软件质量的一个手段,大多用于运行之前。现在,大家都开始觉得软件测试不应仅仅在产品运行维护之前,软件的每一个阶段都应该要测试,以此来检验各个子阶段是否达到了预期效果,从而方便能更早的发现错误并纠正 ,以免错误留在后面更加难改。 我们在实践中,软件测试的困难会经常使人望而却步,其实主要是因为很多人对测试依旧存在一些不正确的看法。这包括: 测试工作很枯燥,很多人不敢兴趣,而且很多人认为测试的工作没有编码之类的工作能给人成就感。其次是有些认对自己编写的程序太过于自信,而导致在发现错误后,会觉得别人能力不够。最后,测试也是一个艰苦而细致的工作,所以有些人往往会难以坚持下去[12]。 我们必须正确的认识了解软件测试,这样才能把设计做的更好,才能使做出来的东西更加的完美。 2.测试的目的 很多人可能会觉得软件测试的目的无非就是找出错误来,其实也不仅仅局限于此,软件测试的目的大致有三点: (1) 确认软件的质量。软件做了之后,我们要对其之类进行测试,确认该软件用正确的方式达到了预期的要求。 (2) 提供信息。测试应能够给开发人员或经理提供反馈信息。 (3) 软件测试不仅是在测试软件产品的本身,而且还包括软件开发的过程。 一个软件不仅仅只需要做完就可以,还要能够保证软件的质量,如果完成之后发现有错误也是有缺陷的,所以测试还应该在开发过程中也测试。 当然,测试除了找出错误来,还能够分析错误的原因,以便能更有针对性的修改。其次,若是测试中没有发现错误,这个测试的成本也是值得的,评定一个设计的好坏,就必须要有一个完整的测试流程。 5.2 测试的步骤 测试的步骤与开发的过程也比较类似,必须按照步骤进行,通常一些较大型的软件系统大多右若干个子系统组成的,所以,一些较大型的软件系统的测试基本上也都是由以下的几个步骤来组成的。 (1)模块测试:这个步骤在测试过程中往往是发现一些编码和详细设计的错误。 (2)子系统测试:这个步骤主要的目的是来测试一些模块的接口。 (3)系统测试:这个步骤在测试中主要是发现一些软件设计中的错误,或者找寻一些需求说明中的一些错误。 (4) 验收测试:这个步骤在测试中大多是发现一些系统需求说明书中的一些错误。 5.3 测试的主要内容 在大多数情况下,为了保证测试的质量,我们大致将测试过程分为代码审查,单元测试 ,集成测试,确认测试和系统测试等5个步骤。 (1)代码审查 代码审查主要是针对一些语法语义上面的,比如语句的完整性,数据定义的准确性等。 (2)单元测试 单元测试主要是检查系统的一些最小单位模块,我们可以通过测试来发现一些功能不符或一些编码时候的错误。 比如我们在输入手机号的时候要保证在以下输入情况系统能正常运行: 1).输入号码的时候输入非法字符:如¥@等。 2).输入的号码不存在。 3).输入的信息超过规定长度。 4).输入的信息为空。 (3)集成测试 其主要目标是发现与接口有关的问题,比如两个模块之间有可能由于疏忽而造成一些有害的影响,有些模块看起来是可以接受的误差,但是这些误差累积起来可能会达到一个不能接受的程度,有些子功能可能是符合要求的,但是组合起来就有可能达不到预期的效果,以及可能会有其它一些错误等。 (4)确认测试 确认测试的主要目的是像用户表明系统能够像预定的那样工作。在集成测试后,大多数错误也排除了,要做的就是对软件有效性的验证,确认软件最终的功能能像用户预期的那样。 (5)系统测试 在软件开发完成以后,最终还要与系统中其他部分配套运行,进行系统测试。主要是测试这个设计是否满足用户需求,安全性是否可靠,以及在一些超负荷情况,软件能否正常工作等。 在讲过上述的这些测试之后,软件测试的过程也算是大致完成了,所开发出来的软件也大致上满足了客户的一些需求,从而也宣告测试结束。 总结 经过三个月的不懈努力,在老师及同学帮助下,终于完成本系统的开发,任何事情只有自己亲身经历才知道不易,在这份不易中,自己得到的更多是收获。本次毕业设计我体验到了项目的开发乐趣,充分重视到了基础的重要性。很多时候对代码错误的调试,让我学会到了很快定位bug,解决bug。而且,不仅仅是设计能力而且是动手能力的提升。同时对数据库理论知识有了更深一层的认识。对数据库的创建过程更加透彻的了解,我越来越感觉到基础的重要性,这不光来源于我在第一阶段的辛苦,更加体会深刻的是我在后面的实训中,不断发现不足,不断的更改以前一阶段的相关内容,同时,由于编程水平有限。所以我不断的努力,努力做到自己的想象的成果。只要学习就会有更多的问题,有更多的难点,但也会有更多的收获,只要不断学习,善于总结,相信在以后的工作中一定会收获很大。
信息发布:广州名易软件有限公司 http://www.myidp.net
|