备注:代码下载链接:采油厂绩效考核系统的实现与开发-Javascript文档类资源-CSDN下载
1 绪论
绩效管理是企业组织管理的核心和枢纽,它是组织提升团队绩效最有力的手段。在一个组织中能否实现有效的绩效管理,关系到企业是否能在日益激烈的市场竞争,环境中保持优势。一套行之有效的绩效管理系统,将极大助力员工工作改进和业绩提高,激励员工持续改进,并实现组织战略目标。
1.1 研究背景和意义
在经济全球化的发展趋势下,各企业的竞争越发激烈,企业存在的问题在于企业战略和日常营运活动的断层问题。战略、目标、资源和风险往往只停留在执行层进行讨论,但是日常运营活动和绩效方法论不能对此进行衔接,企业可以测评绩效但却做不到管理绩效。因此人力资源的有效管理绩效将成为企业取得竞争优势的重要途径。在人力资源管理中,绩效考核则为其中的重要组成部分。近年来,为了寻找更科学、有效、客观、公正的考核方法,业内人士进行了诸多艰苦的探索。然而,由于绩效的多因、多维、动态等特点及考核者的情感等因素,考核难以取得令人满意的效果,所以能否高效的解决目前绩效考核存在的难题,对企业的长远发展起着至关重要的作用。
基于目前采油厂的基本考核体系存在的不合理现象,以及当前信息时代高速发展的计算机技术,设计和建立科学有效的绩效考核系统越来越受到采油厂管理者的关注和重视。企业绩效考核是将集体和个人的努力与公司战略目标相连接,并通过计划、组织、指挥、协调与控制的手段使之实现的过程。绩效考核可以保证组织战略目标的实现、促进管理流程和业务流程优化、促进组织和个人绩效的提升。绩效考核有助于采油厂在员工晋升、工资等方面做出公平、公正、合理的决策,以便于管理者对下属的工作进行审查并规范其职责范围,有针对性的制定计划。高效的发掘员工的潜能,为实现采油厂的生产目标辅以客观的评判方法,促进采油厂的进一步发展。从而提出了一套科学、可行、有效的石油企业绩效考核体系,使石油企业的考核规范化、体系化,考核流程可视化,从而提升企业的管理理念。
1.2 国内外文献综述
绩效考核作为企业管理的重要模块,一直受到各方的研究实践,对绩效考核方式更是研究重点。随着计算机水平的提高和互联网的普及,考核模式也由人工操作转变为在线考核,考核系统的实现也因编程语言的差异,各有特色。经查阅总结国内外对于绩效考核系统的文献后,发现对于绩效考核的研究大都分为考核体系或系统实现方法两方面研究。
1.2.1 考核体系研究现状
自十九世纪国外政治领域就有了绩效考核的的概念,到二十世纪企业管理有了明确的绩效考核方法。随着管理理念和公司经营模式的改变,至今常用的几种考核方法有:
360度考核法:经企业成员多方位、全面评测,每位被考核者都要由客户、领导、同事、下属和本人五方共同考核,考核内容包含工作效率、工作态度、专业能力、沟通能力和领导者的管理能力等方面。该考核法对于不同级别被考核对象有不同的考核问询者[1],全面的考核环境,使得考核结果更客观。且直接将被考核者本人纳入考核体系中,让所有参与考核的成员对考核状况有清晰的了解[2],可以更快速的对考核过程进行反馈,使考核结果更公平。但其独特的考核环境,造成了考核的周期过长,人员涉及广,使考核时间成本、人力成本都成倍增长。
KPI考核法:将企业的战略目标由上及下层层分解,量化指标,每个部门根据自身特色“领取”指标。再将其分解到部门个人,并设置关键绩效指标,使员工明确自身对企业的贡献[3],提升员工对企业的责任感。由分配指标完成度进行考核,避免了360度考核法中形成的人员主观因素影响,使考核更公正。通过指标实现过程,可以判断员工的工作能力和对其职位的胜任度,从而完成对员工的奖惩和指导建议,让员工晋升机制更透明。对集体指标的归纳总结,使员工清晰个人与集体的联系,明确自身及企业发展方向,培养员工对企业的归属感。但因各部门工作内容不同,导致部门指标差异过大,企业内组织与组织的联系过少,可能导致企业战略目标的实现出现偏差。并难以确定整体的考核规范,不能对员工全面考核,可能影响企业的长久发展。
BSC(平衡计分卡)考核法:作为KPI考核法的扩展方法,在KPI基础上以客户、财务、员工工作流程和学习成长维度等方面,分解公司战略目标,突出分支目标的可执行性、相互平衡性、可计量性等特点[4]。该方法将分解企业发展长远目标,引导员工、部门逐步完成对公司的发展建设,铺成未来市场的有力竞争路线。从多方面进行考核,即结合了360考核的优点,又避免了KPI考核的缺点,将员工发展和成长相结合,促成企业核心竞争力形成。该考核法既可以完成对员工能力的考核,对员工晋升也提供了学习空间,实现了企业与员工共同成长的战略目标。
1.2.2 系统构建方法研究现状
在互联网背景下,绩效考核的模式也发生了变革,由最初的人工表单填写,到便捷的计算机系统。这样的改变一是基于计算机软硬件的升级,二是基于云服务的兴起。云可以使软硬件程序在互联网上完成服务,处理远程任务,避免了客户端的安装部署及环境限制。其强大的计算能力和高度的可扩展性,可以完美的适应使用者的需求,既保证了服务质量又降低了维护管理的费用[5]。在云服务的基础上,各类应用程序的开发应运而生,基于编程语言的不同,应用开发框架也有所不同。以零客户端作为条件,统一采用B/S(Browser/Server)软件架构,对此国内外对绩效考核系统的开发框架大致分为以下几类:
SOA(Service-Oriented Architecture)框架:即为面向服务的IT体系结构,以服务模式作为开发思路,将系统分解为三个模块:开发服务、业务服务、管理服务[6]。该架构模式下,服务模块形成一组业务链,以企业的服务总线为核心,分解出一系列子系统。员工根据个人业务类型,通过网络访问服务总线从中调取相应子系统。以层次清晰地信息传输、方便快捷地系统维护和安全简便的系统集成功能为设计理念[7]。该模式可以保证企业产品、服务的绝对安全,但只适应于员工阶层分工明显的企业,不能适应小型企业的绩效管理需求。
SSH(Struts+Spring+Hibernate)框架:即为几种轻量组件的集成框架,是J2EE平台最流行的开发架构,分为表示层、业务层以及持久层。以Struts作Web页面开发,Spring实现业务逻辑的接口,Hibernate实现接口与数据库间的转换访问。该架构模式下,客户的请求指令以XML的格式封装,Struts中的控制器对其分析,由Spring对分析后的数据按规范查找相应的服务进行调用[8]。该模式使用广泛,经多方测试,基于该框架的应用安全性高、稳定性好、可扩展性强。
TSH(Tapestry+Spring+Hibernate)框架: 与SSH框架类似,其Web页面的编写框架调整为Tapestry,实现了视图逻辑与业务逻辑彻底分离的目标[9]。因为Tapestry包含了前端开发的图层模板,页面只需由HTML模板和页面类组成。业务逻辑存放在页面类中,和模板组件完全分开,脱离了页面的束缚[10]。该框架使得应用开发更加便捷,完全可以实现分工协作,节省开发时间成本以及维护升级的人力成本。
1.3 本项目研究内容
本项目所研究的绩效考核系统是集计算机技术、服务器技术和数据库技术为一体的技术系统和社会系统,属于“互联网+”时代大背景下衍生的战略工具。依据参考文献的研究,绩效考核系统在完整的考核体系基础上,用编程语言将其实现,使企业办公更方便、透明、公正、安全。
现以采油厂为例作为系统服务的对象,针对采油厂实情,结合国内外流行的考核方法,在规定员工的任务指标的同时,兼顾员工的学习成长能力,制定出一套适合采油厂长久发展的考核体系。完成绩效考核体系的构建后,选用当前最普遍的系统架构及数据库管理模式编写系统程序,使得系统的应用性更广泛,避免硬件设施出现问题。
通过调查研究,设计更适合用户使用习惯的人性化界面,达到界面友好,使用户办公时无技术性困难。完成整个系统之后,若经过调试没有出现漏洞,则将系统暂时投放到班级中,小范围测试系统功能,根据同学们的意见,对系统做最后完善。争取完成考核系统更人性化、更方便快捷、更公平公开的目标。
2 系统设计原则
2.1 先进性和规范化原则
采用符合国际标准的、先进而且成熟的系统平台和开发平台,使系统具有较高的起点和较长的生命周期,同时具备较好的开放性、可靠性和可扩展性。在开发过程控制、文档规范化等遵循相应的软件开发标准和惯例。
2.2 高度的兼容性和可移植性
兼容性是指当用户由于业务的改进而使原有的业务系统升级或移植到其他平台时,通过修改环境定义即可将系统数据源重新定义,从而降低应用系统的维护难度及成本。
可移植性是指应用系统的软件各种流行的软、硬件平台。生成的代码无需修改即可平稳移植到其他平台上运行。当用户硬件系统改变或其他环境变化时,只需修改配置部分,而无需在整个范围内重新定义镜像,这样就实现了软件系统与硬件平台的性能伸缩同步。
2.3 人性化、使用性
系统充分考虑客户体验的个性化要求、使用方便、界面友好。在系统设计师充分考虑用户的使用习惯,提供大量人性化设计,帮助用户快速定位所需要的功能、简便操作,满足绩效考核审核、汇总操作的需要。
3 设计思路
3.1 采用基于J2EE的体系结构
系统采用完全基于J2EE的体系结构。Java 2 Platform Enterprise Edition(J2EE)
技术提供了一个基于组件的方法来设计、开发、装配和部署企业级应用程序。J2EE平台提供了一个多层结构的分布式的应用程序模型,该模型具有重用组件的功能、基于扩展标记语言的数据交互、统一的安全模式和灵活的事物控制。
图3.1 J2EE的标准结构
设置集中数据库服务器,数据库系统采用Mysql,所有的系统客户端直接使用IE浏览器或其他通用浏览器登录应用服务器,运行绩效考核管理程序,完成绩效考核指标设置、考核评分、考核汇总、考核导出、考核查询全流程操作。
3.2 绩效考核数据存储方式
系统需要支持绩效考核模板的自定义,根据不同的部门要求,设置不同的考核指标,将不同模板下的绩效考核数据统一的存储在绩效考核数据库中,同时实现绩效考核数据的高效率汇总、检索查询。
4 设计方案
4.1 系统网络拓扑图
图4.1 系统的网络部署拓扑图
4.2 系统结构图
整个系统分为10个功能模块:、日常工作、重点工作、作风建设、基层评议、其他工作、人员考核、报表统计、绩效分析、考核管理、系统权限管理,每个模块具体的功能描述如下:
日常工作:由被考核机关科室及附属部门于每月5日前,将月度工作计划报送(上传)厂主(协)管领导进行审核;由厂主(协)管领导于次月5日前,完成对应考核。厂机关党总支负责按月/季度/年对考核结果进行汇总。
重点工作:由厂长(党委)办公室根据各类重要会议安排,及时制定月度重点工作计划,于次季度第一个月5日前,完成考核工作。厂机关党总支负责按月/季度/年对考核结果进行汇总。
作风建设:由厂纪检监察科牵头,人事科(党委组织科)、机关党总支参与此项考核工作,于次季度第一个月5日前,完成考核工作。厂机关党总支负责按月/季度/年对考核结果进行汇总。
基层评议:由厂机关党总支负责此项考核工作,于次季度第一个月5日前,组织各基层单位对机关科室及附属部门进行满意度测评。
其他工作:由厂机关党总支每月5日前,收集厂领导、监管部门对相关科室(部门)安排的临时性工作及“涉外业务”考核意见,并完成考核结果汇总。
人员考核:由各机关科室及附属部门每月5日前,收集相关科室(部门)对人员的考核工作,并于次月5日前完成考核结果汇总。
绩效分析:通过绩效考核的各项基础数据以及考核结果数据,分析部门及被考核人员的相关情况。
考核管理:对各个考核周期与细则进行维护。
系统权限管理:管理系统中的用户信息、角色信息、用户可见的菜单以及用户可见菜单中的数据范围。
系统功能模块的核心业务处理以组件方式部署在应用服务器中,用户通过安全认证机制进行身份验证后进入相应的系统操作界面,进行相应的业务处理。本系统涉及的访问用户主要包括系统管理员、员工、部门负责人、财务、人力资源等。
图4.2 系统的整体结构图
4.3 系统业务流程
图4.3 系统业务流程
5 系统功能设计
系统主要的模块功能包括:日常工作、重点工作、作风建设、基层评议、其他工作、人员考核、报表统计、绩效分析、考核管理、系统权限管理。
5 . 1 日常工作
由被考核机关科室及附属部门于每月5日前,将月度工作计划报送到科室负责人进行审批,审批通过报送厂主(协)管领导进行审核,审批不通过则打回报送人员进行重新制定;厂主(协)管领导审批不通过,打回至科室负责人重新制定,审批通过后于次月5日前,完成对应考核。厂机关党总支负责按月/季度/年对考核结果进行汇总。
当被考核机关科室及附属部门(包含科室负责人)于每月5日前未将月度工作计划报送至厂主(协)管领导进行审核时,则被考核机关科室及附属部门当月日常工作考核分数为0。
厂主(协)管领导日常工作考核成绩为所有被考核机关科室及附属部门的平均分,由系统后台计算完成。
5.2 重点工作
针对绩效考核中的评分方式进行设置,对系统中的指标库进行自定义的组合,形成绩效考核的考核规则。系统通过对形成的考核规则进行解析得出最终的绩效考核结果。
5.3 作风建设
将本地系统收集到的所有数据在本地库中进行数据筛选、清洗、抽取,形成绩效考核所需的数据,按照系统功能的要求提供相应的故事存储的数据。
5.4 基层评议
由厂机关党总支负责此项考核工作,于次季度第一个月5日前,组织各基层单位对机关科室及附属部门进行满意度测评。
该工作每季度进行一次,由各个基层人员对机关科室及附属部门进行打分,各个部门得分取所有打分人员平均分,若在规定期内没有进行打分,视为自动放弃。
5.5 其他工作
由厂机关党总支每月5日前,收集厂领导、监管部门对相关科室(部门)安排的临时性工作及“涉外业务”考核意见,并完成考核结果汇总。
5.6 人员考核
由各机关科室及附属部门每月5日前,收集相关科室(部门)对人员的考核工作,并于次月5日前完成考核结果汇总。
各部门人员内部考核成绩进行排名,数据仅内部科室可见,各个部门之间互相不可见。厂领导部门人员拥有所有数据可见权限。
5.7 报表统计
将日常工作、重点工作、作风建设、基层评议、其他工作所形成的月度/季度/年度报表进行统计排名。并且导出为标准的EXCEL文件。
5.8 绩效分析
由绩效管理人员根据定制的考核标准,结合系统的考核基础数据,通过系统自动对不同岗位的被考核人员进行管理,最终得出考核评价结果。
以图表的形式(柱状图或饼图)展示汇总数据与分析结果。
5.9 考核管理
由绩效管理人员根据定制的考核标准,结合系统的考核基础数据,通过系统自动对不同岗位的被考核人员进行管理,最终得出考核评价结果。
5.9.1 考核细则管理
各个被考核部门综合岗的人员每月定时对考核细则进行维护、上报。可选择历史考核细则作为本月考核细则,并可在历史考核上进行二次修改。
5.9.2 考核周期管理
维护考核的周期,月度考核,季度考核,年度考核,不定期考核等维护管理。
5.10 系统权限管理
通过分配和取消角色来完成用户权限的授予和取消,根据不同的职能岗位划分角色,资源访问许可被封装在角色中。用户通过赋予角色间接地访问系统资源和对系统资源进行操作。授权者根据需要定义各种角色,并设置合适的访问权限。而用户根据其工作性质和职责再被指派为不同的角色,完成权限授予。这样,整个访问控制过程就分成两个部分,即访问权限与角色相关联,角色再与用户关联,从而实现了用户与访问权限的逻辑分离。
5.10.1 角色管理
管理系统中的角色信息,提供系统角色的定义,新增、修改、删除、查询等功能。
5.10.2 用户管理
管理系统中的用户信息,提供系统用户的定义,新增、修改、删除、查询、用户角色关系绑定。
5.10.3 角色权限设置
定义角色可查看的系统功能,将角色绑定对应的可见数据。
5.10.4 组织机构设置
管理系统的组织机构,各考核单位和被考核单位的定义,新增、修改、删除、查询。
6 系统实现
6.1 开发基础
6.1.1 开发环境
本系统将使用IntelliJ IDEA作为开发工具,该软件拥有强大的整合能力、全面的提示功能和快捷键设置,可以加载各种系统开发需要使用的插件工具,使软件开发更方便快速.
6.1.2 开发技术
作为企业开发项目,采取J2EE框架,该技术集合了各类不同组件,便于系统功能的实现,符合了系统的设计原则,具有兼容性高、可移植性强、安全性好和再用性强[13]的优点.开发者即可将主要精力集中于系统逻辑结构和整体架构上,提高系统开发效率[14].一般J2EE项目的开发,使用HTML、CSS和JavaScript三种技术结合完成任何样式的前端页面的搭建,本项目还将采用前端开发框架Bootstrap完成页面搭建.
HTML:是一种超文本标记语言,用于搭建基础网页,通过浏览器的解析,展示页面内容;
CSS:是一种叠加式样式集,用于控制HTML元素,美化页面,控制页面布局样式;
JavaScript:是一种脚本语言,具有程序的逻辑性,用于增强页面元素的使用性,提高用户的体验感;
Bootstrap:是上述三种开发语言的集成工具,将各组件的模板样式进行封装,开发者只需引用其专属类,就可完成对组件样式的初步更改,减少开发的代码量.
6.1.3 其他开发环境
为保证编程语言被计算机全面解析,我们需要安装配置JDK、Tomcat、MySQL等插件,完成IDEA的配置.
JDK:为编程提供开发环境以及Java系统的类库;
Tomcat:为J2EE项目的开发提供服务器支持;
MySQL:为项目面向对象的信息表单提供存取支持.
6.2 系统架构
作为企业发展前提,利润最大化永远是企业追求的目的,为避免企业财力、人力资源的浪费,办公设备当然选择前期部署、后期维护都简洁的方案.因此,本系统选用B/S架构模式,该模式下开发应用程序只需客户端通过浏览器访问页面处理器[16],服务器就会对访问请求做出响应,在浏览器页面呈现出系统内容,完成与用户的交互过程.该模式将应用和开发分离,使用者若需要增加软件系统的功能,开发者只需完成功能代码编写后,更新服务器的项目部署,就可使用户再次访问时功能更新,不需要对客户端在此部署.所以,该模式不仅在维护上无需过多投入,功能的扩展性也非常强大,同时统一浏览器作为使用界面,也降低了操作的难易度.
6.3 Web页面实现
基于上述开发技术和架构模式,整体系统的Web页面搭建会根据页面的复杂度逐步增加JavaWeb组件应用难度,现将系统分为两类页面:简单页面和复杂页面.将页面实现过程,详细阐述如下:
6.3.1 简单功能页面
在企业需求分析中所述,系统需面向三类人群,所以需要通过登录端口来区别用户类型,在未登录前系统内容应不予显示.因此,登录成功之前的系统页面与用户的交互较为简单,将其划分为简单功能页面.这类页面的搭建只需要编写HTML和CSS即可完成页面实现.
系统登录页面的构建,需要完成账号和密码的填写,无须丰富的动态内容.所以,只需使用HTML的标签、组件即可完成布局,通过设置其组件属性值更改显示形式.登录页面效果图如图6.1所示:
图6 . 1 登录页面
主体部分为登录小窗口,通过
标签实现窗口布局,输入框实现部分代码如下:
若用户第一次使用系统,可通过点击立即注册的超链接,将注册页面跳转为注册页面,其页面效果图如图6.2所示:
图6 . 2 注册页面
该页面显示元素较多,为方便控制布局,将在HTML中引入CSS的选择器组件对其元素进行控制.选择器的使用,可以使系统开发耦合性更低,可允许多人协作完成开发任务,减少开发时间.在标签中添加class属性,以便于多元素组件合理布局,其部分代码如下:
通过修改class选择器的属性,同时控制需要显示相同样式的元素.
在上述两个页面的使用过程中,都需要对填写的表单有提交功能,那么对表单填写的信息需要有对应的规则,为提高用户的体验,在提交前就应对信息进行格式校验.这时就需要使用到JavaScript中DOM模型的相关组件,通过对提交按钮绑定事件和监听器来完成校验工作,其部分代码如下:
function checkUsername{
var username=document.getElementById(“username”).value; //获取用户名信息;
var reg_username=/^\w{6,12}$/; //设置用户名输入格式为6-12位字母或数字;
var flag=reg_username.test(username); //对输入信息进行校验判断;
var s_username=document.getElementById(“s_username”);//获取显示提示组件
if(flag);else{s_username.innerHTML=”格式有误”}; //修改提示位置信息
return flag;
}
以上,则完成了简单页面的全部功能实现.
6.3.2 交互复杂页面
在通过登录页面表单校验后,用户进入系统,对页面的功能性要求就非常繁复了.因此,若仍然坚持一步步添加页面元素再控制样式,不仅代码量非常庞大,代码的可读性也会比较差.所以我们使用了前端的Bootstrap框架,直接使用相应组件的模板样式,更快速的完成前端页面搭建.
通过引用Bootstrap封装好的语言,完成对页面内各组件的布局,按上文所述系统结构有层次的完成系统页面布局.将各功能类按菜单分类布局到导航栏,根据选择不同通过href地址的指引,跳转到相应页面.
(1)管理员系统:
通过身份验证后,将进入管理员系统首页如图6.3所示,可以浏览企业内部新闻,点击新闻链接,即可跳转至新闻页面.点击相应的菜单选项,将进入考核管理与系统管理的操作中,对相应的表单、信息进行增删改查操作,考核管理页面如图6.4所示:
图6 . 3 管理员系统首页
图6.4 部门考核指标设置页面
在考核指标设置中,如需更改考核指标,则需点击更新考核指标按钮,对考核指标的权重进行重新计算,如添加考核指标后,未通过一致性检验,页面如图6.6所示,如通过一致性检验,页面如图6.5所示:
图6.5 考核指标更新通过页面
打开考核管理菜单,对部门、人员的信息进行增、删、改、查功能,可以通过任意关键字对成员进行搜索,点击添加员工信息即可完成信息添加功能.如图6.6所示:
图6.6 部门人员信息管理页面
在该页面组成中不仅添加了导航栏和分页组件的使用,对事件的监听机制有了更深一步的语言应用.通过HTML DOM中innerHTML的使用,使得数据添加功能本来繁多的代码量急剧减伤,点击部门人员管理页面的添加员工信息按钮,即可进入员工信息的填写,其页面如图6.7所示:
图6.7 员工信息添加页面
点击确认添加按钮,就会触发该按钮的监听,完成人员信息页面成员的添加.部分代码如下:
var table = document.getElementsByTagName("table")[0]; //获取需添加信息的表格
table.innerHTML += "\n" + //获取添加信息并新增表格末行直接填入
" "+id+" \n" +
" "+name+" \n" +
" "+gender+" \n" +
" "+tel+" \n" +
" 删除 \n" +
" ";
在上述方法中this的使用,与obj对象相结合,实现了系统对删除操作的执行,点击人员管理页面删除按钮后,将调用delTr()方法,完成删除操作,部分代码如下:
function delTr(obj){
var table = obj.parentNode.parentNode.parentNode; //一层层获取操作单元格父节点,直到获取到执行操作的表格;
var tr = obj.parentNode.parentNode; //获取到执行删除操作的行;
table.removeChild(tr); //删除表格中的行结点;
}
(2)绩效管理系统:
分两种等级的登录权限进入后,普通部门领导将对绩效表单进行填写报送,在页面显示中使用了card组件以及DOM的Date类,实现登陆者信息以及当前时间的显示.其页面如图6.8所示:
图6.8 部门考核表单填写页面
部分代码为:
信息卡
innerHTML=username;
innerHTML=userobject
领导层
当前时间为
当纪检监察科领导登录后,将进入到对其他部门提交绩效考核表单进行审核,通过查看附属证明与考核指标库进行对比,完成提交分数的核查.如需对登录密码等信息进行修改即可进入系统设置的修改页面.页面如图6.9和图6.10所示:
图6.9 考核表审批页面
图6. 10 登录密码修改
(3)绩效考核系统:
当身份验证为普通权限后,用户则为企业普通员工,进入绩效考核系统中,考核指标、排名、成绩的查询结果,将调用管理员系统及绩效管理系统中对应的部门、个人考核表数据.如对考核成绩存在质疑,可以通过绩效反馈功能,对相关项目填写申辩理由,并点击申辩按钮,将申辩请求提交到部门领导的系统中,等待申辩结果.页面如图6.11、图6.12和图6.13所示:
图6. 11 部门考核结果排名页面
图6. 12 个人考核结果查看
图6. 13 考核结果反馈界面
根据上月考核结果,员工可自行在学习课程页面中完成选课,并对所选课程进行学习考试,学习状态与考试结果将同步在该页面中,如图6.14所示:
图6. 14 员工学习课程页面
如个人信息发生改变,需要在系统中进行变更,则可进入个人信息页面完成信息修改,进入页面后,信息呈现不可修改状态,需点击修改按钮后,方可修改,点击确认后,修改后的信息将同步到数据库中.页面如图6.15所示:
图6. 15 个人信息修改页面
6.4 服务器
将系统基本部署完成后,用户要做到通过域名访问系统就需要应用服务器,由安装了服务器软件的计算机根据用户请求将所需资源返回到用户的浏览器上.我们作为开发端,要让用户能唯一的访问到我们,我们就需要配置相关web服务器对访问作出响应,本文将采用开源的免费服务器Tomcat为系统提供服务器支持.下载安装后,并正确配置计算机的JAVA_HOME环境变量,运行bin/startuo.bat程序即可启动Tomcat.通过配置Tomcat安装目录下conf\Catalina\localhost中创建任意名称xml文件,在文件中编写.那么,其他用户即可通过访问:开发端ip地址/xml文件的名称作为URL,即可成功访问到项目系统.
6.5 数据库
将项目部署到服务器后,用户在系统使用过程中,无论是用户注册信息,还是对绩效指标设置信息、绩效表单数据等等,都需要存放在数据库中,以保证数据在调用过程中的安全性.本项目将使用MySQL数据库提供用户表单的信息存取,保证大量数据存取的完整性.
根据本系统的页面设计以及UML建模,数据库共设计了12个表,表与表之间包括一对多关系11个,多对多关系1个.其中用户表(user)中的数据将被登录后信息卡片以及绩效表单内容所调用,绩效反馈(feedback)中的数据将被绩效管理中考核表管理模块所调用,学习内容(study)中数据将被绩效管理中员工考核表填写和考核结果管理等模块调用,绩效表单(performance)将被绩效管理系统和绩效考核系统都调用,实现三个系统的数据互通.系统的整体的数据库表单之间的关系如图6.16所示:
图6. 16 绩效考核系统数据结构图
在系统功能与数据库的连接中,使用JDBC技术完成代码的编写引用数据库资源,为避免数据库路径更改而造成的引用失败,配置DBConfig.properties文件在其中编写以下代码:
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/db
user=root
password=123123 //数据库密码
完成数据库的环境配置后,在编程文档中引入需要使用的数据库java类,使用create关键字进行数据库和表的创建.然后,在调用数据库信息的方法中编写以下部分代码来获取数据库信息:
static {
ResourceBundle bundle = ResourceBundle.getBundle("DBConfig");
url = bundle.getString("url");
username = bundle.getString("user");
password = bundle.getString("password");
try {
Class.forName(bundle.getString("driver"));
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public static Connection getConnection() throws SQLException{
return DriverManager.getConnection(url,user,pwd);
}
7 结论
本文通过文献查阅比较,分析了目前绩效考核方法以及系统开发模式的利弊,基于企业具体实情,对绩效考核系统的开发做了论述。通过该系统的设计,实现了办公与互联网的结合,让办公时的信息交流变得更加迅速,避免了因信息交互周期长而耽误企业效益。在绩效考核实现上,完成了从线下到线上的变革,将整个绩效考核系统根据用户需求的不同,实现了多方登录系统的集成使用,统一显示界面简化操作,避免用户花费时间学习系统的使用规范。
在整个系统功能设计中,绩效考核模块作为其核心功能,在该模块的设计中,采取考核流程状态显示的效果,使用户在使用过程中及时发现问题,解决了传统模式中反馈不及时的问题。而绩效考核模块的另一重要设计,是指标权重占比的算法更新,将采用更新一次考核指标则重新计算权重的模式,来实现员工绩效结果的计算。将每位员工为企业做出的最大贡献进行比较,以此确保考核的公平、公正性。员工系统模块关于部门绩效考核结果的排序,使得考核的透明性更高,员工可以根据考核成绩,明确与其他员工的具体差异在哪。避免了企业做出员工晋升决策后,引起员工的不满质疑。针对员工能力提升而设计的学习模块,可以提升员工的专业能力,弥补考核结果上呈现的欠缺,更好的完成日常工作,从而提高个人的绩效成绩。因此,整个系统的功能设计都以增强企业的最终利益为目的,从每位员工出发,立足于促进员工进步发展,从而提高企业的人才竞争力和口碑竞争力。
在系统的实现上,基于JAVA编程语言,学习使用了JavaWeb技术完成整个系统的构建实现。页面实现过程中,程序编写由浅及深,一步步加入各组件的使用,让读者对系统页面的构建过程有全面的了解。文章所述的系统实现技术,对前端、服务器、数据库等方面的技术都有涉及,并采用当前最新使用规范,以延长系统的生命周期。AHP的应用模块,不仅可以作用于绩效考核因素权重计算,也可作用于员工绩效优劣排序,使系统算法更简洁。计算机技术的发展带给我们诸多便利,数学的发展为我们解决了许多细节上的难题,本项目将课堂所学知识做了综合应用及扩展,完成具有科学性、公正性的考核系统,真正做到学有所用。
你可能感兴趣的:(servlet,java,tomcat)
Long类型前后端数据不一致
igotyback
前端
响应给前端的数据浏览器控制台中response中看到的Long类型的数据是正常的到前端数据不一致前后端数据类型不匹配是一个常见问题,尤其是当后端使用Java的Long类型(64位)与前端JavaScript的Number类型(最大安全整数为2^53-1,即16位)进行数据交互时,很容易出现精度丢失的问题。这是因为JavaScript中的Number类型无法安全地表示超过16位的整数。为了解决这个问
LocalDateTime 转 String
igotyback
java 开发语言
importjava.time.LocalDateTime;importjava.time.format.DateTimeFormatter;publicclassMain{publicstaticvoidmain(String[]args){//获取当前时间LocalDateTimenow=LocalDateTime.now();//定义日期格式化器DateTimeFormatterformat
Linux下QT开发的动态库界面弹出操作(SDL2)
13jjyao
QT类 qt 开发语言 sdl2 linux
需求:操作系统为linux,开发框架为qt,做成需带界面的qt动态库,调用方为java等非qt程序难点:调用方为java等非qt程序,也就是说调用方肯定不带QApplication::exec(),缺少了这个,QTimer等事件和QT创建的窗口将不能弹出(包括opencv也是不能弹出);这与qt调用本身qt库是有本质的区别的思路:1.调用方缺QApplication::exec(),那么我们在接口
DIV+CSS+JavaScript技术制作网页(旅游主题网页设计与制作)云南大理
STU学生网页设计
网页设计 期末网页作业 html静态网页 html5期末大作业 网页设计 web大作业
️精彩专栏推荐作者主页:【进入主页—获取更多源码】web前端期末大作业:【HTML5网页期末作业(1000套)】程序员有趣的告白方式:【HTML七夕情人节表白网页制作(110套)】文章目录二、网站介绍三、网站效果▶️1.视频演示2.图片演示四、网站代码HTML结构代码CSS样式代码五、更多源码二、网站介绍网站布局方面:计划采用目前主流的、能兼容各大主流浏览器、显示效果稳定的浮动网页布局结构。网站程
【华为OD机试真题2023B卷 JAVA&JS】We Are A Team
若博豆
java 算法 华为 javascript
华为OD2023(B卷)机试题库全覆盖,刷题指南点这里WeAreATeam时间限制:1秒|内存限制:32768K|语言限制:不限题目描述:总共有n个人在机房,每个人有一个标号(1<=标号<=n),他们分成了多个团队,需要你根据收到的m条消息判定指定的两个人是否在一个团队中,具体的:1、消息构成为:abc,整数a、b分别代
关于城市旅游的HTML网页设计——(旅游风景云南 5页)HTML+CSS+JavaScript
二挡起步
web前端期末大作业 javascript html css 旅游 风景
⛵源码获取文末联系✈Web前端开发技术描述网页设计题材,DIV+CSS布局制作,HTML+CSS网页设计期末课程大作业|游景点介绍|旅游风景区|家乡介绍|等网站的设计与制作|HTML期末大学生网页设计作业,Web大学生网页HTML:结构CSS:样式在操作方面上运用了html5和css3,采用了div+css结构、表单、超链接、浮动、绝对定位、相对定位、字体样式、引用视频等基础知识JavaScrip
HTML网页设计制作大作业(div+css) 云南我的家乡旅游景点 带文字滚动
二挡起步
web前端期末大作业 web设计网页规划与设计 html css javascript dreamweaver 前端
Web前端开发技术描述网页设计题材,DIV+CSS布局制作,HTML+CSS网页设计期末课程大作业游景点介绍|旅游风景区|家乡介绍|等网站的设计与制作HTML期末大学生网页设计作业HTML:结构CSS:样式在操作方面上运用了html5和css3,采用了div+css结构、表单、超链接、浮动、绝对定位、相对定位、字体样式、引用视频等基础知识JavaScript:做与用户的交互行为文章目录前端学习路线
node.js学习
小猿L
node.js node.js 学习 vim
node.js学习实操及笔记温故node.js,node.js学习实操过程及笔记~node.js学习视频node.js官网node.js中文网实操笔记githubcsdn笔记为什么学node.js可以让别人访问我们编写的网页为后续的框架学习打下基础,三大框架vuereactangular离不开node.jsnode.js是什么官网:node.js是一个开源的、跨平台的运行JavaScript的运行
Java 重写(Override)与重载(Overload)
叨唧唧的
Java重写(Override)与重载(Overload)重写(Override)重写是子类对父类的允许访问的方法的实现过程进行重新编写,返回值和形参都不能改变。即外壳不变,核心重写!重写的好处在于子类可以根据需要,定义特定于自己的行为。也就是说子类能够根据需要实现父类的方法。重写方法不能抛出新的检查异常或者比被重写方法申明更加宽泛的异常。例如:父类的一个方法申明了一个检查异常IOExceptio
简单了解 JVM
记得开心一点啊
jvm
目录♫什么是JVM♫JVM的运行流程♫JVM运行时数据区♪虚拟机栈♪本地方法栈♪堆♪程序计数器♪方法区/元数据区♫类加载的过程♫双亲委派模型♫垃圾回收机制♫什么是JVMJVM是JavaVirtualMachine的简称,意为Java虚拟机。虚拟机是指通过软件模拟的具有完整硬件功能的、运行在一个完全隔离的环境中的完整计算机系统(如:JVM、VMwave、VirtualBox)。JVM和其他两个虚拟机
1分钟解决 -bash: mvn: command not found,在Centos 7中安装Maven
Energet!c
开发语言
1分钟解决-bash:mvn:commandnotfound,在Centos7中安装Maven检查Java环境1下载Maven2解压Maven3配置环境变量4验证安装5常见问题与注意事项6总结检查Java环境Maven依赖Java环境,请确保系统已经安装了Java并配置了环境变量。可以通过以下命令检查:java-version如果未安装,请先安装Java。1下载Maven从官网下载:前往Apach
Java企业面试题3
马龙强_
java
1.break和continue的作用(智*图)break:用于完全退出一个循环(如for,while)或一个switch语句。当在循环体内遇到break语句时,程序会立即跳出当前循环体,继续执行循环之后的代码。continue:用于跳过当前循环体中剩余的部分,并开始下一次循环。如果是在for循环中使用continue,则会直接进行条件判断以决定是否执行下一轮循环。2.if分支语句和switch分
JVM、JRE和 JDK:理解Java开发的三大核心组件
Y雨何时停T
Java java
Java是一门跨平台的编程语言,它的成功离不开背后强大的运行环境与开发工具的支持。在Java的生态中,JVM(Java虚拟机)、JRE(Java运行时环境)和JDK(Java开发工具包)是三个至关重要的核心组件。本文将探讨JVM、JDK和JRE的区别,帮助你更好地理解Java的运行机制。1.JVM:Java虚拟机(JavaVirtualMachine)什么是JVM?JVM,即Java虚拟机,是Ja
Java面试题精选:消息队列(二)
芒果不是芒
Java面试题精选 java kafka
一、Kafka的特性1.消息持久化:消息存储在磁盘,所以消息不会丢失2.高吞吐量:可以轻松实现单机百万级别的并发3.扩展性:扩展性强,还是动态扩展4.多客户端支持:支持多种语言(Java、C、C++、GO、)5.KafkaStreams(一个天生的流处理):在双十一或者销售大屏就会用到这种流处理。使用KafkaStreams可以快速的把销售额统计出来6.安全机制:Kafka进行生产或者消费的时候会
白骑士的Java教学基础篇 2.5 控制流语句
白骑士所长
Java 教学 java 开发语言
欢迎继续学习Java编程的基础篇!在前面的章节中,我们了解了Java的变量、数据类型和运算符。接下来,我们将探讨Java中的控制流语句。控制流语句用于控制程序的执行顺序,使我们能够根据特定条件执行不同的代码块,或重复执行某段代码。这是编写复杂程序的基础。通过学习这一节内容,你将掌握如何使用条件语句和循环语句来编写更加灵活和高效的代码。条件语句条件语句用于根据条件的真假来执行不同的代码块。if语句‘
python语法——三目运算符
HappyRocking
python python 三目运算符
在java中,有三目运算符,如:intc=(a>b)?a:b表示c取两者中的较大值。但是在python,不能直接这样使用,估计是因为冒号在python有分行的关键作用。那么在python中,如何实现类似功能呢?可以使用ifelse语句,也是一行可以完成,格式为:aifbelsec表示如果b为True,则表达式等于a,否则等于c。如:c=(aif(a>b)elseb)同样是完成了取最大值的功能。
ArrayList 源码解析
程序猿进阶
Java基础 ArrayList List java 面试 性能优化 架构设计 idea
ArrayList是Java集合框架中的一个动态数组实现,提供了可变大小的数组功能。它继承自AbstractList并实现了List接口,是顺序容器,即元素存放的数据与放进去的顺序相同,允许放入null元素,底层通过数组实现。除该类未实现同步外,其余跟Vector大致相同。每个ArrayList都有一个容量capacity,表示底层数组的实际大小,容器内存储元素的个数不能多于当前容量。当向容器中添
Java爬虫框架(一)--架构设计
狼图腾-狼之传说
java 框架 java 任务 html解析器 存储 电子商务
一、架构图那里搜网络爬虫框架主要针对电子商务网站进行数据爬取,分析,存储,索引。爬虫:爬虫负责爬取,解析,处理电子商务网站的网页的内容数据库:存储商品信息索引:商品的全文搜索索引Task队列:需要爬取的网页列表Visited表:已经爬取过的网页列表爬虫监控平台:web平台可以启动,停止爬虫,管理爬虫,task队列,visited表。二、爬虫1.流程1)Scheduler启动爬虫器,TaskMast
Java:爬虫框架
dingcho
Java java 爬虫
一、ApacheNutch2【参考地址】Nutch是一个开源Java实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。包括全文搜索和Web爬虫。Nutch致力于让每个人能很容易,同时花费很少就可以配置世界一流的Web搜索引擎.为了完成这一宏伟的目标,Nutch必须能够做到:每个月取几十亿网页为这些网页维护一个索引对索引文件进行每秒上千次的搜索提供高质量的搜索结果简单来说Nutch支持分
python怎么将png转为tif_png转tif
weixin_39977276
发国外的文章要求图片是tif,cmyk色彩空间的。大小尺寸还有要求。比如网上大神多,找到了一段代码,感谢!https://www.jianshu.com/p/ec2af4311f56https://github.com/KevinZc007/image2Tifimportjava.awt.image.BufferedImage;importjava.io.File;importjava.io.Fi
JavaScript 中,深拷贝(Deep Copy)和浅拷贝(Shallow Copy)
跳房子的前端
前端面试 javascript 开发语言 ecmascript
在JavaScript中,深拷贝(DeepCopy)和浅拷贝(ShallowCopy)是用于复制对象或数组的两种不同方法。了解它们的区别和应用场景对于避免潜在的bugs和高效地处理数据非常重要。以下是对深拷贝和浅拷贝的详细解释,包括它们的概念、用途、优缺点以及实现方式。1.浅拷贝(ShallowCopy)概念定义:浅拷贝是指创建一个新的对象或数组,其中包含了原对象或数组的基本数据类型的值和对引用数
JAVA·一个简单的登录窗口
MortalTom
java 开发语言 学习
文章目录概要整体架构流程技术名词解释技术细节资源概要JavaSwing是Java基础类库的一部分,主要用于开发图形用户界面(GUI)程序整体架构流程新建项目,导入sql.jar包(链接放在了文末),编译项目并运行技术名词解释一、特点丰富的组件提供了多种可视化组件,如按钮(JButton)、文本框(JTextField)、标签(JLabel)、下拉列表(JComboBox)等,可以满足不同的界面设计
WebMagic:强大的Java爬虫框架解析与实战
Aaron_945
Java java 爬虫 开发语言
文章目录引言官网链接WebMagic原理概述基础使用1.添加依赖2.编写PageProcessor高级使用1.自定义Pipeline2.分布式抓取优点结论引言在大数据时代,网络爬虫作为数据收集的重要工具,扮演着不可或缺的角色。Java作为一门广泛使用的编程语言,在爬虫开发领域也有其独特的优势。WebMagic是一个开源的Java爬虫框架,它提供了简单灵活的API,支持多线程、分布式抓取,以及丰富的
博客网站制作教程
2401_85194651
java maven
首先就是技术框架:后端:Java+SpringBoot数据库:MySQL前端:Vue.js数据库连接:JPA(JavaPersistenceAPI)1.项目结构blog-app/├──backend/│├──src/main/java/com/example/blogapp/││├──BlogApplication.java││├──config/│││└──DatabaseConfig.java
00. 这里整理了最全的爬虫框架(Java + Python)
有一只柴犬
爬虫系列 爬虫 java python
目录1、前言2、什么是网络爬虫3、常见的爬虫框架3.1、java框架3.1.1、WebMagic3.1.2、Jsoup3.1.3、HttpClient3.1.4、Crawler4j3.1.5、HtmlUnit3.1.6、Selenium3.2、Python框架3.2.1、Scrapy3.2.2、BeautifulSoup+Requests3.2.3、Selenium3.2.4、PyQuery3.2
JAVA学习笔记之23种设计模式学习
victorfreedom
Java技术 设计模式 android java 常用设计模式
博主最近买了《设计模式》这本书来学习,无奈这本书是以C++语言为基础进行说明,整个学习流程下来效率不是很高,虽然有的设计模式通俗易懂,但感觉还是没有充分的掌握了所有的设计模式。于是博主百度了一番,发现有大神写过了这方面的问题,于是博主迅速拿来学习。一、设计模式的分类总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器
JavaScript `Map` 和 `WeakMap`详细解释
跳房子的前端
JavaScript 原生方法 javascript 前端 开发语言
在JavaScript中,Map和WeakMap都是用于存储键值对的数据结构,但它们有一些关键的不同之处。MapMap是一种可以存储任意类型的键值对的集合。它保持了键值对的插入顺序,并且可以通过键快速查找对应的值。Map提供了一些非常有用的方法和属性来操作这些数据对:set(key,value):将一个键值对添加到Map中。如果键已经存在,则更新其对应的值。get(key):获取指定键的值。如果键
切换淘宝最新npm镜像源是
hai40587
npm 前端 node.js
切换淘宝最新npm镜像源是一个相对简单的过程,但首先需要明确当前淘宝npm镜像源的状态和最新的镜像地址。由于网络环境和服务更新,镜像源的具体地址可能会发生变化,因此,我将基于当前可获取的信息,提供一个通用的切换步骤,并附上最新的镜像地址(截至回答时)。一、了解npm镜像源npm(NodePackageManager)是JavaScript的包管理器,用于安装、更新和管理项目依赖。由于npm官方仓库
【Java】已解决:java.util.concurrent.CompletionException
屿小夏
java 开发语言
文章目录一、分析问题背景出现问题的场景代码片段二、可能出错的原因三、错误代码示例四、正确代码示例五、注意事项已解决:java.util.concurrent.CompletionException一、分析问题背景在Java并发编程中,java.util.concurrent.CompletionException是一种常见的运行时异常,通常在使用CompletableFuture进行异步计算时出现
设计模式之建造者模式(通俗易懂--代码辅助理解【Java版】)
ok!ko
设计模式 设计模式 建造者模式 java
文章目录设计模式概述1、建造者模式2、建造者模式使用场景3、优点4、缺点5、主要角色6、代码示例:1)实现要求2)UML图3)实现步骤:1)创建一个表示食物条目和食物包装的接口2)创建实现Packing接口的实体类3)创建实现Item接口的抽象类,该类提供了默认的功能4)创建扩展了Burger和ColdDrink的实体类5)创建一个Meal类,带有上面定义的Item对象6)创建一个MealBuil
apache 安装linux windows
墙头上一根草
apache inux windows
linux安装Apache 有两种方式一种是手动安装通过二进制的文件进行安装,另外一种就是通过yum 安装,此中安装方式,需要物理机联网。以下分别介绍两种的安装方式
通过二进制文件安装Apache需要的软件有apr,apr-util,pcre
1,安装 apr 下载地址:htt
fill_parent、wrap_content和match_parent的区别
Cb123456
match_parent fill_parent
fill_parent、wrap_content和match_parent的区别:
1)fill_parent
设置一个构件的布局为fill_parent将强制性地使构件扩展,以填充布局单元内尽可能多的空间。这跟Windows控件的dockstyle属性大体一致。设置一个顶部布局或控件为fill_parent将强制性让它布满整个屏幕。
2) wrap_conte
网页自适应设计
天子之骄
html css 响应式设计 页面自适应
网页自适应设计
网页对浏览器窗口的自适应支持变得越来越重要了。自适应响应设计更是异常火爆。再加上移动端的崛起,更是如日中天。以前为了适应不同屏幕分布率和浏览器窗口的扩大和缩小,需要设计几套css样式,用js脚本判断窗口大小,选择加载。结构臃肿,加载负担较大。现笔者经过一定时间的学习,有所心得,故分享于此,加强交流,共同进步。同时希望对大家有所
[sql server] 分组取最大最小常用sql
一炮送你回车库
SQL Server
--分组取最大最小常用sql--测试环境if OBJECT_ID('tb') is not null drop table tb;gocreate table tb( col1 int, col2 int, Fcount int)insert into tbselect 11,20,1 union allselect 11,22,1 union allselect 1
ImageIO写图片输出到硬盘
3213213333332132
java image
package awt;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imagei
自己的String动态数组
宝剑锋梅花香
java 动态数组 数组
数组还是好说,学过一两门编程语言的就知道,需要注意的是数组声明时需要把大小给它定下来,比如声明一个字符串类型的数组:String str[]=new String[10]; 但是问题就来了,每次都是大小确定的数组,我需要数组大小不固定随时变化怎么办呢? 动态数组就这样应运而生,龙哥给我们讲的是自己用代码写动态数组,并非用的ArrayList 看看字符
pinyin4j工具类
darkranger
.net
pinyin4j工具类Java工具类 2010-04-24 00:47:00 阅读69 评论0 字号:大中小
引入pinyin4j-2.5.0.jar包:
pinyin4j是一个功能强悍的汉语拼音工具包,主要是从汉语获取各种格式和需求的拼音,功能强悍,下面看看如何使用pinyin4j。
本人以前用AscII编码提取工具,效果不理想,现在用pinyin4j简单实现了一个。功能还不是很完美,
StarUML学习笔记----基本概念
aijuans
UML建模
介绍StarUML的基本概念,这些都是有效运用StarUML?所需要的。包括对模型、视图、图、项目、单元、方法、框架、模型块及其差异以及UML轮廓。
模型、视与图(Model, View and Diagram)
&
Activiti最终总结
avords
Activiti id 工作流
1、流程定义ID:ProcessDefinitionId,当定义一个流程就会产生。
2、流程实例ID:ProcessInstanceId,当开始一个具体的流程时就会产生,也就是不同的流程实例ID可能有相同的流程定义ID。
3、TaskId,每一个userTask都会有一个Id这个是存在于流程实例上的。
4、TaskDefinitionKey和(ActivityImpl activityId
从省市区多重级联想到的,react和jquery的差别
bee1314
jquery UI react
在我们的前端项目里经常会用到级联的select,比如省市区这样。通常这种级联大多是动态的。比如先加载了省,点击省加载市,点击市加载区。然后数据通常ajax返回。如果没有数据则说明到了叶子节点。 针对这种场景,如果我们使用jquery来实现,要考虑很多的问题,数据部分,以及大量的dom操作。比如这个页面上显示了某个区,这时候我切换省,要把市重新初始化数据,然后区域的部分要从页面
Eclipse快捷键大全
bijian1013
java eclipse 快捷键
Ctrl+1 快速修复(最经典的快捷键,就不用多说了)Ctrl+D: 删除当前行 Ctrl+Alt+↓ 复制当前行到下一行(复制增加)Ctrl+Alt+↑ 复制当前行到上一行(复制增加)Alt+↓ 当前行和下面一行交互位置(特别实用,可以省去先剪切,再粘贴了)Alt+↑ 当前行和上面一行交互位置(同上)Alt+← 前一个编辑的页面Alt+→ 下一个编辑的页面(当然是针对上面那条来说了)Alt+En
js 笔记 函数
征客丶
JavaScript
一、函数的使用
1.1、定义函数变量
var vName = funcation(params){
}
1.2、函数的调用
函数变量的调用: vName(params);
函数定义时自发调用:(function(params){})(params);
1.3、函数中变量赋值
var a = 'a';
var ff
【Scala四】分析Spark源代码总结的Scala语法二
bit1129
scala
1. Some操作
在下面的代码中,使用了Some操作:if (self.partitioner == Some(partitioner)),那么Some(partitioner)表示什么含义?首先partitioner是方法combineByKey传入的变量,
Some的文档说明:
/** Class `Some[A]` represents existin
java 匿名内部类
BlueSkator
java匿名内部类
组合优先于继承
Java的匿名类,就是提供了一个快捷方便的手段,令继承关系可以方便地变成组合关系
继承只有一个时候才能用,当你要求子类的实例可以替代父类实例的位置时才可以用继承。
在Java中内部类主要分为成员内部类、局部内部类、匿名内部类、静态内部类。
内部类不是很好理解,但说白了其实也就是一个类中还包含着另外一个类如同一个人是由大脑、肢体、器官等身体结果组成,而内部类相
盗版win装在MAC有害发热,苹果的东西不值得买,win应该不用
ljy325
游戏 apple windows XP OS
Mac mini 型号: MC270CH-A RMB:5,688
Apple 对windows的产品支持不好,有以下问题:
1.装完了xp,发现机身很热虽然没有运行任何程序!貌似显卡跑游戏发热一样,按照那样的发热量,那部机子损耗很大,使用寿命受到严重的影响!
2.反观安装了Mac os的展示机,发热量很小,运行了1天温度也没有那么高
&nbs
读《研磨设计模式》-代码笔记-生成器模式-Builder
bylijinnan
java 设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
/**
* 生成器模式的意图在于将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示(GoF)
* 个人理解:
* 构建一个复杂的对象,对于创建者(Builder)来说,一是要有数据来源(rawData),二是要返回构
JIRA与SVN插件安装
chenyu19891124
SVN jira
JIRA安装好后提交代码并要显示在JIRA上,这得需要用SVN的插件才能看见开发人员提交的代码。
1.下载svn与jira插件安装包,解压后在安装包(atlassian-jira-subversion-plugin-0.10.1)
2.解压出来的包里下的lib文件夹下的jar拷贝到(C:\Program Files\Atlassian\JIRA 4.3.4\atlassian-jira\WEB
常用数学思想方法
comsci
工作
对于搞工程和技术的朋友来讲,在工作中常常遇到一些实际问题,而采用常规的思维方式无法很好的解决这些问题,那么这个时候我们就需要用数学语言和数学工具,而使用数学工具的前提却是用数学思想的方法来描述问题。。下面转帖几种常用的数学思想方法,仅供学习和参考
函数思想
把某一数学问题用函数表示出来,并且利用函数探究这个问题的一般规律。这是最基本、最常用的数学方法
pl/sql集合类型
daizj
oracle 集合 type pl/sql
--集合类型
/*
单行单列的数据,使用标量变量
单行多列数据,使用记录
单列多行数据,使用集合(。。。)
*集合:类似于数组也就是。pl/sql集合类型包括索引表(pl/sql table)、嵌套表(Nested Table)、变长数组(VARRAY)等
*/
/*
--集合方法
&n
[Ofbiz]ofbiz初用
dinguangx
电商 ofbiz
从github下载最新的ofbiz(截止2015-7-13),从源码进行ofbiz的试用
1. 加载测试库
ofbiz内置derby,通过下面的命令初始化测试库
./ant load-demo (与load-seed有一些区别)
2. 启动内置tomcat
./ant start
或
./startofbiz.sh
或
java -jar ofbiz.jar
&
结构体中最后一个元素是长度为0的数组
dcj3sjt126com
c gcc
在Linux源代码中,有很多的结构体最后都定义了一个元素个数为0个的数组,如/usr/include/linux/if_pppox.h中有这样一个结构体: struct pppoe_tag { __u16 tag_type; __u16 tag_len; &n
Linux cp 实现强行覆盖
dcj3sjt126com
linux
发现在Fedora 10 /ubutun 里面用cp -fr src dest,即使加了-f也是不能强行覆盖的,这时怎么回事的呢?一两个文件还好说,就输几个yes吧,但是要是n多文件怎么办,那还不输死人呢?下面提供三种解决办法。 方法一
我们输入alias命令,看看系统给cp起了一个什么别名。
[root@localhost ~]# aliasalias cp=’cp -i’a
Memcached(一)、HelloWorld
frank1234
memcached
一、简介
高性能的架构离不开缓存,分布式缓存中的佼佼者当属memcached,它通过客户端将不同的key hash到不同的memcached服务器中,而获取的时候也到相同的服务器中获取,由于不需要做集群同步,也就省去了集群间同步的开销和延迟,所以它相对于ehcache等缓存来说能更好的支持分布式应用,具有更强的横向伸缩能力。
二、客户端
选择一个memcached客户端,我这里用的是memc
Search in Rotated Sorted Array II
hcx2013
search
Follow up for "Search in Rotated Sorted Array":What if duplicates are allowed?
Would this affect the run-time complexity? How and why?
Write a function to determine if a given ta
Spring4新特性——更好的Java泛型操作API
jinnianshilongnian
spring4 generic type
Spring4新特性——泛型限定式依赖注入
Spring4新特性——核心容器的其他改进
Spring4新特性——Web开发的增强
Spring4新特性——集成Bean Validation 1.1(JSR-349)到SpringMVC
Spring4新特性——Groovy Bean定义DSL
Spring4新特性——更好的Java泛型操作API
Spring4新
CentOS安装JDK
liuxingguome
centos
1、行卸载原来的:
[root@localhost opt]# rpm -qa | grep java
tzdata-java-2014g-1.el6.noarch
java-1.7.0-openjdk-1.7.0.65-2.5.1.2.el6_5.x86_64
java-1.6.0-openjdk-1.6.0.0-11.1.13.4.el6.x86_64
[root@localhost
二分搜索专题2-在有序二维数组中搜索一个元素
OpenMind
二维数组 算法 二分搜索
1,设二维数组p的每行每列都按照下标递增的顺序递增。
用数学语言描述如下:p满足
(1),对任意的x1,x2,y,如果x1<x2,则p(x1,y)<p(x2,y);
(2),对任意的x,y1,y2, 如果y1<y2,则p(x,y1)<p(x,y2);
2,问题:
给定满足1的数组p和一个整数k,求是否存在x0,y0使得p(x0,y0)=k?
3,算法分析:
(
java 随机数 Math与Random
SaraWon
java Math Random
今天需要在程序中产生随机数,知道有两种方法可以使用,但是使用Math和Random的区别还不是特别清楚,看到一篇文章是关于的,觉得写的还挺不错的,原文地址是
http://www.oschina.net/question/157182_45274?sort=default&p=1#answers
产生1到10之间的随机数的两种实现方式:
//Math
Math.roun
oracle创建表空间
tugn
oracle
create temporary tablespace TXSJ_TEMP
tempfile 'E:\Oracle\oradata\TXSJ_TEMP.dbf'
size 32m
autoextend on
next 32m maxsize 2048m
extent m
使用Java8实现自己的个性化搜索引擎
yangshangchuan
java superword 搜索引擎 java8 全文检索
需要对249本软件著作实现句子级别全文检索,这些著作均为PDF文件,不使用现有的框架如lucene,自己实现的方法如下:
1、从PDF文件中提取文本,这里的重点是如何最大可能地还原文本。提取之后的文本,一个句子一行保存为文本文件。
2、将所有文本文件合并为一个单一的文本文件,这样,每一个句子就有一个唯一行号。
3、对每一行文本进行分词,建立倒排表,倒排表的格式为:词=包含该词的总行数N=行号