【《基于java的项目管理系统的设计和实现》13000字(论文)】_第1页
【《基于java的项目管理系统的设计和实现》13000字(论文)】_第2页
【《基于java的项目管理系统的设计和实现》13000字(论文)】_第3页
【《基于java的项目管理系统的设计和实现》13000字(论文)】_第4页
【《基于java的项目管理系统的设计和实现》13000字(论文)】_第5页
已阅读5页,还剩36页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第。邮件发送模块邮件发送模块负责监听RabbitMQ消息中间件,当有管理模块有邮件需要发送的时候,会将员工信息丢到指定的队列里,邮件发送模块监听到队列有消息之后,会取出消息,然后做邮件的发送。邮件发送SMTP服务,该系统采用163提供的免费服务,只需要在163邮箱中开通该服务,生成一个口令,然后将邮箱配置写入yml配置当中,然后再依赖中引入spring-boot-starter-mail,即可再邮件模块中通过依赖注入的方式注入JavaMailSender,用过此类的实体化对象来进行邮件的发送,为了保证消息不被重复消费,将RabbitMQ的确认机制由自动改成手动,并且引入redis,每次发送消息之前,先去redis中根据此消息的id进行查找,如果查找不到则发送消息,发送成功之后,将消息id存入redis当中,防止下次重复发送消息。流程如图4.11所示:图4.11防止邮件重复发送5.4数据库详细设计因为本项目考虑成本问题,故采用MySQL数据库开发的居多,因此我这里也采用MySQL作为数据存储,在数据库设计上,大的方向遵循数据库三范式设计表以及表与表之间的关系,方向上采用反三范式的设计思想,为什么采用反三范式呢,因为有的数据经常要用到,但是这些数据如果按照三范式来设计,会被放到不同的表里,这样每次查询都必须通过表与表之间的关联才能拿到数据,为了提高系统效率,可以适当将数据冗余,达到反三范式设计。5.4.1数据库概念结构设计1)用户信息如图4.12所示:图4.12用户实体与属性2)基本信息如4.13所示:图4.13基本信息实体与属性3)站内信息表如图4.14所示:图4.14站内信实体与属性4)其他收款信息如图4.15所示:图4.15其他收款与属性5)日志信息如图4.16所示:图4.12日志实体与属性5.4.2基础表结构数据库的设计是系统架构的根基,其中表与表之间的关系,表设计之初是否考虑数据递增带来的查询效率以及是否要水平拆分,很大程度上都确定了业务逻辑代码的编写,因此合理的设计表与表之间的关系,是一个极为重要的工作,本系统设计共涉及到157张表,由于论文篇幅原因,以及许多表虽然功能不同,但是结构类似所以在此不再多做赘述了,数据库所涉及到的表如图4.13所示:图4.13信息表用户权限登录不仅仅是登录的表,里面存档了登录所需要的信息,例如系统管理员可能不是该公司的员工,为了后期方便维护。以及各个权限的划分和整理内容都在这张表中储存。管理员的登录信息也存放这张表里,然后其id设置为null。该表各个字段如表5.1所示: 表5.1用户权限“oa_datajur”登录表字段描述类型(长度)为空备注DATAJUR_ID序号Varchar(100)No主键DEPARTMENT_IDS部门ID组合Varchar(5000)YesSTAFF_ID员工IDVarchar(100)YesPRIVTYPE权限类型Varchar(100)YesDEPARTMENT_ID部门IDVarchar(100)Yes员工信息表记录了员工的基本信息,该表在整个系统中有着尤为重要的作用,例如我们查询员工所属部门,就可以从这张表中先找到对应的部门Id然后去部门表中找到对应的部门名称。该表各个字段如表5.2所示: 表5.2基本信息“oa_staff”表字段描述类型(长度)为空备注STAFF_ID序号Varchar(100)No主键NAME姓名Varchar(50)YesBIANMA编码Varchar(100)YesFUNCTIONS公司Varchar(255)YesDEPARTMENT_ID部门Varchar(100)YesTEL电话Varchar(20)YesSEX性别Varchar(10)YesUSER_ID绑定用户名Varchar(100)YesBZ备注Varchar(255)Yes日志表记录了邮件是否发送成功,如果失败是否继续重试,该表对邮件发送有着重要的作用,它可以防止邮件发送失败,也可以防止邮件重复发送。日志是系统运行的关键,它记录系统运行关键操作,例如某个接口访问太慢了,我们可以从该日志中查询出来,然后针对性的进行优化,例如有的接口访问比较频繁,我们也能根据日志来做对应的限流处理,防止雪崩效应的发生。该表各个字段如表5.3所示:表5.3日志“sys_sms”表字段描述类型(长度)为空备注LOG_ID序号Varchar(100)No主键USERNAME用户名Varchar(50)YesCZTIME操作时间Varchar(100)YesCONTENT事件Varchar(255)Yes其他收款是收款管理里面其中仅仅一张表单,它记录了收款信息的往来,信息及时的录入,为后续数据呈现做铺垫。该表各个字段如下表5.4所示表5.4其他收款“receive_otherceive”表字段描述类型(长度)为空备注OTHERRECEIVE_ID序号Varchar(100)No主键BRANCH收款部门Varchar(100)YesRECEIVER收款人Varchar(100)YesRECEIVEDATE收款日期Varchar(32)YesCUSTOM_ID付款单位Varchar(100)YesCUSTOM_NAME付款单位名称Varchar(255)YesRECEIVEDESC付款说明Varchar(255)YesRECEIVEMONEY收款金额Double(11)NoMAKER制单人Varchar(100)YesMAKEDATE制单日期Varchar(32)YesCHECKER审核人Varchar(100)YesCHECKDATE审核日期Varchar(32)YesSTATE单据状态Varchar(100)YesCODE单据号Varchar(100)YesMEMO备注Varchar(255)YesRECEIVETYPE款项类别Varchar(100)Yes6系统测试6.1测试目的系统的稳定性对于系统来说是十分重要的,为了保证该系统在日常使用中能够保持高可用,所以在系统开发完成后,我们需要对系统进行一系列测试,确保系统的各个功能都能正常工作以及系统的可靠性。6.2测试环境(1)操作系统:CentOS7。(2)JDK版本:JDK1.8。(3)MySQL版本:5.7。(4)Redis版本:3.2。(5)Rabbit版本:3.8。(6)Tomcat版本:8.56.3测试方法系统测试当中有许多测试方法,在此选中单元测试。再次测试中,会编写多个测试用例,对功能进行针对性的测试,并且拿到测试结果认真分析。6.3.1测试用例1:添加项目的相关测试功能名称:项目管理操作角色:员工测试时间:2020-4-10功能描述:添加项目,联动项目进行招投标登记、进行投标保证金的申请。输入项:点击添加弹框输出项:邮件发送正常。6.3.2测试用例2:合同管理的相关测试功能名称:登记合同管理审批流操作角色:员工A和员工B测试时间:2020-4-10功能描述:员工A登记合同管理关联项目提出申请,员工B收到申请,进行审批。输入项:员工直接相互发送消息输出项:消息发送和接收正常。6.3.3测试用例3:相关项目费用报销登记功能名称:费用申请登记管理操作角色:各部门员工测试时间:2020-4-10功能描述:员工关联项目填写申请表,相关领导进行审批输入项:员工填写申请,领导审批输出项:审批通过后,登记变动邮件发送正常,登记状态变更正常。6.4测试结论经测试该系统已经实现的功能上都能正常运行,在这过程中可能出现一些小的应用性BUG,这对使用不太友好,希望后期改进,其他功能均可以满足企业的日常使用。结论项目管理一直是企业生成中重要的一环,本次通过调研,对市场上项目管理需求进行分析,并更具需求分析,对系统做出了概要设计,并着手实现了该系统的开发工作。在系统架构设计方面采用前后端分离的架构模式,该架构实现了前后端较好的解耦,如果后期服务端更换编程语言,只要保证接口以及接口的参数和返回值不变,前端是不用改变的。这样给后期维护带来了很大的便利性。服务器端开发选择Java进行开发,实现了精准的权限管理、员工数据、合同管理、招投标管理、项目管理、审批功能、报表分析管理等基础功能,这些功能可以较好的减轻员工作的负担。由于这个系统功能比较强大,开发难度稍微偏高。且毕业设计周期很紧张,所以许多功能只是实现了皮毛,系统内还有一些不完善的地方,例如:有一些报表分功能并没有做到,项目登记业绩没有做出来等,下一步的工作我将把报表功能继续深入开发,实现全局站内提醒,代码结构优化等,相信通过进一步的付出,该系统会成为一套功能齐全,简单上手的项目管理系统。参考文献何军,陈倩怡.Vue+Springboot+Mybatis开发消费管理系统[J].电脑编程技巧与维护,2019(02):87-88+102.王丹,孙晓宇,杨路斌,高胜严.基于SpringBoot的软件统计分析系统设计与实现[J].软件工程,2019,22(03):40-42.王悦,张雷,钱英军.基于SpringBoot微服务的SpringSecurity身份认证机制研究[J].电脑编程技巧与维护,2019(08):64-65+68.陈玲,夏汛.利用Mybatis的动态SQL实现物理分页[J].数字技术与应用,2011(11):227.肖顺,严碧波.一种基于RabbitMq的消息推送系统的设计与实现[J].电子世界,2019(07):204-205MargarethaOhyver,JurikeV.Moniaga,IwaSungkawa,BonifasiusEdwinSubagyo,IanArgusChandra.TheComparisonFirebaseRealtimeDatabaseandMySQLDatabasePerformanceusingWilcoxonSigned-RankTest[J].ProcediaComputerScience,2019,157.吕英华.渐进式JavaScript框架Vue.js的全家桶应用[J].电子技术与软件工程,2019(22):39-40.YunQuan.DesignandImplementationofE-commercePlatformbasedonVue.jsandMySQL[P].Proceedingsofthe3rdInternationalConferenceonComputerEngineering,InformationScience&ApplicationTechnology(ICCIA2019),2019.何成万,叶志鹏.基于AOP和动态污点分析的SQL注入行为检测方法[J].电子学报,2019,47(11):2413-2419.白思俊.项目管理案例教程[M].北京:机械工业出版社,2004:19-21.古乐.软件测试案例和实践教程[M].北京:清华大学出版社,2008:20-28.林信良.Spring2.0技术手册[M].北京:电子工业出版社,2005:66-69.常倬林.JAVAWEB从入门到精通[M].北京:机械工程出版社,2011:6-12.(美)弗里曼(Freeman,E.)HeadFirst设计模式[M]中国电力出版社,2007:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论