南昌网站建设公务,项目网站开发js放的位置,成都紧急通知,广东专业的网站制作基于springbootvue的儿科保健计划免疫系统 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ #x1f345;文末获取项目下载方式#x1f345; 一、项目背…基于springbootvue的儿科保健计划免疫系统 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 文末获取项目下载方式 一、项目背景介绍 随着科学技术的发展尤其是计算机技术、网络技术、多媒体技术、传感技术、控制技术和智能技术的发展人类进入了信息时代。信息时代的标志是Internet国际互联网的建立。Internet国际互联网将世界各地紧密地联系在一起。于是一个数字化得社区应运而生。 当前西方发达国家的网络化、智能化、自动化达到很高的水平已经或正在改变人们的生产方式和生活方式许多国家的计划免疫部门早已实现无纸化办公我们国家有些城市已经实现免疫信息管理的网上办公但是并没有完全普遍目前随着儿童计划免疫改革的不断深入如何有效地增强儿童免疫接种信息管理水平充分提高信息管理的效率已成为计划免疫管理工作的重点之一。 二、项目技术简介 JAVAJava是一门面向对象编程语言不仅吸收了C语言的各种优点还摒弃了C里难以理解的多继承、指针等概念因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表极好地实现了面向对象理论允许程序员以优雅的思维方式进行复杂的编程。VueVue (发音为 /vjuː/类似 view) 是一款用于构建用户界面的JavaScript框架。它基于标准HTML、CSS和JavaScript构建并提供了一套声明式的、组件化的编程模型帮助开发者高效地开发用户界面。 Vue是一个独立的社区驱动的项目它是由尤雨溪在2014年作为其个人项目创建 是一个成熟的、经历了无数实战考验的框架它是目前生产环境中使用最广泛的JavaScript框架之一可以轻松处理大多数web应用的场景并且几乎不需要手动优化并且Vue完全有能力处理大规模的应用。Element-UIElement一套为开发者、设计师和产品经理准备的基于 Vue 2.0 的桌面端组件库。SpringSpring框架是一个开放源代码的J2EE应用程序框架由Rod Johnson发起是针对bean的生命周期进行管理的轻量级容器lightweight container。 Spring解决了开发者在J2EE开发中遇到的许多常见的问题提供了功能强大IOC、AOP及Web MVC等功能。Spring可以单独应用于构筑应用程序也可以和Struts、Webwork、Tapestry等众多Web框架组合使用并且可以与 Swing等桌面应用程序AP组合。因此 Spring不仅仅能应用于J2EE应用程序之中也可以应用于桌面应用程序以及小应用程序之中。Spring框架主要由七部分组成分别是 Spring Core、 Spring AOP、 Spring ORM、 Spring DAO、Spring Context、 Spring Web和 Spring Web MVC。SpringBootSpring Boot是由Pivotal团队提供的全新框架其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置从而使开发人员不再需要定义样板化的配置。通过这种方式Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。Mybatis-PlusMyBatis-Plus简称 MP是一个 MyBatis的增强工具在 MyBatis 的基础上只做增强不做改变为 简化开发、提高效率而生。Spring-MvcSpring MVC属于SpringFrameWork的后续产品已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构从而在使用Spring进行WEB开发时可以选择使用Spring的Spring MVC框架或集成其他MVC开发框。Redisredis是一个key-value存储系统。和Memcached类似它支持存储的value类型相对更多包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash哈希类型。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作而且这些操作都是原子性的。在此基础上redis支持各种不同方式的排序。与memcached一样为了保证效率数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件并且在此基础上实现了master-slave(主从)同步。 Redis 是一个高性能的key-value数据库。 redis的出现很大程度补偿了memcached这类key/value存储的不足在部 分场合可以对关系数据库起到很好的补充作用。它提供了JavaC/CC#PHPJavaScriptPerlObject-CPythonRubyErlang等客户端使用很方便。HtmlHTML的全称为超文本标记语言是一种标记语言。它包括一系列标签通过这些标签可以将网络上的文档格式统一使分散的Internet资源连接为一个逻辑整体。HTML文本是由HTML命令组成的描述性文本HTML命令可以说明文字图形、动画、声音、表格、链接等。 超文本是一种组织信息的方式它通过超级链接方法将文本中的文字、图表与其他信息媒体相关联。这些相互关联的信息媒体可能在同一文本中也可能是其他文件或是地理位置相距遥远的某台计算机上的文件。这种组织信息方式将分布在不同位置的信息资源用随机方式进行连接为人们查找检索信息提供方便。shiroApache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理。使用Shiro的易于理解的API,您可以快速、轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和企业应用程序。 三、系统功能模块介绍 四、数据库设计 1QRTZ_BLOB_TRIGGERSQRTZ_BLOB_TRIGGERS
字段名类型默认值列注释SCHED_NAMEvarchar(120)NULLTRIGGER_NAMEvarchar(200)NULLTRIGGER_GROUPvarchar(200)NULLBLOB_DATAblobNULL
2QRTZ_CALENDARSQRTZ_CALENDARS
字段名类型默认值列注释SCHED_NAMEvarchar(120)NULLCALENDAR_NAMEvarchar(200)NULLCALENDARblobNULL
3QRTZ_CRON_TRIGGERSQRTZ_CRON_TRIGGERS
字段名类型默认值列注释SCHED_NAMEvarchar(120)NULLTRIGGER_NAMEvarchar(200)NULLTRIGGER_GROUPvarchar(200)NULLCRON_EXPRESSIONvarchar(120)NULLTIME_ZONE_IDvarchar(80)NULL
4QRTZ_FIRED_TRIGGERSQRTZ_FIRED_TRIGGERS
字段名类型默认值列注释SCHED_NAMEvarchar(120)NULLENTRY_IDvarchar(95)NULLTRIGGER_NAMEvarchar(200)NULLTRIGGER_GROUPvarchar(200)NULLINSTANCE_NAMEvarchar(200)NULLFIRED_TIMEbigint(13)NULLSCHED_TIMEbigint(13)NULLPRIORITYint(11)NULLSTATEvarchar(16)NULLJOB_NAMEvarchar(200)NULLJOB_GROUPvarchar(200)NULLIS_NONCONCURRENTvarchar(1)NULLREQUESTS_RECOVERYvarchar(1)NULL
5QRTZ_JOB_DETAILSQRTZ_JOB_DETAILS
字段名类型默认值列注释SCHED_NAMEvarchar(120)NULLJOB_NAMEvarchar(200)NULLJOB_GROUPvarchar(200)NULLDESCRIPTIONvarchar(250)NULLJOB_CLASS_NAMEvarchar(250)NULLIS_DURABLEvarchar(1)NULLIS_NONCONCURRENTvarchar(1)NULLIS_UPDATE_DATAvarchar(1)NULLREQUESTS_RECOVERYvarchar(1)NULLJOB_DATAblobNULL
6QRTZ_LOCKSQRTZ_LOCKS
字段名类型默认值列注释SCHED_NAMEvarchar(120)NULLLOCK_NAMEvarchar(40)NULL
7QRTZ_PAUSED_TRIGGER_GRPSQRTZ_PAUSED_TRIGGER_GRPS
字段名类型默认值列注释SCHED_NAMEvarchar(120)NULLTRIGGER_GROUPvarchar(200)NULL
8QRTZ_SCHEDULER_STATEQRTZ_SCHEDULER_STATE
字段名类型默认值列注释SCHED_NAMEvarchar(120)NULLINSTANCE_NAMEvarchar(200)NULLLAST_CHECKIN_TIMEbigint(13)NULLCHECKIN_INTERVALbigint(13)NULL
9QRTZ_SIMPLE_TRIGGERSQRTZ_SIMPLE_TRIGGERS
字段名类型默认值列注释SCHED_NAMEvarchar(120)NULLTRIGGER_NAMEvarchar(200)NULLTRIGGER_GROUPvarchar(200)NULLREPEAT_COUNTbigint(7)NULLREPEAT_INTERVALbigint(12)NULLTIMES_TRIGGEREDbigint(10)NULL
10QRTZ_SIMPROP_TRIGGERSQRTZ_SIMPROP_TRIGGERS
字段名类型默认值列注释SCHED_NAMEvarchar(120)NULLTRIGGER_NAMEvarchar(200)NULLTRIGGER_GROUPvarchar(200)NULLSTR_PROP_1varchar(512)NULLSTR_PROP_2varchar(512)NULLSTR_PROP_3varchar(512)NULLINT_PROP_1int(11)NULLINT_PROP_2int(11)NULLLONG_PROP_1bigint(20)NULLLONG_PROP_2bigint(20)NULLDEC_PROP_1VARCHAR(255)NULL
11QRTZ_TRIGGERSQRTZ_TRIGGERS
字段名类型默认值列注释SCHED_NAMEvarchar(120)NULLTRIGGER_NAMEvarchar(200)NULLTRIGGER_GROUPvarchar(200)NULLJOB_NAMEvarchar(200)NULLJOB_GROUPvarchar(200)NULLDESCRIPTIONvarchar(250)NULLNEXT_FIRE_TIMEbigint(13)NULLPREV_FIRE_TIMEbigint(13)NULLPRIORITYint(11)NULLTRIGGER_STATEvarchar(16)NULLTRIGGER_TYPEvarchar(8)NULLSTART_TIMEbigint(13)NULLEND_TIMEbigint(13)NULLCALENDAR_NAMEvarchar(200)NULLMISFIRE_INSTRsmallint(2)NULLJOB_DATAblobNULL
12appointmentappointment
字段名类型默认值列注释idint(11)NULLIDuser_namevarchar(50)NULL用户名namevarchar(50)NULL真实姓名gendervarchar(50)NULL性别appoint_datedateNULL接种日期timevarchar(50)NULL日期appoint_sitevarchar(50)NULL服务点which_pinvarchar(50)NULL针数vaccinevarchar(50)NULL疫苗statusvarchar(20)NULL
13bannersbanners
字段名类型默认值列注释banner_idint(11)NULLcontentvarchar(255)NULL知识内容image_urlvarchar(500)NULLsortint(10)NULL排序is_showint(10)NULL是否展示titlevarchar(50)NULL
14historyhistory
字段名类型默认值列注释idint(11)NULLnamevarchar(255)NULLphonevarchar(255)NULLgendervarchar(255)NULLageint(11)NULLfirst_pinint(255)NULLsecond_pinint(255)NULLfirst_datedatetime(0)NULLsecond_datedatetime(0)NULLuser_namevarchar(255)NULL
15inoculation_siteinoculation_site
字段名类型默认值列注释idint(11)NULLnamevarchar(255)NULLprovincevarchar(255)NULLcityvarchar(255)NULLaddressvarchar(255)NULL
16inspectioninspection
字段名类型默认值列注释registration_idint(11)NULLIDusernamevarchar(10)NULL姓名cardvarchar(20)NULL身份证addressvarchar(50)NULL住址sexvarchar(10)NULL性别phonevarchar(20)NULL手机号check_catevarchar(20)NULL预检状态create_timedatetime(0)NULL预检日期handle_statusvarchar(10)NULL处理状态
17optionsoptions
字段名类型默认值列注释option_idint(11)NULLcontentvarchar(255)NULLopt_typevarchar(10)NULLA
18pi_signpi_sign
字段名类型默认值列注释sign_idint(11)NULLIDuser_idvarchar(10)NULL用户idusernamevarchar(10)NULL签到人nicknamevarchar(10)NULL职业create_timedatetime(0)NULL创建时间
19questionsquestions
字段名类型默认值列注释question_idint(10)NULLque_typetinyint(1)NULL问题类型0单选1多选contentvarchar(255)NULL问题内容answervarchar(255)NULL答案scoreint(10)NULL分数from_datavarchar(20)NULL题库
20schedule_jobschedule_job
字段名类型默认值列注释job_idbigint(20)NULL任务idbean_namevarchar(200)NULLspringbean名称paramsvarchar(2000)NULL参数cron_expressionvarchar(100)NULLcron表达式statustinyint(4)NULL任务状态0正常1暂停remarkvarchar(255)NULL备注create_timedatetime(0)NULL创建时间
21schedule_job_logschedule_job_log
字段名类型默认值列注释log_idbigint(20)NULL任务日志idjob_idbigint(20)NULL任务idbean_namevarchar(200)NULLspringbean名称paramsvarchar(2000)NULL参数statustinyint(4)NULL任务状态0成功1失败errorvarchar(2000)NULL失败信息timesint(11)NULL耗时(单位毫秒)create_timedatetime(0)NULL创建时间
22staystay
字段名类型默认值列注释idint(11)NULLIDuser_namevarchar(255)NULL姓名phonevarchar(255)NULL电话reasonvarchar(255)NULL留观原因create_timedatetime(0)NULL留观时间
23sys_captchasys_captcha
字段名类型默认值列注释uuidchar(36)NULLuuidcodevarchar(6)NULL验证码expire_timedatetime(0)NULL过期时间
24sys_configsys_config
字段名类型默认值列注释idbigint(20)NULLparam_keyvarchar(50)NULLkeyparam_valuevarchar(2000)NULLvaluestatustinyint(4)NULL状态0隐藏1显示remarkvarchar(500)NULL备注
25sys_logsys_log
字段名类型默认值列注释idbigint(20)NULLusernamevarchar(50)NULL用户名operationvarchar(50)NULL用户操作methodvarchar(200)NULL请求方法paramsvarchar(5000)NULL请求参数timebigint(20)NULL执行时长(毫秒)ipvarchar(64)NULLIP地址create_datedatetime(0)NULL创建时间
26sys_menusys_menu
字段名类型默认值列注释menu_idbigint(20)NULLparent_idbigint(20)NULL父菜单ID一级菜单为0namevarchar(50)NULL菜单名称urlvarchar(200)NULL菜单URLpermsvarchar(500)NULL授权(多个用逗号分隔如user:list
27sys_osssys_oss
字段名类型默认值列注释idbigint(20)NULLurlvarchar(200)NULLURL地址create_datedatetime(0)NULL创建时间
28sys_rolesys_role
字段名类型默认值列注释role_idbigint(20)NULLrole_namevarchar(100)NULL角色名称remarkvarchar(100)NULL备注create_user_idbigint(20)NULL创建者IDcreate_timedatetime(0)NULL创建时间
29sys_role_menusys_role_menu
字段名类型默认值列注释idbigint(20)NULLrole_idbigint(20)NULL角色IDmenu_idbigint(20)NULL菜单ID
30sys_usersys_user
字段名类型默认值列注释user_idbigint(20)NULLusernamevarchar(50)NULL用户名passwordvarchar(100)NULL密码saltvarchar(20)NULL盐emailvarchar(100)NULL邮箱mobilevarchar(100)NULL手机号statustinyint(4)NULL状态0禁用1正常create_user_idbigint(20)NULL创建者IDcreate_timedatetime(0)NULL创建时间gendervarchar(10)NULLageint(11)NULLcardvarchar(255)NULLaddressvarchar(255)NULL
31sys_user_rolesys_user_role
字段名类型默认值列注释idbigint(20)NULLuser_idbigint(20)NULL用户IDrole_idbigint(20)NULL角色ID
32sys_user_tokensys_user_token
字段名类型默认值列注释user_idbigint(20)NULLtokenvarchar(100)NULLtokenexpire_timedatetime(0)NULL过期时间update_timedatetime(0)NULL更新时间
33tb_usertb_user
字段名类型默认值列注释user_idbigint(20)NULLusernamevarchar(50)NULL用户名mobilevarchar(20)NULL手机号passwordvarchar(64)NULL密码create_timedatetime(0)NULL创建时间
34user_examuser_exam
字段名类型默认值列注释exam_idint(11)NULLnick_namevarchar(100)NULLgendervarchar(10)NULLavatar_urlvarchar(255)NULLscoreint(10)NULL
35user_infouser_info
字段名类型默认值列注释idint(11)NULLuser_namevarchar(255)NULLreal_namevarchar(255)NULLgendervarchar(255)NULLageint(11)NULLcardvarchar(255)NULLphonevarchar(255)NULLaddressvarchar(255)NULL
36user_scoreuser_score
字段名类型默认值列注释score_idint(10)NULLdan_scoreint(10)NULLduo_scoreint(10)NULLwrite_scoreint(10)NULLtotal_scoreint(10)NULL
37vaccines_infovaccines_info
字段名类型默认值列注释idint(11)NULLinoculation_sitevarchar(255)NULLnamevarchar(255)NULLtypevarchar(255)NULLproductionvarchar(255)NULLbatch_numbervarchar(50)NULLdescribvarchar(255)NULL
38wx_userwx_user
字段名类型默认值列注释user_idint(10)NULLusernamevarchar(50)NULL用户名passwordvarchar(50)NULL密码phonevarchar(50)NULL电话user_avatarvarchar(100)NULL头像create_timedatetime(0)NULL创建时间nicknamevarchar(50)NULL昵称sexvarchar(10)NULL性别五、功能模块 系统登入模块该模块主要是用户进行登录的模块在该页面用户输入自己的账号和密码验证码是用随机数来进行生成的是完全随机的输入验证码要与旁边验证码要一致。然后点击登录登录成功后就进入主页面了。 这小节主要是介绍登录功能的设计然后是讲述登录功能是如何实现的。当你在地址栏输入该系统的网络地址进入到本页面。然后输入自己的账号和密码输入的时候要考虑几个注意事项。账号和密码都不能为空为空会提示账号或密码不能为空。当输入完用户名密码后选择自己的角色每个角色的页面都是不一样的功能也是有所不同。最后就是输入验证码验证码是用ArithmeticCaptcha这个类来进行生成的这个类是一个验证码生成的类使用该类可以生成一个算术的验证码调用里面的setLen方法可以定义几位数的算法来进行运算最后调用toBase64方法把生成的验证码转化为一个。最后使用一个map集合进行封装返回给前端验证。在前台我们要经过一个二位数的算数运算得出结果并填写在输入框。如果我们不进行填写直接提交的话会提示验证码未输入。如果验证码输入错误也会提示验证码错误。 在访问该系统登录时后台会进行拦截这里讲一下后台是怎么配置的。在进行登录的时候会发起一个doLogin请求后台会进行一个拦截。首先请求必须是post请求不然直接返回异常信息。然后就是验证码的校验如果验证码为空会提示验证码不存在。当你每次提交验证码都会通过session进行缓存如果再次请求验证码就会提示验证码过期。你输入的验证码必须和里面算出来的结果一致不然就会提示验证码不匹配。如果中间出现任何异常都会配catch抓获AuthenticationException类的一个异常。只有验证码通过以后才会与后台数据库进行交互与数据库中的账户进行一一匹配匹配成功就会进入到主页面。但是在在此期间使用了Spring shiro来进行登录的鉴权。首先定义一个SecurityConfig配置类来继承WebSecurityConfigurerAdapter主类。我们需要往里面注入BCryptPasswordEncoder依赖。然后我们需要重写里面的configure方法然后在里面配置放行的请求路径比如/login还有我们所需要的静态资源。然后最主要的是protect修饰的configure类我们需要传一个HttpSecurity作为参数。这里主要是各种执行器来进行操作包括使用withObjectPostProcessor对后台传过来的参数和url做一个处理使用successHandler或者failureHandler对登录成功和失败的一个回调使用authenticationEntryPoint做一个鉴权等等。具体的数据交互在AuthenticationManagerBuilder里面我们需要自定义一个service然后继承UserDetailsService然后我们就可以进行一系列数据库操作将我们自定义的service类注入到AuthenticationManagerBuilder中然后SecurityConfig就可以为我们到数据库进行查询然后对角色进行登录鉴权。 用户首页模块儿科保健系统首页界面实现了对数据得到统计的展示功能 用户签到模块用户可以在用户签到模块对自己进行签到 疫苗预约模块用户可以在疫苗预约模块对自己需要的疫苗进行预约 接种管理模块接种管理模块在这个模块管理员可以对用户接种疫苗信息进行管理 六、代码示例 系统登入模块 protected void configure(HttpSecurity http) throws Exception {http.addFilterBefore(verifyCodeFilter, UsernamePasswordAuthenticationFilter.class).authorizeRequests()//.anyRequest().authenticated().withObjectPostProcessor(new ObjectPostProcessorFilterSecurityInterceptor() {Overridepublic O extends FilterSecurityInterceptor O postProcess(O object) {object.setAccessDecisionManager(customUrlDecisionManager);object.setSecurityMetadataSource(customFilterInvocationSecurityMetadataSource);return object;}}).and().formLogin().usernameParameter(username).passwordParameter(password).loginProcessingUrl(/doLogin).loginPage(/login)//登录成功回调.successHandler(new AuthenticationSuccessHandler() {Overridepublic void onAuthenticationSuccess(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Authentication authentication) throws IOException, ServletException {httpServletResponse.setContentType(application/json;charsetutf-8);PrintWriter out httpServletResponse.getWriter();Hr hr (Hr) authentication.getPrincipal();//密码不回传hr.setPassword(null);RespBean ok RespBean.ok(登录成功, hr);//将hr转化为StingString s new ObjectMapper().writeValueAsString(ok);out.write(s);out.flush();out.close();}})//登失败回调.failureHandler(myAuthenticationFailureHandler)//相关的接口直接返回.permitAll().and().logout()//注销登录// .logoutSuccessUrl().logoutSuccessHandler(new LogoutSuccessHandler() {Overridepublic void onLogoutSuccess(HttpServletRequest httpServletRequest,HttpServletResponse httpServletResponse,Authentication authentication) throws IOException, ServletException {httpServletResponse.setContentType(application/json;charsetutf-8);PrintWriter out httpServletResponse.getWriter();out.write(new ObjectMapper().writeValueAsString(RespBean.ok(注销成功!)));out.flush();out.close();}}).permitAll().and().csrf().disable().exceptionHandling()//没有认证时在这里处理结果不要重定向.authenticationEntryPoint(new AuthenticationEntryPoint() {Overridepublic void commence(HttpServletRequest req, HttpServletResponse resp, AuthenticationException authException) throws IOException, ServletException {resp.setContentType(application/json;charsetutf-8);resp.setStatus(401);PrintWriter out resp.getWriter();RespBean respBean RespBean.error(访问失败!);if (authException instanceof InsufficientAuthenticationException) {respBean.setMsg(请求失败请联系管理员!);}out.write(new ObjectMapper().writeValueAsString(respBean));out.flush();out.close();}});}
用户首页模块 Beanpublic SchedulerFactoryBean schedulerFactoryBean(DataSource dataSource) {SchedulerFactoryBean factory new SchedulerFactoryBean();factory.setDataSource(dataSource);//quartz参数Properties prop new Properties();prop.put(org.quartz.scheduler.instanceName, RenrenScheduler);prop.put(org.quartz.scheduler.instanceId, AUTO);//线程池配置prop.put(org.quartz.threadPool.class, org.quartz.simpl.SimpleThreadPool);prop.put(org.quartz.threadPool.threadCount, 20);prop.put(org.quartz.threadPool.threadPriority, 5);//JobStore配置prop.put(org.quartz.jobStore.class, org.quartz.impl.jdbcjobstore.JobStoreTX);//集群配置prop.put(org.quartz.jobStore.isClustered, true);prop.put(org.quartz.jobStore.clusterCheckinInterval, 15000);prop.put(org.quartz.jobStore.maxMisfiresToHandleAtATime, 1);prop.put(org.quartz.jobStore.misfireThreshold, 12000);prop.put(org.quartz.jobStore.tablePrefix, QRTZ_);prop.put(org.quartz.jobStore.selectWithLockSQL, SELECT * FROM {0}LOCKS UPDLOCK WHERE LOCK_NAME ?);//PostgreSQL数据库需要打开此注释//prop.put(org.quartz.jobStore.driverDelegateClass, org.quartz.impl.jdbcjobstore.PostgreSQLDelegate);factory.setQuartzProperties(prop);factory.setSchedulerName(RenrenScheduler);//延时启动factory.setStartupDelay(30);factory.setApplicationContextSchedulerContextKey(applicationContextKey);//可选QuartzScheduler 启动时更新己存在的Job这样就不用每次修改targetObject后删除qrtz_job_details表对应记录了factory.setOverwriteExistingJobs(true);//设置自动启动默认为truefactory.setAutoStartup(true);return factory;}
}用户签到模块 PostMapping(/blurredQuery)public ResultList blurredQuery(RequestBody NotNull MapString,String map) {ResultList result new Result();ListEmployee employeeList employeeService.getAllEmployee();ListEmployee list new ArrayList();if (map.get(name).equals() map.get(state).equals()) {result.setCode(200);result.setMsg(查询成功,条件无);result.setSuccess(true);result.setData(employeeList);} else if ((!map.get(name).equals()) map.get(state).equals()) {
// employeeList.forEach((item) - {
// if (item.getName().equals(map.get(name))) {
// result.setData(item);
// }
// });for (Employee e : employeeList) {if (map.get(name).equals(e.getName())) {list.add(e);result.setCode(200);result.setMsg(查询成功);result.setSuccess(true);}}result.setData(list);} else if (map.get(name).equals() !map.get(state).equals()) {for (Employee e : employeeList) {if (map.get(state).equals(e.getState())) {list.add(e);}}result.setCode(200);result.setMsg(查询成功);result.setSuccess(true);result.setData(list);} else {for (Employee e : employeeList) {if (map.get(state).equals(e.getState()) map.get(name).equals(e.getName())) {list.add(e);}}result.setCode(200);result.setMsg(查询成功);result.setSuccess(true);result.setData(list);}return result;}疫苗预约模块
ApiOperation(/新增预约)PostMapping(/addOneAppointment)public R addOneAppointment(RequestBody Appointment appointment) {String username ((SysUserEntity) SecurityUtils.getSubject().getPrincipal()).getUsername();appointment.setUserName(username);appointment.setStatus(已预约);appointmentService.addOne(appointment);return R.ok().put(info, 预约成功);}ApiOperation(/取消预约)GetMapping(/cancelAppointment)public ResultAppointment cancelAppointment(RequestParam String userName) {ResultAppointment result new Result();result.setMsg(取消预约失败);result.setCode(400);if (userName.equals()) {result.setMsg(参数为空);result.setCode(400);result.setSuccess(false);result.setData(null);} else {if (appointmentService.findByUserName(userName) null) {result.setCode(200);result.setSuccess(true);result.setMsg(您还未预约);} else {appointmentService.cancelOne(userName);result.setCode(200);result.setMsg(取消预约成功);result.setSuccess(true);}}return result;}ApiOperation(/根据日期查询预约)GetMapping(/findByDate)public ResultList findByDate(RequestParam Date date) {ResultList result new Result();result.setMsg(查询预约失败);result.setCode(400);if (date null) {result.setMsg(参数为空);result.setCode(400);result.setSuccess(false);} else {ListAppointment appointmentList appointmentService.findByDate(date);if (appointmentList null) {result.setSuccess(false);result.setCode(400);result.setMsg(该日期没有预约);} else {result.setMsg(查询成功);result.setCode(200);result.setSuccess(true);result.setData(appointmentList);}}return result;}
接种管理模块 ApiOperation(/根据省或市查询具体接种点)PostMapping(/findBySiteInfo)public ResultList findBySiteInfo(RequestBody InoculationSiteInfo siteInfo){ResultList result new Result();if (siteInfo null){result.setMsg(参数为空);result.setCode(400);result.setSuccess(false);} else {if ( siteInfo.getCity().equals() ) {ListInoculationSite inoculationSiteList inoculationSiteService.findByProvince(siteInfo.getProvince());result.setData(inoculationSiteList);result.setCode(200);result.setSuccess(true);result.setMsg(成功);} else {ListInoculationSite inoculationSiteList inoculationSiteService.findByProvinceAndCity(siteInfo);result.setCode(200);result.setSuccess(true);result.setMsg(成功);result.setData(inoculationSiteList);}}return result;}七、论文参考 八、项目总结 网络时代的即将到来给人类带来的冲击是前所未有的同时它也为信息管理提供了实现飞跃的机遇。信息的管理要面向现代化、面向世界、面向未来首先要面向网络。只有与网络有机结合才能跟上时代的发展有了网络通过不同的权限设置可以对不同的登陆者进行相应的操作我的这个系统就本着这种方向去实现。 由于时间仓促的问题系统存在着些许的不足之处系统所用的框架比较老旧以后的维护可能存在一些潜在的问题没有用现在比较前沿的框架程序员就是应该不断创新不断学习。只有这样才能更好提升自我。再就是后台异常的处理比如你登录该系统时路径不正确或错误应该是要跳转到404页面或者是其他异常页面我没有对其进行处理主要是前面页面功能花了太多时间后面没有太多的时间进行优化。 在将来系统在以下几个方面进行优化。首先对于系统整个进行优化处理像页面的美化页面是用户进行交互的界面好的页面对用户来说更加的友好操作也更舒服。还有异常页面的拦截用户输入了一个错误的地址应该被后台拦截然后跳转到一个自己设计好的页面。这样用户才能知道自己究竟哪里出问题了。最后就是框架我将采用SpringCloudVue进行开发。替换掉原来的框架。以后系统如果再进行二次开发将更加的容易配置起来也更便捷。在进行了以上的优化后我觉得该系统的应用性将大大提升。 九、源码获取 链接点击直达下载链接