宠物医院管理系统{源码+报告}

目       录

1 绪论

1.1 课题背景

1.2 课题研究的现状

1.3 课题研究的意义

2 需求分析

2.1 需求描述

2.2 需求功能描述

2.3 用例模型

2.3.1 业务用例模型

2.3.2 系统用例模型

2.4 动态模型

2.4.1 项目泳道图

2.4.2 业务泳道图

2.5 静态类模型

2.5.1 分析类图

2.5.2 实体类图

3 子系统设计

3.1 软件体系结构设计

3.2 软件功能总体设计

3.3 软件功能详细设计

3.3.1 登录管理功能

3.3.2 系统管理功能

3.3.3 预约管理功能

3.3.4 健康指南管理功能

3.3.5 宠物管理功能

3.4 数据库设计

3.4.1 系统概念模型

3.4.2 数据表设计

4 子系统实现

4.1 预约管理功能实现

4.2 用户管理功能实现

4.3 宠物管理功能实现

4.4 医院管理功能实现

1 绪论

1.1 课题背景

在信息技术高速发展的今天,新知识、新技术层出不穷,计算机技术早已广泛的应用于各行各业之中,利用计算机的强大数据处理能力和辅助决策能力叫,实现行业管理的规范化、标准化、效率化。

管理信息系统(Management Information System,简称MIS〉是一个以人为主导,利用计算机软硬件技术以及网络通信技术,实现对信息的收集、传输、储存、更新。

目前,管理信息系统广泛采用WEB技术作为开发的主要技术。在经过多年的技术积累与更新,WEB技术已经从一种简单的信息浏览和信息交互平台发展为复杂的企业级应用。

目前宠物宠物医院一直以来都是使用传统的人工方式管理各种文件档案,对宠物诊疗等重要信息进行人工手写记录,工作效率低,且时间一长,将产生大量文件,这对于文件的查找、信息查询造成很多困难,存在着许多缺点。随着社区越来越多的家庭开始饲养宠物,宠物宠物医院管理方法落后的问题越来越明显,管理上面临的问题越来越突出。

为了能够方便宠物医院的管理,一套完善的管理机制是必不可少的,也是宠物医院提供良好服务质量的一个前提,而应用信息技术的现代化宠物宠物医院管理系统已成为宠物宠物医院运营必不可少的基础设施与技术支撑。

宠物宠物医院管理系统的应用,不仅可以实现将宠物宠物医院工作中的挂号业务、诊疗业务、收费业务、宠物住院业务、宠物美容业务等有机的结合起来;还可以通过建立宠物档案,帮助医生更好更及时的了解宠物病情,制定宠物治疗计划,满足宠物主人的治疗需求,同时宠物档案的建立也有利于宠物的防疫工作。除此之外,管理系统对用户权限划分,帮助宠物医院规范化工作流程,提高工作效率,全面提高宠物宠物医院的管理水平。

因此如何利用计算机技术实现宠物宠物医院信息化管理*是一个值得研究的问题。基于这个背景,本组决定开发一套适合宠物宠物医院的信息管理系统。

1.2 课题研究的现状

随着经济的发展,人们生活水平不断地进步和提高,越来越多的家庭开始饲养宠物,与此同时,宠物的卫生、防疫、诊疗也得到了人们越来越多的关注,由此派生出的宠物宠物医院在发展上也越来越迅猛l5。

宠物宠物医院在欧美发达国家作为产业早已经形成了国民经济的一部分,由于欧美发达国家的信息化程度高,信息技术、各种研究成果较早的应用于各行各业,宠物宠物医院在管理上早已实现了信息化建设。

当前,信息化已成为全球发展的主题,世界各国对信息的需求快速增长,信息产品和信息服务广泛的应用于各个国家、地区、企业、单位、家庭、个人。

早在20世纪8O年代,发达国家就已经开始信息化建设的工作。目前,欧美发达国家早已为宠物建立了宠物电子档案,这对于宠物的防疫、卫生、安全等起到了重要的管理作用,同时各种新技术不断应用于宠物宠物医院的日常管理工作中,宠物宠物医院在管理上早己实现了规范化、标准化。

相对于欧美发达国家,我国信息化建设从20世纪90年代初开始,信息化程度还处于较低水平,且发展很不平衡,大部分宠物宠物医院的信息化建设还处于以划价收费为中心的信息管理系统,缺少其他业务的信息化管理,造成很多工作还停留在人工操作上,这

就对当前宠物宠物医院的信息化管理造成了很多问题。

随着我国信息技术在宠物宠物医院行业应用程度的不断提高,东南沿海较发达城市已经实现了宠物宠物医院管理的信息化,但是并没有完全普遍,大部分欠发达地区,尤其是小型的社区宠物宠物医院,还是处于传统的管理方式。

虽然目前仍与欧美发达国家存在较大差距,但“十二五”规划,我国提出了信息化建设的“3521工程”,我国宠物宠物医院的信息化建设迎来了发展的好时机。

宠物宠物医院信息化建设的不断进行对宠物医疗卫生行业的发展具有重要的意义,既能提高宠物医院的服务质量,又能方便宠物医院的管理,更为重要的是对于保障宠物防疫、·卫生、安全具有重要意义。

1.3 课题研究的意义

该宠物宠物医院管理系统可以满足宠物宠物医院在信息管理方面的需要,提高宠物宠物医院管理的效率,达到信息管理科学化和规范化的目标。

宠物宠物医院管理系统主要研究的范围是:

1、根据宠物宠物医院管理工作的流程,对用户的功能以及权限进行合理的划分,规范

化工作流程。

  1. 系统在设计时,需要考虑系统的可扩展性和可维护性,满足以后对系统的升级
  2. 本课题的研究成果能够较好地解决宠物宠物医院的管理难题,同时该系统整合了挂号、收费、诊疗、医生绩效考察等功能,既可以帮助宠物医院更好的管理,也可以帮助医生更好的为宠物诊疗。除此之外,该系统对加强城市宠物的管理,确保对宠物审查、监管、防疫检疫等措施的实施,起到很好的辅助作用,保障社区居民安全和公共卫生,促进社区生活和谐。


2 需求分析

2.1 需求描述

项目的使用者可以避免排队挂号,比较方便,也方便于宠物医院的管理。现在的宠物本系统根据华阳社区宠物医院管理工作流程将系统使用者划分为三类,分别为、宠物医生、宠物主人以及系统管理人员,以下是对该三类类用户的具体功能需求分析。

2.2 需求功能描述

1.身份管理

宠物医生登录

宠物主人登录

系统管理员登录

2.系统管理

用户管理

页面管理

角色管理

3.宠物管理

宠物列表

宠物状态

宠物健康史

4.预约管理

预约列表

预约状态

医生时间

5.日常健康

健康指南

健康标准

宠物日志

2.3 用例模型

2.3.1 业务用例模型

宠物医院管理系统主要包括以下几个用例:登录、系统管理、宠物管理、预约管理、日常健康。

登录:不同身份的角色可以登录不同的界面,得到所对应的需求。

系统管理:可以根据自己的需求进行页面管理,并对不同的用户进行权限的管理。

宠物管理:管理员可以从中看到宠物的状态,健康史等等。

预约管理:当业务繁忙的时候,用户可以发起预约。

日常健康:医生可以从中看到健康只能,标准与宠物每天的情况。

具体业务用例模型如图2-1所示。

图2-1系统用例模型

(1)参与者

用户:可以看到宠物的状况,预约的安排,每天的日常安排。

医生:具体的工作安排。

系统管理员:拥有所有的权限。

(2)业务用例

登录:不同身份的角色可以登录不同的界面,得到所对应的需求。

系统管理:可以根据自己的需求进行页面管理,并对不同的用户进行权限的管理。

宠物管理:管理员可以从中看到宠物的状态,健康史等等。

预约管理:当业务繁忙的时候,用户可以发起预约。

日常健康:医生可以从中看到健康只能,标准与宠物每天的情况。

2.3.2 系统用例模型

(1)登录业务的系统用例模型

登录业务的用例规约见表2-1

表2-1 登录业务用例规约

标题

内容

用例名称

用户登录

用例描述

用户想要更多权限必须登录

执行者

用户

前置条件

用户具有操作条件

后置条件

正常流

1.用户登录

1.1 用户输入账号

1.2 用户输入密码

替代流以及异常处理

1.密码不正确时用户无法登录

业务规则

全局规则

Rule00001:用户登录后操作软件

涉及实体

用户

用户登录是用户通过登录账户获得更多权限,登录系统用例图如图2-1所示

图2-1 登录系统用例图

  1. 系统管理业务的系统用例模型。

系统管理业务的用例规约见表2-2

表2-2 系统管理业务用例规约

标题

内容

用例名称

系统管理

用例描述

管理员对系统进行管理

执行者

管理人员

前置条件

系统已经存在

后置条件

正常流

1.管理员进行菜单管理

1.1管理员进行增加菜单

1.2管理员进行查询菜单

1.3管理员进行编辑菜单

1.4管理员进行删除菜单

2.管理员进行角色权限管理

2.1管理员进行增加角色权限

2.2管理员进行查询角色权限

2.3管理员进行编辑角色权限

2.4管理员进行删除角色权限

3.管理员进行用户管理

3.1管理员进行增加用户

3.2管理员进行查询用户

3.3管理员进行编辑用户

3.4管理员进行删除用户

替代流以及异常处理

  1. 当各个列表为空时,无法进行删除编辑操作

业务规则

  1. 全局规则

Rule0001:管理员需要登录后才能操作软件功能

  1. 交互规则

涉及实体

管理员

系统用例图是由软件需求分析到最终实现的第一步,它描述人们如何使用一个系统。该系统用例图的参与者是管理员,管理员可以进行菜单管理,角色管理以及用户管理。菜单管理:增加系统菜单,可以管理系统左边菜单。角色管理:包括添加角色,修改角色,删除角色,编辑角色,系统中有不同的角色,每个角色分配的菜单不同,只有给角色分配菜单后,角色才有相应的菜单。用户管理:添加用户,添加的用户是登陆系统的账户及用户信息,用户的密码为默认密码(可以进行修该),添加用户后需要给用户分配角色,每个角色拥有的菜单不同。系统管理系统用例图如图2-2所示

图2-2 系统管理系统用例图

(3)预约业务的系统用例模型

预约管理问题业务的用例规约见表2-3

表2-3 预约管理业务用例规约

标题

内容

用例名称

宠物预约管理

用例描述

对宠物预约治疗的情况进行查看,修改,删除等等

执行者

宠物医院管理员

前置条件

宠物的档案生成

后置条件

正常流

1.查看宠物预约治疗列表信息

1.1 查看宠物治疗的病情

1.2 查看宠物主人的电话

1.3 查看宠物主人的地址

1.4 查看宠物预约的申请时间

1.5 查看宠物预约的状态

2. 管理员对于宠物预约治疗申请的操作

  2.1 查看宠物预约的状态操作

2.2 处理宠物预约状态

3. 查看预约治疗医生的时间

  3.1 查询医生

  3.2 查询医生的时间

替代流以及异常处理

  1. 提交申请新增后,列表没有该宠物
  2. 提交删除申请后,档案列表没有档案

业务规则

  1. 全局规则

Rule0001:管理员需要登录后进行操作功能

  1. 交互规则

Rule0002:管理员提交相对应的宠物预约信息

涉及实体

宠物实体类

使用预约管理业务用例规约进行系统用例建模,预约管理系统用例图如图2-4所示

图2-3 预约管理系统用例图

  1. 健康指南管理业务的系统用例模型

管理员在该平台上发布宠物健康指南,可对其进行修改删除添加。健康指南管理业务的用例规约见表2-4

表2-4 健康指南管理业务用例规约

标题

内容

用例名称

健康指南管理

用例描述

健康指南管理员管理健康指南药物

执行者

健康指南管理人员

前置条件

管理员已经登录并实时查询健康指南选项

后置条件

完成查询问题后,进行处理

正常流

1.库存药品查询

1.1 库存药品汇总

1.2 库存不足

2. 库房采购问题

  2.1 缺货报警

2.2 健康指南紧急补给

2.3 过期药品报警

2.4 健康指南药品回收

3. 药物入库

  3.1 入库单

4. 药物出库

  4.1 出库单

替代流以及异常处理

1.药物是否过期

业务规则

全局规则

Rule0001:客服管理员需要登录后操作软件功能

交互规则

Rule0002:用户提交相对应的信息

涉及实体

管理员实体,药物实体

使用健康指南管理用例规约进行系统用例建模,健康指南管理系统用例图如图2-4所示

图2-4健康指南管理系统用例图

  1. 宠物管理业务的系统用例模型

宠物管理业务的用例规约见表2-5

表2-5 宠物管理业务用例规约

标题

内容

用例名称

宠物档案管理

用例描述

对宠物的情况进行查看,修改,删除等等

执行者

宠物医院管理员

前置条件

宠物档案生成

后置条件

正常流

1. 申请查看宠物信息

1.1 查看宠物身高

1.2 查看宠物体重

1.3 查看宠物出生日期

1.4 查看宠物的类型

1.5 查看宠物病例

1.6 给宠物预约就诊

2. 查询宠物健康史

  2.1 查看该宠物主人用户

2.2 查看宠物医生

2.3 查看宠物状态

2.4 宠物诊疗建议

3. 删除宠物健康史信息

  3.1 查询诊疗建议

  3.2 删除宠物档案信息

替代流以及异常处理

  1. 提交申请查看后,列表没有该宠物
  2. 提交删除申请后,档案列表没有档案

业务规则

  1. 全局规则

Rule0001:用户需要登录后操作软件功能

  1. 交互规则

Rule0002:用户提交相对应的工单服务地址信息

涉及实体

宠物实体类

使用宠物管理业务用例规约进行系统用例建模,宠物管理系统用例图如图2-1所示

图2-5宠物管理系统用例图

2.4 动态模型

2.4.1 项目泳道图

泳道图,一种UML活动图,能够清晰体现出某个动作发生在哪个部门。绘图元素与传统流程图类似,但在业务流程主体上,通过泳道(纵向条)区分出执行主体,即部门和岗位 来。将模型中的活动按照职责组织起来。这种分配可以通过将活动组织成用线分开的不同 区域来表示。由于它们的外观的缘故,这些区域被称作泳道。它可以方便的描述企业的各 种业务流程,能够直观地描述系统的各活动之间的逻辑关系,利于用户理解业务逻辑。下 图中的课题泳道图头部体现了执行操作的各类角色信息,主体部分体现了该系统主要的操 作流程。泳道图的整体体现了这个系统所要完成的主要功能。按照程序在保证正确性的条件下 执行的顺序,可以看出,系统主要业务:登录、系统管理、宠物管理、预约管理、日常健康等。在此基础上进行相应的延申与判断。

2.4.2 业务泳道图

(1)登录管理业务的泳道图

登录业务用例图如图2-6所示:

用户登录业务的泳道图,见图2-6 用户登录业务泳道图。

图2-6 用户登录业务泳道图

(2)系统管理业务的泳道图

系统管理的业务泳道图如图2-7所示

图2-7 系统管理业务的泳道图

  1. 预约管理业务的泳道图

宠物的主人,宠物店的医生,系统后台管理员分别进行身份验证,宠物主人去宠物店医生那边查看自家宠物的预约情况,预约治疗的措施或预约医生等,宠物店医生可以处理该宠物的预约状态。系统管理的业务泳道图如图2-8所示

图2-8 预约管理业务的泳道图

  1. 健康指南管理业务的泳道图

系统管理的业务泳道图如图2-9所示

图2-9 健康指南管理业务的泳道图

(5)宠物管理业务的泳道图

宠物主人,宠物医生,系统后台分别进行身份验证,宠物主人去宠物医生那边查看自家宠物的一些基本情况,可预约治疗的措施或预约医生等,可以删除该宠物档案,可查询医生对宠物的诊疗建议。

宠物管理系统泳道图如图2-10所示:

图2-10 宠物管理系统泳道图

2.5 静态类模型

2.5.1 分析类图

(1)登录管理系统用例的分析类图

登录管理用例的分析类图如图2-11所示:

图2-11 登录管理用例的分析类图

(2)系统管理系统用例的分析类图

系统管理系统用例的分析类图如图2-12所示

图2-12 系统管理系统用例的分析类图

(3)预约管理系统用例的分析类图

预约管理系统用例的分析类图如图2-13所示

图2-13 预约管理系统用例的分析类图

(4)健康指南管理系统用例的分析类图

健康指南管理用例的分析类图如图2-14所示

图2-14 健康指南管理系统用例的分析类图

(5)宠物管理系统用例的分析类图

宠物管理系统用例的分析类图如图2-15所示:

图2-15 宠物管理系统用例的分析类图

2.5.2 实体类图

实体类图主要展示的实在建模过程中,所用到的各个实体与实体之间的联系。实体间的关系也是按照分析类图进行设计的,其中有的联系为:一对多、一对一、多对一、多对多的关联关系。

登录管理实体类图如图2-16所示:

图2-16 登录管理实体类图

系统管理实体类图如图2-17所示:

图2-17 系统管理实体类图

预约管理实体类图如图2-18所示:

图2-18 预约管理实体类图

健康指南管理实体类图如图2-19所示:

图2-19 健康指南管理实体类图

宠物管理实体类图如图2-20所示:

图2-20宠物管理实体类图


3 子系统设计

3.1 软件体系结构设计

SSM(Spring+SpringMVC+MyBatis)框架集由Spring、MyBatis两个开源框架整合而成(SpringMVC是Spring中的部分内容)。常作为数据源较简单的web项目的框架。

Spring就像是整个项目中装配bean的大工厂,在配置文件中可以指定使用特定的参数去调用实体类的构造方法来实例化对象。也可以称之为项目中的粘合剂。Spring的核心思想是IoC(控制反转),即不再需要程序员去显式地new一个对象,而是让Spring框架帮你来完成这一切。

SpringMVC在项目中拦截用户请求,它的核心Servlet即DispatcherServlet承担中介或是前台这样的职责,将用户请求通过HandlerMapping去匹配Controller,Controller就是具体对应请求所执行的操作。SpringMVC相当于SSH框架中struts。

mybatis是对jdbc的封装,它让数据库底层操作变的透明。mybatis的操作都是围绕一个sqlSessionFactory实例展开的。mybatis通过配置文件关联到各实体类的Mapper文件,Mapper文件中配置了每个类对数据库所需进行的sql语句映射。在每次与数据库交互时,通过sqlSessionFactory拿到一个sqlSession,再执行sql命令。

页面发送请求给控制器,控制器调用业务层处理逻辑,逻辑层向持久层发送请求,持久层与数据库交互,后将结果返回给业务层,业务层将处理逻辑发送给控制器,控制器再调用视图展现数据。

体系结构图如图3-1所示

图3-1体系结构设计图

体系结构图如图3-2所示

图3-2体系结构包图

3.2 软件功能总体设计

图3-3层次方框图

3.3 软件功能详细设计

3.3.1 登录管理功能

登录管理设计类图如图3-4所示

图3-4 登录管理设计类图

  1. 表示层设计

采用的是 MVC 设计模式,get()方法,可以获得用户的操作选项,或者将用户的需要用的数值接收,init()将用户申请的数据展示在客户端,post()时更新操作,用户更新信息的操作传入数据库,alert()将警告信息展示在客户端,提示用户操作有错误。

(2)业务逻辑层设计

业务逻辑层是专门处理软件业务需求的一层,处于数据库之上,服务层之下,完成一些列对Domain Object的CRUD,作为一组微服务提供给服务层来组织在暴露给表现层。如图3-5 用户登录业务逻辑层设计图。

动图如图3-5所示

图3-5 活动图

(3)数据访问层设计

数据访问层设计提供了各种数据库操作的接口,通过MyBatis的动态映射在XML,有多个方法。登录管理顺序图如图3-6所示

图3-6登录管理顺序图

3.3.2 系统管理功能

系统管理设计类图如图3-7所示

图3-7 系统管理设计类图

  1. 表示层设计

采用的是 MVC 设计模式,View层的get()方法,可以获得客服人员的操作选项,或者将客服人员的需要用的数值接收,init()将登录申请的数据展示在客户端,post()时更新操作,登录更新信息的操作传入数据库,

  1. 业务逻辑层设计

将数据访问层查询出的数据进行封装,通过getinformation ()得到所有的已经完成的病例信息,将处理的结算结果封装成对应的数据,并且在业务逻辑层实现内容的判断是否符合要求。如果不符合则需要提示客服内容不合法,否则提示结算成功。

  1. 数据访问层设计

数据访问层设计提供了各种数据库操作的接口,通过MyBatis的动态映射在XML,有多个方法。

系统管理顺序图如图3-8所示

3-8系统管理顺序图

3.3.3 预约管理功能

对系统所涉及到的预约管理的功能都要进行设定,需要严格判断宠物档案列表是否有该宠物,并且预约该宠物的情况。存储时还要对当前数据库中存储的系统开放时间进行判断,具体判断如下:

1. 首先用户查询的宠物列表必须有该宠物。若满足可以进行下一步判断,若不满足则提示宠物列表为空,不可进行操作;

2. 其次在满足入宠物列表有该宠物前提下,在判断该宠物档案表是否有该宠物,若是有则可进行预约该宠物,若没有无法进行操作;

预约管理设计类图如图3-4所示

图3-9 预约管理设计类图

(3)数据访问层设计

数据访问层设计提供了各种数据库操作的接口,通过MyBatis的动态映射在XML,有多个方法。办理预约管理顺序图如图3-10所示

图3-10预约管理顺序图

3.3.4 健康指南管理功能

发布指南功能

管理员可自行对指南框进行增加删除修改查询清空等操作,在修改完毕后,用户可以查看其内容。

表示层设计

采用的是 MVC 设计模式,xzx2_Orders.Generate.Controller.Web 控制器对外提供访问接口, getOrderGenerateDetail()获取指南类的列表详情,submitOrder()提交指南界面。健康指南设计类图如图3-11所示

图3-11 健康指南管理设计类图

(3)数据访问层设计

数据访问层设计提供了各种数据库操作的接口,通过MyBatis的动态映射在XML,有多个方法。健康指南管理顺序图如图3-12所示

图3-12健康指南管理顺序图

3.3.5 宠物管理功能

对系统所涉及到的宠物管理的功能都要进行设定,需要严格判断宠物档案列表是否有该宠物,并且严格查询该宠物的健康史。存储时还要对当前数据库中存储的系统开放时间进行判断,具体判断如下:

1. 首先用户查询的宠物列表列表必须有该宠物。若满足可以进行下一步判断,若不满足则提示宠物列表为空,不可进行操作;

2. 其次在满足入宠物列表有该宠物前提下,在判断该宠物档案表是否有该宠物,若是有则可进行删除档案,若没有无法进行操作;

宠物管理设计类图如图3-13所示

图3-13 宠物管理设计类图

(3)数据访问层设计

数据访问层设计提供了各种数据库操作的接口,通过MyBatis的动态映射在XML,有多个方法。宠物管理顺序图如图3-14所示

图3-14宠物管理顺序图

3.4 数据库设计

3.4.1 系统概念模型

系统的E-R图如图3-13所示

图3-13系统E-R图

3.4.2 数据表设计

    1. 用户(role)数据表,角色的身份权限,见表3-1

表3-1 role表

 序号

名称

类型

长度

是否主键

说明

1

Id

varchar

10

用户编号

2

Desc

Varchar

10

用户身份

3

Name

varchar

30

用户姓名

    1. 角色页数(role_page)数据表,用于存储角色事务的页数,见表3-2

表3-2 role_page表

 序号

名称

类型

长度

是否主键

说明

1

Rp_Id

Number

10

业务编号

2

Role_id

Number

10

角色编号

3

Page_id

Number

30

页数

    1. 标准(standard)数据表,用于存储宠物的标准情况,见表3-3

表3-3 standard表

序号

名称

类型

长度

是否主键

说明

1

Id

int

30

编号

2

Age_min

Varchar

25

年龄最小

3

Age_max

Number

20

年龄最大

4

Temp_min

Number

20

温度最小

5

Temp_max

Number

20

温度最大

6

Weight_min

Number

20

体重最小

7

Weight_max

Number

20

体重最大

8

Height_min

Number

20

高度最小

9

Height_max

Number

20

高度最高

10

Appetite_min

Number

20

进食量最小

11

Appetite_max

Number

20

进食量最大

12

Type

Number

20

种类

13

Status

Number

20

状态

    1. 用户信息(user)数据表,用于存储用户信息,见表3-4

表3-4 user表

序号

名称

类型

长度

是否主键

说明

1

Id

int

30

编号

2

Age

Number

20

年龄

3

Name

varchar

30

姓名

4

Password

varchar

30

密码

5

Phone

Number

20

电话

6

Adress

varchar

30

地址

    1. 用户角色(user_role)数据表,用于存储用户信息,见表3-5

表3-5 user_role表

 序号

名称

类型

长度

是否主键

说明

1

Ur_Id

Number

10

业务编号

2

User_id

Number

10

用户编号

3

Role_id

Number

30

角色编号

    1. 业务(appointment)数据表,用于业务订单信息,见表3-6

表3-6 appointment表

序号

名称

类型

长度

是否主键

说明

1

Id

bigint

20

编号

1

Id

varchar

30

订单编号

2

3

4

5

6

7

8

pet_id

user_id

doctor_id

app_time

info

create_time

status

bigint

bigint

bigint

datetime

varchar

datetime

int

20

20

20

20

255

20

20

商品名称

宠物编号

医生编号

App时间

信息

创建时间

状态        

9

10

phone

address

varchar

varchar

255

255

电话

地址

    1. 诊断(diagnosi)数据表,用于存储宠物诊断接种信息,见表3-7

表3-7 diagnosi表

序号

名称

类型

长度

是否主键

说明

1

Id

bigint

20

编号

2

3

4

5

6

7

8

pet_id

user_id

doctor_id

info

type

status

create_time

bigint

bigint

bigint

varchar

int

int

datetime

20

20

20

255

20

20

20

宠物编号

用户编号

医生编号

信息

类型

状态

创建时间        

(8)指南(notice)数据表,用于记录科室信息,见表3-8

表3-8 notice表

序号

名称

类型

长度

是否主键

说明

1

Id

bigint

20

编号

2

content

Varchar

255

内容

3

view_count

bigint

20

计数

4

5

create_time

title

datetime

varchar

20

255

创建时间

标题

(9)页数(page)数据表,用于网页系统url的信息,见表3-9

表3-12 page表

序号

名称

类型

长度

是否主键

说明

1

page_id

int

20

分页编号

2

3

4

5

6

7

8

parent_id

name

url

level_type

level_index

delete_flag

desc

int

varchar

Varchar

Int

int

int

Varchar

20

255

255

20

20

1

255

父母编号

姓名

链接

水平类型

水平指数

删除

描述

(10)宠物(pet)数据表,用于存储用户宠物信息,见表3-10

表3-10 pet表

序号

名称

类型

长度

是否主键

说明

1

2

3

4

5

6

Id

Name

Weight

Height

Type

Birthday

Varchar

Varchar

Number

Number

Number

Date

110

50

11

20

20

100

编号

姓名

体重

身高

种类

生日

(12)宠物信息(pet_daily)数据表,用于存储宠物身体信息,见表3-12

表3-15 workorder表

序号

名称

类型

长度

是否主键

说明

1

Id

int

30

编号

2

Pet_id

Varchar

25

宠物编号

3

User_id

Number

20

用户编号

4

Temp

Number

20

温度

5

Weight

Number

20

体重

6

Height

Number

20

身高

7

Appetite

Number

20

进食情况

8

Status

Number

20

状态

9

Time

Data

20

创建时间


4 子系统实现

4.1 预约管理功能实现

图4-1预约管理界面图

功能介绍

用于查询宠物店预约列表情况,可以管理员进行删除和查询。

(1)控制层编码实现

package com.phms.controller.user;

import com.phms.pojo.Appointment;
import com.phms.pojo.User;
import com.phms.service.AppointmentService;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.subject.Subject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.Date;

/**
 * 用户预约
 */
@Controller("UserApplyController")
@RequestMapping("/user/apply")
public class UserApplyController {
    @Autowired
    private AppointmentService appointmentService;


    private final Logger logger = LoggerFactory.getLogger(this.getClass());
    /**
     * 医生管理预约页面
     * user/applyListDoctor.html
     */
    @RequestMapping("/applyListDoctor")
    public String applyListDoctor(Long petId, Model model) {
        if (petId!=null){
            model.addAttribute("petId", petId);
        }
        return "user/applyListDoctor";
    }

    /**
     * 普通用户预约页面
     * user/applyList.html
     */
    @RequestMapping("/applyList")
    public String applyList(Long petId, Model model) {
        if (petId!=null){
            model.addAttribute("petId", petId);
        }
        return "user/applyList";
    }
    /**
     * 普通用户返回查询数据渲染表格
     */
    @RequestMapping("/getAllByLimit")
    @ResponseBody
    public Object getAllByLimit(Appointment appointment) {
        Subject subject = SecurityUtils.getSubject();
        User user = (User) subject.getPrincipal();
        appointment.setUserId(user.getId());
        return appointmentService.getAllByLimit(appointment);
    }
    /**
     * 医生角色返回查询数据渲染表格
     */
    @RequestMapping("/getAllByLimitDoctor")
    @ResponseBody
    public Object getAllByLimitBaoJie(Appointment appointment) {
        return appointmentService.getAllByLimit(appointment);
    }

    /**
     * 根据id删除预约
     */
    @RequestMapping(value = "/del")
    @ResponseBody
    @Transactional
    public String delUser(Long id) {
        try {
            appointmentService.deleteById(id);
            return "SUCCESS";
        } catch (Exception e) {
            logger.error("删除异常", e);
            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
            return "ERROR";
        }
    }

    /**
     * 添加预约页面 user/applyAdd.html
     */
    @RequestMapping(value = "/add")
    public String addUserPage(Long id, Model model) {
        model.addAttribute("petId", id);
        return "user/applyAdd";
    }

    /**
     * 预约信息插入数据库
     */
    @RequestMapping(value = "/doAdd")
    @ResponseBody
    @Transactional
    public String doAdd(Appointment appointment) {
        Subject subject = SecurityUtils.getSubject();
        User user = (User) subject.getPrincipal();
        if (appointment.getPetId() == null){
            return "noPetId";
        }
        try {
            // 当前预约人的id
            appointment.setUserId(user.getId());
            appointment.setCreateTime(new Date());
            // 状态:1申请中,2申请通过,3不通过,4已完成
            appointment.setStatus(1);
            appointmentService.add(appointment);
            return "SUCCESS";
        } catch (Exception e) {
            logger.error("添加异常", e);
            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
            return "ERROR";
        }
    }

    /**
     * 改变预约状态
     */
    @RequestMapping(value = "/chStatus")
    @ResponseBody
    @Transactional
    public String chStatus(Appointment appointment) {
        Subject subject = SecurityUtils.getSubject();
        User user = (User) subject.getPrincipal();


        try {
            appointment.setDoctorId(user.getId());
            appointmentService.update(appointment);
            // 就诊
            if (appointment.getStatus() == 4){
                return "jz";
            }
            return "SUCCESS";
        } catch (Exception e) {
            logger.error("添加异常", e);
            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
            return "ERROR";
        }
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/541790.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

upload-labs第一关

上一篇文章中搭建好了upload-labs环境,接下来进行第一关的尝试,我也是第一次玩这个挺有意思。 1、第一关的界面是这样的先不看其他的源码,手动尝试下试试。 2、写一个简单的php一句话木马 3、直接上传,提示必须要照片格式的文…

NFT Insider #123:Solana NFT 市场 Tensor 将发行 TNSR 治理代币

引言:NFT Insider由NFT收藏组织WHALE Members (https://twitter.com/WHALEMembers)、BeepCrypto (https://twitter.com/beep_crypto)联合出品,浓缩每周NFT新闻,为大家带来关于NFT最全面、最新鲜…

Windows上Git LFS的安装和使用

到Git LFS官网下载 传送门 初始化GitHub LFS和Git仓库 在仓库目录中运行: git lfs install再运行: git init跟踪大文件 git lfs track "*.zip"添加并提交文件 git add . git commit -m "Add large files"上传到我的github 配…

cron表达式

发现了一个好用测cron表达式组件 一个基于vue3Ant-Design-vue的cron表达式组件 项目地址 效果图 使用方式 前置条件:项目基于vueAnt-Design-vue开发(用到Ant-Design-vue相关组件) 第一步安装组件npm i shiyzhangcron 或 pnpm i shiyzhangcro…

Linux下Arthas(阿尔萨斯)的简单使用-接口调用慢排查

使用环境 k8s容器内运行了一个springboot服务,服务的启动方法是main()方法 下载并启动 arthas curl -O https://arthas.aliyun.com/arthas-boot.jar java -jar arthas-boot.jar选择应用 java 进程 就一个进程org.apache.catalina.startup.Bootstrap,输…

java-ssm-jsp-基于java的客户管理系统的设计与实现

java-ssm-jsp-基于java的客户管理系统的设计与实现 获取源码——》公主号:计算机专业毕设大全

Qt学习--this指针的使用

在 C 中,this 指针是一个特殊的指针,它指向当前对象的实例。 在 C 中,每一个对象都能通过 this 指针来访问自己的地址。 this是一个隐藏的指针,可以在类的成员函数中使用,它可以用来指向调用对象。 当一个对象的成员…

Vue.js+SpringBoot开发个人健康管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 健康档案模块2.2 体检档案模块2.3 健康咨询模块 三、系统展示四、核心代码4.1 查询健康档案4.2 新增健康档案4.3 查询体检档案4.4 新增体检档案4.5 新增健康咨询 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVueSpri…

网络学习:IPV6地址详解

目录 前言: 一、IPV6的由来 二、什么是IPV6地址? IPV6地址结构: 前言: IPV6(Internet Protocol Version 6)是网络层协议的第二代标准协议,也被称为IPng(IP Next Generation&…

Springboot——JSR303校验

1. 请求参数的合法性校验 使用基于JSR303的校验框架实现,Springboot提供了JSR-303的支持,它就是spring-boot-starter-validation,他包括了很多的校验规则,只需要在模型中通过注解指定校验规则,在Controller方法上开启校…

RocketMQ学习笔记三(黑马)大神级

课程来源:6.RocketMQ安装_哔哩哔哩_bilibili (时长:19.5h) 讲解版本:4.5版本(我是以4.8版本实践的) 目录 第一部分 核心功能 第1章 RocketMQ的下载、安装、启动和测试(Linux环境) 启动: 测试: 第2章 RocketMQ集群搭建 2.1 集群特点 2.2 集群模式 2.3 双主…