还剩43页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
农机调配决策系统的设计与实现学生指导老师[摘要]随着近年来我国经济的高速发展,工业化、城镇化进程的加快,我国农村农业生产方式正在发生深刻变革,劳动力结构快速变化,农业对农机应用的要求越来越高,农民对农机作业的需求越来越迫切,农业机械化在建设现代农业中的支撑作用越来越重要与此同时,随着工业化、城镇化的加快,随着农村城镇化的不断推进和教育的发展,劳动力大量转移,外出求学或务工这种情况带来了一定好处的同时,也产生了弊端农村劳动力逐渐呈现结构性、季节性、区域性短缺的趋势我国的农机发展水平的不平衡是一直存在的问题所以农机和农田信息统一管理,并且智能化的生成解决方案的系统,成为一种需求随着网络技术的不断进步,计算机硬件支持的不断完善以及计算机软件开发理论的日趋成熟,为跨区域,多平台,即时的数据统一的联网农机信息管理以及决策系统的实现和应用提供了强大的技术支持伴随着B/S开发模式的流行,操作人员仅仅需要一个浏览器就可以随时随地的对信息数据库进行访问,完成信息的添加,更改和删除的工作由于B/S对多客户端访问的支持,为系统的跨区域使用提供了极大地方便同时数据库管理系统理论和功能上的完善,也保证联网农机信息管理系统数据的安全性本论文正是围绕B/S客户端的农机决策调配系统进行展开,论文具体组织结构如下第一章本章主要介绍了论文的选题意义及背景,并对该领域的研究现状进行了详细的分析,阐明了论文的主要工作,并简要介绍了论文的结构安排等内容第二章本章节则主要介绍涉及到的技术问题,如JAVA和JSP技术,三层架构技术和session技术等,同时介绍了系统实现的物理环境和软件平台第三章本章节对项目进行了详细的需求分析,并且实现了系统的概要设计第四章本章详细介绍了各主要模块的实现原理,在介绍过程中详细分析了实现的实现代码第五章对论文所做工作进行总结,指出了农机调配决策系统设计未来的工作方向关键词:农机调配,决策分析;B/S开发;信息数据库;DeploymentOftheDecision-makingSystemOfAgriculturalMachineryDesignAgriculturalMachineryAllocationAndDecisionStudent LiuYangAdviser:ZhangFan[Abstract]Alongwiththeadvanceofnetworktechnologythecontinuousimprovementofthecomputerhardwaresupportandthematuringofcomputersoftwaredevelopmenttheoryasthecross-regionalmulti-platformreal-timedataunifiednetworkrealizationandapplicationofinformationmanagementanddecisionmakingsystemofagriculturalmachineryprovidespowerfultechnicalsupport.AlongwiththepopularityofB/Sdevelopmentmodetheoperatoronlyneedsabrowsercanbeanywhereatanytimetoaccessinformationdatabasecompleteinformationtoaddchangeanddelete.BecausetheB/Ssupportformultipleclientstovisitprovidesthesystemacrossthelandusegreatlyconvenient.Atthesametimedatabasemanagementsystemtheoryandthefunctionisperfectalsoguaranteethesafetyofnetworkinformationmanagementsystemofagriculturalmachinerydata.Thepaperisorganizedasfollows:Inchapter1thebasicknowledgeofthisprojectisintroducedfollowedwiththereasonwhyweneedtodesignsuchasystemtoshowdata.Besideswewillintroducethemaindirectionswhichwewillresearchandthepaperorganization.Inchapter2somerelatedtechniquestodesignareintroducedtogetherwiththerelatedknowledgebasedonthesystemrealization.InChapter3thesystemanalysisisspecified;theemphasisofthispartisthesystemoverviewandspecificdesign.InChapter4the systemarchitectureisdescribed;thedesignandrealizationof each moduleareintroduced.InChapter5concludetheworkhavedoneinthispaperandgiveadirectionoffuturework.KeyWordsAgriculturalmachinerydeployment;Decisionanalysis;Informationdatabase;B/Sdevelopment;目录TOC\o1-3\f\u1综述
11.1选题意义及背景
11.2研究现状
21.3论文主要工作
21.4论文结构简介32相关技术介绍
42.1JAVA和JSP技术简介
42.2三层架构技术简介
52.3SESSION技术简介
62.4平台选择73系统分析与设计
83.1需求分析
83.2系统的概要设计
83.
2.1开发环境
83.
2.2系统实现功能目标
93.
2.3系统权限设计
103.
2.4关键功能活动图
103.3数据库设计
133.
3.1E/R设计
133.
3.2数据库关系图
143.
3.3数据库表结构144系统实现
164.1数据库操作模块的实现
164.2登录模块的实现
174.3权限控制模块的实现
184.4机主农户信息管理模块的实现
224.
4.1机主农户信息新增功能的实现
224.
4.2机主农户信息查看功能的实现
234.
4.3机主农户信息修改功能的实现
254.
2.4机主农户信息删除功能的实现
254.
2.4机主农户个人信息修改功能的实现
254.5农机农田信息管理模块的实现
274.
5.1农机农田信息新增功能的实现
274.
5.2农机农田信息查看功能的实现
274.
5.3农机农田信息修改功能的实现
274.
5.4农机农田信息删除功能的实现
274.6农机调配决策分析功能模块的实现
274.
6.1农机调配决策分析功能的实现275总结与展望
335.1总结
335.2展望33参考文献35声明37致谢381绪论本章主要介绍了论文的选题意义及背景,并对该领域的研究现状进行了详细的分析,阐明了论文的主要工作,并简要介绍了论文的结构安排等内容
1.1选题意义及背景随着工业化、城镇化进程的加快,我国农村农业生产方式正在发生深刻变革,劳动力结构快速变化,农业对农机应用的要求越来越高,农民对农机作业的需求越来越迫切,农业机械化在建设现代农业中的支撑作用越来越重要农业机械化是加快农业现代化的重要力量,是提高农业科技和装备水平的重要载体在农业机械化起步阶段,毛泽东同志就提出了“农业的根本出路在于机械化”国家支持群众性农具改革运动,在有条件的社队成立了农机站,迅速建立了较为完善的农机管理、科研、教育、制造、流通、鉴定、推广、监理、维修和服务体系改革开放以来,我国农业和农村经济建设取得重大进展,农业机械化事业也不断发展壮大,特别是进入新世纪以来,呈现出快速健康发展的良好态势“十一五”时期是我国农业机械化发展环境显著优化、政策法规不断健全、发展速度明显加快、地位作用持续增强的五年,是“农民自主、政府主导、社会服务,共同利用、提高效益”为主要特征的中国特色农业机械化发展道路得以确立并丰富发展的重要时期在这一时期,全国农机化系统干部职工和广大农民群众共同努力,克服困难,解放思想,大胆创新,胜利完成“十一五”规划确定的主要目标和各项任务,成功实现农业生产方式由人畜力为主向机械作业为主的历史性跨越农业机械化的快速发展,在很大程度上缓解了农村青壮年劳力短缺对粮食生产带来的不利影响,有效提高了土地产出率、资源利用率和劳动生产率,持续增强了农业综合生产能力、抗风险能力和市场竞争力,为我国粮食生产实现“七连增”及农业农村经济保持良好发展势头提供了强有力支撑面向机主选择的农机调配问题相当复杂,国内外尚无类似研究报道在调配算法研究方面,虽然在生产制造行业、车辆调度、物流管理等领域有相应的调度算法,但由于农机作业地区和地块是变化的,目标是多样的,所以没有现成的调配算法可用,必须根据国内实际情况,研究适合的动态路径搜索策略和动态调配算法本课题研究农机调配中的策略及其优化,目的是为机主提供可行的农机调配方案,为管理部门在必要时提供科学的调度方案,有关这方面的研究成果在国内外尚无报道农机调配系统的研究和开发是农业机械化发展的必然趋势,具有重要的研究意义和重大的现实应用价值
1.2研究现状我国地域辽阔、不同地区间气候差异大,这样的特征导致农作物种植和收获形成了时间梯度,为开展农机跨区服务提供了自然条件我国农业经济水平不高,财力薄弱,土地分散经营,家家户户购买农机会增加农民的经济压力,同时也会造成农机资源的浪费农机跨区作业是农机跨越地理区域作业的一种农机服务模式开展社会服务型的农机跨区作业是与我国农业发展状况相适应的但在跨区作业市场上存在着很多问题在农作物收获季节,面对大量的农田作业信息,对机主而言,盲目选择农田作业点,凭借主观经验对所选农田作业点进行农机调配,由于没有科学调配方案,常常导致投入多而收益不高同样在农作物收获季节,当突发情况发生后,农机管理部门要尽快汇总受灾农田信息,组织各地农机迅速做出进行抢收抢种的应急方案面对多农机多受灾点的农机应急事件,农机主管部门盲目或凭经验制定应急方案,由于调配方案不合理可能会导致应急任务无法顺利完成,造成农作物不同程度的损失随着农机保有量、燃油费的逐年上升,跨区调配市场的竞争更加激烈
[23],机主、农机服务组织都迫切地希望调整当前的调配方式,尽可能掌握更加完善的调配信息,在调配前制定较好的调配方案,尽可能的增加调配收益农机管理部门希望能在突发情况发生后迅速得到在规定期限内完成农田任务且尽可能降低调配成本的应急调配方案基于上述的分析与研究,研究基于机主选择的农机调配问题和政府主导的应急调配问题是迫在眉睫的有了科学合理的调配方案,机主能获得更高的收益有了合理的应急调配方案,农田受灾点才能避免不必要的损失所以,本论文所关注的方面是对农机主的农机管理和农户的农田信息的管理,以及根据农机和农田资源生成解决方案,本文所展示的系统的开发也是基于这个出发点
1.3论文主要工作论文从实现农机主、农户以及管理员之间的信息管理出发,并且对资源进行管理以及分配生成调配解决方案来完成系统的设计该系统采用的是B/S模式进行互联,采用JAVA以及JSP技术进行实现,并且使用了Hibernate、Spring、Structs三层架构的,使用SQLSERVER2008座位数据的最终存储该系统注重农机主、农户以及管理员之间的信息管理,以及对资源信息的管理分配并生成分配决策方案论文主要的研究内容如下
(1)使用JSP技术编写B/S模式的系统,系统发布后,各个客户端可以根据系统所在的地址进行访问,网站服务器会根据请求一一进行应答多个客户端和一个服务器保证了,各个客户端之间平等访问服务器的权利,同时实现了信息的统一存储,从而实现了信息的统一性,保证信息的完整性
(2)使用SQLSERVER2008数据库管理系统保证了数据的安全性因为多个客户端的存在,在进行操作是会发生偶然的的问题,比如同时对同一数据信息进行更新在系统的设计及编写方面不能对这一类问题进行很好的处理,而数据库强大的事务处理功能可以很好的是这个问题得到解决,防止数据发生错乱,导致系统崩溃
(3)将系统的使用者按照不同的决策分配不同的权限,根据权限对用户进行系统的功能分配,各个不同角色的之间的拥有的功能是不同的,并且所能够查看的信息也是不同的如此便能够将各个用户的查看的信息区分开来,防止了任意修改对信息维护造成的困难,以及可能发生的影响全局的错误操作,也使各个角色有了更加明确的工作
(4)使用session技术对登录的用户进行信息存储,并在各个页面加载之前进行信息检查,防止用户越权访问页面,进行而已操作同时也通过session技术实现了用户信息的识别,从而保证了系统的安全性
1.4论文结构简介论文主要是对连锁销售系统设计的描述,主要阐述了该系统的设计架构,简单描述了该系统设计的背景知识,并对论文的工作进行总结,指明了未来的工作方向本文具体组织结构如下第一章本章主要介绍了论文的选题意义及背景,并对该领域的研究现状进行了详细的分析,阐明了论文的主要工作,并简要介绍了论文的结构安排等内容第二章本章节则主要介绍涉及到的技术问题,如JAVA和JSP技术,三层架构技术和session技术等,同时介绍了系统实现的物理环境和软件平台第三章本章节对项目进行了详细的需求分析,并且实现了系统的概要设计第四章本章详细介绍了各主要模块的实现原理,在介绍过程中详细分析了实现的实现代码第五章对论文所做工作进行总结,指出了农机调配决策系统设计未来的工作方向附录1论文图表目录附录2论文相关领域文章翻译工作展示,包括英文原文与译文2相关技术介绍项目的决策调配系统采用JAVA和JSP技术实现,采用分层的系统架构方式,数据库选择的是SQLSERVER2008,编辑环境选择的Myeclipse,服务器使用Tomcat
7.0本章节则主要介绍涉及到的技术问题,如JAVA和JSP技术,三层架构技术和session技术等,同时介绍了系统实现的物理环境和软件平台
2.1JAVA和JSP技术简介Java平台由Java虚拟机(JavaVirtualMachine)和Java应用编程接口(ApplicationProgrammingInterface、简称API)构成Java应用编程接口为Java应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分在硬件或操作系统平台上安装一个Java平台之后,Java应用程序就可运行现在Java平台已经嵌入了几乎所有的操作系统这样Java程序可以只编译一次,就可以在各种系统中运行其有三个版本JAVASE、JAVAEE、JAVAMEJava语言是一个支持网络计算的面向对象程序设计语言Java语言吸收了Smalltalk语言和C++语言的优点,并增加了其它特性,如支持并发程序设计、网络通信、和多媒体数据控制等Java语言有以下特点面向对象、分布式、可移植性、多线程、动态的、解释性等Java语言的优良特性使得Java应用具有无比的健壮性和可靠性,这也减少了应用系统的维护费用Java对对象技术的全面支持和Java平台内嵌的API能缩短应用系统的开发时间并降低成本Java的编译一次,到处可运行的特性使得它能够提供一个随处可用的开放结构和在多平台之间传递信息的低成本方式特别是Java企业应用编程接口(JavaEnterpriseAPIs)为企业计算及电子商务应用系统提供了有关技术和丰富的类库JSPJavaServerPages由SUN公司倡导,并由多家公司共同参与建立的一种动态网页开发技术JSP其实就是在传统静态网页HTML中加入了Java程序http://www.aaa-edu.com/zt/java段和JSP标记tag从而形成了JSP文件,用于编写基于Java的后台程序http://www.aaa-edu.com/study/wzhtkf用JSP开发的Web应用是跨平台的,既能在传统的操作系统上运行也能在Linux系统环境下运行由于JSP页面是由Html代码和嵌入的Java代码构成的,在用户对服务器端页面提出访问请求的时候,Java程序对请求进行处理,然后将反馈内容返回给用户的浏览器从此,我们也可以看出JSP代码是运行在服务器端的,需要服务器环境的支持此外,JavaServlethttp://www.aaa-edu.com/study/wzhtkf/
20130909546.html是JSP技术的基础,而且大型WEB程序的开发需要JavaServlet和JSP的配合才能完成总之,JSP是源于Java技术的,继承了Java技术简单易用,完全面向对象和平台无关性并且安全可靠的特点,在互联网领域有着举足轻重的低位
2.2三层架构技术简介三层架构是软件体系架构的一种方式,分为三层数据库访问层Controller,业务逻辑层Model,表示层View当然三层的划分不是物理实现时的划分,而是更具各部分功能的不同进行的逻辑上的划分,目的是为了使三个层次具有专一的任务,是逻辑更加清晰其中业务逻辑层是这三个层中最重要的一层,负责系统主要功能的实现三个层次各自实现的功能如下1表示层(View)主要任务就是向用户展示界面,位于最外层,最接近用户,用于显示数据和接收用户输入的数据,负责信息的显示和收集,并将收集的信息向业务逻辑层进行提交处理一般也为显示或者收集的信息进行基本的有效性判断,从而减轻了业务逻辑层的负担,又不失逻辑分层上的严谨性2业务逻辑层(Model)主要任务就是实现系统各个功能从表示层接收信息,更具需要完成的功能进行相关处理向下调用数据库访问层的方法,向上为表示层提供需要展示的信息业务逻辑层将整个系统的功能都进行了处理,而不负责信息收集,以及信息的持久化等工作3数据库访问层(Controller)主要任务就是对数据库进行,增添,删除,修改,查找的基本操作这些基本操作都是通过业务逻辑层根据不同的功能需求进行相应的调用的,该层不涉及任何业务逻辑上的东西但是需要注意的是,该层虽然针对原始数据进行操作,但它通常不负责数据物理上的存储以及查找的功能,对于数据物理上的操作,通常该层将借助数据库管理系统,如SQLSERVER2008MySQL和Oracle进行具体的操作当然有时该层也会访问二进制文件,文本文档或者XML文档等通过以上三层的划分,表示层不直接与数据库访问层进行交互,也就是说数据的交互需要通过业务逻辑层才能进行,从而使业务逻辑层可以对信息进行功能上的处理以及合法性检验的工作表示层和数据访问层对功能的实现一无所知,表示层只负责界面怎么展示信息,数据库访问层只负责去数据库里得到信息,具体这些信息该怎么用都是业务逻辑层需要干的事但是业务逻辑层对数据“从哪里来”,数据到“哪里去”同样一无所知三个层次的交互关系如下图图2-1三层架构各层之间交互图关于三个层次的划分表示层只向用户展示信息,采集用户输入的信息,并且将信息传递给业务逻辑层,此层不涉及任何的业务逻辑业务逻辑层只从表示层接收信息,根据功能需求做出相应处理,然后利用数据访问层进行增删改查等基本操作,并将信息整合之后向界面层进行反馈该层不管数据的来与去数据访问层只负责数据的增加,删除,查询和更改操作,该层是被业务逻辑层更具需求进行调用的该层不涉及任何业务逻辑进行层次的划分,本质上的目的是降低耦合,大大降低了各个模块间的依赖,优点在于使不同层次的开发人员只关注整个结构中的某一层,加快开发进度在系统的后期维护中,能够很容易的用新的实现替换掉原有层次的实现,而保持其他层次不变,这样就极大地降低了维护的成本和时间但由于数据在各个层次之间的传递,是的系统的性能降低了,同时可能还会增加系统的开发成本
2.3SESSION技术简介Session是指用户在初次浏览某个网站时,将于该网站的服务器进行连接,同时在服务器中将保存一份有浏览器信息生成的在服务器端唯一识别的信息,这份信息将一直保持到用户关闭浏览器,结束这次访问Session涉及客户端即浏览器,同时也涉及服务器端,比并且需要不间断的访问才能保持、需要注意的是,同一主机的不同客户端(即不同的浏览器)对同意服务器进行访问,在服务器中生成的Session是不同的,也就是说session生成的单位是客户端对服务器一对一的访问,而不是主机对服务器的访问图2-2Session技术客户端于浏览器之间交互图存储于服务器的session可以在客户端与服务器的会话中中多次使用,也就是说客户端可以从服务器的到一些有用的信息,也可将一些信息存进Session,供客户端后期访问Session的这一特性,可以帮助B/S系统实现诸多技术上的问题比如用户是否登录的判断,用户登录后权限的检查,界面刷新过程中临时信息的存储等,这些问题本系统也是通过Session技术进行解决的
2.4平台选择论文设计的系统在Windows7系统上实现,采用的是MyEclipse编辑环境,该软件同时集成了运行JSP系统所需服务器,无需进行繁琐的配置就可以在浏览器中进行操作同时Myeclipse支持JSP类型WEB界面的开发由于本系统采用的是SQLSERVER2008数据库,Myeclipse同时提供了对数据库完美的支持,为系统的开发提供了方便3系统分析与设计本章节对项目进行了详细的需求分析,并且实现了系统的概要设计,关键的功能绘制活动图,包括需要实现的功能和权限分配等问题,并且介绍了详细设计中各个模块中关键功能的实现代码分析
3.1需求分析
1、机主信息管理机主个人信息管理增删改查,管理员权限下对机主个人信息的管理,以及机主个人对个人信息的管理
2、农户信息管理农户个人信息管理增删改查,管理员权限下对农户个人信息的管理,以及农户个人对个人信息的管理
3、农机信息管理农机信息的管理增删改查,管理员权限下对农机信息的管理,以及机主权限下对农机信息的设置管理
4、农田信息管理农田信息的管理增删改查,管理员和机主权限下对农田信息的管理,以及农户权限下对农机信息的设置管理
5、用户登陆权限限制根据用户是管理员、机主、农户的角色不同,在登录时对相应角色可以操作的功能进行限制各个角色对应相应的功能
6、生成调配决策方案根据对应机主的农机信息和选择的农田信息生成较优的农机分配方案,实现农机的调配决策
3.2系统的概要设计
3.
2.1开发环境系统开发环境的需求见下表表3-1环境需求配置清单开发环境配置需求清单内存1GB以上系统Windows7开发语言Java开发工具MyEclipse数据库SQLSERVER2008架构方式三层架构服务器Tomcat
7.0调试浏览器IE浏览器
3.
2.2系统实现功能目标该系统主要模块包括用户的权限管理和生成调配决策方案,还包括了一些基本资料模块,如机主管理,农户管理,农机管理和农田管理具体功能设计如下表表3-2系统功能设计表功能分类功能概况具体功能功能说明(可参考需求分析)主要操作机主信息管理机主信息列表管理员查看农机主的信息列表机主信息新增管理员对农机主信息进行新增操作机主信息修改管理员对农机主的信息进行修改机主信息删除管理员对农机主信息进行删除操作农户信息管理农户信息列表管理员查看农户的信息列表农户信息新增管理员对农户信息进行新增操作农户信息修改管理员对农户的信息进行修改农户信息删除管理员对农户信息进行删除操作农机信息管理农机信息列表管理员和农机主查看农机信息列表农机信息新增管理员和农机主新增农机信息农机信息修改管理员和农机主修改农机信息农机信息删除管理员和农机主删除农机信息农田信息管理农田信息列表管理员和农户和农机主查看农田信息农田信息新增管理员和农户和农机主新增农田信息农田信息修改管理员和农户和农机主修改农田信息农田信息删除管理员和农户和农机主删除农田信息个人信息设置--当前的登陆用户自己基本信息的修改用户登陆--根据数据库中的用户数据,用户在登陆页面输入用户名和密码后登陆系统生成决策分析方案--农机主勾选自己要选择的作业农田信息后根据自己的农机信息生成决策调配方案注1只有管理员可以查看用户机主和农户信息2只有农机主可以生成农机调配决策方案
3.
2.3系统权限设计角色分类表3-3角色分类表角色代码角色TMP管理员√农机主√农户√权限分配表3-4权限分配表功能概况具体功能
1.管理员
2.农机主3农户登陆登陆农机调配系统是是是机主信息管理机主信息列表是否否机主信息新增是否否机主信息删除是否否机主信息修改是否否机主信息查看是否否农户信息管理农户信息列表是否否农户信息新增是否否农户信息删除是否否农户信息修改是否否农户信息查看是否否农机信息管理农机信息列表是是否农机信息新增是是否农机信息删除是是否农机信息查看是是否农机信息修改是是否农田信息管理农田信息列表是是是农田信息新增是是是农田信息删除是是是农田信息修改是是是农田信息查看是是是决策分析根据农机和农田信息进行分析决策否是否个人信息修改修改个人信息否是是
3.
2.4关键功能活动图图3-5登录模块过程图图3-6决策分析操作图
3.3数据库设计
3.
3.1E/R设计图3-7E/R设计图
3.
3.2数据库关系图图3-8数据库关系图
3.
3.3数据库表结构表3-9数据库表结构表YHQXB表列名属性是否主键完整性约束说明YHIDvarchar255是referencesID、登陆IDYHPasswordvarchar255否notnull密码YHRolevarchar255否notnull角色JZXXB表列名属性是否主键完整性约束说明JZIDvarchar255是notnullID、登陆IDJZNamevarchar255否notnull机主姓名JZTelephonevarchar255否无机主联系方式JZAddressvarchar255否无机主家庭住址NHXXB表列名属性是否主键完整性约束说明NHIDvarchar255是notnullID、登陆名NHNamevarchar255否无农户姓名NHTelephonevarchar255否无农户联系方式NHAddressvarchar255否无农户家庭地址YYNTAreavarchar255否无农户拥有农田面积NJXXB表列名属性是否主键完整性约束说明idnumeric190是notnullIDZYLXvarchar255否无作业类型ZYNLvarchar255否无作业能力ZYDJvarchar255否无作业单价SUJZIDvarchar255否references所属机主IDNJSLvarchar255否无农机数量NTXXB表列名属性是否主键完整性约束说明NTIDvarchar255是Notnull农田IDNTLXvarchar255否Notnull农田类型ZWCSSJvarchar255否无作物成熟时间ZWSHSJvarchar255否无作物收获时间NTAreavarchar255否无农田面积NTAddressvarchar255否无农田地址SSNHIDvarchar255否references所属农户IDdistancevarchar255否无与机主的距离4系统实现本章详细介绍了各主要模块的实现原理,在介绍过程中详细分析了实现的实现代码
4.1数据库操作模块的实现本系统采用三层架构模式开发,分为界面层,逻辑层与数据层系统在操作过程中需要频繁查询或者更改信息,所以系统的实现过程中需要多次对数据库进行操作,而在对数据库进行操作之前必须进行数据库连接如果每一部分都单独编写数据库连接代码,将造成代码的冗余,同时降低了系统的可维护性为此本系统将数据库连接参数写进配置文件applicationContext.xml,并且利用Hibernate对数据库操作的封装特性,通过配置sessionFactory直接对数据库进行操作具体如下所示配置文件config\applicationContext.xmlxmlversion=
1.0encoding=UTF-8beansxmlns=http://www.springframework.org/schema/beansxmlns:xsi=http://www.w
3.org/2001/XMLSchema-instancexmlns:context=http://www.springframework.org/schema/contextxmlns:tx=http://www.springframework.org/schema/txxsi:schemaLocation=http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-
2.
5.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-
2.
5.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx-
2.
5.xsd!--自动扫描与装配bean--context:component-scanbase-package=cn.edu.njdpxt/context:component-scan!--导入外部的properties文件--context:property-placeholderlocation=classpath:jdbc.properties/!--配置SessionFactory--beanid=sessionFactoryclass=org.springframework.orm.hibernate
3.LocalSessionFactoryBean!--指定hibernate的配置文件位置--propertyname=configLocationvalue=classpath:hibernate.cfg.xml/property!--配置c3p0数据库连接池--propertyname=dataSourcebeanclass=com.mchange.v
2.c3p
0.ComboPooledDataSource!--数据库连接信息--propertyname=jdbcUrlvalue=${jdbcUrl}/propertypropertyname=driverClassvalue=${driverClass}/propertypropertyname=uservalue=${user}/propertypropertyname=passwordvalue=${password}/property!--其他配置--!--初始化时获取三个连接,取值应在minPoolSize与maxPoolSize之间Default:3--propertyname=initialPoolSizevalue=3/property!--连接池中保留的最小连接数Default:3--propertyname=minPoolSizevalue=3/property!--连接池中保留的最大连接数Default:15--propertyname=maxPoolSizevalue=15/property!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数Default:3--propertyname=acquireIncrementvalue=3/property!--控制数据源内加载的PreparedStatements数量如果maxStatements与maxStatementsPerConnection均为0,则缓存被关闭Default:0--propertyname=maxStatementsvalue=8/property!--maxStatementsPerConnection定义了连接池内单个连接所拥有的最大缓存statements数Default:0--propertyname=maxStatementsPerConnectionvalue=5/property!--最大空闲时间1800秒内未使用则连接被丢弃若为0则永不丢弃Default:0--propertyname=maxIdleTimevalue=1800/property/bean/property/bean!--配置声明式事务管理(采用注解的方式)--beanid=txManagerclass=org.springframework.orm.hibernate
3.HibernateTransactionManagerpropertyname=sessionFactoryref=sessionFactory/property/beantx:annotation-drivenproxy-target-class=truetransaction-manager=txManager//beans为了便于数据库信息的管理,对于数据库链接信息的管理存储在配置文件config/jdbc.properties中,若需更改数据库链接信息直接修改配置文件中的信息即可jdbcUrl=jdbc\:jtds\:sqlserver\://localhost\:1433;DatabaseName\=NJDPdriverClass=net.sourceforge.jtds.jdbc.Driveruser=liuyangpassword=
12244.2登录模块的实现登录过程中由Web层登录界面将用户名和密码传给Service层,Service层根据得到的信息调用DAO层的GetModel()方法,并得到返回的User对象,然后将此对象再返回给Web层最后由Action中的Login方法判断是否登录成功,根据登陆是否成功并且返回相应的页面,并根据登陆用户的角色实现权限功能的分配由于本系统涉及管理员、农机主和农户三种角色,根据登陆用户的角色代码,判断应该分配给用户的权限,并实现不同角色的功能分配和页面跳转,并将用户的信息存入session向系统后期的操作提供信息登录的实现代码如下/cn/edu/njdpxt/view/action/UserAction.java/***登陆*/publicStringloginthrowsException{System.out.printlnmodel.getYHID+------------------+model.getYHPassword;Useruser=userService.findByYHIDAndYHPasswordmodel.getYHIDmodel.getYHPassword;ifuser==null{addFieldErrorlogin用户名或密码不正确!;returnloginUI;}else{//登陆用户ActionContext.getContext.getSession.putuseruser;returntoIndex;}}
4.3权限控制模块的实现权限控制的实现主要是在登录成功后,根据返回的管理员对象,判断所属的角色,然后进行相应的跳转,跳转详情见下表角色分类跳转地址1管理员TUser_login.action2农机主MUser_login.action3农户PUser_login.action实现代码如下/WEB-INF/jsp/homeAction/left.jsp%@pagelanguage=javapageEncoding=UTF-8%%@taglibprefix=curi=http://java.sun.com/jsp/jstl/core%%@includefile=/WEB-INF/jsp/public/commons.jspf%htmlheadtitle导航菜单/title%@includefile=/WEB-INF/jsp/public/commons.jspf%linktype=text/cssrel=stylesheethref=style/blue/menu.css/scripttype=text/javascriptfunctionmenuClickmenu{$menu.next.toggle;}/script/headbodystyle=margin:0divid=Menuulid=MenuUlc:iftest=${user.YHRole==T}liclass=level1divonClick=menuClickthis;class=level1Styleimgsrc=style/images/MenuIcon/FUNC
241000.gifclass=Icon/机主信息管理/divulstyle=display:none;class=MenuLevel2id=aa%--显示二级菜单--%liclass=level2divclass=level2Styleimgsrc=style/images/MenuIcon/menu_arrow_single.gif/atarget=righthref=${pageContext.request.contextPath}/machownerUser_machownerUserList.action查询机主信息/a/div/liliclass=level2divclass=level2Styleimgsrc=style/images/MenuIcon/menu_arrow_single.gif/atarget=righthref=${pageContext.request.contextPath}/machownerUser_machownerUserAddUI.action插入新的机主信息/a/div/li/ul/li/c:ifc:iftest=${user.YHRole==T||user.YHRole==M}%--显示一级菜单--%liclass=level1divonClick=menuClickthis;class=level1Styleimgsrc=style/images/MenuIcon/FUNC
20056.gifclass=Icon/农机信息管理/divulstyle=display:none;class=MenuLevel2id=aa%--显示二级菜单--%liclass=level2divclass=level2Styleimgsrc=style/images/MenuIcon/menu_arrow_single.gif/atarget=righthref=${pageContext.request.contextPath}/peaMach_peaMachList.action查询农机信息/a/div/liliclass=level2divclass=level2Styleimgsrc=style/images/MenuIcon/menu_arrow_single.gif/atarget=righthref=${pageContext.request.contextPath}/peaMach_peaMachAddUI.action插入新的农机信息/a/div/li/ul/li/c:ifc:iftest=${user.YHRole==T}%--显示一级菜单--%liclass=level1divonClick=menuClickthis;class=level1Styleimgsrc=style/images/MenuIcon/FUNC
20069.gifclass=Icon/农户信息管理/divulstyle=display:none;class=MenuLevel2id=aa%--显示二级菜单--%liclass=level2divclass=level2Styleimgsrc=style/images/MenuIcon/menu_arrow_single.gif/atarget=righthref=${pageContext.request.contextPath}/peasantUser_peasantUserList.action查询农户信息/a/div/liliclass=level2divclass=level2Styleimgsrc=style/images/MenuIcon/menu_arrow_single.gif/atarget=righthref=${pageContext.request.contextPath}/peasantUser_peasantUserAddUI.action插入新的农户信息/a/div/li/ul/li/c:ifc:iftest=${user.YHRole==T||user.YHRole==P||user.YHRole==M}%--显示一级菜单--%liclass=level1divonClick=menuClickthis;class=level1Styleimgsrc=style/images/MenuIcon/FUNC
20054.gifclass=Icon/农田信息管理/divulstyle=display:none;class=MenuLevel2id=aa%--显示二级菜单--%liclass=level2divclass=level2Styleimgsrc=style/images/MenuIcon/menu_arrow_single.gif/atarget=righthref=${pageContext.request.contextPath}/farmland_farmlandList.action查询农田信息/a/div/liliclass=level2divclass=level2Styleimgsrc=style/images/MenuIcon/menu_arrow_single.gif/atarget=righthref=${pageContext.request.contextPath}/farmland_farmlandAddUI.action插入新的农田信息/a/div/li/ul/li/c:ifc:iftest=${user.YHRole==M}%--显示一级菜单--%liclass=level1divonClick=menuClickthis;class=level1Styleimgsrc=style/images/MenuIcon/FUNC
20029.gifclass=Icon/生成调配方案/divulstyle=display:none;class=MenuLevel2id=aa%--显示二级菜单--%liclass=level2divclass=level2Styleimgsrc=style/images/MenuIcon/menu_arrow_single.gif/atarget=righthref=${pageContext.request.contextPath}/machownerUser_anaList.action决策分析/a/div/li/ul/li/c:if%--显示一级菜单--%liclass=level1divonClick=menuClickthis;class=level1Styleimgsrc=style/images/MenuIcon/FUNC
20077.gifclass=Icon/安全设置/divulstyle=display:none;class=MenuLevel2id=aa%--显示二级菜单--%liclass=level2divclass=level2Stylec:iftest=${user.YHRole==P}imgsrc=style/images/MenuIcon/menu_arrow_single.gif/atarget=righthref=${pageContext.request.contextPath}/peasantUser_perInfEditUI.action个人信息设置/a/c:ifc:iftest=${user.YHRole==M}imgsrc=style/images/MenuIcon/menu_arrow_single.gif/atarget=righthref=${pageContext.request.contextPath}/machownerUser_machInfEditUI.action个人信息设置/a/c:ifc:iftest=${user.YHRole==T}imgsrc=style/images/MenuIcon/menu_arrow_single.gif/atarget=righthref=javascript:void0个人信息设置/a/c:if/div/liliclass=level2divclass=level2Styleimgsrc=style/images/MenuIcon/menu_arrow_single.gif/atarget=righthref=${pageContext.request.contextPath}/user_passwordModifyUI.action修改密码/a/div/li/ul/li%--显示一级菜单--%liclass=level1divonClick=menuClickthis;class=level1Styleimgsrc=style/images/MenuIcon/FUNC
20065.gifclass=Icon/帮助/divulstyle=display:none;class=MenuLevel2id=aa%--显示二级菜单--%liclass=level2divclass=level2Styleimgsrc=style/images/MenuIcon/menu_arrow_single.gif/atarget=righthref=${pageContext.request.contextPath}/peaMach_peaMachList.action帮助/a/div/li/ul/li/ul/div/body/html
4.4机主农户信息管理模块的实现
4.
4.1机主农户信息新增功能的实现机主新增功能的操作,在管理员权限下,可以对机主进行新增操作,根据前台JSP页面提交的表单信息,后台调用Hibernate对数据库操作的封装方法对数据库进行新增的操作,进行相应的逻辑处理,并保存到数据库中机主信息新增相关代码/src/cn/edu/njdpxt/view/action/MachownerUserAction.java/**添加*/publicStringmachownerUserAddthrowsException{machownerUserService.savemodel;//将用户登陆需要的信息添加到User表中user.setYHIDmodel.getJZID;Stringmd5Digest=DigestUtils.md5Hex123456;user.setYHPasswordmd5Digest;user.setYHRoleM;userService.saveuser;returntomachownerUserList;}在新增机主信息时直接新增用户登陆信息到指定的数据库表中
4.
4.2机主农户信息查看功能的实现系统中关于列表信息的查看都采用了相同的方式Web层使用JSP页面代码显示,从Service层的获取到要显示的对象数组model层调用Dao层的GetList方法,返回DateList对象由于其他列表与本列表代码类似,在此仅对本列表进行分析,以后不再重复界面表示层相关代码前台界面/WEB-INF/jsp/machownerUserAction/list.jsp%@pagelanguage=javaimport=java.util.*pageEncoding=utf-8%htmlheadtitle机主信息列表/title%@includefile=/WEB-INF/jsp/public/commons.jspf%/headbodydivid=Title_bardivid=Title_bar_Headdivid=Title_Head/divdivid=Title!--页面标题--imgborder=0width=13height=13src=${pageContext.request.contextPath}/style/images/title_arrow.gif/机主信息管理/divdivid=Title_End/div/div/divdivid=MainAreatablecellspacing=0cellpadding=0class=TableStyle!--表头--theadtralign=CENTERvalign=MIDDLEid=TableTitletdwidth=150px机主ID/tdtdwidth=200px机主姓名/tdtdwidth=200px机主联系方式/tdtdwidth=200px机主地址/tdtd相关操作/td/tr/thead!--显示数据列表--tbodyid=TableDataclass=dataContainers:iteratorvalue=#machownerUserListtrclass=TableDetail1templatetd${JZID}nbsp;/tdtd${JZName}nbsp;/tdtd${JZTelephone}nbsp;/tdtd${JZAddress}nbsp;/tdtds:aaction=machownerUser_machownerUserDeleteid=%{id}onclick=returnconfirm确定要删除此信息吗?删除/s:as:aaction=machownerUser_machownerUserEditUIid=%{id}修改/s:as:aaction=machownerUser_initPasswordid=%{id}onclick=returnconfirm确定要初始化密码吗?初始化密码/s:a/td/tr/s:iterator/tbody/table!--其他功能超链接--divid=TableTaildivid=TableTail_insides:aaction=machownerUser_machownerUserAddUIimgsrc=${pageContext.request.contextPath}/style/images/createNew.png//s:a/div/div/div/body/html数据返回过程Action中的相关代码/**列表*/publicStringmachownerUserListthrowsException{ListMachownerUsermachownerUserList=machownerUserService.findAll;ActionContext.getContext.putmachownerUserListmachownerUserList;returnmachownerUserList;}Service层相关代码publicListMachownerUserfindAll{returnmachownerUserDao.findAll;}Dao层相关代码:publicListTfindAll{returngetSession.createQueryFROM+clazz.getSimpleName.list;}
4.
4.3机主农户信息修改功能的实现在系统中的信息修改功能基本方式都一致,首先是准备回显数据,再次是修改保存准备的数据在WEB层进行回显,在数据提交后交由Action调用相应的Service进行处理,Service再将数据交由逻辑处理层提交保存到数据库中准备回显数据的代码src/cn/edu/njdpxt/view/action/MachownerUserAction.java/**修改页面*/publicStringmachownerUserEditUIthrowsException{MachownerUsermachownerUser=machownerUserService.getByIdmodel.getId;ActionContext.getContext.getValueStack.pushmachownerUser;returnmachownerUserSaveUI;}修改功能代码src/cn/edu/njdpxt/view/action/MachownerUserAction.java/**修改*/publicStringmachownerUserEditthrowsException{MachownerUsermachownerUser=machownerUserService.getByIdmodel.getId;machownerUser.setJZIDmodel.getJZID;machownerUser.setJZNamemodel.getJZName;machownerUser.setJZTelephonemodel.getJZTelephone;machownerUser.setJZAddressmodel.getJZAddress;machownerUserService.updatemachownerUser;returntomachownerUserList;}其中调用的update方法在其BaseAction.java中有相应的代码
4.
2.4机主农户信息删除功能的实现在机主信息不再使用或者已经过期后,要对机主信息进行删除,其中由JSP发出删除请求并由删除功能,根据JSP传的ID进行信息的删除删除功能的实现代码src/cn/edu/njdpxt/view/action/MachownerUserAction.java/**删除*/publicStringmachownerUserDeletethrowsException{machownerUserService.deletemodel.getId;returntomachownerUserList;}
4.
2.4机主农户个人信息修改功能的实现机主在登陆系统后,可以对自己的基本信息进行相应的设置个人信息修改页面代码/WebRoot/WEB-INF/jsp/userAction/saveUI.jsp%@pagelanguage=javaimport=java.util.*pageEncoding=utf-8%htmlheadtitle机主信息设置/title%@includefile=/WEB-INF/jsp/public/commons.jspf%/headbody!--标题显示--divid=Title_bardivid=Title_bar_Headdivid=Title_Head/divdivid=Title!--页面标题--imgborder=0width=13height=13src=${pageContext.request.contextPath}/style/images/title_arrow.gif/个人信息设置/divdivid=Title_End/div/div/div!--显示表单内容--divid=MainAreas:formaction=machownerUser_perInfEdits:hiddenname=id/s:hiddendivclass=ItemBlock_Title1!--信息说明DIVCLASS=ItemBlock_Title1IMGBORDER=0WIDTH=4HEIGHT=7SRC=${pageContext.request.contextPath}/style/blue/images/item_point.gif/岗位信息/DIV--/div!--表单内容显示--divclass=ItemBlockBorderdivclass=ItemBlocktablecellpadding=0cellspacing=0class=mainFormtrtdwidth=120机主ID/tdtds:textfieldname=JZIDcssClass=InputStyle/*/td/trtrtdwidth=120机主姓名/tdtds:textfieldname=JZNamecssClass=InputStyle//td/trtrtdwidth=120机主联系方式/tdtds:textfieldname=JZTelephonecssClass=InputStyle//td/trtrtdwidth=120机主家庭住址/tdtds:textfieldname=JZAddresscssClass=InputStyle//td/trtrtdwidth=120机主拥有农机数量/tdtds:textfieldname=YYNJNumcssClass=InputStyle//td/tr/table/div/div!--表单操作--divid=InputDetailBarinputtype=imagesrc=${pageContext.request.contextPath}/style/images/save.png/ahref=javascript:history.go-1;imgsrc=${pageContext.request.contextPath}/style/images/goBack.png//a/div/s:form/div/body/html机主和农户作为最主要的角色信息,基本的实现功能类似,实现过程基本相同,所以关于农户的基本的详细设计请参考机主的信息功能实现即可
4.5农机农田信息管理模块的实现
4.
5.1农机农田信息新增功能的实现此添加功能为基础资源信息管理的基本功能,实现方式与机主信息管理——》新增机主功能类似,可以进行参考分析
4.
5.2农机农田信息查看功能的实现农机信息列表功能为基本管理功能,实现方式与机主信息管理--》查看农机信息列表功能类似,可以进行参考分析
4.
5.3农机农田信息修改功能的实现农机信息管理修改功能为基本的管理功能,实现方式与机主信息管理--》机主信息修改功能类似,可以进行参考分析
4.
5.4农机农田信息删除功能的实现农机信息管理删除功能为基本的管理功能,实现方式与机主信息管理--》农机信息删除功能类似,可以进行参考分析
4.6农机调配决策分析功能模块的实现
4.
6.1农机调配决策分析功能的实现机主在前台WEB层选择要作业的农田信息,传入后台逻辑层进行逻辑处理,决策分析出较为优化的解决方案,传到前台显示层,给出解决方案生成决策方案的代码/src/cn/edu/njdpxt/dao/impl/MachownerUserDaoImpl.javapublicListAnaListanalyDecisionListFarmlandfarmlandListPeaMachpeaMach{//判断在作业任务中有没有并行任务iffarmland.size==1{returnthis.makeDesicionfarmlandpeaMach;}else{//
1.按照作物成熟时间进行升序排序ListFarmlandflList=this.asceOrderfarmland;//
2.进行并行任务的判断int[]C=newint[flList.size];C=this.corTasksflList.sizeflList;//根据判出的有没有并行任务,生成决策方案if!this.judgeC||flList.size==1{returnthis.makeDesicionflListpeaMach;}else{returnthis.makeDesicionCflListpeaMach;}}}//.按照作物成熟时间进行升序排序publicListFarmlandasceOrderListFarmlandfalaList{ListFarmlandflList=falaList;Farmlandfarlan=newFarmland;DateFormatformat=newSimpleDateFormatyyyy-MM-dd;Datedate1=null;Datedate2=null;forinti=0;iflList.size-1;i++{forintj=1;jflList.size;j++{try{date1=format.parseflList.geti.getZWCSSJ;date2=format.parseflList.getj.getZWCSSJ;}catchParseExceptione{e.printStackTrace;}ifdate
1.afterdate2{farlan=flList.geti;flList.setiflList.getj;flList.setjfarlan;}elseifdate
1.equalsdate2{try{date1=format.parseflList.geti.getZWSHSJ;date2=format.parseflList.getj.getZWCSSJ;}catchParseExceptione{e.printStackTrace;}ifdate
1.afterdate2{farlan=flList.geti;flList.setiflList.getj;flList.setjfarlan;}}}}returnflList;}//对作业进行任务是否并行进行判断publicint[]corTasksintlengthListFarmlandflList{DateFormatformat=newSimpleDateFormatyyyy-MM-dd;int[]C=newint[length+1];C
[1]=1;//判断middle-1和temp-1是否是并行任务try{forintj=0;jlength-1;j++{intk=j+1;ifformat.parseflList.getj.getZWCSSJ.beforeformat.parseflList.getk.getZWCSSJformat.parseflList.getj.getZWSHSJ.afterformat.parseflList.getk.getZWCSSJ{//是并行任务C[k+1]=C[j+1];k++;}else{j=k;C[j+1]=C[j]+1;}}}catchParseExceptione{e.printStackTrace;}forinti=0;iC.length;i++{}returnC;}//判断是否存在并行任务存在并行任务返回true没有返回falsepublicbooleanjudgeint[]C{forinti=0;iC.length;i++{forintj=i+1;jC.length;j++{ifC[i]==C[j]{returntrue;}}}returnfalse;}//不存在并行任务的决策方案@SuppressWarningsnullpublicListAnaListmakeDesicionListFarmlandflListListPeaMachpeaMach{ListAnaListanaList=newLinkedListAnaList;intdays=0;forinti=0;iflList.size;i++{AnaListana=newAnaList;try{Longdayss=format.parseflList.geti.getZWSHSJ.getTime-format.parseflList.geti.getZWCSSJ.getTime/1000*60*60*24;days=newLongdayss.intValue;}catchParseExceptione{e.printStackTrace;}ana.setNTIDflList.geti.getNTID;ana.setNTLXflList.geti.getNTLX;ana.setNTAreaflList.geti.getNTArea;ana.setZWCSSJflList.geti.getZWCSSJ;ana.setZWSHSJflList.geti.getZWSHSJ;ana.setNTAddressflList.geti.getNTAddress;ana.setSSNHIDflList.geti.getSSNHID;ana.setZYDJpeaMach.get
0.getZYDJ;intarea=Integer.parseIntflList.geti.getNTArea;//面积intzynl=Integer.parseIntpeaMach.get
0.getZYNL;//作业能力//农机作业数量公式农田面积/j*农机作业能力=days就分配j台农机到农田作业forintj=1;j=Integer.parseIntpeaMach.get
0.getNJSL;j++{ifzynl*j*days=area{ana.setFPNJSLInteger.toStringj;break;}}//面积Double.parseDoubleflList.geti.getNTArea//农机作业能力Double.parseDoublepeaMach.get
0.getZYNLanaList.addana;}returnanaList;}//存在并行任务的决策方案publicListAnaListmakeDesicionint[]CListFarmlandflListListPeaMachpeaMach{ListAnaListanaList=newLinkedListAnaList;ListFarmlandfarml=newLinkedListFarmland;forinti=1;iC.length;{intj;forj=i;jC.length;j++{ifC[j]==C[i]{farml.addflList.getj-1;}elsebreak;}iffarml.size=1{anaList.addAllthis.makeDesifarmlpeaMach;}farml.clear;i=j;}returnanaList;}//为并行任务分配农机publicListAnaListmakeDesiListFarmlandflListListPeaMachpeaMach{DateFormatformat=newSimpleDateFormatyyyy-MM-dd;intdays1days2itpeaMachUsed=0;;ListAnaListanaList=newLinkedListAnaList;ifflList.size==1{anaList=this.makeDesicionflListpeaMach;returnanaList;}fori=0;iflList.size-1;i++{AnaListana=newAnaList;intj=i+1;intarea=Integer.parseIntflList.geti.getNTArea;//面积intzynl=Integer.parseIntpeaMach.get
0.getZYNL;//作业能力try{Longdayss1=format.parseflList.geti.getZWSHSJ.getTime-format.parseflList.geti.getZWCSSJ.getTime/1000*60*60*24;days1=newLongdayss
1.intValue;Longdayss2=format.parseflList.getj.getZWCSSJ.getTime-format.parseflList.geti.getZWCSSJ.getTime/1000*60*60*24;days2=newLongdayss
2.intValue;ana.setNTIDflList.geti.getNTID;ana.setNTLXflList.geti.getNTLX;ana.setNTAreaflList.geti.getNTArea;ana.setZWCSSJflList.geti.getZWCSSJ;ana.setZWSHSJflList.geti.getZWSHSJ;ana.setNTAddressflList.geti.getNTAddress;ana.setSSNHIDflList.geti.getSSNHID;ana.setZYDJpeaMach.get
0.getZYDJ;fort=1;t=Integer.parseIntpeaMach.get
0.getNJSL-peaMachUsed;t++{ifzynl*t*days2=area{ana.setFPNJSLInteger.toStringj;peaMachUsed=t;break;}}ift=Integer.parseIntpeaMach.get
0.getNJSL-peaMachUsed{fort=1;t=Integer.parseIntpeaMach.get
0.getNJSL;t++{ifzynl*t*days1=area{ana.setFPNJSLInteger.toStringt;peaMachUsed=t;break;}}}anaList.addana;}catchParseExceptione{e.printStackTrace;}}ifi==flList.size-1{AnaListana=newAnaList;intarea=Integer.parseIntflList.geti.getNTArea;//面积intzynl=Integer.parseIntpeaMach.get
0.getZYNL;//作业能力intdays=0;try{Longdayss=format.parseflList.geti.getZWSHSJ.getTime-format.parseflList.geti.getZWCSSJ.getTime/1000*60*60*24;days=newLongdayss.intValue;}catchParseExceptione{//TODOAuto-generatedcatchblocke.printStackTrace;}ana.setNTIDflList.geti.getNTID;ana.setNTLXflList.geti.getNTLX;ana.setNTAreaflList.geti.getNTArea;ana.setZWCSSJflList.geti.getZWCSSJ;ana.setZWSHSJflList.geti.getZWSHSJ;ana.setNTAddressflList.geti.getNTAddress;ana.setSSNHIDflList.geti.getSSNHID;ana.setZYDJpeaMach.get
0.getZYDJ;fort=1;t=Integer.parseIntpeaMach.get
0.getNJSL-peaMachUsed;t++{ifzynl*t*days=area{ana.setFPNJSLInteger.toStringt;break;}}anaList.addana;}returnanaList;}}5总结与展望对论文所做工作进行总结,指出了农机调配决策系统设计需要进行改进的地方和未来的工作方向
5.1总结随着工业化、城镇化进程的加快,我国农村农业生产方式正在发生深刻变革,劳动力结构快速变化,农业对农机应用的要求越来越高,农民对农机作业的需求越来越迫切,农业机械化在建设现代农业中的支撑作用越来越重要农业机械化是加快农业现代化的重要力量,是提高农业科技和装备水平的重要载体人多地少,经济水平落后,财力薄弱,农业机械装备整体水平差是我国的国情,土地承包三十年不变,中国必须走不同于发达国家或者地广人稀国家的农业机械化道路因此,探索一种新型的农机作业模式,解决小地块与大生产之间的矛盾,就成为当前农机化工作的重要课题针对我国的具体国情,若不走服务型的农业机械化发展道路,农民不仅面临着巨大的购机压力,同时也需要承担巨大的机具运行费用若家家户户购机,而土地分散经营,这会造成资源配置浪费在这样的现状下促成了农机扩区作业的产生,农机跨区作业是指农机跨越地理区域作业的一种农机服务模式,即我国地域辽阔、地区间气候差和农作物成熟期的时间差,以及不同地区农机发展不平衡的态势,组织农机跨越县级以上行政区域而开展的田间收割作业的一种农机社会化新型服务模式本论文所实现的系统,主要实现了一定区域内的农田信息和农机信息的统一整合,并对资源在作业时根据不同的需求进行合理的分配,从而达到资源的充分利用,以及利益的最大化的目的论文致力于农机调配决策系统设计,主要研究内容为
1.本系统采用哪一种客户端模式,B/S或者C/S?本系统采用的是B/S模式,在访问服务器时没有大量的数据传送和数据更新较为频繁,B/S模式便于数据的维护2使用哪一种技术进行系统的实现,是JSP还是ASP?本系统使用的是JSP,并且使用了SQLSERVER2008JSP实现的系统需要单独安装TOMCAT服务器,而ASP实现的系统能安装在windows操作系统中自带IIS组件在利用本系统时要尽可能的还原现场情况,并且TOMCAT作为一个稳定的服务器,可靠,高效
5.2展望农机调配决策系统的开发是我国步入农业机械化实现农业现代化的必然要求,在农业现代化越来越进步的今天,大面积农机作业已经成为一种趋势,实现区域内农机信息和农田信息的统一管理是必然的我们正需要一种软件进行对农机和农田信息进行匹配分析,生成较为优化的解决方案,实现资源利用的最大化和利益的最大化而与此同时,随着交通越来越便利,地域的扩大化是系统存储的资源的信息量也会越来越大并且在生成决策方案时需要处理的信息量也会很大,我们需要更加科学的方式对数据信息进行存储和分析数据仓库和数据挖掘就这样应运而生,数据仓库技术是存储量比数据库操作系统更加大的一种存储方式,数据挖掘是近几年新兴的,是针对大数据里特定信息进行汇总和分析的技术数据仓库和数据挖掘都将在,不仅是销售管理系统,更是所有信息化系统中必然采用的技术目前,论文虽然提出了农机调配决策系统的设计和实现,但功能方面有所侧重,大多模块实现国语简单,更由于时间和个人知识面的能力限制,在系统的用户信息管理、资源信息的管理、以及根据资源信息分析决策设计和实现都还有大量的工作空间
1.交互界面没有进行专业设计,可能会给操作人员带来不便
2.仅仅实现了销售系统的很小一部分的功能,目的也是用于展示系统的可互联性,功能方面需要完善的空间太大
3.没有考虑随着信息量的增长,数据存储方面所面对的问题
4.没有考虑在大数据情况下,如何进行准确科学的信息汇总和信息分析参考文献
[1]BruceEckel.ThinkinginJava[M].UpperSaddleRiverNewJerseyUSA:PrenticeHall2006
[2]林信良.Spring
2.0技术手册[M].北京电子工业出版社,2005
[3](美)威尔德,斯尼德等著,赵利通译.SpringFramework2入门经典[M].北京清华大学出版社,2009
[4]林寒超张南平.Hibernate技术的研究[J].计算机技术与发展20061611:112-113116
[5]田珂,谢世波,方马.J2EE数据持久层的解决方案[J].计算机工程,20032922:93-95
[6]刘京华.JavaWeb整合开发王者归来[M].北京清华大学出版社,2010
[7]张孝祥.深入JavaWeb开发内幕——核心基础[M].北京电子工业出版社.2006
[8]RFC2256:ASummaryoftheX.50096UserSchaemaforuserwithLADPv3[J/OL]
[9]王倩宜李润娥李庭晏.统一用户管理和身份认证服务的设计与实现[J].实验技术与管理2004303:236~239
[10]李席广.基于LDAP的统一身份认证管理系统的设计与实现[J].科技信息学术研究200719:99-101
[11]
[12]刘春晓孟祥福李昕.基于Jboss的数据库连接池研究与实现[J].微处理机:2008291:86-88
[13]CraigWallsRyanBreidenBach.SpringInAction[M].ManningPublications.2006
[14]张孝祥.深入JavaWeb开发内幕——核心基础[M].北京电子工业出版社.2006
[15]JoshuaBloch.EffectiveJava[M].PiscatawayN.J:IEEEPress2009
[16]李安渝.WebServices技术与实现[M].北京国防工业出版社,2003
[17]美阿诺德,KenArnold,等.Java程序设计语言[M].北京人民邮电出版社,2006
[18]孙卫琴,李洪成.Tomcat与JavaWeb开发技术详解[M].电子工业出版社,
2003.6:1-205
[19]BruceEckel.Java编程思想[M].机械工业出版社,
2003.10:1-378
[20]FLANAGAN.Java技术手册[M].中国电力出版社,
2002.6:1-465
[21]孙一林,彭波.Java数据库编程实例[M].清华大学出版社,
2002.8:30-210
[22]LEEANNEPHILLIPS.巧学活用HTML4[M].电子工业出版社,
2004.8:1-319
[23]飞思科技产品研发中心.JAVA应用开发详解[M].电子工业出版社,
2003.9:32-300
[24]耿祥义张跃平.JAVA实用教程[M].清华大学出版社,
2003.
5.1:1-354
[25]清宏计算机工作室.JAVA编程技巧[M].机械工业出版社,
2004.5:1-410
[26]朱红司光亚.JAVAWeb编程指南[M].电子工业出版社,
2001.9:34-307
[27]赛奎春.JAVA工程应用与项目实践[M].机械工业出版社,
2002.8:23-294声明本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的研究成果据我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得河北农业大学大学或其他教育机构的学位或证书而使用过的材料本学位论文成果是本人在河北农业大学读书期间在导师指导下取得的,论文成果归河北农业大学所有,特此声明学位论文作者(签名)论文指导教师(签名)2012年05月13日致谢时光荏苒,转眼四年的大学生活就要接近尾声首先,我要感谢我的父母,感谢他们无私的付出,感谢他们对我的包容,感谢他们一直以来的支持和鼓励然后,感谢四年中帮助过我的老师、同学、朋友,感谢他们对我的关心和支持本论文是在我的导师张璠老师的悉心指导下完成的在论文完成之际,我要特别感谢她在论文选题、写作、修改及定稿各个方面给予的悉心教导张老师治学严谨,诲人不倦,平易近人她不仅对待科研、工作的态度认真,而且对待学生也非常细心,有耐心,她在治学与为人处世方面都是我学习的榜样此外,我还要感谢本科阶段所有教过我的任课老师们,各位老师的谆谆教导,带我们探索计算机领域的知识,有了他们的细心教导为我们打下了良好的理论基础,为论文写作打下了坚实的基础刘洋2014年5月23日表示层业务逻辑层数据访问层数据库系统客户端请求请求服务器接收请求建立session读取,更改session显示农田的信息选择要作业的农田信息没有被分配请求作业单价农机数量属于机主电话机主地址机主姓名农机ID用户角色农田农田ID农田类型农田成熟时间农田收获时间农田面积农田地址农田ID属于农户ID农户电话农户姓名农户ID农户地址农户农户农田面积判断农田是否以被作业农机农机类型。