• 9.27 MB
  • 2022-05-17 13:18:10 发布

基于Web和移动终端的中软考勤管理系统设计与实现

  • 92页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
分类号:TP3ii单位代码:10422201622143i密级::学号_>iSHAND^UNIVERS^T硕士学位论文ThesisforMasterDereeg(专业学位)论文题h基于Web和移动终端的中软考勤管理系统设计与实现TheDesignandImj3lementationofCSSAttendanceMasiagemerdSystemBasedonWebandMobileTerminal*/作者姓名徐梦馈培养单位软件学院专业名称软件工程指导教师史清华副教授__合作导师2018年10月20日 分类号:TP311单位代码:10422密级:学号:2016221431硕士学位论文ThesisforMasterDereeg(专业学位)论文题目:基于Web和移动终端的中软考勤管理系统设计与实现TheDesinandImlementationofCSSAttendancegpManagementSystemBasedonWebandMobileTerminal作者姓名徐梦培养单位软件学院专业名称软件工程指导教师史清华副教授合作导师每201年10#月爹20妄日髮 原创性声明本人郑重声明:所呈交的学位论文,是本人在导师的指导下,独立进行研宄所取得的成果。除文中已经注明引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写过的科研成果。对本文的研宄作出重要贡献的个人和集体,均己在文中以明确方式标明。本声明的法律责任由本人承担。--:论文作者签名你料日期:20181120关于学位论文使用授权的声明本人完全了解山东大学有关保留、使用学位论文的规定,同意学校保留或向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅;本人授权山东大学可以将本学位论文的全部或部分、内容编入有关数据库进行检索,可以采用影印缩印或其他复制手段保存论文和汇编本学位论文。保密论文在解密后应遵守此规定)(--论文作者签名日期:20181120:枚¥讳导师签名 山东大学硕士学位论文目录摘要IABSTRACTII第1章绪论11.1系统开发的背景11.2国内外当前研宄形势11.3本文的主要工作31.4论文的组织结构3第2章需求分析42.1系统概述42.2系统角色分析52.3功能需求分析52.3.1考勤设置52.3.2考勤签到82.3.3休假加班132.3.4考勤统计202.4非功能性需求21第3章系统设计233.1系统总体设计233.1.1应用技术架构设计233.1.2包结构设计233.1.3功能架构设计253.2功能详细设计273.2.1考勤设置详细设计273.2.229考勤签到详细设计3.2.3休假加班详细设计32335.2.4考勤统计详细设计3.3数据库设计37 山东大学硕士学位论文3.3.1考勤设置数据库设计373.3.2考勤签到数据库设计403.3.3休假加班数据库设计423.3.4考勤统计数据库设计45第4章实现与测试494.1系统总体实现494.1.1考勤设置实现494.1.2考勤签到实现534.1.3休假加班实现604.1.4考勤统计实现694.2系统测试73第5章总结与展望77参考文献79致谢81 -?山东大学硕士学位论文CONTENTSChineseAbstractIEnglishAbstractIIChaterlIntroduction1p1.1Thebackgroundofsystemdevelopment11.2Currentresearchsituationathomeandabroad11.3Themainworkofthisarticle31.4Theorganizationalstructureoftheaer3ppChapter2Demandanalysis42?.1Systemoverview4stemroeanalsis2.2Syly52.3Functionalrequirementanalysis52.3.1Attendancesettin5gcknoratendance2.3.2Cheif82.3.3Vacationovertime132.3.4Atendancestatistics202tet.4Nonfuncionalrquiremens21Chapter3Systemdesign23temoveraesn3.1Syslldig233.1.1lcattecatectAiionhnologyrchiuredesin23ppg3t.1.2Packagestrucuredesign233.1.3Functionalarchitecturedesign253.2Functionaldetaileddesign27taedesnaendancesettn3.2.1Deildigofttig273.2.2Atendancecheckindetaileddesin29g33eaileddesinofvacationovertime.2.Dtg323.2.4Detaileddesinofattendancestatistics35g3.3Databasedesign37iii 山东大学硕士学位论文3.3.1Settingudatabasedesinforattendance37pg3.3.2Checkattendancedatabasedesin40g3.3.3Designofholidayovertimedatabase423.3.4Desinofattendancestatisticsdatabase45gChapter4Implementationandtesting494.1Overallrealizationofthesstem49y4ttendancesettinimlementation49.1.1Agp4eck-n.1.2Chi534t.1.3Workonvacationandoverime604.1.4Implementationofattendancestatistics694.2Systemtest73Chapter5Summaryandoutlook77Reference79Acknowledements81gw 山东?大学硕士学位论文摘要一工的绩效和薪资直接相关还会考勤管理是企业的核心管理工作之,与员,一直以来都是影响到企业的各项效益,十分受企业的重视。中软各级机构的考勤以员工1C卡、指纹打卡或者手工签到的方式进行记录,后期由考勤管理人员结合员工的休假、加班等情况对考勤记录进行人工汇总统计,工作繁琐,因此每个周期末会有巨大的工作量。鉴于此,建立方便、科学、高效的考勤管理系统,实现员工考勤数据的规范化、标准化,成为了当前重要的系统建设任务。本系统由PC端的系统管理和Android、iOS手机端的考勤业务组成。PC端采用B/S技术架构,使用面向对象的JAVA语言在SWORD中软睿剑业务基础一平台上进行开发,利用HtpCHent来实现文件传输等功能。手机端采用C/S技术架构id,调用百度地图API获取考勤定位地址信息,其中Andro端采用OkHtp网络框架,同样使用JAVA语言在AndroidStudio集成开发工具上进行开发;iOSe-端采用AFNtworking网络框架,使用面向对象的ObjectiveC语言在Xcode集成开发工具上进行开发,利用MJRefresh框架来实现下拉刷新等易用性操作。系统采用免费的MySQL作为数据库进行数据存储。系统的功能划分为考勤设置、考勤签到、休假加班、考勤统计4个模块。考勤设置包括Web端的非工作日设置、考勤周期设置、上下班时间设置、外勤考勤设置,移动端APP的企业定位。考勤签到包括Web端的签到人员设置、外勤项目人员设置、签到管理,移动端APP的签到、外勤、代签、我的签到、通知、设备解绑。休假加班包括Web端的休假流程设置、年休假额度设置、加班流程设置、加班管理,移动端APP的休假申请、加班申请、待办事项、我的额度、我的休假、我的加班。考勤统计包括Web端的考勤签到统计、考勤结果管理,移动端APP的上月出勤汇总、考勤统计、部门考勤。系统的设计与实现,将会加强中软各级机构对员工考勤的管理力度,提高考勤统计效率。系统支持Android、iOS手机端,方便员工考勤信息数据快速进入系统;支持PCWeb端,方便日常工作中对员工考勤信息进行查询统计和数据分析,;支持传统考勤数据接入方便特殊机构的考勤信息同样得到规范化和标准化。关键词:考勤管理;百度地图定位;B/S架构;Android;iOSi 山东大学硕士学位论文ABSTRACTAsanimportantpartofenterprisemanagement,attendancemanagementisdirectlyrelatedtotheperformance,salaryandeconomicandsocialbenefitsofemloeesandhasbeenaidmuchatentiontobenterrisesallthetime.Satallpy,pyoft,p'levelsoftheOrganizationDeartmentsattendanceisalwaystoemployeesofICcardp,fingerprintcardorhandsignthelaterbtheinstitutionsatalllevelsanddeartments,ypoftheatendanceCommissionercombinedwithstaffleave,overtime,leaveforthemanualsummarystatisticsonatendancerecordsworkloadandtedioustasks.,Thereforetheestablishmentofaconvenientscientificandefficientattendance,,managementsystem,staffattendancedatastandardizationandstandardizationisanimportanttaskofthecurrentsystemconstruction.ThesystemconsistsofPCendofthesystemmanagementandAndroid,iOSmobilehoneattendancebusiness.PCusesB/Stechnoloarchitectureandusespgy,objectorientedJAVAlanguagetodeveloponSWORDsoftswordbusinessplatform,andusesHttpClienttorealizefiletransferfunction.MobilephoneendcallBaidumapAPItoobtaintheattendanceandlocationaddressinformation,whichusedtheAndroidframeworkoftheOkHttpnetwork,thesameisdevelopedusingJAVAlanguageintheAndroidStudiointegrateddevelomenttoolsiOSusesp;AFNetworkingnetworkframework,usingtheprotocolorientedSwiftlanguagedevelopedintheXcodeinterateddevelopmenttoolsusinMJRefreshframeworktog,gach-ievethedrodownrefreshsuchaseaseofoerationelectfreeandoenpp.SpreationaatabaseanditweihtdatabaseitefordaastoraelldMySQLlghgSQLtg.Thefunctionofthesstemisdividedinto4moduleswhichareattendancey,setting,atendancechecking,vacationovertimeandatendancestatistics.TheatendancesetincludesnonworkindasatthePCsettinattendancecclesettingyg,yg,timesettinfieldattendancesettinsAndroidiOSmobilehonebuinesslocation.g,g,,psTimeatendanceincludinthePCsinsettinfieldroectstaffinatendanceggg,pjg,manaementAndroidiOSmobilehoneterminalfieldsin,sinonbehalfofm,g,,pggyii 山东大学硕士学位论文--sign,notice,unlasingequipment.VacationovertimeincludesPCendvacationprocesssettnannuaeatttrocesssetnertillveuoaseinovertimetiovimemanaementg,qg,pg,g,'Andro-idandiOSmobilehonesvacationalicationovertimealicationtodolistppp,pp,,myquota,myvacationandmyovertimework.Attendancestatisticsincludeattendancecheckandatendancestatistics,atendancemanagement,Android,iOSmobilephoneendofthelastmonthattendance,attendancestatistics,Departmentattendance.Thedesinandimplementationofthesystemwillstrenthenthemanagementofggstaffatendanceatalllevesaneartmentsofthemediumandsoftdeartmentsandlddpp,improvetheeficiencyofattendancestatistics.ThesystemsupportsAndroidandiOSmobileterminalstofacilitatetherapidentryofstaffatendanceinformationdataintothesystemsuortsPCWebterminaltofacilitatetheuer,statisticsanddata;ppqyanalysisofstafattendanceinformationindailywork;supportstheaccessoftraditionalattendancedataandfacilitatesthestandardizationandstandardizationof,attendanceinformationofspecialinstitutions.Keywords:Attendancemanagement;Baidumapslocation;B/Sarchitecture;Android;iOSin 山东大学硕士学位论文第1章绪论1.1系统开发的背景一中软作为家大型企业,,各级机构众多并且分散于全国各地导致管理组织结构尤为复杂,各级机构之间的作息制度都有区别,职能部门通常是固定时间登一记考勤,业务部门大部分是弹性时间登记考勤,规定时间也不完全致。同时部分业务部门还存在外派的项目组或驻场人员一,导致个部门内部也存在多个不同的考勤地点与作息制度。考勤管理是各级机构日常管理工作的重要组成部分,直接关系到员工的绩效、薪资以及企业的经济、社会效益等诸多方面,对保障工作秩序、提升工作效1一][直以来都是以员工率具有重要的作用。中软各级机构的考勤1C卡、指纹打卡或者手工签到的方式进行记录,后期由考勤管理员结合员工的休假、加班等情况对考勤记录进行人工汇总统计,不仅工作量大、效率低下,而且容易出错。近年来,网络和技术的不断发展使得智能移动终端逐渐普及,性能也越来越一、高,利用智能手机平板电脑等设备进行移动办公己然成为了种便捷办公的新2[),趋势。现在手机定位技术己经相当成熟,定位方式多样精确度高,基于位置的服务越来越多,为利用移动定位的Android、iOS手机端考勤签到提供了技术3|1。基础而随着中软信息化建设的推进,最基础的组织结构权限管理系统已经成功上线运行,以这个系统的组织机构数据和企业人员数据为基础,建立基于Web和移动终端的方便、科学,、高效的考勤管理系统能够很好地解决中软目前在考勤管理上存在的问题,可以大大减少考勤管理人员的工作量,降低考勤管理的成本,,同时也可以提高工作效率实现考勤管理的信息化。12.国内外当前研究形势考勤管理主要是指利用现代化的管理思想,通过对人员开展活动的时间进行,记录,管理者可以合理的组织人员和调整活动充分发挥人员的主观能动性,使4[]得活动能进行得更加合理与高效,以更好的实现组织的目标。在国外的很多发达国家,,企业的信息化水平整体比较高利用计算机来协助1 山东大学硕士学位论文考勤管理己经比较普遍。由于计算机拥有强大的计算与分析能力,考勤工作效率能得到极大的提高,同时计算机的准确性又可以很好地避免手工考勤难以避免的5][错误和误差,从而实现数据的大规模集中处理。国内的企业借助计算机来进行企业管理,只是在70年代之后才慢慢发展起来的,而计算机协助考勤管理仅仅是近几年才得到普及,尽管这两年发展较快,,还有很大的发展空间但总体来看,计算机在国内企业考勤管理工作中的应用,在这方面的探索和研究将有助于国内企业推进对考勤的信息化和科学化管理6[]O目前国内外的考勤管理,主要有磁卡考勤和指纹考勤两类方式。磁卡考勤是利用磁卡内置的条码信息进行考勤,相对于传统的人工考勤,节约了人力同时方7一[]便统计次性投入也较大,。,但不能避免代为打卡,磁卡容易损坏不方便维护指纹考勤是利用指纹图像的匹配进行考勤,防伪性较高并且易于维护,但是缺乏8一[]定的灵活性。这两种考勤都是基本满足了考勤信息收集的要求,但无法直接对信息进行综合分析和使用。在针对企业员工的考勤系统方面一些功能比较,不少软件公司己经可以提供完备的产品,,但是这些产品的功能大同小异缺乏对企业具体情况的针对性,所6[]一以使用起来不尽人意,例如无法满足同机构的多种考勤制度、无法满足特殊机构的使用条件等,可以充分了解到各级机构和部门的不同。中软采取自主研发需求,,使得开发出来的产品实用性更强,并且具有更好的适用性同时对比直接购买市场上定制的产品,自主研发所需的费用也大大降低,这无疑是最佳的选择。2. 山东大学硕士学位论文1.3本文的主要工作本文的主要工作是设计与实现基于Web和移动终端的中软考勤管理系统,本文的主要工作是需求分析、系统设计、实现与测试。基本介绍如下:1.需求分析部分根据需求调研和业务分析进行系统的功能划分,系统整体9[]上分为4个模块,分别是考勤设置、考勤签到、休假加班、考勤统计。2.系统设计部分依次进行了系统总体设计、功能详细设计、数据库设计。系统总体设计中介绍了系统的应用技术架构、包结构以及功能架构。Web端使用Java语言进行开发,利用的技术有SSH框架技术,HtpClient工具包;Android端使用Java语言进行开发,利用的技术有OkHttp框架技术,百度地图API;iOSec-AFN端使用ObjtiveC语言进行开发,利用的技术有etworking、MJRefresh框架技术,百度地图API。这些框架技术方便了开发工作,加快了系统设计与实现_的速度。数据库设计介绍了主要的业务表,使用的是较轻量的MySQL。3.实现与测试部分对系统中考勤设置、考勤签到、休假加班、考勤统计的各个功能进行展示,并详细的介绍了实现过程。系统测试中展示了部分功能测试1()[]的结果,包括在测试过程中记录的缺陷和修复方案,最终达到准出条件。1.4论文的组织结构第I章,绪论部分介绍了系统开发的背景和国内外当前研宄形势,最后确定了本文的主要工作。第2章,需求分析部分包括系统概述、系统角色分析、功能需求分析、非功能性需求。首先对功能进行划分,功能划分为考勤设置、考勤签到、休假加班、考勤统计4个模块,然后对各个模块进行用例分析,最后描述了非功能性需求。第3章,系统设计中首先进行系统总体设计,通过功能架构图展示各功能之,然后对各功能进行详细设计间的关系,最后对数据库业务表进行设计。第4章,实现与测试部分展示了系统的主要功能,并对应描述了具体的实现过程和部分的功能测试结果。第5章,总结与展望部分对系统设计与实现的整体流程进行总结,然后指出,最后对系统以后的发展进行展望了系统的优点和不足。3 山东大学硕士学位论文第2章需求分析21.系统概述一长期以来,中软的考勤管理直依靠考勤管理人员对打卡或者签到的考勤记录进行手工汇总统计,工作量大且任务繁琐,不能满足公司信息化发展的要求。基于Web和移动终端的中软考勤管理系统可以更好的管理中软各级机构员11][工的考勤,提高考勤管理效率。,降低考勤管理成本,实现考勤管理的信息化-系统主要是对员工签到、休假、加班等信息进行管理,系统功能划分,如图21所示。Izpi考勤签到体假加班ns基于feb和移动终端雜1讲罾fih考书勤描设置考勤统4计+的中软考勤管理系@2-图1系统功能模块划分图系统的功能业务划分为考勤设置、考勤签到、休假加班、考勤统计四部分。考勤设置包括Web端的非工作日设置、考勤周期设置、上下班时间设置、外勤12A[]考勤设置,移动端PP的企业定位。考勤签到包括Web端的签到人员设置、外勤项目人员设置、签到管理,移动端APP的签到、外勤、代签、我的签到、通知、设备解绑。休假加班包括Web端的休假流程设置、年休假额度设置、加班流程设置、加班管理,移动端APP的休假申请、加班申请、待办事项、我的额度、我的休假、我的加班。考勤统计包括Web端的考勤签到统计、考勤结果13[管理],移动端APP的上月出勤汇总、考勤统计、部门考勤。简而言之,PC端侧重对系统的设置管理、,主要是对时间地点、休假、加班、统计结果等信息进行管理,手机端侧重对日常考勤活动所需功能的实现,主要是进行签到、申请休假、申请加班、流程审批、查看个人考勤信息等操作。4 山东大学硕士学位论文2.2系统角色分析在本考勤管理系统中:,涉及的主要用户角色包括单位领导、单位考勤专员、部门领导、部门考勤员、项目经理、员工。单位考勤专员、部门考勤员首先在系统完成各项设置,项目经理,、员工就可以通过系统进行日常考勤活动单位领导、部门领导负责对有关申请进行审批。不同的角色具有不同的功能权限和机构权限,只能操作对应功能权限的系统功能,同时也只能查看对应机构权限的考勤情况。关于权限的设置分配通过组织结构权限管理系统来进行,在11|]-1此不做详细说明。各系统角色对应的主要功能说明如表2所示。2-表1角色功能表^功能说明|PC端手机端+ ̄ ̄单位领导无审批流程 ̄"单位级的相关设置、管理单位考审批流程单位考勤专贝勤统计部门领导管理部门考勤统计审批流程、查看部门人员考勤统计 ̄ ̄部门级的相关设置、管理签到、审批流程、查看部门人员考勤统部门考勤员核对加班、管理部门考勤统计、计、设置部门考勤定位地址休假和加班信息维护’项目经理无加班申请、审批流程 ̄^考勤签到、休假申请、管理个人考人勤信息、查看个人考勤统计2.3功能需求分析2.3.1考勤设置考勤设置主要是实现考勤管理员对考勤时间、地点的设置管理。单位考勤专员可以设置查看本单位统一的工作日与公休日一,设置查看本单位统的考勤周期,设置单位各部门参考的上下班时间,查看权限范围内的各部门设置的上一的上下班时间下班时间。部门考勤员可以设置查看部门统,可以通过企业定位设置部门的非外勤考勤地点,非外勤签到的地点判断即依据于此,还可以设M[]置查看部门外勤项目的考勤地点和时间。2-2考勤设置需求分析用例图,如图所示。5 山东大学硕士学位论文老勤设置〈〈include〉〉〈〈include〉〉?/\/\<ncude>><<include<il>>-.>>^^作曰设-整非工作l-调整公休Ay^^include)>/^./\_查询非工作口广^〈<inchide>交置考勤周其^0?-^〈〈include〉〉考勤周期设置::;?>?、、、、乂、、、询考勤周v>丨\(^)^单位考勤专员〈〈include》\^^^下班时间设-<设置上下班时^)>vncue〈〈ild〉〉A\i,部门考勤员辑地址时间\j)^nchlde>>m#??15Xv^人 ̄、_,^<<includ)j除地址时丨;^0\\图2-2考勤设置需求分析用例图一,非工作日设置中系统可以自动设定双休日和元旦、五、国庆3个公历标准假期,春节、清明、端午、中秋4个农历假期需要单位考勤专员根据当年发布的法定节假日信息通过新增非工作日进行设置。设置之后可通过调整公休来切换公休与工作日。当单位进行长假前后的集体调休时,可以通过调整非工作日中的调整公休进行设置。可以通过查询非工作日查看权限范围内的机构设置的工作日与公休日情况。2-2新増非工作日的用例描述,如表所示。6. ?山东大学硕士学位论文表2-2新增非工作日用例规约表胃""用例名称新增非工作日_|用例描述新增当前年份的非工作日。^^胃主要参与者单位考勤专员^3众及其关注点单位考勤专员。:新增非工作日的便利性^胃前置条件用户己选单位、当前年份。 ̄' ̄)§&m^〇基本事件流1.用户点击新增非工作曰。2.系统判断当前年份的非工作日是否己存在。3.如果当前年份的非工作日不存在,则系统进入新增非工作日页面。4.用户输入非工作日相关信息后,点击保存。5工作日信息(包括节假日、公休日).系统保存当前年份的非,返回非工作日设置页面。“6.如果当前年份的非工作日己经存在,则系统提示当前年份的非工作”日己存在,请点击调整非工作日。。7.用户点击确定。8.系统返回非工作日设置页面。"可选事件流无。|考勤周期设置中,单位考勤专员可以通过设置考勤周期按照自然月或者非自然月对考勤周期进行设置。可以通过查询考勤周期查看权限范围内的机构设置的考勤周期情况。-设置考勤周期的用例描述,如表23所示。表2-3设置考勤周期用例规约表 ̄ ̄用例名称设置考勤周期 ̄ ̄用例描述|设置单位的考勤周期。 ̄ ̄主要参与者单位考勤专员^单位考勤专员:设置考勤周期的便利性众及其关注点。 ̄ ̄"前置条件用户己选单位。^后置条件无。基本事件流1.用户点击设置考勤周期。2.系统进入设置考勤周期页面。3.用户输入考勤周期相关信息后,点击保存。4.系统保存考勤周期信息,返回考勤周期设置页面,刷新考勤周期显不内容。 ̄可选事件流无。|上下班时间设置中,考勤管理员可以通过设置上下班时间对单位参考的上一下班时间或者部门统的上下班时间进行设置,包括标准上下班时间,上班签到范围、上班迟到范围、下班签到范围、下班早退范围,设置之后会自动计算显示上午旷工范围、下午旷工范围。可以通过查询上下班时间查看权限范围内7 山东大学硕士学位论文的机构设置的上下班时间情况。外勤考勤设置中,部门考勤员可以对外勤项目的签到地址、签到时间进行新增、编辑、删除操作,其中设置地址时调用百度地图API进行定位并获取地址信息。可以通过查询地址时间查看本部门外勤项目设置的地址与签到时间。-外勤考勤设置的用例描述,如表24所示。表2-4外勤考勤设置用例规约表用例名称外勤考勤设置^|用例描述外勤考勤的签到时间,签到项目,签到地点,签到经纬度设置。^主要参与者部门考勤员涉众及其关注点项目:本部门下的项目。项目签到设置:该项目下不同签到地点的签到考核标准的设置。^前置条件无。后置条件无。基本事件流1.用户进入首页。2.点击进入考勤系统。3.进入考勤设置。4.进入外勤考勤设置。可选事件流。|无2.3.2考勤签到考勤签到主要是满足员工的考勤日常活动以及实现部门考勤员、项目经理对签到人员、签到情况的管理、代签打卡等操。员工可以进行签到、外勤打卡作,可以查看签到记录;部门考勤员可以设置查看本部门的考勤人员,设置查看各项目的外勤人员和负责人,查看考勤签到情况,进行补签到;项目经理可15[]以查看外勤员工的外勤打卡、代签打卡的抄送通知。为了防止员工切换登录账号签到作弊,账号首次登陆之后会自动绑定设备,通过设备解绑可以申请解绑,48小时后解绑生效,再次登录会按照首次登陆处理进行再次绑定。-考勤签到需求分析用例图,如图23所示。8 山东大学硕士学位论文z?r>inr4rcfe>J考勤签到/、d、广签退(J)/?include?,丫〈〈include》、、、、、、、、々<S)K\\〈〈incudel〉〉->?询)\(^^设备解绑〈〈include〉〉设置签到人iYj_^^)^<<include>>产?>(^)<<include?^-,—><^^)?(^^\<<include>>,、\、、部n考勋员、—、\\、,^询外勤人员\^j\〈〈include〉〉.—"N'XsN人x^C^^^项n经理图2-3签到管理需求分析用例图在手机端,员工可以通过考勤签到中的签到、签退进行非外勤考勤打卡,即签到地点为公司,系统根据PC端设定的上下班时间来判断签到状态。可以9 山东大学硕士学位论文通过外勤进行外勤的签到签退,需要关联对应的外勤项目。可以通过代签帮助无法自行签到的外勤员工进行签到签退,选择签到人之后同样需要关联外勤项目,同时必须抄送项目经理。可以通过我的签到查看详细的签到记录。-外勤签到流程图,如图24所示。T瓶'c)V选择关联项目^)\1/点击签到£jsKA选择抄送人>判断项目是巧为其-他fv^否证签到地点0- ̄/^否义IK提示不在签到范围内是亡在项外勤地点附近[_是V0丨正签到时间^不乂i>是否迟到1是V邵出提示^不乂^g是否选择抄送人是IV选择抄送人£^V^行签到的请求丨\_、回签到的请求信v返冋外勤\/图2-4外勤签到流程图10 山东大学硕士学位论文-代签签到流程图,如图25所示。VGpV<选择签到人D小ww点,1丨签到fy\|/<进行签到的谙求jWV°联SiLJ:J图2-5代签签到流程图当外勤考勤人员进行代签打卡,或者外勤迟到、早退打卡时选择抄送,项目经理就可以从中查看到对应的考勤签到信息。当有通知信息时,手机任务栏会“”有消息提示,审批页通知文字后也会显示红色小点作为提示。PC端的签到人员设置中,部门考勤员通过设置签到人员进行设置时,系统会显示登录人员权限范围内的所有人员基本信息,部门考勤员可以设置本部门需要进行签到的人员,非签到人员将不会参与系统最后的统计计算。可以通过查询签到人员查看本部门需要进行签到的人员。2-5设置签到人员的用例描述,如表所示。II 山东大学硕士学位论文表2-5设置签到人员用例规约表用例名称设置签到人员|用例描述设置机构的签到人员和不需要签到的人员。^主要参与者部门考勤员涉众及其关注f部门考勤员:设置签到人员的便利性。前置条件用户己选机构。后置条件无。 ̄基本事件流].用户点击签到人员设置。,显示签到人员列表2.系统进入签到人员设置页面。3/.用户选择人员所在行,点击启用停用,设置人员是否需要签到。可选事件流无。|PC端的外勤人员设置中,部门考勤员通过设置外勤人员进行设置时,系统会显示登录人员权限范围内的所有签到人员基本信息,可以设置本部门签到人员中需要进行外勤管理的人员一。设置完成之后,可以通过设置项目管理员进步对外勤项目的负责人进行设置,,通常为项目经理当外勤人员需要同事进行代签时需要抄送告知项目负责人。可以通过查询外勤人员查看本部门外勤项目中需要进行签到的人员。-设置外勤人员的用例描述,如表26所示。表2-6设置外勤人员用例规约表用例名称设置外勤人员^|用例描述分配部门签到人员外勤项目归属。^主要参与者部门考勤员涉众及其关注f部门考勤员:部门下签到人员外勤项目归属。^t置条件用户己选项目。后置条件无。"""1基本事件流.用户点击外勤人员设置。2.系统进入外勤人员设置页面。3.用户选择外勤项目,点击设置项目外勤考勤人员。4.系统进入设置外勤人员页面,显示项目外勤人员与部门其他考勤人员列表。5.用户选择人员所在行,点击列表之间的左右移动按钮,设置人员是否需要进行外勤。可选事件流无。|-设置项目管理员的用例描述,如表27所示。表2-7设置项目管理员用例规约表用例名称设置项目管理员"|用例描述外勤打卡特殊情况会发送消息给外勤项目管理人员。^主要参与者部门考勤员涉众及其关注点部门考勤员:设置项目管理员的便利性。|12 山东大学硕士学位论文 ̄前置条件用户己选项目。"I后置条件无。 ̄ ̄基本事件流.1用户点击外勤人员设置。2.系统进入外勤人员设置页面。3.用户选择外勤项目,点击设置项目管理员。"可选事件流分配项目人员管理员权限等级。-|设置项目管理员的业务规则及数据约束:每个项目必须设置项目管理人员,一项目管理人员可不唯。'PC端的签到管理中,部门考勤员可以查询权限范围内的所有人员签到情况,也可以根据姓名、签到时间、签到来源进行条件查询。可以通过补签到管理添加指定人员在指定时间的签到记录。-补签到管理的用例描述,如表28所示。表2-8补签到管理用例规约表—用例名称补签到管理 ̄|用例描述员工忘记签到,部门考勤员在PC端进行补签。¥"主要参与者部门考勤员3众及其关注点部门考勤员:补签到的便利性。 ̄—前置条件无。 ̄后置条件无。1.用户进入签到管理,点击补签到按钮基本事件流。2.系统跳转到补签到填写信息页面。…3.用户输入补签到信息,点击保存按钮。4,.系统保存补签到数据页面跳转到签到管理首页。"可选事件流无。|2.3.3休假加班休假加班主要是满足员工申请休假、加班的需求,同时实现了对休假、加班额度以及审批流程的管理。员工可以申请休假、加班,查看可用额度和休假加班记录。考勤管理员可以设置休假额度,可以对审批流程进行设置和查看,16[]可以对审批事项进行操作,可以结合实际签到情况对员工加班申请进行核定。-其中设置,。、管理功能的需求分析用例图如图26所示13 山东大学硕士学位论文休假加班〈〈〉include〉询休假流^^),^^^■;fe<uc?〇<,nc1dn'^\’?nudeZ,ici??ncuc?木假流枵设置id,.?,el>x(.nds>|条件m/\/、y又J)"单位考勤雜/广^?〇X,ends?/-/奄询年休假额度、jf^??V、/include^、^、//重置查询条件又^、/??include?—1/^:年休假颔度j/年休假额坟设i?.>>imiude\^/十爲年休假额y4(〇1^?inc?^/lude\查询加班流程?)‘??->〈〇》\加班流程】udeV^(^5extend\/\v^,^^^^部门考勤W\^查询加班置赍询条件^'、〈〈〉include〉广\、新增加班\\,)〈〈〉!include,y^?Vrtl?\ike广\、/',.一父修改加班)^?^J\/incluce?加班管理::X>!s、k、<<y、iFfcim处v、^、/*、??、畜看加班、、>()〈〈〉include〉、、、、、^<>>、<include、、年休假额度、A加班?)核定1m^rmt^、A^—夕災工2-6设置图、管理功能需求分析用例图-申请、处理功能的需求分析用例图,如图27所示。14 山东大学硕士学位论文休假加班^〈〈include〉〉提父\j.^’休假中诘丨Ud(〉>yQ、,*//^?!jciincu>m:r)iudt>A^JrQj?icld?\nue ̄^<<.iruXvJ ̄ ̄广、 ̄*腕故越休:^,:cl乂vinud,、‘'<<ildc>>ncuN选择十批人jV-〇XUT-?1(Jsc>?ludc?lin\一-打屮批/li迟回的休假y产^y、'1—?V/、,<)y:^、、、、、、,?cxiends>>产己办结、己核定的加班^<<杳看屯批流程j^yiciudc>>s>^^^!<<exLcnds>>杳看市批流-^—"<^^^ccinlud>>^X?id5>nclucL班待市批ijfiM的加、,'n\iclude?^终止^_、^、?inclucJc?修改J^/U\/^-Y米捉夂Li终止的加班广X,,-’<<'1tl>>iruui、、、、<<>iclilcv>.nu、^图2-7申请、处理功能需求分析用例图-审批功能的需求分析用例图,如图28所示。15 山东大学硕士学位论文休假加班includeucIl^^^ ̄_-入问择审批人肢):S.SI)^(^^)'\/.includc!includo^^^^迎 ̄-中補导XiiniC0\—9-?t(^nsd—^^.?批的申看审批流修改\\A1-.inoilk:^1ude:ncuc.人\\、_A ̄^ ̄m/:../.;'lndudtinclude*单位考狗专,\/,^A待办}已退回的中请ft游^\\)'\\'.incut!incu:.()Id^lde_’\...\\\-‘id'.txcnsn\Miclude^',^'^s/\办urv审批的申看审批流捉父*--x^择审批7^):m—:.<ncue:/\ilild」;gcn?i§//\//includf\exends!:t\lY/己办1--X4退?的申眷审批流^/K^^::it::/1ink':-\ixtinclude.xendsfJimJ、〇\?/、><t.-.1^<exends-^'N^i办结的申p看审批流?A项H经理图2-8审批需求分析用例图PC端的休假流程设置中,考勤管理员可以通过设置休假流程对员工各类休假申请的审批流程进行设置,分为按条件设置和不按条件设置。按条件设置是一统的审批流程;不按条件设置是不同范围的申请天数对应不同的审批流程,通过条件重置可以进行重新设置。可以通过查询休假流程查看权限范围内的机构设置的休假流程情况。-设置休假流程的用例描述,如表29所示。表2-9设置休假流程用例规约表用例名称设置休假流程_|对不用例描述同类型的休假进行流程设置。^1主要参与者考勤管理员涉众及其关注f考勤管理员:设置休假流程的便利性。 ̄ ̄前置条件无。后置条件Y无。.基本事件流1用户选择组织机构,选中休假类型。2.选中不按条件设置、按条件设置。3.用户输入休假流程相关信息后,点击保存。4.系统保存休假流程信息。可选事件流无。|16 -山东大学硕士学位论文PC端的年休假额度设置中,部门考勤员可以通过设定年休假额度手动设置员工的年休假额度,也。对于有参加工作时间、入司时间信息的员工可以通过计算年休假额度进行直接设定。可以查询权限范围内的机构所有人员的年休假额度以及使用情况,也可以根据年份、姓名、入司时间范围、参加工作时间范围、是否设置休假额度进行条件查询,通过重置查询条件可以恢复默认重新设定。-设置年休假额度的用例描述,20如表1所示。-表210设置年休假额度用例规约表^用例名称设置年休假额度 ̄ ̄I用例描述设置某年的年休假额度。^胃主要参与者部门考勤员:设置年休假额度的便利性3众及其关注点部门考勤员。 ̄ ̄^前置条件用户己选机构。^ ̄ ̄后置条件无。基本事件流1.用户选中人员数据。2.点击设置按钮。3.打开设置年休假额度弹出框。4。.用户输入年休假额度相关信息后,点击保存5.系统保存年休假额度信息,返回年休假额度设置页面。+可选事件流无。|-,如表2。计算年休假额度的用例描述11所示2-表11计算年休假额度用例规约表^用例名称计算年休假额度^|用例描述根据人员信息,自动计算年休假额度。 ̄ ̄主要参与者i门考勤员^^众及其关注点部门考勤员:关心计算年休假额度的便利性、准确性。^’^前置条件用户己选择机构、年份。 ̄ ̄后置条件相关年休假额度数据更新。"""基本事件流1。.用户选择无年休假额度的人员,点击计算2,.系统开始执行计算操作并显示动画以提示用户系统正在进行计“”算!。计算完毕后,系统提示计算完毕。3.用户点击确定。4.系统返回年休假额度设置页面,刷新显示年休假额度数据。可选事件流无。|加班流程设置与休假流程设置类似一,不同的是各类加班申请均是统的审批流程。PC端的加班管理中,部门考勤员可以查看所有加班信息,可以直接新增未申请的临时已加班记录,对手动新增的加班记录可以进行删除,可以部分修改17 山东大学硕士学位论文加班信息。对于已经审批通过的加班可以通过核定加班进行工时核定,核定时会显示一定时间内该员工的签到情况以供参考。通过查询加班查询权限范围内的机构所有人员的加班情况,也可以根据年份、姓名、状态进行条件查询,通过重置查询条件可以恢复默认重新设定。核定加班的用例描述-。,如表212所示2-表12核定加班用例规约表用例名称核定加班^|用例描述对已审批通过的加班申请,核定其实际加班工时。"主要参与者部门考勤员涉众及其关注f部门考勤员:核定加班工时的便利性。"前置条件用户己查询到加班申请。^后置条件无。 ̄^“”基本事件流1.用户选择状态为己审批的加班申请记录,点击核定加班。2.打开核定加班工时弹出框。3.用户输入实际加班小时数,点击保存。4.系统保存加班信息,返回加班管理页面,刷新加班列表。可选事件流无。|手机端的我的额度中,员工可以查看年休假、加班调休额度使用情况,年休假额度来源为前面PC端设置,加班调休额度由系统根据加班情况计算所得。在手机端,员工可以通过休假申请发起各类休假的审批流程,选择PC端休假流程设置中对应的审批人进行提交,提交时可以跨级。员工和项目经理可以通过加班申请发起加班的审批流程,选择PC端加班流程设置中对应的审批人进行提交,提交时可以跨级。-休假申请的用例描述,如表213所示。2-表13休假申请用例规约表用例名称休假申请^|用例描述员工线上进行休假的申请提交。"主要参与者员工涉众及其关注f申请休假的便利性。^前置条件无。 ̄ ̄后置条件无。 ̄基本事件流].员工打开手机客户端,点击休假申请。2.系统进入休假申请填写信息页面。3.员工输入休假申请信息,点击提交。4.系统跳转到我的休假界面,显示员工提交的休假记录信息及审核状态。 ̄可选事件流1.员工输入休假申请信息,点击取消。2.系统返回考勤首页。|18 山东大学硕士学位论文通过我的休假可以对自己填写休假申请时保存未提交的未提交状态的申请、主动终止审批流程的已终止状态的申请进行修改、保存、删除、提交等操作,对自己己经提交的待审批状态的申请、审批人退回给自己的己退回状态的一申请进行终止、査看,对最后级审批通过的已办结状态的申请。我的加班与,我的休假操作类似,申请状态多了已核定即部门考勤员进行了工时核定的加班,可以对其进行查看。,分为待办列表和己办列表手机端的待办事项,待办列表包括待审批、己退回的申请,己办列表包括待审批、已退回、已终止、己办结的申请。有对应权限的用户可以对待办列表中申请人或上一级提交给自己的待审批状态的申请进行提交一级退回给自己的己退回状态的申请、退回、查看流程等操作,对下进行修改一级的待审批状态的、保存、提交操作。对已办列表中自己提交给下一申请进行查看,,对自己退回给上级的己退回状态的申请进行查看对申请人主动终止的已终止状态的审批进行查看一,对最后级审批通过的己办结状态的“申请进行查看。当有待办的申请时,手机任务栏会有消息提示待办,审批页事”“”项文字和下方的审批文字后会显示红色数字作为待办个数提示。-待办事项的用例描述,如表214所示。-表214待办事项用例规约表用例名称待办事项.用例描述各审批角色人员审批休假和加班申请。"主要参与者有审批权限的用户’1步众及其关注点有审批权限的用户:审批休假和加班申请的便利性。"。前置条件无. ̄’后置条件无。 ̄基本事件流1.审批用户打幵手机客户端,在审批页点击代办事项。2.系统进入待办事项页面,页面分为待办页签和已办页签。3.审批用户点击待办页签中的列表记录。4.系统跳转到该记录的审批页面,页面上方显示申请的详细信息,下方显示审核信息。5.用户点击提交或退回。6口.系统弹出输入审批意见窗7.用户输入审批意见,点击确定8.系统保存审批信息,该条审批记录从待办页签进入到己办页签,页面跳转到待办首页。9.如果用户输入审批意见,点击取消。10.系统关闭审批意见窗口。 ̄可选事件流1.用户点击已办页签。2.系统显示己审批的记录。19 山东大学硕士学位论文2.3.4考勤统计考勤统计主要是考勤管理员对考勤周期内的考勤签到情况进行统计、相关人员对结果进行查询查看。部门考勤员可以计算导出本部门考勤人员的签到情况,可以计算查看导出本部门考勤人员的考勤结果。员工可以查看个人考勤结16|]果,单位考勤专员。、部门领导可以查看权限范围内的机构的考勤结果-考勤统计需求分析用例图,如图29所示。考勤统计Q?inc]ude?_^单位考勤专员 ̄/ ̄^查询考勤结果)〈〈include〉〉丨部丨〗於c/,l-""〈〈exends〉〉勤结果管^t/^、/<下载考勤结果)A上传打卡机考勤表\13部门考勤员\/〈〈include^-勤签到统t-员出\^iYX&计人0<<extends?^一^_\ ̄"?V下载统计结、果,^^^y傭丨A员工图2-9考勤统计需求分析用例图考勤签到统计中,部门考勤员可以上传打卡机下载的excel表格,系统会结合系统内的签到情况进行汇总统计。统计完成后可选择下载统计结果,格式为,可以自行修改完善财务部门要求上报的考勤统计报表格式。20. 山东大学硕士学位论文-考勤结果管理中,部门考勤员可以选择月份计算当月本部门考勤人员的考勤结果,系统会结合签到情况、休假情况等记录计算考勤周期内的考勤结果。。考勤管理员计算完成后可选择导出考勤结果列表、部门领导可以查看权限范围内的机构的考勤结果。-。计算考勤结果的用例描述,如表215所示-表2〗5计算考勤结果用例规约表"用例名称计算考勤结果—|用例描述根据己有的考勤相关数据,自动生成、计算某月的月考勤结果。 ̄ ̄主要参与者部门考勤员胃部门考勤员:关心计算考勤结果的便利性>众及其关注点、准确性。""前置条件用户己选择机构、考勤月份。后置条件相关考勤结果数据更新。 ̄1基本事件流.用户点击计算考勤结果。2.系统显示计算考勤结果页面。3.用户输入计算考勤结果的相关信息,点击计算。4,.系统开始执行计算操作并显示动画以提示用户系统正在进行计“”算!。计算完毕后,系统提示计算完毕。5.用户点击确定。6.系统返回考勤结果管理页面,刷新显示考勤结果数据。"可选事件流。|无,直接显示员工上月的迟到手机端的上月出勤汇总中、早退、未签到、未一签退,、外勤记录条数在PC端统计管理考勤签到管理完成计算后,从中获取出勤情况并显示,员工可以直接查看。部门领导、部门考勤专员可以通过部门考勤查看部门所有考勤人员的考勤统计情况,以及地图上考勤人员考勤地点的点状分布情况。2.4非功能性需求系统的非功能需求,指的是系统中保证性能、系统可靠性、可扩展性要求17[]等方面相应的需求要素。主要包括以下几点:1.用户界面简洁,设计美观,操作简单。2.系统兼容性好,可移植性强,能够适应中软各级单位、部门的各种国产、非国产操作系统。3.系统运行响应时间短,尤其在上下班集中签到的时间段内,要求签到响21 山东大学硕士学位论文应时间小于1秒。4.系统易用性强,操作流程人性化,使用人员容易上手。22 山东大学硕士学位论文第3章系统设计系统设计中对系统进行总体设计、功能详细设计和数据库设计。本章根据一功能需求分析的结果对每部分做出详细设计,并设计了数据库中的数据存储1Q[]信息。3.1系统总体设计3.1.1应用技术架构设计在分析目前普遍使用的技术架构之后,确定该系统PC端使用B/S架构,手机端使用CS架构,整体上采用前后端分离技术。前端负责展现数据和用户/交互,运用OkHtp、AFNetworking等框架技术,在基于J2EE的SWORD中软睿剑业务基础平台进行Web前端开发,在AndroidStudio和Xcode集成开发工具上分别进行Android和iOS的APP前端开发。后端负责实现业务逻辑,采用MVC的设计思想,运用struts、hibernate等框架技术,同样在睿剑平台的支持(1)[]3-下进行开发。该系统的技术架构,如图1所示。Web浏览器、手机APPResponseARequest^^H?pserver’ActServietlon""""ResponseViewBean^ViewModeln^nDateBaseJspModelBean八Resutl(\QueryConnDBBean—Pool-图31系统技术架构图用户在Web浏览器或者手机APP上进行操作,前端会发送相应的request请求到后端Http服务器,然后该请求会继续发送到controller控制层中的Action组件并得到分析,根据分析结果选择调用view视图层的组件响应请求或者调用一mode。Il模型层的组件若是调用模型层的组件,贝J进步通过数据库连接的方23 山东大学硕士学位论文式继续访问数据库中的数据,然后将相应的结果返回到model模型层,最后返回到_view视图层进行展示〇3.1.2包结构设计-考勤设置部分的核心包结构设计,如图32所示。IIcom.css.rlzy.service,.com.css.rzy.servceskqglfgzrglli,kqgl.kqzqziicomcssrse.com.css.se,..lzy.rvice,kqglsxbsjgl.rlzyrvicekqgl.vqsxbsjgl图3-2考勤设置核心包结构设计图com.css.rz.service.k.fzr。lyqglggl,非工作日设置功能的类包com.css.rlzy.service,kqgl.kqzqsz,考勤周期设置功能的类包。com.css.rlzy.service.kqgl.sxbsl,上下班时间设置功能的类包。jgcom.css.rlzy.service.kqgl.wqsxbsjgl,外勤上下班时间设置功能的类包。-考勤签到部分的核心包结构设计,如图33所示。1Icon.css.rlzy.service,kqgl.kqryglcom.cssrlzservice,kl.wl.y.qgqkqrygIIcom.css.rlzy.mbservice.kqgl.qdglcom.css.rlzy.service,kqgl.qdgl图3-3考勤签到核心包结构设计图com.cssrlzserviceklkr。.y..qg.qygl,签到人员设置功能的类包comcssrlzservicekw。..y..qgl.qkqrygl,外勤人员设置功能的类包com.业定位、外勤地点设置、签到、外勤、.css.rlz.mbservice.kldlyqgqg,企代签功能的类包。com.css.rlzy.service.kqgl.qdgl,签到管理功能的类包。3-4所示休假加班部分的核心包结构设计,如图。24 山东大学硕士学位论文IIcom.css.rlzy.service,kqgl.lcszcom.css.rlzy.mbservice.kqgl.xjbgljiicom.css.rlzy.service,kqglxlcomcssrlz.service,kl.bgl.jg..yqgj图3-4休假加班核心包结构设计图com.css.rlzy.service.kqgl.lcsz,休假流程设置、加班流程设置功能的类包。comcssrlzmbservicelx,..y..kqg.bl休假申请、加班申请功能的类包。jjgcomcssrlzser.x,..y.vice.kqgll年休假额度设置、我的休假功能的类包。jgcom.css.rlzy.service.kqgl.jbgl,加班管理、我的加班功能的类包。-考勤统计部分的核心包结构设计,如图35所示。…II丨com......,..cssrlzymbserviceklktjglcom.cssrlzserviceklkjgglqgqyqgq图3-5考勤统计核心包结构设计图com.t.css.rlz.mbservice.klkl。yqgq,考勤签到统计功能的类包jgcom.css.rlzy.service.kqgl.kqjggl,考勤结果管理功能的类包。3.1.3功能架构设计基于Web和移动终端的中软考勤管理系统分为考勤设置、考勤签到、休假加班、考勤统计4个模块,分别实现了考勤设置、考勤签到、休假加班、考勤-统计的功能。该系统的功能架构图,如图36所示。25 山东大学硕士学位论文_考¥外工勤勤企,II作:丨周丨业i考&I勤1旧期Z定设设设1位^S*S;:I|“:|g厂了「IT^丨^7PCSffo手机知|!.——…1I—^签到人员设置丨|考勤设置—1—- ̄——1:—■运riX丽置牺—-i|「 ̄-- ̄1WebL_fiL=_和考外勤1移勤—^:—!S…—s丽到到一—.——涵Iio^的设备解绑1■流程设置i:—:PC年休假额度设i‘;假一一端加一力卩班设置S…一—" ̄ ̄管:班;I:iniiwii1■|5里丨—休假申请:系!丁I一'i统加班申请:[_p—待^>軍适;责丨勺端I考勤统计H.-.——變.鹽—丨[—......::;■-..-1我的休假iL———考考上丨丨1:I丨:i月考部;丨勤勤签结出勤门:i至j果勤统考::统管丨汇计勤计理总图3-6系统功能架构设计图考勤设置包括PC端的非工作日设置、考勤周期设置、上下班时间设置、26 山东大学硕士学位论文外勤考勤设置,手机端的企业定位。考勤签到包括PC端的签到人员设置、外勤项目人员设置,、签到管理手机端的签到、外勤、代签、我的签到、通知、设备解绑。休假加班包括PC端的休假流程设置、年休假额度设置、加班流程设置,、我的额度、我的、加班管理手机端的休假申请、加班申请、待办事项休假、我的加班。考勤统计包括PC端的考勤签到统计、考勤结果管理,手机181]端的上月出勤汇总、考勤统计、部门考勤。3.2功能详细设计本部分详细设计了考勤设置、考勤签到、休假加班、考勤统计这四个部分。3.2.1考勤设置详细设计考勤设置中设计了非工作日管理类FgzrglCBS、考勤周期设置类KqzqszCBS、上下班时间管理类SxbsjglCBS、外勤上下班时间管理类WsxbslCBS〇qjg非工作日管理类FgzrglCBS中设计的方法有非工作日管理初期显示init〇、查询非工作日设置fzruer、保存或者修改之后的页面显示ertlnit、gQy()ins()确定当前机构年度是否有数据setNewUpdateBtn、调整公休初始化chooseFzr、()g()保存非工作日信息saveFgzr〇。考勤周期设置类KqzqszCBS中设计的方法有考勤周期设置主页面init()、edt、ave、searc。设置考勤周期i保存s查询考勤周期h(()())上下班时间管理类SxbsjglCBS中设计的方法有上下班时间管理画面初期显示init、查询上下班时间设置sxbsueryO、保存或者修改之后的页面显示()jQtinsertlniG、保存上下班时间信息saveFzrG。g外勤上下班时间管理类WqsxbslCBS中设计的方法有外勤考勤设置页面jgtsxs初期显示ini()、查询项目中对应外勤设置信息bQuery()、保存或者修改之j后的页面显示insertMtO、保存外勤上下班时间信息saveFgzrO、删除外勤上下班时间信息delete。()9|[]-考勤设置类图,如图37所示。.27 山东大学硕士学位论文SxbsjglCBStCBSIni-log)daoI<00T」ATKzqszCBSIIq_n-spiitIpaci_sq1-\S\T-[mlIPA(;H__path— ̄--r:list7”nl-i()tiniO、xms/-sxhsrvOj匕《1丨“)-^iinscrlniiO*shvc〇_res'"sa.-vd^/r()search0+hLiJdeug)(\t*stiDatasouccAame)(ram〇,一:^〇丨\^—丨叫+咖-.()s(lp|'-KWJATH^cidLMWitataamX\ihDNeO,-;>l\n」Wl:+ad<lH0\lB,'-NISRRTIMTPAGKl..\J'PeSU,lS'-W-CIKKISI:R;!/IT.ZIV- ̄ ̄/res—\;*huK()SaS:dveFgzrCBv()/\.snuntMn,0+adcram〇)Paj\PU-:-ch)(〇sergzr〇id)n,°、mn\():=rr__\1/\SP-aurOddA-.p_S/^J::::Hd\_lchi_eWqsxbslCBSjg-res+'lh(t-ug)0,K)TJAT丨丨+-PIMT>AGE1aaddaram〇-NSlmINITPAGE__^^setLrs〇-jBAV,1DL1APIMTPhC\l=+sctLrrv()+mn0^setldO、-sxh.syueryOj+adscjgi()-^ni\i〇+UpdateP()〇^vsaeFgzrO+tinserPO)(肀edelte()图3-7考勤设置类图用户要进行非工作日设置、考勤周期设置、上下班时间设置、外勤考勤设,置时系统首先均会显示当前己经设置的信息,然后用户点击相应的设置按钮进入设置页面,,进行修改、保存操作后系统会保存新设置的信息返回功能初始页面后会更新显示新设置的信息。在上下班时间设置中进行删除,系统会删除该条信息,更新之后不显示。2()[]-外勤考勤设置中修改非工作日的时序图,如图38所示。28 ?山东大学硕士学位论文ilWiCiideCBS闭户InsertInCBSg.sxhsclBSInCBSO]itillillii"1进入功能调丨h外上f班时间赞理类勒;I]谰丨ij通用初始化类显示当前数据!i]^1I"!新增时调用地阉显示广!^edilAddrfssKorWgOJ"-Ue-丨i返问保存的时>j、地点等数据l;1^1调明ig更新初始化类显示更肟数据j巧巧|页面展示沿用户rTU;!^丨j;'t1*-rIIiiiilliiiiiiiiii图3-8修改非工作日时序图3.2.2考勤签到详细设计考勤签到中设计了考勤人员管理类KqryglCBS、外勤考勤人员管理类WqKqryglCBS、移动端签到管理类QdglCBS、地点管理类Location、外勤签到管理类WqqdglCBS、保存或者修改休假和加班时签到情况判断类°AddXjAndJbCBS、PC端签到管理类QdglCBS。r考勤人员管理类KqyglCBS中设计的方法有考勤人员管理画面初期显示init()、考勤人员设置KryQuery()、保存或者修改之后的页面显示insertlnit(、q)保存考勤人员信息saveFgzr()。外勤考勤人员管理类WqKryglCBS中设计的方法有外勤项目人员管理画q面初期显示init(、外勤项目对应人员获取KqryQuery、保存或者修改之后的)()tt页面显示inserlniO、保存考勤人员信息saveFgzrO、外勤考勤人员管理员设置初始化GlyszKryQuery、设置外勤考勤人员管理员setWkrl。q()qqygy〇移动端签到管理类QdglCBS中设计的方法有计算今日签到次数daSinInCount、获取项目名称etParts、初始化外勤签到获取项目以及项目yg()g()l相关的经纬度signnForWQG、获取与项目名称和jgid相关的外勤签到地点和时间searchWqdd(、获取与其他项目名称和id相关的外勤签到地点和时间)jgsearchOtherWqdd、外勤签到地点设置editAddressForW。()q()29 山东大学硕士学位论文一地点管理类Location中设计的方法有摇摇定位signln()、取得签到地点getJgAddress()、设置签到地点setJgAddress〇、计算距离Distance()、获取机构人员列表etRylistByid。gjg()外勤签到管理类WqqdglCBS中设计的方法有外勤打卡signWqO、外勤打卡代签signWqForDq〇、获取代打卡人列表getDqryList(、获取提交人列表)getSendRyList()、判断当前用户是否需要发送提醒签到推送reminderQdPush()、判断今天是否存在审核通过的休假getShtgXjsqResults()、判断当前用户今天是否存在审核通过的加班getShtgJbsResults、获取与项目名称和jgid相关的外qG勤签到地点和时间searchWqdd〇、抄送人获取通知列表getNoticeList、获取人()员项目getRyXm()。保存或者修改休假和加班时签到情况判断类AddXjAndJbCBS中设计的方法有修改考勤记录udateKql、新增考勤记录insertKl、新増休假时的签到pjOqj()判断addXj、删除休假时还原签到数据deleteXO、根据休假更新签到信息()juptateX。、根据机构查询上下班时间设置getSxbssz、计算两个日期之间的周jj()末getWeekDays()、记录加班信息addJb〇。PC端签到管理类QdglCBS中设计的方法有签到初始化页面init〇、查询签到search()、PC端补签pcBqd()、选择人员chooseRy()、查询人员searchRy、()PC保存补签到saVe4PC〇、判断是否记录为有效签到同时新增或更新记录一addOrEditl〇、获取登录人信息etUserId、获取当前月第天etFirstDa、jg()gy()一一获取当前月最后天etLastDay、计算考勤周期etKzq、计算个月有多g()gq()少天getDaysOfMonth〇、获取签到月份getQdMonth()〇-考勤签到类图,如图39所示。30 山东大学硕士学位论文KqryQdg]CBSlCBSg^^2!-ROOTPATH+daySignInCount()SaveFezrCBS ̄ ̄ ̄-INITPAGE+etParts)一g(daoinsertimtU5b-INSERTPAGE-^snnFo一miglrWQ()一map_+dao-searchWddnq0iit0一-idc--xmzodesearchOtKqrrherWdd()yQuey()qsxbsPO—j-ideditAddressForWqOinsertInit()\一spP〇-\spPO-saveFczrO\Hg^/^insSxbsjPo-xmp/yoy-userid/-param\/Location-resWqRqryglCBS_res/'十_Jcdebug0r7】〇g十debug()/|-wcR00TPATH^1〕u1()-_setDatasouceName0-w-addPara-qxrnldiDINITPAGE-()_addParam()--address-se.tLrsOINSERTINITPAGEj/__put〇-sing^seSZGLYInStartINITPAGEtLrryO_^setDatasouceName0/—singlnEnd+seld7^t()/]T〇addFormO--singOi丨tStartsetJgidO-Kuerv^addA/qryOOttrO-singOi丨nmdaePOtEd*ptO/-insertInit()addPageO-shouldSendinser-POtO/zsaveFgrO^-vsGignln)/lyszKqrQuery0(|?—-etAddressigJgOsetWqkqrygl()Zy;InitCBS^setJgAddressO丨d,icBS5Qg—"-logsql小-+lisini1tt()-‘WdglCBSxmssearch。..qq,,,AYATruQAddXjAndJbCBS—*,ia_pcBqd()^-reschooseRy0^'— ̄^—^Sear°deb叩0-forD^^slgnwjqO^-addPa^O-ddOrEditjlO+addXj〇S〇-getFusta+addDy0+OuptateXj()*KetShtKXisaResults()*getLastDay0+dL+adiStWithDataNan>e()getSxbssz0j+etShs,sults()-ggJbjRe+agetKqzqO+ddPagp0gelWeekDavs()nsearcimqddU-getDaysOfMomhO.;1(ldTbO^e.NonceLg.s.O-^gQcIMonthO-getRvXniO图3-9考勤签到类图用户进行签到时,系统会根据不同的签到方式获取对应的签到地点数据以21|1及上下班时间数据,距离不超过500米同时在签到范围内的即为有效签到,一步判断正常或者迟到然后再进、早退等情况。当有新增或者删除有效休假申请的情况时,系统会判断并记录更新签到情况。-1在手机端进行签到的时序图,如图30所示。31 山东大学硕士学位论文版户SianinCSH(Jd^lCHSl.ocanonI!IIIIIIIIIIU入手机端显示钔始界si!!—!I理类进行签到!调丨T>j移动端签到竹'—^Ir\用地点管理类进行判断—二 ̄ ̄getAddress二JgO获取签到地克一e—* ̄)t!人丨isance〇判断距离’一eI返回签到结果!!^签到结果反馈用户^"!TIIIVIIvI1111iiii1111iiiiiiii图3-10手机端签到时序图3.2.3休假加班详细设计休假加班中设计了流程设置类FlowSetingsCBS、休假加班申请类XblCBS、年休假额度管理类NxedlCBS、休假管理类XlCBS、加班管理jjgjgjg类JbglCBS。流程设置类FlowSetingsCBS中设计的方法有休假初始化init()、加班初始化init4b()、加载iframe页面tabListInit、获取角色和机构下审核人员j()getApproverByRole〇、日常流程保存save〇、查询通用审批流程queryFlowSetingsByid()、打开审批流程设置页面openSet()。休假加班申请类XjjbglCBS中设计的方法有休假保存或者修改saveXj()、休假保存或者修改并启动工作流saveXjAndStartProcess()、加班保存或者修改saveJb〇、加班保存或者修改并启动工作流saveJbAndStartProcess、删除未申请()tt或者已终止的休假或加班delXb()、查看休假申请信息geXjDeail()、查看加班jj申请信息getJbDetail()、分页查看我的休假列表getUserXjPageData()、分页查看我的加班列表getUserJbPageData、查看需要用户审核的休假或加班申请列表()getShPageData(、查看需要用户审核的休假或加班申请总数getShDataCounts、)()查看用户参与的己审核的休假或加班申请列表getYshPageData、审批同意()processOK()、审批中止processSTOP()、审批退回processNG()、获取休假类别32 山东大学硕士学位论文--getXInitData、获取加班类型etJbInitData、获取审批流程人员j()g()一getProcessUser()、第步提交选人操作并且启动工作流startProcess()、流程获取一下步审批人next、获取年休假额度getXjed、更新休假poupdateXJPO、()()〇ttJBP更新加班p〇updaeJBPO〇、新增休假poinsertXJPO〇、新增加班poinserO〇、一NA获取下活动执行人chooseextpprover〇、获取推动人员列表tAtgetNexpproverLis°()年休假额度管理类NxjedglCBS中设计的方法有初始化页面init()、查询search、跳转到设置页面setEd、保存设置save、计算保存jiSuan、计算年()()()()休假额度getEd、计算已参加工作时间getWorkTime。()()休假管理类Xgnit、查询休假jlCBS中设计的方法有休假管理初期显示i〇xuer、新增休假画面初始化ertlnit、jQy〇ins()根据人员id取得上下班时间和年休假额度getRyInitData()、保存休假信息saveXj()、修改休假信息初始化teta、telnteete。geXDil更新休假信息初始化udai、册!J除休假信息dlj()p。()加班管理类JbglCBS中设计的方法有加班管理初期显示init()、查询加班buer、新增加班画面初始化insertlnit、保存加班信息saveJb、修改加班jQy()()()信息初始化getJbDetail、更新加班信息初始化updatelnit、删除加班信息()QtBdelete。、取得加班时间段签至(J信息geQdlJbs、核定力口班信息ecfirmJb()<?jyj()^-,31。休假加班类图如图1所示33 山东大学硕士学位论文NxedglCBSj-\xedavalCS.jgBj-PATHfinitO ̄+search〇InitCBS+setHcJ()。+saveF()SiCBSlowettns-g|tsp:-!jiSuanO--slM1\UAYSq-_/egil:d//()-MAXDAYS\isi-i_gimctW〇rkTe()--oxslgmXblCBSjjg-ma丨PATHp.XM\+—iii(n)JblCBS\g+savoX(+-j)>inii4bnkhu)j()K(;\+,+\save\AndStartProcesso.j〇lsoAnabLisllnilOsI)Hlauccan,t〇:二+SV,flC+—'>+gei.AroverHyRoUaddParam〇、pp().mTPAr-\,\-f-KV\IMlPAGI\+1VAsvehAdSlatPocessn〇_a.lnrr()-TPA,INSmIMGE+dIXhcm+__e(+P,\jj)feF!lowSsBrdquryou.ngyO〇-IPDATC\IMTPAGE),,Xj[,al++〇?(saameoenSet〇iJdLitt]thDai\()-TA?p-.-11n,i,l)I.TMLPA(.h+oth!cail+...._gJ)a0p?,ljl〇t-COMF1RMPGE+lLseXPaeDa_Agcrjgta0n+etIscr.bPacData()Mit0gIg+ehQuetShPaela\+jrggDa()y〇+ehaCInsertlnitCBS\+inserllnitgtSl)taounts〇()\/+sav+tYhPageDataeb(es〇j)go+oessO^gtbDcircK()-xmyc.IaalOp'(K\v\/+oeSTOP_XmpdatelnitOprcss()jd+\+delete)processNG()_,(10\++etXIitI)ata()goiQdjBbs)jn_lyJj(gx++etJhJnitData〇,confirm.bg_n]〇trMrn\+,tlo.stser,\erccs()",g+satPestrr〇CS()-resXglCBSj^]+dehu-〇g()]g+〇e(jed()/g+ouce-setI:Narae)atas〇ROOTPATH—/+updateXP0(I)十addParamO-INITPAGE_+updateBPO)J(+-pin^()INSERTINITPAGE+..^insertXJP〇()^seiDaN-tasouceameGE()UPDATEINIT_PA^,insertOIBPO+addForm-0DETAILPAGE.^chooseNexiApprover()+addAtir()+n--siit〇getNexiAproverListp()^(JdPageQfxuerjQyO+inseilitrn0+getRylnitDataO+saveX(j)+etXDti1gjea()+upciatelnit.〇+delete()3-图]]休假加班类图系统中休假申请、加班申请审批流程的实现,是基于SWORD中软睿剑业务基础平台中封装的工作流,。当用户进行休假申请、加班申请的提交时系统会根据设置的审批流程发起对应的工作流,休假申请按照休假类型或休假天数一一,加班申请统为个审批流程,会有不同的审批流程。对于审批流程中的申请22[],审批人可以进行审批同意、审批退回申请人可以进行审批中止。若进行审批的为年休假,则相关操作均会影响年休假额度数据,需重新计算并更新显示。当加班审批通过后,可结合签到信息进行加班的核定。-在手机端申请年休假的时序图,如图312所示。 山东大学硕士学位论文'用户SieninCRSXitilCRSXiibglCBS\xiedelCBSiiiiiiiiii1IS入手机端显示初始觅面|丨|—VSI'I|休假管理类进行休假保存提交丨|Vh1;I调用休假加班中请类启动工作流丨M1|n?saveXAmariProcess()’j一调用年休假额度管理类更g度返回提交结果|1ijiSuanO!e返N年休假丨度使用结粜!^^中请提交结k反馈用户i?!;MIIIM:M!!1IIII1111)1II!9I1II1-图312手机端申请年休假时序图3.2.4考勤统计详细设计考勤统计中设计了考勤统计管理类KqtjglCBS、考勤结果管理类KqjgglCBS。考勤统计管理类KqtlCBS中设计的方法有人员考勤统计结果getTJ、读jg()取excel导入数据库中同时删除旧数据login()、统计合并tj()、计算两个日期之间有多少个工作日getDutyDays()、模板导入统计数据exportExcelToModel〇、人员统计表中将考核结果导入insertToTyT、打卡机与内勤签到集合j()checkNqkh()、外勤数据库查找数据插入统计表configWqToPo()、正常外勤的早退判定checkTwoTimeRule()、获取两个时间的中间时间getCenterTime()、监测是否有抄送人checkIfSend()、获取抄送人员姓名getCsryXm()、根据人员id获取代签人员姓名getTjryXm()、内勤数据库查找数据插入统计表中confio、t、gNqTPo()获取内勤上下班时间geSxb()内勤数据库查找checkNqG、外勤数据库查找checkWq()、删除旧数据delete01ds()。考勤结果管理类KqlCBS中设计的方法有初始化页面init、jgg()是否重新计算isJisuan、导出考勤结果exort、查询考勤结果search、计算考勤页面add〇()p()()、ount、etDutas计算考勤结果cK计算两个日期之间有多少个工作日、qjg()gyDy()一计算个月有多少天getDaysOfMonth()、过滤企业机构树getJGString()、查询人J5 山东大学硕士学位论文RYS一员gettring、计算个考勤周期内有多少个非工作日和调休getJrCount、()j()计算给定date对应上个月时间getPervMonth〇。用户进行考勤签到统计时,系统会根据蒈通签到、、外勤签到外勤代签、补签到和打卡机打卡记录,结合设置的考勤周期和内外勤上下班时间,计算统23[]计考勤周期内的所有签到情况同时生成规定的统计报表。用户进行考勤结果统计时,系统会根据签到情况,结合设置的非工作日和申请的休假记录,计算统计考勤周期内的具体出勤结果。-13考勤统计的活动图,如图3所示。V考勤签到统<9传打卡记p\/|更新签到情况>/勤结果管0l/\K示签到情况十算更新考勤结0vy>6vpy'j\\展示考勤结<0机端查看对应信,gji-图313考勤统计活动图36 山东大学硕士学位论文3.3数据库设计L本部分的设计使用的数据库是MySQ,主要分为基础数据表和业务表两类、权限表等,是从组织结构权限管理系统同步生成。基础数据表包括人员表的,它。业务表包括签到表、休假申请表、加班申请表、考勤结果汇总表等们24[]3-之间的关系如图14所示。xsH.jq>lK上21d>ttkqxiekl)s|KVKKSIONII.q_jj)*lKiUPKHiYW,||1":,W,K1RYnm;itrlZzyk'?lsad0lyJ<Lt-qKVXMRYXM,<YXMrKPKiZS?丨、丨ii.?賴|lktVrUslM.W.Byqjg^gI[SK((jtlkll川、1^/..wr,l<IMIy.q^jgj,_XLIi)^.I,K|XM|| ̄ ̄ ̄ ̄_U、、丨l_XKSSI|_XZS,J.I;XMMrI丨.删rJISEmiMI:KXMIP^=LKSXMC.丨Xrs.Ij丨.丨z!1/▼▼yck\.mqW'k*XIYY1tr1'nI-KS.?>-w.1trzvk<,iskqrv!lliZ1XSLKR(;SY.|.I,W,K,,C'J.IKmill^!KK)irIP?2'.:’— ̄I丨KKYlhM:.LXSSSI?;:J「JKJ'KKlKYI"IKiJ<;!l>XYHZXZSSF肴各J.I.I ̄-'KYXMh-IKl;I'U_,KXMM,IIQtTIIJM:S^QDSTAmAiLTIMliSZTQTSTAinwy-iniMis,C:\IPWQTTIMKS^TENI.KliDATK;lKl▼▼▼tkorf]〇wwTOTq_g.gW ̄丨麵ME'rZ,…S-IlK1^1II,_丨4[?lKMil'TYII:.-tlIllzk(l.swdrzkskilly|.qq_y?qq.SBSl.OtU;VB.】F>>x-i,kqAIIK0VHK1,sj__K^,,丨让*-—KAPIKnV|:K.SHIISSgL>W.I|Ku:hATWSsWiV7->Il:hWy_.ll1KVHKSIONII)y|)ilMI:mKYlh''KAP-■SIUVIK^IWIjSISQO.y.)ilJZSW(J!S|K(jAirKOVHR?SliCDSJI:YW丨丨,?U|,YX?U!SJ'OAr-'SMiKVi.Rrl;ltKGS.ISj|K:I.CSI.I?|iYI|KKYg'-KUAIIWV.K\|RVSHKCS.IIIIKII^U!IV<S.|?^P'''X1nIUKlAltKVi.K\LjDSS,KyJYXMISJHyXs'>UlKUAIIKVI:K_.lLIvi|>L1SK.Km〇VKXI^TSSUA<!;M.I丨S丨叫r(||>|sM-KV-HSAOIk\f.XB.*'.Ii||||.\Y,|KY.(.I:/IgIKITKItVKK\tXI1K<;S|SUAi.JKKSSJ)|SSWg|.S叫|’—丨'/|7xiKcsIij^il/sisxwiii.swu^J.jg.s|XIISIKKY-|.5STSSWXII.XDQ1XMH.I..Ivns-—IKS.ISIIiSiSXWXIIAWWIi\M4..IJ'fiX(Il.tIVIIiKY丨USYi.ll)WWXMIIJJXsI謝:1S*DTT(;'IZ1ISTSI.USA.I,,'XYliX?L-UD>AiI./l\kWI.|!x,〇:;K(Kl*l-U肌,<ISliKNAMIXJF1-A,KD——KULllMfWXMlI)K’Lh5('\MrKLIIJK-(RO.HJUFKi.!K;l_lIlKYII):丨KI丨丨,,,,H,vMsJ?M丨卜1LPK)ii-y^trlzksk.iR/ryg^ggtkqwioinion_p ̄ ̄*,lKPK1alKKK,jmIW,)l'PKFKII.CSUI,P—uKm—yLKRVOP,MONHLXKyKSSJ-'lRS,kq.ss.Ki1S,U'X<KYGi;XRYkxr|y..s.1<KQ1.HRYvrX''LKSXY1IZKIHYII5.K);Q:XYBZ'lKIilliH.KKQJC3-图14数据库设计图3.3.1考勤设置数据库设计l考勤设置数据库设计中设计的表有非工作日表trzktsfzr、考勤周期y_q_g__37 山东大学硕士学位论文表trlzktskz、上下班时间表trlzktssxbs、机构考勤地点表_y_q__qq_y_q__jtrlzyktskdd、机构外勤地点表trizyktswdd。___」g__q_jgq_qq非工作日表trlzyktsfzr主要包含以下字段:机构ID、年度、假日类__q__g-型,31、日期、录入人员、录入时间、选用标志如表所示。-表3-1非工作日表字段描述字段名称数据类型是否空值主键||IDJGvatcharY机构ID(64notnull)年度NDvatchar(4notnullY)假日类型JRLXvatchar(64)nullN日期RQdatenullN录入人员LRRYvarchar(64)nullN录入时间LRSJtimestampnullNXYBZcharlnuN选用标志(ll)r?考勤周期表tlzktskz主要包含以下字段.机构HX考勤方式标志、_y_q__qq-考勤开始时间、考勤结束时间、修改人员、修改时间,如表32所示。'表3-2考勤周期表'字段描述字段名称数据类型是否空值主键|||机构IDJGIDvarchar(100notnullY)考勤方式标志KQFSFLAGvarchar(lO)nullN考勤开始时间KQKSSJvarchar10nullN()考勤结束时间KQJSSJvarchar(10nullN)修改人员XGRYvarchar64nullN()修改时间XGSJtimestampnullN上下班时间表trlzktssXbs主要包含以下字段:机构ID、上班时间、__yq__j下班时间、上班签到开始时间、上班签到结束时间、上班迟到开始时间、上班迟到结束时间、上班旷工开始时间、上班旷工结束时间、下班签到开始时间、下班签到结束时间、下班早退开始时间、下班早退结束时间、下班旷工开始时间、下班旷工结束时间、录入人员、录入时间、修改人员、修改时间、选用标志3-3所,如表示。表3-3上下班时间表字段描述字段名称数据类型是否空值主键II机构IDvarchar(50)notnullYIDJG上班时间SBSJtimestamnullNp下班时间XBSJtimestamnullNp上班签到开始时间SBQDSJ_StimestampnullN上班签到结束时间SBSJEtimestamnullNQD—p上班迟到开始时间SBCDSJStimestampnullN_38 -山东大学硕士学位论文上班返到结束时间SBCDSJEtimestampnullN_上班旷工开始时间SBKGSJStimestampnullN_上班旷工结束时间SBKGSJEtimestampnullN_下班签到幵始时间XBQDSJStimestamnullN_p下班签到结束肘间XBQDSJEtimestamnullN_p下班早退开始时间XBZTSJStimestainnullN_p下班早退结束时间XBZTSJEtimestainnullN—p下班旷工开始时间XBKGSJStimestamnullN_p下班旷工结束时间XBKGSJEtimestamnullN_p录入人员LRRYvarchar(64)nullN录入时间LRSJtimestamnullNp修改人员XGRYvarchar(64)nullN修改时间XGSJtimestamnullNp选用标志XYBZcharlnullN()ID机构考勤地点主要包含以下字段:、经度、祎度、机构ID、地址、录入人员、录入时间、修改人员、修改时间、选用标志,如表3-4所示。表3-4机构考勤地点表^字段描述字段名称I数据类型是否空值主f||IDIDvarchar(64notnullY)经度JDvarchar(64null1M)纬度WDvarchar(64)nullNIDarcharnuTsI机构IDJGv(64ll)地址DZvarchar(400)nullN录入人员LRRYvarchar(64)nullN录入时间LRSJdatenullN修改人员XGRYvarchar(64)nullN修改时间XGSJdatenullN_选用标志XYBZchar(l)nullN丨机构外勤地点表trlzyktsgwqdd主要包含以下字段:ID、项目ID、地__q_」址ID、、经度、纬度、机构录入人员、录入时间、修改人员、修改时间、项目3-5所示名称、签到开始、签退开始、签到结束、签退结束,如表。表3-5机构外勤地点表_ ̄ ̄字段描述字段名称数据类型是否空值主£I|丨IDIDvarchar75notnullY()IDXMIDvarchar75nulN项目()l地址DZvarchar(100)nullN经度JDvarchar(lOO)nullN纬度WDvarcharlOOnullN()—机构IDJGDvrcrIlIaha(OQ)nulN丨丨39 山东大学硕士学位论文录入人员LRRYvarchar(lOO)nullN录入时间LRSJdatenullN修改人员XGRYvarchar(100)nullN修改时间XGSJdatenullN项目名称XMMCvarchar(lOO)nullN签到开始QDSTARTvarchar(50)nullN签退开始QTSTARTvarchar(50nullN.)签到结束QDENDvarchar(50)nullN签退结束QTENDvarchar(50)nullN3.3.2考勤签到数据库设计考勤签到数据库设计中设计的表有考勤人员表trlZktskr、机构考勤_y_q__qytrlzktskl、签到表trlzktsd、外勤签到表管理表_y_jqgyq__qq__g__trtsw、tstice、t〇lzkd抄送人通知表trlzkkno设备人员表sbuser_y_q__qq_y_q__q__考勤人员表trlzktskr主要包含以下字段:人员ID、机构ID、标志,_y_q__qy如表3-6所示。表3-6考勤人员表字段描述字段名称数据类型是否空值主键I||人员IDRYIDvarchar(64)notnullY机构IDJGIDvarchar64nullN()选用标志XYBZcharlnullN()tztsID机构考勤管理表rlykqkl主要包含以下字段:项目、项目名___jgqg称ID、、用户名、人员ID、项目管理、机构录入人员、录入时间、修改时间,3-7所示如表。表3-7机构考勤管理表字段描述字段名称I数据类型是否空值主键||项目IDXMIDvarchar(60)notnullY项目名称XMMCvarchar(IOOnullN)用户名USERNAMEvarchar(70)nullN人员IDRYIDvarchar(100)notnullY项目管理XMGLvarchar(lOO)nullN机构IDJGIDvarchariOOnullN()录入人员LRRYvarchar(100nullN)录入时间LRSJdatenullN修改时间XGSJdatenullN签到表trlzyktsqd主要包含以下字段:ID、机构ID、人员ID、签到__qL__时间、签到地址、签到人、录入人员、录入时间、标志、纬度、经度、外勤,如表3-8所示。40 山东大学硕士学位论文表3-8签到表_字段描述字段名称数据类型是否空值主键||||IDIDvarchar64)notnullY(机构IDJGIDvarchar(64nullN)人员IDRYIDvarchar(64)nullN签到时间QDTIMEdatetimenullN签到地址QDDZvarchar(400)nullN签到人QDYvarchar(50)nullN录入人员LRRYvarchar(64)nullN录入时间LRSJdatetimenullN标志BZvarchar(64)nullN讳度WDvarchar(64)nullN经度JDvarchar(64)nullN外勤WQvarchar(45)nullN外勤签到表trlzktswd主要包含以下字段:ID、机构ID、人员ID、_y__q__qq外勤签到时间、签到地址、签到人、录入人员、录入时间、标志、纬度、经度、代签提交人员、外勤、临时外勤、代签提交项目、外勤签到项目、项目ID、签到状态3-。、签到时间、用户名,如表9所示表3-9外勤签到表^字段描述字段名称数据类型是否空值主-」||IDlYIIDvarchar64notnul()机构IDJGIDvarchar(64)nullN人员IDRYIDvarchar(64)nullNdallN外勤签到时间WQQDTIMEtetimenu签到地址QDDZvarchar(400)nullN签到人varchar(50nullNQDY)录入人员LRRYvarchar(64)nullN录入时间LRSJdatetimenullN标志BZvarchar(64)nullN炜度WDvarchar(64nullN)经度JDvarchar(64)nullN代签提交人员DQTJRYvarchar(64)nullN外勤WQvarchar(45)nullN临时外勤LSWQvarchar(45)nullN代签提交项目DQTJXMvarchar(45)nullN外勤签到项目WQQDXMvarchar(45)nullMvarchar50nuN项目IDXMID)ll(签到状态QDSTATUSvarchar(45)nullM签到时间QDDATEdatenullN用户名USERNAMEvarcha70llNr()nurztsnotice主I抄送人通知表tlykk要包含以下字段:D、人员ID、管__q__q41 山东大学硕士学位论文-理外勤签到ID、录入时间,如表310所示。-表310抄送人通知表字段描述字段:名称数据类型是否空值主键||IDIDvarchar50notnullY()DRYIDvarchar64nullN人员I()管理外勤签到IDGLWQQDIDvarchar(70)nullN录入时间LRSJdatenullN设备人员表tsbUSer主要包含以下字段:用户名、手机设备号、解绑时间,__3-如表11所示。-表]13设备人员表字段描述字段名称数据类型是否空值主键|||用户名USERNAMEvarchar(100)nullN手机设备号SYSTEMCQDEvarchar(100notnullY)解绑时间UNBINDDATAdatetimenullN3.3.3休假加班数据库设计’休假加班数据库设计中设计的表有流程表tk〇rmv、休假额度表_q_g_fltkxed、休假申请表tkxs、加班申请表tkbs、加班时间表tkbs、_q_j_q_jq_q_jq_q_jj流程状态表tkwfoinion。_qL__p流程表tkorgflow主要包含以下字段:人员ID、机构ID、流程级别、_q__一调用级流程、调用二级流程、调用三级流程、调用四级流程、调用五级流程、调用六级流程一、级流程跳转、二级流程跳转、三级流程跳转、四级流程跳转、五级流程跳转、六级流程跳转、标志备注、流程实例ID、休假天数1、休假天24数2、工作流类型、审批人1、审批人、审批人3、审批人、审批人5、审批6-人,如表312所不。表3-2流程表1字段描述字段名称数据类型是否空值主键丨|RYIDvarchar64nullN人员ID()机构JGIDvarchar64nullNID)(FLOWTYPEchar2nullN流程类型()—流程级别FLOWLEVELvarchar2nullN_()一APPROVERrcnu调用级流程KQ1vahar1000llN_()二KQAPPROVER2varrlchalOOOnulN调用级流程_()KQAPPROVER3vaOOOnullNrchar调用三级流程_Q)调用四级流程KQAPPROVER4varcharlOOQnullN_()调用五级流程KQAPPROVER5varchar1000nullN_()调用六级流程KQAPPROVER6varchar(1000)nullN_一N级流程跳转KQAPPROVERlvarchar1000nullN(丨__|)42 山东大学硕士学位论文-二级流程跳转KQAPPR0VERN2varchar1OOPnullN__()三级流程跳转KQAPPROVERN3varchar(lOOO)nullN__四级流程跑S转KQAPPROVERN4varcharlOOOnullN——()APPROVERN5varcharlQOOnul五级流程跳转KQlN__()六级流程跳转KAPPROVERN6varcharlOOOnullNQ——()标志备注BZBZvarchar{100)nullN流程实例IDLCSLIDvarchar64notnullY()休假天数1XJTS1int(ll)nullN2XJTS2intll休假天数11nuN()工作流类型FLOWTYPEINNERvarchar(lOnullN__)审批人]KQROLE1varcharlOOQnullN—()审批人2KQROLE2varchar(lOQO)nullN审批人3KQROLE3varchar(1OOP)nullN审批人4KQROLE4varchar(1000)nullN—审批人5KQROLE5varchar(1000)nullN_审批人6KQROLE6varchar(lOOO)nullN_休假额度表tkxjed主要包含以下字段:ID、人员ID、机构HX人员项_q_目、参加工作时间、年份、年休假额度、已休年休假、申请中的年休假,如表-313所示。表3-13休假额度表^是否空值.字段描述字段名称数据类型.主键|||IDIDvarchar64notnullY()人员lIDRYIDvarchar(64nulN)ll机构IDJGIDvarchar64nuN()人员项目RYXMvarchar(lOO)nullNSJdallN参加工作时间CJGZtenu年份NFint4nullN()年休假额度NXJEDdouble(22)nullN己休年休假YXNXJdouble(22)nullN申请中年休SQZNXJdoub1e(22)nullNs)VERI休假申请表tkqxq主要包含以下字段:H、SONID、业务ID、流__j程实例ID、人员ID、人员姓名、申请日期、结束日期、机构ID、休假类别、休假开始时间、、休假原因休假截止时间、剩余额度、休假天数、预产日期、-审核状态、备注、录入日期,如表314所示。3-表14休假申请表—字段描述字段名称数据类型是否空值主键|丨丨IDIDvarchar64)notnullY(IONIDintllnotnuVERSIONIDVERS()llY业务IDYWIDvarchar64nullN()流程实例IDLCSLIDvarchar64nullN()43 山东大学硕士学位论文人员IDRYIDvarchar64nullN()人员姓名RYXMvarchar(64)nullN申请曰期SQRQdatenullN结束曰期JSRQdatenullNIDJGIDvarchar64nullN机构()休假类别X儿Bvarchar(64)nullN休假开始时间XJKSSJdatetimenullN休假截止时间XJJZSJdatetimenullN剩余额度SYEDdouble(22)nullN休假天数XJTSdouble(22)nullN预产日期YCRQdatenullN休假原因XJYYvarchar(200)nullN审核状态SHZTint(2)nullN备注BZvarchar(lOOO)nullN休假开始时间标志XJKSSJSFintlnullN()休假截止时间标志XUZSJSFint(l)nullN录入日期LRRQtimestamnullNp加班申请表tkbs要包含以下字段:ID、VERSIONID、业务ID、流_q_jq主程实例H)、人员ID、人员姓名、申请日期、结束日期、机构ID、加班类别、加班开始时间、加班截止时间、加班时间、实际加班时间、加班事由、审核状-态、备注、录入日期,如表315所示。表3-15加班申请表字段描述字段名称数据类型是否空值主键|||IDIDvarchar64notnul(lY)VERSIQNIDVERSIONIDint(ll)notnullY业务IDYWIDvarchar(64)nullNIDSLIDvarchar64nu流程实例LC)llN(人员IDRYIDvarchar(64)nullN人员姓名RYXMvarchar(64)nullN申请日期SQRQdatenullN结束日期JSRQdatenullN机构IDJGIDvarchar64nullN()加班类别JBLBvarchar(64)nullN加班开始时间JBKSSJdatetimenullN加班截止时间JBJZSJdatetimenullN加班时间JBSJdouble22nullN()实际加班时间SJJBSJdouble22nullTsl()加班事由JBSYvarchar(200)nullN审核状态SHZTint2nullN)(备注BZvarcharlOOOnullN()录入日期LRRQtimestampnullN44 山东大学硕士学位论文-加班时间表t_kqjbsj主要包含以下字段:ID、人员ID、机构ID、人员姓-名,。、年份、加班类别、加班时间如表316所示3-表16加班时间表- ̄ ̄字段描述字段名称数据类型是否空值主键I||DIDrr64nonullYIvacha(t)人员IDRYIDvarchar(64nullN)机构IDJGIDvarchar(64)nullN人员姓名RYXMvarchar(lOO)nullN年份NFint(4)nullN加班类别JBLBvarchar(64)nullN加班时间JBSJdouble(22)nullN审批意见表tkwfoinion主要包含以下字段:流程实例ID、审批意见、_qj_p、-录入日期机构、年份、录入人员、录入人员ID、机构ID,如表317所示。-表317审批意见表 ̄ ̄"字段描述字段名称数据类型是否空值主键|||流程实例IDLCSLIDvarcharlOOnotnullY()审批意见OPINIONvarchar(lOOOnullN)KLRRinullN录入日期Qtmestam_QpKvarcharSOOnulN机构JGlQ(—)LRRYvarcharlOOnullN录入人员KQ_()IDKQLRRYIDvarchar64nuN录入人员()ll机构IDKQJGIDvarchar(64)nullN_3.3.4考勤统计数据库设计考勤统计数据库设计中设计的表有人员统计表tkryt、统计报表j_q_tktst、考勤记录表trlzyktskq1、trlzktskhz。j考勤结果汇总表yqjg_q__j__q____q__人员统计表tkrt主要包含以下字段:ID、人员ID、人员项目、迟到次_q_yj数、早退次数、忘签到次数、忘签退次数、考核日期、外勤次数、用户名,如3-表18所示。-表318人员统计表^_字段描述字段名称数据类型是否空值主键|||IDIDvarchar(50)notnullY人员IDRYIDvarchar(50nullN)人员项目RYXMvarchar40nullN()迟到次数CDTIMESvarchar20nullN()早退次数ZTTIMESvarchar(20)nullN忘签到次数WQDTIMESvarchar(20)nullN忘签退次数WQTTIMESvarchar(20)nullN考核曰期KHDATEvarchar(30)nullN45 山东大学硕士学位论文_外勤次数WQCOUNTSvarchar(20)nullN ̄用户名USERNAMEvarchar50)nullN(|统计报表11字段:ID、序号、人员ID、自定义编号、_^_^_^主要包含以下姓名、是否智能排班、日期、对应时段、上班时间、下班时间、签到时间、签退时间、应到、实到、迟到时间、早退时间、是否旷工、加班时间、工作时间、例外情况、应签到、应签退、部门、平日、周末、节假日、出勤时间、平日加班、周末加班、节假日加班、抄送人员、代签状态、代签人员项目、临时出差、-1备注,319、备注如表所示。表3-19统计报表字段描述字段名称数据类型是否空值主键|||IDIDvarchar50notnuYll()IDKEYvarchar20nuN序号()ll丨Dvarchar64nuN人员RYID()ll自定义编号CUSTOMIDvarchar(20nullN)姓名XMvarchar(50)nullN是否智能排班AUTOPBvarchar20nullN()曰期KQQDDATEvarchar(20nullN)对应时段DYSDvarchar(20)nullN上班时间SBTIMEvarchar(20nullN)下班时间XBTIMEvarchar(20nullN)签到时间DKQDTllNIMEvarchar2Qnu()签退时间DKQTTIvarchar20nuNME(ll)应到YDAOvarchar(lO)nullN实到SDAOvarchar(lO)nullN迟到时间CDTIMEvarchar20nullN()早退时间ZTTIMEvarchar(20nullN)是否旷工IFKGvarchar(10)nullN加班时间JBTIMEvarchar(20nullN)IMEvarchar20nuN工作时间WORKT(ll)例外情况LWQKvarchar(50)nullNlYDQvarcharlOnullN应签至j()应签退YQTvarchar(lO)nullN部门BMvarchar50nullN()平日PRvarcharlQnullN()周末ZMvarchar10nullN()节假日JJRvarcharlOnullN()出勤时间CQTIMEvarchar20nullN()PRJBvarchar20nullN平日加班()周末加班ZMJBvarchar20nullN()节假日加班JJRJBvarchar(20nullN)46 山东大学硕士学位论文C"抄送人员SRYvarchar(30)nullN代签状态DQSTATUSvarchar(20)nullN代签人员项目DQRYXMvarchar(30)nullN临时出差LSSTATUSvarchar20nullN()备注BZvarchar(300)nullN备注1BZ1varchar(300)nullN考勤记录表trlZktskql主要包含以下字段:ID、人员ID、上午签到_y_q__j时间、下午签到时间、签到月份、迟到天数、早退天数、旷工天数、出差天数、选用标志、上午签到计数天数、下午签到计数天数、上午休假类型、下午休假-类型,20、机构ID、加班天数、休假日期、休假标志如表3所示。表3-20考勤记录表 ̄—字段描述字段名称数据类型是否空值主键|||I64notnulDIDvarcharlY()人员IDRYIDvarchar64nullN()上午签到时间SWQDSJtimestamnullNp下午签到时间XWQDSJtimestamnullNp签到月份QDYFvarchar(30)nullN迟到天数TSCDintllnullN()早退天数TSZTint(ll)nullN旷工天数TSKGdouble(22)nullN出差天数TSCCdouble(22)nullN选用标志XYBZchar(2)nullN上午签到计数天数TSSWQDJSdouble(22)nullN下午签到计数天数TSXWQDJSdoub]e(22)nullN上午休假类型TSSWXJLXvarchar(50)nullN下午休假类型TSXWXJLXvarchar(20)nullNIDJGIDvarchar64nuN机构()ll加班天数TOBdoub1e(22)nullN休假日期XJRQdatetimenullN休假标志XJFLAGint(4)nullN1考勤结果汇总表11?1?^112主要包含以下字段:ID、人员ID、考_^_1_>_勤月份、应出勤天数、病假天数、事假天数、迟到次数、早退次数、出差天数、旷工天数、年休假天数、加班小时数、调休假天数、产假天数、婚假天数、丧假天数、录入时间、录入人员、修改时间、修改人员、选用标志、机构ID、实-际出勤天数,如表321所示。3-2表1考勤结果汇总表"^字段描述字段名称数据类型是否空值主键|||IDIDvarchar64notnullY()人员IDRYIDvarchar(64nullN)47 山东大学硕士学位论文考勤月份KQYFvarchar(20)nullN应出勤天数YCQTSdouble(22)nullN病假天数BJTSdouble22nullN()事假天数SJTSdouble(22)nullN迟到次数CDCSintllnullN()inu早退次数ZTCSnllllNt()出差天数CCTSdouble(22)nullN旷工天数KGTSdouble(22nullN)年休假天数NXJTSdouble(22nullN)加班小时数JBXSSdoub!e22nullN()调休假天数TXJTSdouble(22)nullN产假天数CJTSdouble(22)nullN婚假天数HJTSdoub1e(22)nullN丧假天数XSJTSdouble(22)nullN录入时间LRSJtimestamnullNp录入人员LRRYvarchar(64)nullN修改时间XGSJtimestamnullNp修改人员XGRYvarchar64nullN()charllN选用标志XYBZlnu()机构IDJGIDvarchar(64)nullN实际出勤天数SJCQTSdouble(22nullN)48 山东大学硕士学位论文第4章实现与测试4.1系统总体实现本部分具体介绍了系统的考勤设置、考勤签到、休假加班、考勤统计功能的实现。4.1.1考勤设置实现PC端的考勤设置中实现了非工作日设置、考勤周期设置、上下班时间设置、外勤考勤设置,手机端的我的中实现了企业定位。4-非工作日设置页面如图1所示。4x每I作Hisi'44'567S9??〇4字导月牙三2?1CII12315161S2021:223225262?2S293£31\荦:||T-^2B/--徽冰//3三b公^公体公休公&公抹公沐公抹公休'S6kN*B^|B公休公休公休公你公抹公休公林公汰55月_公你公你公休公找公休公你公抹國國C-B@公《:公仅公ft公?公^M7公优公饮公休公tt公汰公你公休公休公休公休8,E公休i?k公祝公休公依公休公你公休6V与撕诚撕_狄雜挪! ̄-g!°冰谈^■國^__—^Tz.::E公饮公休公休公*n公你公饮公伏公休?E12撕冰^二^I|4-图1非工作日设置页面图zrlCBS类中的t,从用户进入页面时系统会调用Fggini〇方法trlzykqtsfgZr表中获取当前单位数据并显示。通过调整非工作日中的调整公____一休,可以调整节假日前后周的工作日/公休日,进行保存时系统会调用saveFzrlgO方法将数据保存到非工作日表中,返回时调用insertnitO方法刷新显/JN〇上下班时间设置页面如图4-2所示。49 山东大学硕士学位论文部:r二*%?1.EJ:T?TS0S:OO.2?:3GT155:±H507:30至li:00±IWi.1K〇5:31i〇;2P上工rimic:3〇=i::oo¥i從上工r二THS16:00?:ooimEi.-',至¥S^rM:55■TiI65C136:?§:§下g-=年r二:gItME164?Si.为下广二图4-2上下班时间设置页面图用户进入页面时系统会调用SxbsjglCBS类中的init()方法,从上下班时间trizcctssxbs表中获取当前机构数据并M示。左侧的机构树:M示权限范围_yji__j内的所有机构,选择其他机构时系统会调用searchG方法,查询显示所选机构设edit方法,用户对标准上下班时间置的数据。通过设置上下班时间,系统调用()、上班签到范围、上班迟到范围、下班签到范围、下班早退范围进行设置,系统自动计算显示上午旷工范围、下午旷工范围。其中上班迟到范围、下班早退范围仅用于参考显示,并不用于签到状态判断,系统会根据标准上下班时间、上班签到范围、下班迟到范围对签到状态进行计算判断。点击保存时系统调用save〇方法将数据保存到上下班时间表中。外勤考勤设置页面如图4-3所示。今?外起考勘S.恧Xc.Ell轉艇阶》考酸觀偷f:床穹考■地点经练度上班签到远始的?!上班签對结萊BTjTMS遍达始的问下扭¥退结東的阐1162288414(68,002510430030180213上庄家园930612强达社(1775)46016370,390613600008301520503马连洼(11.74,4.47)40:17446264003580009350220411521279380483050010001700801河北石家庄(4,):1m^5?1^毎克15条宍4条图4-3外勤考勤设置页面图50 山东大学硕士学位论文xbslCBS类中的用户进入页面时系统会调用Wqsinit)方法,从jg(一trlzktswd表中获取第个项目的数据并显示y。左侧显示本部门的所有_qjgq__外勤项目,选择其他项目时系统会调用sxbsQueryO方法,查询显示所选项目设jBS置的外勤考勤数据。用户进行新增或编辑选择地点时,系统调用QdglC类中25ed|1的itAddressForW,通过调取百度地图AP。q〇方法I显示并获取定位坐标保存时会同时调用WqsxbsjglCBS类中的saveFgzr()方法,进行外勤时间设置的-保存,并调用insertlnit刷新显示4所示。G。调用百度地图API定位页面如图4i*EB"<>r博物院u赴ii'"°***3!i,的1.一細-7.....,%.;ril\j^2T1铒固:丨孤'乂-东单东.mi一天安叼西t一一二mAi_大i在汍宗絲IT■月乂m勘筑〒择婦满士-:—?把京站',x活达^*.:?*托“:'.二x*nr*:/:'s.ie卿賴辟概酿.桃mg一一一z一DZ’”m一明域墙還璇公园-—-.n.一jai>B8url.pt…一打⑶fMlM找里&淨rn?r.灘家园,mr|歡袖随器口_马0珠市□0…50^:-Ba-i-t-iSlIES^i^SaLlaa5Saj^图4-4选择外勤地点对应经纬度页面图-外勤签到地点设置的方法如表41所示。4-表1外勤签到地点设置方法表ublicMaeditAddressForWMarehrowsExcetionppq)t(pqp{’’”lo.debu开始进入KQd]CBSddFoWgginsertAressr方法。):(_Qg_q”M+lo.debu:ina:JSON.maToJsonre.toStrngg(参数ppi(q)gO);re=JSONObdeSTq.getJsonject(URLDecoder.deco(JON.mapoJson(req)n"-.toString〇.UTF8));Mares=newHashMa<StrinObect〉ppg,j();//id机构签到地点经度纬度录入人员idu"=SiiitrndStrnre.etldgjg(g)qg(jg);"M=StrindddStrinre.etdddgq(g)qg(q);""=Stringwd(String)req.get(wd);"M=Sidtine.trng(Srretd;jg)qg(j)"’’=Strrr.rIinidStrineetd:gy(g)qg(y)51 山东大学硕士学位论文""=mStrinxmmcStrinreecg(gq.gtxm);)(""=SIltrinxirnncd(String)req.get(xmmcd)g;"M=Strinds(Strinre.et(dsg;qjg)qgqj)""=SrS.idtrinrdtngqjz(g)eet(jz);qgq=’”SrintsStrinre.estgj(g)qgt(qtj);qM"=Strintz(Strinre.ettzgqjg)qg(qj);if(checkNull(jgid,jd,wd,qdsj,qdjz,qtsj,qtjz,xmmc,ryid,qddd,xmmcId)){””"r1int(000,p参数错误,所需参数,,+"xmmMsIidd.wd.ddztstzxinnicriddddcdjg,jqj?qj,qj,qj,,y?q,);}=woeServiiPIPersistencicedaoSrdPersstenceUtls.etersistenceServiceg〇;daoeNRlt.KQGLDATASOURCE.stDatasouceamezyCons(_);TR=zlzKTsJgwqddPOonewTRlyKTsJwddPOyqpqgq();po.setWqid(newDE_WQID(xmmcId));o.setDznewDEDZddd(;p_(q))D.seUdnewEJDdpo(_(j));o.setWdnew(DEWDwdp());_o.setJdnewDEidi(JGIDpg_(jg));o.setLrrnewDELRRYridpy(_(y));po.setQdstart(newDE_QDSTART(qdsj?;o.setdendnewDEDENDdzpQ(_Q(qj));o.settstart(newDETSTARTts))pQ_Q(qj;o,settend(newDETENDtz;pQ_Q(qj))"MeFo=wm--SimleDatrmatsdfneSileDateFormat(MMddHH:mm:ss)ppyyyy;M"sdf.setTimeZone(TimeZone.getTimeZone(Asia/Shanghai));newDELRStnewDateo.setLrsJsdf.forma(()))j(();p_o.setXmmcnewDEXMMC(xmmc))p(_;dao.insertPOo(p);”"res.uf!ut(resl)p签到地址添加成功;'"res.utCresultcode.200)p;"""'asonres.putse,success);Creturnres;_j企业定位页面如图4-5所示。52 山东大学硕士学位论文二—^"?: ̄;-;t::y厂-T?rt:V:J^■*?’?‘一-171>i雄誠:4164S:饜嫉3尨系芾学3棄銶;V&n-:,M:茗穿区竿圈;牵餘55:中软7;滚K姿民》丄级像商路图4-5企业定位页面图一用户可以通过摇摇定位设置企业位置,即内勤人员的签到地点。进入时系统会调用Location类中的signln()方法,同样通过调取百度地图API显示并获UAd取定位坐标,然后通过segdress(方法将经祎度等数据插入到)trlzyktskdd表中。__q_」gq4.1.2考勤签到实现PC端的签到管理中实现了签到人员设置、外勤人员设置、签到管理:手机,审批中实现了通知端的考勤中实现了考勤签到、外勤、代签、我的签到,我的中实现了设备解绑。签到人员设置页面如图4-6所示。53 山东大学硕士学位论文_次潑?綠人織糾*?孩?驗,u微&&^seissm/55v*t^<7^:3■钱,,.裕.tsKSI5?sI-、5蘇探M紋:威丨丨丨|||丨10守晶S3100299S女103IOCeaS9男20干iS31002950珥20310289後字老09舆30£垃31002961舆30王森310CG9S3珥>?4CIS秋月3100?85:4〇100293男3350壬明310028K舆50王ST3100282*女JiSE6Q杨志g310C3627603100MS3M7309;610250玄T0孙331002977隹86^!?!5IOK987舆8P胡眷岩31003630%lS0?!〇029?3S90IftTMK运?'56这走10CR310C29M舆10310029S6舆10壬fci3l02M3fij舆110程永灵3)002982MKG30297£0^11亥1SJtiS31007女S1303102851130故3100J984舆IS^i:、B140跡31002992140KE3I0029S9^IE'ISO篥仕杉3102990女150g吴31002986kS图4-6签到人员设置页面图用户进入页面时系统会调用KqryglCBS类中的init〇方法,从rizycLJskqr表和组织结构权限管理系统的人员表trlzdm中获取当前Ljjy_y_部门数据并显示,可,。通过设置考勤人员以切换调整两个列表中的人员进行保存时系统会调用saveFgzrO方法将数据保存到考勤人员表中,返回时调用insertlnit方法刷新显示。()外勤人员设置实现方式类似于签到人员设置,对应的类为WqKqryglCBS,所使用的表为trlzdm、trlzktsbkr、trlzktskl。_y—_y_q__qy_y_q_jgqg签到管理页面如图4-7所示?4农您?塞乂?I總撖-7207-12aTJ3&〇rVSf8S5SS纖!?1^0^^Q政企行哲人员签到记录疫号手捣号姓名签题莳阏签到勉点签到来瀵--11810568911:48C353史晶晶20T0800753P|h^2--13810565839201708163:M史晶晶144手机g到--1011017081416:370033003333千艾忠2:手机签到438056583907--8711史晶晶210815136:5手机签到1厂'smmmm〇mfki芬4s图4-7签到管理页面图用户进入页面时系统会调用QdlCBS类中的init,从trlzktsdg〇方法_y_q__q表中获取当前部门考勤人员的签到数据并显示。可以通过姓名、签到时间、签searchBd到来源调用(方法进行查询,通过补签到调用pc法添加补签记录。)q〇方54 山东大学硕士学位论文-补签到时需要调用searchR方法从trlzydm表、trlzykqtsbkr表中查询y()______qy,ch〇〇SeR设置的签到人员然后调用y方法进行选择,保存时调用save4PC方()〇法将补签到数据插入tkqrytj表、trlzykqtskqjl表。______考勤签到位于考勤页面下方部分-8,如图4所示。.露響零?響*virgt;考鉍资itmrh^■外!^部门#麥J:-Iv3?:.r.H^f.i8,3DU00签到◎tariL考ii琯扳■■EHBHEH图4-8考勤页面图用户进行签到,aton类中的UA、签退时系统调用Locieddressgg()方法获取签到地点,并调用Distance计算与trlzktskdd表屮记录的企业位置的()_y_q__jgq26距离|1一,判断是否为距离500米之内的有效签到。若为有效签到,则进步调用SininCSB类中的searchTodaQd(方法,根据trlzktssxbs表中记录的gy)_y_q__j上下班时间,计算判断签到状态,并将签到地点、时间、状态等记录到■ts,t丨zkd表将对应状态的次数等记录到tkr表、trlzktsklUy_q__q_q_yj_y_q_qj_表:。计算规则为.1在上班签到结束时间SBQDSJE之前进行签到,签到状态为正常。_2.在上班签到结束时间SBSJE之后进行签到QD,签到状态为迟到。_3.不签到,签到状态为未签到。4.如果在标准上班时间SBS.丨之前进行签到,那么在下班签到开始时间XBQDSJS2前签退为,之后签退为正常早退。_55 山东大学硕士学位论文5.如果在标准上班时间SBSJ之后进行签到,或者不签到,那么在标准下班时间XBSJ之前签退为早退,之后签退为正常。6.不签退,签退状态为未签退。-2所示签到签退状态判断的方法如表4。表4-2签到签退状态判断方法表ublicMap<Strin,Obect>searchTodadMa<Strin,Obect>ma)throwsExcetionpgjyQ(pgjpp{"",,"+System.setProertuseri(.tmezoneGMT08;py?)=wIPersistenceServicedaoSordPersistenceUtils.getPersistenceService();=SQLParamsnewSQLParam(p);D",'TiTneZone.setefaultTimeZone.etTimeZoneAsia/Shanhai(g(g));map""=m-JSON.etIsonObect(URLDecoder.decodeJSON.mapToJson(a.toStrin!UTF8);gj(p)g〇)"nS=Smaltringrid(trin).et(rdygpgy);"n=Strinid(Strinma.etldg;jgg)pg(jg)====ifridnullidnull(y|[jg){<r=>StinObect><SecMamalnewHashMatrinObtpg,jppg,j〇;"n""u!l.tresumap(lt参数错误p,);returnmap】;}M<n〉=w<>aStriObectihriOb//记录容器lstManeHasMaStnect打卡pg,jppg,j();//根据人员id,查询打卡记录s.carPramslea)p(;s.addParamridp(y);""=SimpleDateFormatsdfnewSimpleDateFormatHH:mm:ss;()""=w--SimleDateFormatsdfDateneSimpleDateFormat(MMddpyyyy);""sdf.setTimeZoneTimeZone.etTimeZoneAsia/Shanhai();(gg)T""sdfDateimZieeiia/i.seteone(TmZone.tTmeZone(AsShangha)g);D^atetodaDatenewDatey();""s.addParamsdfDate.formattodaDate+00:00:00p((y));s.addParamridp(y);""sp.addParaxndfDater:5(s.fomattodaDate)+23:599(y);sp.addParamO();sp.addPamm4();L<M<Sn=istaptrig.Obect?dListjq""daoMisBKeklrklBR.ueryaLtyy(mbueysqpqg__qqjyy,p);daoDRz.KL.setatasouceName(lConstQGDATASOURCE);y_s.clearParamsp();sp.addParam(jgid);""<ec>=nMaStrin.Obtsodao.uerMaBKe(slsearchtimes,;pgjjpqypyyq__q_p)for<StrinObect〉m(Ma:dListpg,jq){-56 山东大学硕士学位论文"""M*m.put(time.m.get(wqqdtime).toString〇);""",,=m=.nu.ew!nulif(mgetwdxmid)!ll&&gt(q)l)(qq{"”n""nn"m.utdOrtm.etw.euals(0?签到签退;p(qq,g(q)q))""”nnn’’nm=.utDrnul(ism.etdqtl?:pq,g(jy)代签);""n"fmwlOi.(.get(q)equas()){""m=ifetsaus!null(.g(qdtt)){n,'',nn,nnVm.utrtimestatus,m.get(qdstatus).equals(O)?正常迟到);pm,,"checeSender.ei.inifkIfHavtdtoStr((g()g())){n',”nttimestatus正常m.pu(,);}}else}{""f=.edatus!nulli(mgt(qst)){n"’’”nnn正常"""mutmtaum.e.ealsO?:_p(tieststdstatus早退,g(qqu());)}}}eels{r,n=oStrinsbs.get(sbsa.toStringjpj)g();"n=Strinsbcdsso.etsbcdsSa.toStr/c()in/hidaog;jjpgjg〇"nz=sEaouStringxbtso.etxbztsa.toStrin()//ztijjpg(j)g;Da=tesqsdf.arse(sb)p;Da=tescsdf.parsesbcds(j);=Datexzsdf.arsexbztsp(j);=.eTlonssqgtime()g;""=mi.b1018Datestemsdf.rse.ettime.toStrnsustrin.ppa));(g()g()g(=longdtimestem.etTime;qpg()nxz=xz.etTimelotimeg()g;m=m.Tlonsctiescgetieg;()"”nn”"m.u>dime?签到:tdOrtst签退;p(qq,q)>tmeif(sdiq){n"nn'?"mi_uttitatusdtinie<sctme?:迟到(mes正常;p,q)else}{n’nn"nm.uimtusdim>xzi?正:早退pt(testa,qtetme常);}""mw=tnullif(.ge(q!){)""nn’’n”nn"m_put(qdOrqt,m.get(wq).equals(O?签到:签退);)""""0ifme.eual(.gt(wq)qs()){’’nn”.ttimestatusdtime<sctime?mu(正常迟到p,q);}else{'meSxzm11nn"m.utCttd:pimestaus'qtitie?正常早退):57 山东大学硕士学位论文)Xi"n""m.utisDp(q,);.j/""listMa.utdMa.dListp;p(qpq)returnlistMa;pi/4-9所示-1。外勤页面如图。代签页面如图40所示;?h公:ySX->kd^-^r20--14."?_□1708^Ms?15-2S-前1-□14懸?1521".:-;*叫以麵「鱗細转:,^l,.kw培f-4?"w'6#越陶逸中软大蘑1宁^Q.必成■S3於痛雄-ri:■<,*.一'*K.'-^二-^::tI;}\";(中软大遊13X)£1:齡确祓涊签到签到:I丨[LiSE聽4-94-图外勤页面图图10代签页面图外勤和代签的实现方式类似于考勤签到,不同的是这两种签到必须关联外,tr勤项目判断时根据lzkswdd表中对应的外勤项目经韩度与上下班_y_q[jjgq时间进行。另外代签和其他项目的外勤签到需要调用WqqdglCBS类中的reminderdPush方法抄送项目经理,在trlzykqtskqnotice表中记录。Q()____4-我的签到页面如图11所示。58 山东大学硕士学位论文20--17081614.47:15签到?"''■?'?§:y>-■2i:fuT^ifyf;W^Ss?s--7签2017081518:36:5i£-:s^::-,--2017081^14:1£63總n2c-.n.20--170801073:48签到:5I^S.4-图ll我的签到页面图用户进入页面时系统会调用SigninCSB类中的searchQd()方法查询UrlzyJ^CLtsjd表中近三个月的系统签到记录,按时间倒序显示,包括手机端的考勤签到、外勤、代签以及PC端的补签到,其中补签到不显示签到地点。通知页面如图4-12所示。-rr目名v:5:项称:g-签到人:TV:代签人::H'?:”itsii丨!Wt?5卜:乎13.0趨-.时间:、4:2、0’-备注:/、?项目名称:&:签到人:wrm代签人:天地址:中篚.北糸击洚淀襄享a尚録怒号1纖簾27-O-14时间61^:01S1:34:备注:背O缸笤r4-图12通知页面图59 山东大学硕士学位论文用户进入页面时系统会调用WqqdglCBS类中的getNoticeList〇方法查询trlzykqtsknotice表中的抄送记录,按时间倒序显示。q____,系统会调用UserLoCBS用户使用手机首次登陆gin类中的loginO方法进行设备绑定,将用户名USERNAME和对应手机设备号SYSTEMCODE记录到tsbuSer表中。当再次进行登录操作时,系统会查询设备人员表,若设备对应__的用户名与登录用户名不同,则不允许登录,即用户名与设备号的对应规则为一一一对多、设备号与用户名的对应规则为对。当用户在我的中点击设备解绑,系统会调用unbindSystemO在48小时之后删除表中对应数据予以解绑,重新登27][录会按照首次登录进行重新绑定。4.1.3休假加班实现PC端的休假管理中实现了休假流程设置、年休假额度设置,加班管理中实现了加班流程设置、加班管理;手机端的考勤中实现了休假申请、加班申请,,我的中实现了我的额度审批中实现了代办事项、我的休假、我的加班。4-13所示休假流程设置页面如图。?届铉资潘倭产露S病—fi令政企行业部森.流程皰【政企行辦5】休假年休锃()1V?c■一——=2':'vUSlSIfcJgg'..金行v二!afc注宝:ZBM^v5<HiS亩—S致企行立苕v=晶靠^'v二*£敢企行並芸3^运v三-画4-图]3休假流程设置页面图_,系统会调用Fs方法,用户进入页面时lowSettingCBS类中的init〇从tkq〇rgflow表中获取权限范围内机构的数据并显示。进行流程设置时调用___getApproverBRole获取角色和机构下的审核人员,然后通过save将设置的流y()()程保存到流程表中。加班流程设置页面与休假流程设置页面类似,区别在于三种加班方式只设一置个审批流程且不按条件区分,KID;实现方式也相同通过流程表中的Q加_60 山东大学硕士学位论文以区别。4-14所示年休假额度设置页面如图。:x<練5:啸海孩麟激?v年份会¥^f烂名'--^入司时运^tTT^3:贼中_余敏度汝号部n姓名手机号人员状忍参拡工伟的阔入司时阔年休假錢度已怵年休煆宙批'>政企行让部万方13811344788_---2政企行i18600261841i?子括---3政企行i袞13488833480i部付?'4敢企行偉2?1662170765i5i部----5?企行让?俣13601397811丨關5---6-?企行兰碎18610376203'TB企行i13661382201i?冯默 ̄15M3CC17528政企行11部又頓?-'9政企行让部3描丨130519757504-图14年休假额度设置页面图NBSitt用户进入页面时,系统会调用xedlC类中的ni方法,从kxedjg()_q_j表中获取部门所有未设置年休假额度人员的信息并显示。可以通过组织机构、是否含下级机构人员、年份、姓名、入司时间、参加工作时间、是否设置休假额度调用searchO方法进行查询。设置对应人员的年休假额度可以通过手动点击设置,输入天数调用save保存;对于tkqxed表中有参加工作时间O进行__jCJGZS.丨数据、trlzydm表中有入司时间RZR数据的人员也吋以点击计算,__QiSuanNXIED。系统调用jO自动计算设置,将年休假额度.插入休假额度表计算规则为:=-1.当前日期RZRQ<1时,NXJED0。==-=2-><J<0JED5.当前日期RZRQ1时,若1当前日期CJGZS1,则NX;=-==-J>20I10<C丨GZSK20,则NXJED10日期CJGZS,贝若当前日期、;若当前JNX=JED15。加班管理页面如图4-15所示。61 山东大学硕士学位论文—'"'’——■、钼漏&行立§32017^f姓名?S全f^3:綠鯽申语赃新塏8问邡班戥至阆M类窃預计S班小实冧油班小规状否度号as部n手机号邡班开始3358(g?【--H--1史晶晶ft企行业部13810S65839201108191420JT08K2203工作日加班3020新熠M芡/芬i歹?■?10共1柰4-图15加班管理页面图,系统会调用JbglCBS类中的ts用户进入页面时ini方法,从tkqbq表()__j中获取部门所有考勤人员的新增、已办结、己核定状态的加班信息并显示。新增即为用户通过新增按钮调用insertlnitO方法增加实际已加班的加班记录,对于这种状态的加班记录可以进行修改、查看、删除,分别调用updatelnitO、getJbDetailG、delete〇方法。己办结即员工的加班申请通过审批,需要部门考勤员通过核定加班调用confirmJb法防进行实际加班工时核定,核定完成即为己()核定etdIBJbs,trlzktskq1表中获。进行核定时系统会调用gQjyj()方法从_y_q__j取从加班开始时间到第二天23:59的所有签到记录以供参考。己办结、已核定状态的加班记录只不可进行修改、删除。系统通过tkcLbSq表中的新增、己核_j定状态的工作日加班、节假日加班记录中的实际加班时间S.丨JBSJ,按照8小时等于1天调休的规则计算调休假额度TXJED并插入tkxed表。_qj_休假申请页面如图4-。-716所示加班申请页面如图41所示。62 山东大学硕士学位论文**史M>休假人员iK加班人员粟齡¥**:''<.,::if:..休锻类别加班开始时间:m::*…:*20-08-1090::休锻丹始时间加班截H..174:0:时f洱--*休锻结束时梅2017D814中午加班类型体瑕天数*:*筘荞切Xf预计烈3M小时休假原因*sue加班;s*、备注备注rH提交提交4--图16休假申请页面图图417加班申请页面图休假申请中,用户进行保存时调用XjjbglCBS类中的saveXjO方法将休假信息保存到tkqxsq表中,状态SHZT置为未提交;进行提交时调用__jsaveXjAndStartProcess(方法保存并启动对应的SWORD中封装的工作流,状态)置为待审批,。其中年休假和调休假进行保存和提交时休假天数不能超过各自的剩余额度,因此必须先设置年休假额度,有新增或核定的加班。加班申请与休假申请类似,对应的表为k。tbs_qjq-以调休假为例,流程图如图418所示。63 山东大学硕士学位论文加班调休流程员工考勤管理员各级领导!)'、、yY填写加班申请Y^提交审批考勤管理员审批^项目经理审批I!i!!|填写调休假申请*部门经理审批丨核定加班<1|浐TI|I|提交审批?考勤管理员审批?项目经理审批!Y部门经理审批jv一?'、1I^__y会图4-18加班调休流程图4-194-待办事项页面分为待办,、20、己办两个列表分别如图图所示。64 山东大学硕士学位论文‘?#?爷::齋货戀麵?史晶晶公休日UP班史晶晶公休曰加班"y■,■猶.4胗v4wp.n靶\^m^um/ym.^)^m宏晶晶工作日扨班铥笔批史晶1病偎v&32^U?g晶晶年休假史晶晶工作日加班待窜批?->2S?-的?U.:<K1.mr7祕:随Sfi把?裔叟f要:史晶晶事假待审批'*-,1iPTi;-&D.lf5^史晶晶年休假史晶晶年休假''atO>!i^i史晶晶工作曰加班''■"''*s:QVt>{?!?■?0r_...史晶晶事假0/-71007:101/r:*i1A.UJ;4--图19待办列表页面图图420己办列表页面图用户进入待办列表时,系统调用XjjbglCBS类中的getShPageData〇方法,获取tkcUbsq表中需要用户审核的休假或加班申请,包括待审批、已退回的状_一一态,己退回即下级审批人退回。待审批即申请人或上级审批人提交给自己给自己。可以对待审批的申请进行提交processOKQ、退回processNG(),对己KO。退回的申请进行修改保存saveXj()、提交processO提交时必须依据一tkq〇rgfl〇w表中对应流程的下级审批人进行逐级提交,退回时依据数据来___源进行退回。用户进入己办列表时,eYhPDt系统调用gtsageaa()获取用户参与的己审核的,包括待审批休假或加班申请、已退回、已终止、已办结的状态。待审批即自一一己提交给下级审批人,己退回即自己退回给上级审批人,己终止即申请人终止审批流程,己办结即审批流程通过,。可以对己办列表的申请进行查看查看休假申请时系统调用getXjDetail()方法,查看加班申请时系统调用getJbDetail()方法。审批提交的方法如表4-3所示。表4-3审批提交方法表ublicMarocessOKMarethrowsExcetionppp(pq)p{”'?.eXroclodbu(幵始进入KblMobi]eCBSessOK方法。);ggQ_jjg_p65 山东大学硕士学位论文log.debugre.toString〇);(q""StwT=.wTrinfloeStrinreetfloegyp(g)qg(yp);”"=Strrrnr.rlinyld(Stig)eqetyd)g;g("”=StrinlcfrxmStringre.et(lcfrxm//流程发起人姓名gq()qgq);”n=Stringlcfqrld(String)req.get(lcfqrld);//流程发起人id"”=SStrinlcslidtrinre.etlcslidg(g)qg();""=StrincommentStrin)re.et(commentg(gqg);""=Strlrnr.RinnextRdStieetnextIdgy(g)qg(y);"=StrifldinactDefldStrnre.etfactDeg;(g)qg)""=workS.Strinltemld(tring)reqgtworkItemId)ge(;=StD.susrnrinflaactefldbti(7;ggg)=IPersvicedaoSwordPiil.ePrsienceServiceistenceSerersstenceUtstest)g(;dao.seatameRlzConst.QXGLDATASOURCEtDsouceNa(y_);=SLParamsnewSLParamQpQ();sp.addParam(ryld);<>=MaStrinObectrDatadao.uerMaBKepg,jyqypyy(HnklxbluerxmJmcBRId,s;qg_jjg_qyRygyyp)""=StrinrxmStrinrData.etxmgy(g)yg();"n=DStringjgmc(String)ryata.get(jgmc);dao.setDatasouceName(RlzyConst.KQGL—DATASOURCE);sstDtRlzConst.KQGLDATA¥OURCE.eaaSource(y);p_//审批意见TBxWfOpinionPO保存TKnPO=iiPOTKWfOiniOWfOpiionononnewonP)qpqp(;oinionPO.setWorkitemld(newDEWORKITEMID(workltemld);p__)oinionPO.setOinion(newDEOPINIONcomment;pp_())oinionPO.setKLrrnewDEKQLRRnewDatepqq(__Q(()));LnewDEKoinionPO.setKrr(LRRY(rxmyQ;pq__y))oinionPO.setKJnewDEKJGmcpqg(_Q_(jg;))daoiiiPO.nsertPO(onon)p;Wllwf=nwWorkFwUlmIorkFowUtielotilOp;=wLnAistresultListerrayList〇;,M,=lifnextRldnul.eualsnextRId)(y||q(y){=Wwomresuiw.IkidlldnultLstfcometeortemrIrktenullllp(y,,,,null工作项lnulnull//完成,,);s.clearParamsp();sp.addParam(lcslid);//查询当前的申请单,以便提交之后更新状态""ifflowTe.euals(1)(ypq){""TKPO=KKBXsxsPOdao.uerPOBye(uerqXyLcslid,s,qjqjqqyyqyjpTKqXjsqPO.class);xsPO.setShztnewDESHZTRlzonst.RLZYSHZTSHTG;jq(_(yC__))dao.updatePOxsPO(jq);//年休假P.XuRz.KQNXJif(xsOetlb().vale.euals(lyConstTS)jqgjq__){66 山东大学硕士学位论文-=l.lnnce.endar.YintnfCaendaretsta()t(CaleEAR)gg;//完成时,更新休假额度表数据=wSLParamoParamneSLParam()QpQ;oParam.addParamrllcfdp(q);oParam.addParam(nf)p;TKX=qedPOxedPOdao.uerPOBKejjqyyy(""kqglxjjbglqueryXjed,poParam,TKqXjedPO.class;_—)=BlxtsnewBiDecimligDecimaajg(""==xsqPO.etXts.van()lueull?0jgjxPO.etXs.valu.rin:jsjt()etoStqgg〇);B=wigDecimalsqznxneBiDecimal(jg""=xedPO.etSznx.vau()luenll?0jgqj.znx.v.n:xjedPOetS〇a]uetoStri〇)gqjg;BwS=xznxznxubriDecimalnes.stact(tsgqjqjj);BD=lxnxnewBiDecimIiecimayjagg(""—ll?xedPO.etYxnx).vauel0jgj(nux.eYxnx.v.rn:edPOt()aluetoSti)jgjg〇;=BiDecimalnewYxnxxnx.addxtsgjyj(j);xedPO.setSznx(newDESQZNXJ(newSznx.toStrin)));jqj_qjg(xedPO.setYxnxnewDEYXNXJnewYxnx.toStrin());jj(_jg()dao.udatePOxedPOp(j);}//新增休假成功,对应修改考勤结果""SwordSev.rvAXABSXriceUtilscalILocalSeice(ddndJbCadd,j_jxjsqPO.toMapO);"MefwT.l2lseifloeuas}(ypeq()){'"=TKJbsPObsPO.OBKerqqdaoueryPyyCueyKqJbByLcslid,s,jqqqpTKJbsPO.classqq);bsPO.setShztnewDESHZT(RlzConst.RLZYSHZTSHTG:jq(一y—一))dao.udatePObsPOp(jq);}else}{=wLsexlArraLiitntdsnest()y;nextlds.addnextRld;//处理人Id(y)//推送工作流M=apflaMapnewHashMap();g""Ma.lfla.utflaInteerarsent(fla))gpp(g?gpg;=WresutLtw.rtemrIdworkltemldnexlIisfcomleteoki(ytdsp,,,flaManul/lnull,null/完成工作项gp,,);//I代表待办事项、2代表通知M"MPushUtil.sendPushessae1nextRIdg(,y);}M=apresultnewHashMapO;""result.utresulttruep(,);67 山东大学硕士学位论文'’Xb”.lMoleCBrK方法。lodebu结束KbiSocessOgg(Qg_p);—jjreturnresult;I4-2我的额度页面如图1所示。2017茚碎?假P逭20.0(天iE袋体.5(天1)窜抵宇丨天)3.0_今额度(天1S.5)2017rnmmmmtw)o.3锻fM灭o)o麵_度(天)o4-图21我的额度页面图,系统会调用NxedlCBS方法中的search类用户进入页面时jg(,查询)tkxed表、tkxs显示。当用户进行年休假、调休假的_q_j_q_jq表中的相关数据并保存、修改、提交,,、删除时均会影响表中的数据。以年休假为例涉及到的数据为休假额度表tkqxed中的年休假额度NXJED、已调休YXNXJ、审批中__jZNXJ天数XJTS、乘ISYEDS,休假申请表tkxs,Qqjq中的休假J余额度计算规—_则为:1.当用户进行年休假申请保存时,可用最大额度为剩余额度,系统调用B=+=XblCS类中的saveX)方法,计算审批中审批中休假天数,剩余额度年jjgj(休假额度-已调休-审批中。2,,.当用户进行年休假申请的修改时可用最大额度为剩余额度+休假天数修改后保存或提交,系统同样调用saveX方法jO。一3.当年休假申请最后级审批通过时,系统调用processOK方法,计算()==-己调休己调休+休假天数,审批中审批中休假天数。68 山东大学硕士学位论文4.当用户删除保存未提交、己终止的年休假申请时,系统调用delXb)jjC=-=方法审批中休假天数,剩余额度剩余额度+休假天数。,计算审批中我的休假页面如图4-22所示4-23。我的加班页面如图所示。、、/;v:uan病假节假日加班未提交-mm1-m/mm/ni.5天mm的鄉箏假待宙批公休曰加班\.nn(2'tf^n,qn榻mj時试掷年休假朱提交工作日加班待审批f->-*-:/=:C*1CS/14US/1-l4iJ;年休假工作日加班05-.n50〇!ft07/10/I5/vOSD2jS?年休假工作日加班:08/1t8/1715;?0难衡07¥挪事假未提交"7n7-QU/U2%事假---/,T^1007O2天璧君:更多图4-22我的休假页面图图4-23我的加班页面图我的休假中,用户进入页面时系统调用XCBS类中的xuerglQy()方法查询jjtkqxs表中当前用户的所有休假申请并按申请时间倒序显示,状态包括未提__jq交、己终止、待审批、己退回、已办结。可以对保存之后的未提交状态的申请、delX主动终止审批流程的己终止状态的申请进行修改保存saveX、删除b、jOjj()aveXAndStartProcess,对己经提交的待审批状态的申请提交sj()、审批人退回给自己的已退回状态的申请进行终止processSTOPO、查看getXjDetail(),对最后一etXDetail级审批通过的己办结状态的申请进行查看gj。()我的加班与我的休假类似,,申请状态多了己核定即部门考勤员进行了工时核定的加班,可以对其进行查看。修改保存、删除、提交、终止、查看对应的方法分别为saveJb(、delXjb〇、saveJbAndStartProcess)、processSTOP(、)j()getJbDetail〇,进行操作后均会在tkqwfopinion表中增加审批流程记录。___4.1.4考勤统计实现PC端的统计管理中实现了考勤签到统计、考勤结果管理,手机端的考勤中69 山东大学硕士学位论文实现了上月出勤汇总、考勤统计、部门考勤。考勤统计管理主要是用户上传打卡机导出的打卡记录,系统调用KqtlCBSjg类中的login方法读取excel导入tkqtstj表中,并更新tkqjytj表与()____1lt,trlzktsk表;然后结合trzksd表中记录的内勤签到情况调用_y_q__qj_y_q__qconfigNToPo()进行合并,结合trlzyktswd表中记录的外勤签到情况,q__q__qq调用configWqToPo()进行合并;最后调用exportExcelToModel()将统计情况导入模板表,用户可以进行下载。上月出勤汇总、考勤统计、部门考勤通过调用KqtjglCBS类中的getTJ()查询tkrt表中对应人员的上个考勤周期考勤统计情况。上月出勤汇总在考勤_q_yj--25,24所示页面上部分如图4。考勤统计页面如图4所示。::鐘_靈s…ammBUMB考趑统Tt饵嚴串谨篇班串读Uesci^ionLabell舰K签露l_.7.Q4mm卑道統到-±11iSl^i18:30s:i〇暖签到〇4.未签退rma£>H暫数街过酿.图4-24上月出勤汇总页面图图4-25考勤统计页面图考勤结果管理页面如图4-26所示。70 山东大学硕士学位论文—————S-:rnrnmm^mmmmp^^v改&行逝部入员的考動迗男列W:会下圾机t人S*i5S屏)(5-?>i.MR减邮.mm?mjmm.iamsm.rixmm?sajmmmjmu^^3^夭S天被JK?软耪鬱孩菘天软搬天教杉敢Ii.20->000000000001ggpeI50〇3〇689f1706£20000C0000K00002-.'TMI3S52I6553T£01706ZTP0600C0002:000000C0C000000agS-?3?5L揭17ECID80201E-20i72LC0l'0Cl000?02-C0000Ci,&p,e000C0p->rl418600156366?!7〇£-Z:t'00CCCG0C000001-C0CJV00CGSLi■-'frrS>(?fi£0ZZflP00Pf-Cn<(I0EC5Ktrir:13S1!?75£C2t!7〇e2;0UwO-lE38202070C.ifP0000C00022G00000D0G0t00006马?136121I7sat-1561060759)S)l?〇622C000ClC000K0000000C000000r6W-B王I830H600S420170620000ClCl00C2?60D00D0DO000000--l02£00000tl0009?|Z13T123*ir3?201706KD0C0D000C000.00-'200>D0002S0000li000CI00CO10185103C25〇n?2itUS.1O.R?V?:?S/#i::>l!g?it|i图4-26考勤结果管理页面图用户进入页面时系统会调用KdgglCBS类中的init()方法,从khZ。trlzktS选择考勤月份j表中获取当前部门当月考勤结果数据并显示y_q__qg_点击计算考勤结果,系统会调用c〇umKq法结合设置的非工作日、考勤周jg()方期、休假申请、trlzktskl表中记录的签到情况,对所选月份的考勤结果_y_q__qj进行计算。当用户进行签到和上传打卡机记录进行统计时,系统会调用AddXjAndJbCBS类中的insertKqjl〇方法,结合设置的非工作日、休假申请、上下班时间,将可用于考勤结果统计的有,排除不需要签到的记录和重复的记录效考勤记录插入到trizktskl表中。当用户进行休假的申请和删除时,系_y_q__qj统会分别调用addXj()进行签到判断、deleteXjO进行记录还原。4-4所示计算考勤结果的方法如表。表4-4计算考勤结果方法表ublicIResDatacountKIReDatarethrowsExcetionpq()jgqqp{=iiil.iSiIPersistenceServcedaoSwordPersstenceUtsetPersstenceervce)g(;=iiIPersistenceServicedaolSwordPersistenceUtils.etPersstenceServceg();daoseaasouceamelzConsLSOURCEl.tDtNRt.DATA;(yQXG)_LP=SQaramspnewSQLParam();SLParamsl=ewSLPaamQpnQr();=IResDataresnewSwordRes();MMM=are.etFormformmalppqg(_);’’’’S=trinidStrinre.etAtid//)tr)构g;机jg(gqg(jgn"S=tringkqyf(Stringre.etAtrkf)://考勤月份)q(gqynn=SrinkssSrinre.etrkss//tg(tg)qgtA();考勤幵始时间jj"n=SStrinzstrinre_etAtr(zs//考勤结束时间gjj(g)qgjj);n’'=StringsfwStrinre.etAttrsfw//计j(g)qg(j);算范围=,,n/Stringlx(Strinre.etAttrlx:/机构类型jgg)qg(jg)71 山东大学硕士学位论文,'n=StrinoraflagStrinre.etAtrorafla//新增,修改gp(g)qg(pg);//计算实时截至时间=wDatecurDneDate(;)""S=--imleDateFormatsdfnewSimpeDateFormatMMddlyyyyp();S=tringcurStrinDatesdf.formatcurDg();<iftri2LoncurStre2Lon(sn(inDat)stringzsgggg(jj)){=zscurStringDatejj;}=DDazressszinttuty(ks//算工作日(除掉周六日),;计ggyjjj)//计算非工作日设置<?=<Ma<?ListMap<StringObectfzrManewArraistStrinObeGt?jgp,〇;yLpgjiflxualsRlzonsKQJGL//企业.et.TSX0(jgq(yC一一_)){s.addParamidp(;jg)}else{//内设机构下没有非工作日设置,需要查所在企业的信息s.arplddPaamid(;jg)//查询层次码""MaM=occmadal.uerBKekuerJCBJIpqyMaylkqgqcmdsl;ppy(qg_j_ygyg,p)"n=iStrngecmStrinccmMa.etccm(g)pg();"’""n'"""=ccm+ccm.replace(,,W;sl.clearParamsp();"nM"spl.addMacroParam(andidin(+ccm+));M<S>=aptringbectrentJ,Ojpagn"daolueiKueiJrnBJllsltyMaBey(klkqsCcd]gygyg,p);qpyqg__qn"s.addParamarentJ.etidp(pgg());}s.addParamkssp;(j)sp.addParamzsGj);s.addParamkss.substr04(ing(pj,));"”=fgzrMadao.ueryMaListByKeklkuerfzrsp//,;非工作日设置记录pqpy(qg_qjg_qyg)zC=0intfrount//不用g;打卡=intsbCount//0公休日上班;一//计.算出各种节假日天数:元旦,春节,清明,五,工作日调休,公休日正常上班==:=frMa!nullfzrMa.size0i(fgzpgp()){||=fortrrttrzrMa.ttriterr.IeatoieraofgpieraoQatohasNext(;();){<ma=<MapStrin,Obect>2MaStrinObect>iterator.nextgjp(pg,j)();""",,"n=ifnullma.!2etrlx&&JR9.eualsmap2.etrlx(pg(j)_q(g(j))){sbCount++;lse}e{Mnn=2"--Strma.etrfinrg()gqpq;72 ?山东大学硕士学位论文=CalendarcCa]endar.etlnstance〇g;c.setTime(SwordDateUtils.StringToDate(rq));DAY=ifcdaOF!7&&.etCalenr.WEEK)(g(__=c.etCarDAYWEEK!l/g(lenda.OF))/__{fzrCoun-H-gt;}}}}4.2系统测试该部分通过白盒测试和黑盒测试对考勤设置、考勤签到、休假加班、考勤281]统计4个模块进行了测试。1.考勤设置;考勤设置中测试了PC端的非工作日设置、考勤周期设置、上下班时间设-置,手机端企业定位。考勤设置的测试,如表45所示。、外勤考勤设置表4-5考勤设置测试表'测试测试名称测试过程测试结果|序号 ̄非工作日点击新增非工作日进入新增页面,设置信息然能够成功§?增非工设置后保存,;点击调整非工作日进入调整页面修作日以及调整非工改信息然后保存。^ ̄考勤周期点击设置考勤周期进入设置页面,设置信息然能够成功设置考勤设置后保存。^ ̄ ̄ ̄上下班时选择机构点击设置上下班时间进入设置页面,能够成功设置机构间设置设置信息然后保存。上下班时间。 ̄外勤考勤选择项目点击新增进入新增页面,设置信息然能够成功新增、设设置后保存;选择外勤考勤信息点击编辑进入编辑置、删除外勤考勤。,修改信息然后保存页面;选择外勤考勤信息点击删除。企业定位点击企业定位进入定位页面摇动手机或点击能够显示定位地点;一摇摇签到;。信息能够成功设置企业位置。|2.考勤签到考勤签到中测试了PC端的签到人员设置、外勤项目人员设置、签到管理,手机端的签到,、外勤、代签、我的签到、通知、设备解绑。考勤签到的测试如表4-6所示。73 山东大学硕士学位论文表4-6考勤签到测试表测试测试名称测试过程测试结果|序号 ̄ ̄1签到人员选择机构点击设置考勤人员进入设置能够成功设置签到人员。设置页面,设置信息然后保存。 ̄2外勤人员选择项目点击设置项目外勤考勤人员能够成功设置外勤人员与设置进入设置页面,设置信息然后保存;项目管理员。选择项目点击设置项目管理员进入设,设置信息然后保存置页面。 ̄3签到管理选择机构设置条件点击查询签到;点能够查询到正确数据;能够击补签到进入补签页面,进行补签然成功补签。后保存。 ̄ ̄4点击签到进入签到页面一;点击摇摇能够显示签到时间地点信签到;能够签到并显示正确状。息〇 ̄ ̄'5点击签到进入签退页面一M;点击摇摇能够显示签退时间地点信签到。息;能够签退并显示正确状 ̄6点击外勤进入编辑页面;填写信息点能够显未签到时间地点信击签到;填写信息点击签退。息;能够签到并显示正确状态;能够签退并显示正确状态;其他项目能够发送抄3^0 ̄7点击代签进入编辑页面;填写信息点能够显示签到时间地点信击签到;填写信息点击签退;。息能够签到并显示正确状态;能够签退并显示正确状态。 ̄8我的签到点击我的签到进入查看页面。能够显示个人所有签到记录。 ̄9mu点击通知进入通知列表。能够显示外勤抄送、代签抄送的信息。"" ̄ ̄10设备解绑点击设备解绑,弹出提示点击确认。能够申请设备解绑,48小时后能用别的账号登录。|—3.休假加班休假加班中测试了PC端的休假流程设置、年休假额度设置、加班流程设置、加班管理,手机端的休假申请、加班申请、待办事项、我的额度、我的休-7所示假、我的加班。休假加班的测试,如表4。表4-7休假加班测试表测试测试名称测试过程测试结果|序号 ̄1,,选择能够成功保存休假流程休假流程选择机构选择休假类型。。设置设置参数,设置信息然后保存|74 山东大学硕士学位论文2年休假额设置条件点击查询;选择人员点能够查询到正确数据;能够成功设|||,;计算结果正确度设置击设置进入设置页面设置信息置年休假额度。然后保存;选择人员点击计算。加班流程选择机构设置信息然后保存。。能够成功保存加班流程im ̄ ̄ ̄加班管理设置条件点击查询;点击新增进能够查询到正确数据;能够新增加|,填写信息然后保班记录入新增页面;能够修改新增状态的加班存;;选择记录点击修改进入修改记录能够查看加班详情;能够删页面,修改信息然后保存;选择除新增状态的加班记录;能够核定记录点击查看选择记录点击删已办结状态的加班记录。;除;选择记录点击核定加班。休假申请点击休假申请进入编辑页面,填能够保存休假申请;能够提交休假写信息点击保存;填写信息点击申请。提交。 ̄ ̄6加班申请点击加班申请进入编辑页面,填能够保存加班申请能够提交加班;写信息点击保存;填写信息点击申请。提交。 ̄1待办列表点击待办事项,点击待办进入待能够显示待审批、己退回状态的申办列表;点击列表中的申请。请;待审批状态的申请能进行提交;己退回、退回状态的申请能进行保存。、提交;己办列表点击待办事项,点击已办进入已能够显示待审批、己、己退回办结、1办列表;点击列表中的申请;能够查。己终止状态的申请看申请详情。9我的额f点击我的额度进入查看页面。能够正确显示个人休假额度情况。 ̄^ ̄1〇我的休假点击我的休假进入休假列表;点能够显示所有个人休假;未提交、击列表中的休假。已终止状态的休假能进行保存、提交、己退回状态;待审批的休假能进行终止状态的休假能查;己办结看休假详情。 ̄ ̄ ̄T\我的加班点击我的加班进入加班列表;点能够显示所有个人加班;未提交、击列表中的加班。己终止状态的加班能进行保存、提交;待审批、己退回状态的加班能进行终止、;已办结己核定状态的加班能查看加班详情。|4.考勤统计考勤统计中测试了PC端的考勤签到统计、考勤结果管理,手机端的上月-出勤汇总、考勤统计、部门考勤。考勤统计的测试,如表48所示。表4-8考勤统计测试表测试测试名称测试过程测试结果|序号1考勤签到上传附件点击提交并统计人员下载的统计报表格式和数据正确。|||75 山东大学硕士学位论文统计出勤;统计完毕点击下载。— ̄ ̄I2。考勤结果选择机构,选择考勤月份,点击能够计算显示正确数据管理计算考勤结果。上月出勤登录手机APP进入考勤页面。能够正确显示个人上月出勤汇总。4考勤gr点击考勤统计进入查看页面。能够正确显示个人上月考勤统计。 ̄ ̄ ̄部门考勤1点击部门考勤进入选择页面;选能够显示部门所有人员;能够正确择人员进入查看页面。显示所选人员的上月考勤详情。II系统测试部分主要对系统中的各个功能模块和整体流程进行功能测试,根据测试结果修改与功能需求不相符的地方,并调整优化各个功能中的相关信息29[]。同时在测试过程中有针对性的记录非功能测试的相关数据,对非功能性需一求进行基本的测试与跟踪,保证系统符合性能、兼容性些、易用性以及其他非功能性需求的基本要求。76 山东大学硕士学位论文-第5章总结与展望基于Web和移动终端的中软考勤管理系统是在调查了解了中软典型机构和部门的考勤制度的基础上,通过调整优化考勤管理方式,同时借鉴国内外相关,并结合当前的主流技术而设计实现的的技术和方法。该系统的设计与实现将一会为中软各级机构的考勤管理提供高效的统平台,对考勤管理的力度也会加强,并讨论,。本文首先对系统的开发背景进行介绍了国内外当前的研究形势继而确定了本文的主要工作,UML,接下来对考勤管理进行需求分析然后借助建模语言对系统各个功能模块进行概要和详细设计,最后详细描述了系统的实现与测试。在技术上,考勤管理系统采用前后端分离技术,PC端采用B/S架构,手机端采用C/S架构。该技术可以通过PC的Web浏览器或者手机APP访问系统,能大大节省后期维护所需的时间及人力成本,同时又具有较高的安全性。该系统后端采用了MVC的设计模式,主要包括controller控制层、model模型层和v,iew视图层。该系统主要在J2EE平台上进行开发,同时运用了SSH框架技术即struts、hibernate、spring框架,对信息进行封装,然后通过配置文件来应用,方便了开发的工作,。该系统使用的数据库是MySQL该数据库较轻量并且功能较强,在此基础上进行表结构的设计。在功能上,考勤管理系统分为考勤设置、考勤签到、休假加班、考勤统计。考勤设置包括Web端的非工作日设置、考勤周期设置、上下班时间设置、外勤考勤设置,移动端APP的企业定位。考勤签到包括Web端的签到人员设置、外勤项目人员设置、签到管理,移动端APP的签到、外勤、代签、我的签到、通知、设备解绑。休假加班包括Web端的休假流程设置、年休假额度设置、加班流程设置,APP的休假申请、加班申请、待办事项、我的、加班管理移动端额度、我的休假、我的加班。考勤统计包括Web端的考勤签到统计、考勤结果。管理,移动端APP的上月出勤汇总、考勤统计、部门考勤基于Web和移动终端的中软考勤管理系统的设计与实现,为中软各级机构考勤管理人员的工作提供了方便,实现了员工考勤数据的规范化、标准化,加强了考勤管理的力度,提高了考勤效率。在该系统的设计与实现过程中对如何77 山东大学硕士学位论文从多种角度分析数据以及系统非功能性等方面的研究还不是很充分,这些还需要在以后的系统维护与迭代中不断的进行改进。同时还可以推动考勤系统和差旅,充分利用考勤数据,、报销、财务等系统的对接逐步实现企业日常工作的全流程信息化。78 山东大学硕士学位论文参考文献[1]佘斌波.智能考勤系统设计与实现[D].西安石油大学20.,15[2]欧.基于WLAN的手机考勤系统开发[阳雪涛,雷伟,万晓慧等.军,J]电子-:1.测试,2015(24)7203].D.[曲建龙基于移动定位的手机考勤管理系统的设计与实现[]西安电子科2014技大学.,[4]陈东.基于Web的考勤系统的设计与实现[D].西安电子科技大学,2010.[5]林芳,浦云明,郭更生.基于Web的企业考勤管理系统设计[J].软件导刊,20-10098:100101.,()[6]李莹.天津市河东职大考勤管理系统的设计与实现[D].天津大学,2012.7W[]朱德华.网上eb网.,张艳晶,李德兵考勤系统页的实现技术[J]智能计2007-116算机与应用:15.,()[8]张清雅.基于WebService技术的考勤管理系统的分析与实现[J].福建电-脑2010261:104105.,,()[9]ZhangZ,GongP,HaoC.EducationaladministrationattendancesystembasedonXMLndebservceItionalsaWi[C]//nternaSympoiumonIn-formationTechnologiesandApplicationsinEducation.2008:4852.10D.[]太俊霞.云南省国税局税源监控管理系统的设计与实现[]山东大学,2015.11云2EED202[]季相.基于J的考勤管理系统的设计与实现[].山东大学1.,[12]叶惠成.治安巡警考勤管理系统的研宄与分析[D].云南大学,2015.13.[]面向对象的系统分析[M].清华大学出版社2006.邵维忠,[14]BennettMJ.Timeandattendancesystemandmethodtherefor:USUS,5550359A[P].1996.[15]郑杰辉.基于手机定位的考勤管理系统的设计与实现[J].武汉职业技术-2016155:7274.学院学报,,()[16]李晓琛.基于SSH框架的企业考勤管理系统的设计与实现[D].天津大学2014.,79 山东大学硕士学位论文17..2011.[]李聪地图匹配算法设计与实现[D]北京交通大学,维忠.[18]邵.面向对象的系统设计[M].清华大学出版社,2007[19]郭婧,吴军华.面向方面的UML建模[J].计算机工程与设计,2011,-12:42604264.[20]翟亚红,杨艳霞.UML建模技术的研究与应用[J].科技创业月刊,2010,-04:156158.21:1P1[]李凯?手机考勤系统及其实现方法CNCN10289876A.202.,[]22.eb[]邵东轶基于w的考勤管理系统的设计与开发[J].计算机光盘软件与20-应用12(15):236236.,23Kas-[]siraM,MazlanHZainiN,etal.Webbasedstudentattendance,systemusingRFIDtechnology[C]//ControlandSystemGraduate-ResearchCollouium.IEEE2012:213218.q,[24]PaulrajPonniah.数据库设计与开发教程[M].清华大学出版社,2005.[25迪.基于位置的考勤系统及方法:,CN102819877A[P].2012.]吴[26]张波,赵双明.基于Android平台的百度地图开发研宄[J].软件导刊,20—15147:9699.,()..北京希望电子出版社2013.[27熊斌iOS开发从入门到精通[M],]1[28..,201.]杜源软件测试技术的应用及其发展趋势[D]四川大学[29]戴希里.软件测试过程改进方法的研究[D].华中师范大学,2009.80 山东大学硕士学位论文致谢一些设计和技术难点进行了耐心的指导和帮在项目期间,老师对我遇到的助,并且对论文过程提出了许多宝贵的意见和建议,使得本论文能够顺利完成,在此首先对老师表示由衷的感谢。此外,,还要感谢我的同事和朋友在完成论文的过程中给予我的大量支持帮助我解决了遇到的许多困难,给我提供了完成论文的动力,在此对他们表示真诚的感谢。最后我要感谢家人对我无微不至的关心和照顾,让我在遇到瓶颈的时候倍感温暖,祝愿他们幸福平安。81 学位论文评阅及答辩情况表n她綠料总体评价所w在单位1卜职叫务|※(硕导)__-匿名评阅人1-—CI5匿名评阅人2--c评阅-匿名评阅人3-人专业技术是否博导协々犯六户职务(硕导)主席排爱勒栈十I#山糸师花太穿|国戾釗鉍柃砧Ibii^砧f山a穿J委禾委员会成员员答_加B答辩秘书關=|曰期1I丨丨叉的总体评价※备注丨“”“”“”“”※优秀为A良好为B;合格为C;不合格为D。;