首页 > 分享 > 基于javaweb的宠物医院预约管理系统设计和实现(java+springboot+mysql+ssm)

基于javaweb的宠物医院预约管理系统设计和实现(java+springboot+mysql+ssm)

基于javaweb的宠物医院预约管理系统设计和实现(java+springboot+mysql+ssm)

运行环境

Java≥8、MySQL≥5.7

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

20220519192351

20220519192353

20220519192355

20220519192357

20220519192359

20220519192401

基于javaweb+springboot的宠物医院预约管理系统设计和实现(java+springboot+mysql+ssm)

项目使用java SpringMVC、springboot mybatis、layui为核心技术编写

首页登录有可爱的小猫咪:

系统主页主要功能有会员信息、宠物管理、预约管理和统计分析等:

预约列表:

医院管理:

宠物档案管理:

监控标准医生和用户:

/**

监控标准

*/

@Controller(“UserStandardController”)

@RequestMapping(“/user/standard”)

public class UserStandardController {

@Autowired

private StandardService standardService;

private final Logger logger = LoggerFactory.getLogger(this.getClass());

/**

医生列表页面user/standardListDoctor.html

*/

@RequestMapping(“/standardListDoctor”)

public String standardListDoctor() {

return “user/standardListDoctor”;

/**

普通用户页面user/standardList.html

*/

@RequestMapping(“/standardList”)

public String standardList() {

return “user/standardList”;

/**

普通用户返回查询数据

*/

@RequestMapping(“/getAllByLimit”)

@ResponseBody

public Object getAllByLimit(Standard pojo) {

return standardService.getAllByLimit(pojo);

/**

医生返回查询数据

*/

@RequestMapping(“/getAllByLimitDoctor”)

@ResponseBody

public Object getAllByLimitBaoJie(Standard pojo) {

return standardService.getAllByLimit(pojo);

/**

根据id删除

*/

@RequestMapping(value = “/del”)

@ResponseBody

@Transactional

public String del(Long id) {

try {

standardService.deleteById(id);

return “SUCCESS”;

} catch (Exception e) {

logger.error(“删除异常”, e);

TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();

return “ERROR”;

/**

添加页面 user/standardAdd.html

*/

@RequestMapping(value = “/add”)

public String add() {

return “user/standardAdd”;

/**

插入数据库

*/

@RequestMapping(value = “/doAdd”)

@ResponseBody

@Transactional

public String doAdd(Standard pojo) {

try {

standardService.add(pojo);

return “SUCCESS”;

} catch (Exception e) {

logger.error(“添加异常”, e);

TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();

return “ERROR”;

宠物日志业务操作:

/**

宠物日志

*/

@Controller(“UserPetDailyController”)

@RequestMapping(“/user/petDaily”)

public class UserPetDailyController {

@Autowired

private PetDailyService petDailyService;

@Autowired

private PetService petService;

private final Logger logger = LoggerFactory.getLogger(this.getClass());

/**

医生宠物日志页面user/petDailyListDoctor.html

*/

@RequestMapping(“/petDailyListDoctor”)

public String petListDoctor(Long petId, Model model) {

if (petId!=null){

model.addAttribute(“petId”, petId);

}else {

model.addAttribute(“petId”, “petId”);

return “user/petDailyListDoctor”;

/**

普通用户宠物日志页面user/petDailyList.html

*/

@RequestMapping(“/petDailyList”)

public String petDailyList(Long petId, Model model) {

if (petId!=null){

model.addAttribute(“petId”, petId);

}else {

model.addAttribute(“petId”, “petId”);

return “user/petDailyList”;

/**

普通用户返回查询数据

*/

@RequestMapping(“/getAllByLimit”)

@ResponseBody

public Object getAllByLimit(PetDaily pojo) {

Subject subject = SecurityUtils.getSubject();

User user = (User) subject.getPrincipal();

pojo.setUserId(user.getId());

return petDailyService.getAllByLimit(pojo);

/**

医生返回查询数据

*/

@RequestMapping(“/getAllByLimitDoctor”)

@ResponseBody

public Object getAllByLimitDoctor(PetDaily pojo) {

return petDailyService.getAllByLimit(pojo);

/**

删除

*/

@RequestMapping(value = “/del”)

@ResponseBody

@Transactional

public String del(Long id) {

try {

petDailyService.deleteById(id);

return “SUCCESS”;

} catch (Exception e) {

logger.error(“删除异常”, e);

TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();

return “ERROR”;

/**

添加页面user/petDailyAdd.html

*/

@RequestMapping(value = “/add”)

public String add(Model model) {

Subject subject = SecurityUtils.getSubject();

User user = (User) subject.getPrincipal();

Pet pet = new Pet();

pet.setUserId(user.getId());

pet.setPage(1);

pet.setLimit(100);

MMGridPageVoBean voBean = (MMGridPageVoBean) petService.getAllByLimit(pet);

List rows = voBean.getRows();

// 获取到该用户下所有的宠物

model.addAttribute(“pets”, rows);

return “user/petDailyAdd”;

/**

插入数据库

*/

@RequestMapping(value = “/doAdd”)

@ResponseBody

@Transactional

public String doAdd(PetDaily pojo) {

Subject subject = SecurityUtils.getSubject();

User user = (User) subject.getPrincipal();

try {

pojo.setUserId(user.getId());

pojo.setCreateTime(new Date());

petDailyService.add(pojo);

return “SUCCESS”;

} catch (Exception e) {

logger.error(“添加异常”, e);

TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();

return “ERROR”;

用户控制器:

/**

用户控制

*/

@Controller(“User”)

@RequestMapping(“/user”)

public class UserController {

private final Logger logger = LoggerFactory.getLogger(UserController.class);

private final ResultMap resultMap;

@Autowired

private UserService userService;

@Autowired

private UserRoleService userRoleService;

@Autowired

public UserController(ResultMap resultMap) {

this.resultMap = resultMap;

/**

返回有权限信息

*/

@RequestMapping(value = “/getMessage”, method = RequestMethod.GET)

public ResultMap getMessage() {

return resultMap.success().message(“您拥有用户权限,可以获得该接口的信息!”);

/**

修改用户信息页面user/userEdit.html

*/

@RequestMapping(value = “/editUserPage”)

public String editUserPage(Long userId, Model model) {

model.addAttribute(“manageUser”, userId);

if (null != userId) {

User user = userService.selectByPrimaryKey(userId);

model.addAttribute(“manageUser”, user);

return “user/userEdit”;

/**

更新数据库

*/

@ResponseBody

@RequestMapping(“/updateUser”)

public String updateUser(User user) {

return userService.updateUser(user);

健康评估控制器:

/**

健康评估

*/

@Controller(“HealthController”)

@RequestMapping(“/health”)

public class HealthController {

@Autowired

private DiagnosisService diagnosisService;

@Autowired

private AppointmentService appointmentService;

@Autowired

private PetService petService;

@Autowired

private PetDailyService petDailyService;

@Autowired

private UserService userService;

@Autowired

private StandardService standardService;

/**

分析页面

*/

@RequestMapping(“/assess”)

public String applyListDoctor(Model model) {

Subject subject = SecurityUtils.getSubject();

User user = (User) subject.getPrincipal();

Pet pet = new Pet();

pet.setUserId(user.getId());

pet.setPage(1);

pet.setLimit(100);

MMGridPageVoBean voBean = (MMGridPageVoBean) petService.getAllByLimit(pet);

List rows = voBean.getRows();

// 获取到该用户下所有的宠物

model.addAttribute(“pets”, rows);

List applyCount = new ArrayList<>();

List dsCount = new ArrayList<>();

List tsCount = new ArrayList<>();

List wsCount = new ArrayList<>();

List hsCount = new ArrayList<>();

List asCount = new ArrayList<>();

List pt = new ArrayList<>();

List pw = new ArrayList<>();

List ph = new ArrayList<>();

List pa = new ArrayList<>();

List mt = new ArrayList<>();

List mw = new ArrayList<>();

List mh = new ArrayList<>();

List ma = new ArrayList<>();

for(Pet p: rows){

// 获取预约次数

Appointment appointment = new Appointment();

appointment.setPetId(p.getId());

appointment.setPage(1);

appointment.setLimit(1000);

MMGridPageVoBean as = (MMGridPageVoBean) appointmentService.getAllByLimit(appointment);

applyCount.add(as==null? 0L : as.getTotal());

// 获取就诊记录

Diagnosis diagnosis = new Diagnosis();

diagnosis.setPetId(p.getId());

diagnosis.setPage(1);

diagnosis.setLimit(10);

MMGridPageVoBean ds = (MMGridPageVoBean) diagnosisService.getAllByLimit(diagnosis);

List dsRows = ds.getRows();

int diagnosisStatus = 0;

for (Diagnosis d: dsRows){

diagnosisStatus += d.getStatus();

int sw = diagnosisStatus / dsRows.size();

switch (sw){

case 1:dsCount.add(p.getName() + " 宠物健康,请继续保持");break;

case 2:dsCount.add(p.getName() + " 宠物异常请及时就诊!");break;

case 3:dsCount.add(p.getName() + " 宠物病情比较严重,请及时就医!");break;

case 4:dsCount.add(p.getName() + " 很抱歉宠物已无法治疗!");break;

default:dsCount.add(p.getName() + " 宠物基本健康,请继续保持");break;

// 获取宠物日志

PetDaily petDaily = new PetDaily();

petDaily.setPetId(p.getId());

petDaily.setPage(1);

petDaily.setLimit(10);

MMGridPageVoBean ps = (MMGridPageVoBean) petDailyService.getAllByLimit(petDaily);

List psRows = ps.getRows();

double t = 0;

double w = 0;

double h = 0;

double a = 0;

for (PetDaily petDaily1 : psRows){

t+=petDaily1.getTemperature();

w+=petDaily1.getWeight();

h+=petDaily1.getHeight();

a+=petDaily1.getAppetite();

t = t/psRows.size();

w = w/psRows.size();

h = h/psRows.size();

a = a/psRows.size();

pt.add(t);

pw.add(w);

ph.add(h);

pa.add(a);

// 获取标准

Standard standard = new Standard();

// 对应宠物类型

standard.setType(p.getType());

// 健康标准

standard.setStatus(1);

int petAge = MyUtils.get2DateDay(MyUtils.getDate2String(p.getBirthday(), “yyyy-MM-dd”), MyUtils.getDate2String(new Date(), “yyyy-MM-dd”));

petAge = (petAge<0? -petAge : petAge)/365;

// 年龄

standard.setAgeMax(petAge);

standard.setPage(1);

standard.setLimit(100);

MMGridPageVoBean ss = (MMGridPageVoBean) standardService.getAllByLimit(standard);

List ssRows = ss.getRows();

double tsMin = 0;

double tsMax = 0;

double wsMin = 0;

double wsMax = 0;

double hsMin = 0;

double hsMax = 0;

double asMin = 0;

double asMax = 0;

for (Standard s : ssRows){

tsMin+=s.getTempMin();

tsMax+=s.getTempMax();

wsMin+=s.getWeightMin();

wsMax+=s.getWeightMax();

hsMin+=s.getHeightMin();

hsMax+=s.getHeightMax();

asMin+=s.getAppetiteMin();

asMax+=s.getAppetiteMax();

tsMin = tsMin / ssRows.size();

tsMax = tsMax / ssRows.size();

wsMin = wsMin / ssRows.size();

wsMax = wsMax / ssRows.size();

hsMin = hsMin / ssRows.size();

hsMax = hsMax / ssRows.size();

asMin = asMin / ssRows.size();

asMax = asMax / ssRows.size();

mt.add(tsMax);

mw.add(wsMax);

mh.add(hsMax);

ma.add(asMax);

if (t>=tsMin && t<=tsMax){

tsCount.add(" 体温正常");

}else if (t<tsMin){

tsCount.add( " 体温偏低");

}else if (t>tsMax){

tsCount.add( " 体温偏高");

if (w>=wsMin && w<=wsMax){

wsCount.add( " 体重正常");

}else if (w<wsMin){

wsCount.add(" 体重偏低");

}else if (w>wsMax){

wsCount.add(" 体重偏高");

if (h>=hsMin && h<=hsMax){

hsCount.add(" 身高正常");

}else if (h<hsMin){

hsCount.add( " 身高偏低");

}else if (h>hsMax){

hsCount.add(" 身高偏高");

if (a>=asMin && a<=asMax){

asCount.add( " 饭量正常");

}else if (a<asMin){

asCount.add(" 饭量偏低");

}else if (a>asMax){

asCount.add(" 饭量偏高");

model.addAttribute(“pets”, rows);

model.addAttribute(“tsCount”, tsCount);

model.addAttribute(“wsCount”, wsCount);

model.addAttribute(“hsCount”, hsCount);

model.addAttribute(“asCount”, asCount);

model.addAttribute(“dsCount”, dsCount);

System.out.println(pt);

model.addAttribute(“pt”, pt);

model.addAttribute(“ph”, ph);

model.addAttribute(“pw”, pw);

model.addAttribute(“pa”, pa);

model.addAttribute(“mt”, mt);

model.addAttribute(“mh”, mh);

model.addAttribute(“mw”, mw);

model.addAttribute(“ma”, ma);

return “tj/assess”;

/**

普通用户预约统计

*/

@RequestMapping(“/tjApply”)

public String tjApply(Model model) {

Subject subject = SecurityUtils.getSubject();

User user = (User) subject.getPrincipal();

Appointment appointment = new Appointment();

appointment.setUserId(user.getId());

appointment.setPage(1);

appointment.setLimit(99999);

MMGridPageVoBean voBean = (MMGridPageVoBean) appointmentService.getAllByLimit(appointment);

List rows = voBean.getRows();

Integer a1 = 0;

Integer a2 = 0;

Integer a3 = 0;

Integer a4 = 0;

for (Appointment a: rows){

switch (a.getStatus()){

case 1: a1++;break;

case 2: a2++;break;

case 3: a3++;break;

case 4: a4++;break;

model.addAttribute(“a1”, a1);

model.addAttribute(“a2”, a2);

model.addAttribute(“a3”, a3);

model.addAttribute(“a4”, a4);

return “tj/tjApply”;

/**

医生预约统计

*/

@RequestMapping(“/tjApplyDoctor”)

public String tjApplyDoctor(Model model) {

Appointment appointment = new Appointment();

appointment.setPage(1);

appointment.setLimit(99999);

MMGridPageVoBean voBean = (MMGridPageVoBean) appointmentService.getAllByLimit(appointment);

List rows = voBean.getRows();

Integer a1 = 0;

Integer a2 = 0;

Integer a3 = 0;

Integer a4 = 0;

for (Appointment a: rows){

switch (a.getStatus()){

case 1: a1++;break;

case 2: a2++;break;

case 3: a3++;break;

case 4: a4++;break;

model.addAttribute(“a1”, a1);

model.addAttribute(“a2”, a2);

model.addAttribute(“a3”, a3);

model.addAttribute(“a4”, a4);

return “tj/tjApplyDoctor”;

/**

普通用户宠物日志统计

*/

@RequestMapping(“/tjDaily”)

public String tjDaily(Model model) {

Subject subject = SecurityUtils.getSubject();

User user = (User) subject.getPrincipal();

Pet pet = new Pet();

pet.setUserId(user.getId());

pet.setPage(1);

pet.setLimit(99999);

MMGridPageVoBean voBean = (MMGridPageVoBean) petService.getAllByLimit(pet);

List rows = voBean.getRows();

model.addAttribute(“pets”, rows);

if (rows.size()>0){

pet = rows.get(0);

PetDaily daily = new PetDaily();

daily.setPetId(pet.getId());

daily.setPage(1);

daily.setLimit(99999);

MMGridPageVoBean ppp = (MMGridPageVoBean) petDailyService.getAllByLimit(daily);

List list = ppp.getRows();

for (PetDaily p : list){

p.setDateTime(MyUtils.getDate2String(p.getCreateTime(), “yyyy-MM-dd”));

model.addAttribute(“dailys”, list);

return “tj/tjDaily”;

/**

医生宠物日志统计

*/

@RequestMapping(“/tjDailyDoctor”)

public String tjDailyDoctor(Model model) {

Pet pet = new Pet();

pet.setPage(1);

pet.setLimit(99999);

MMGridPageVoBean voBean = (MMGridPageVoBean) petService.getAllByLimit(pet);

List rows = voBean.getRows();

model.addAttribute(“pets”, rows);

if (rows.size()>0){

pet = rows.get(0);

PetDaily daily = new PetDaily();

daily.setPetId(pet.getId());

daily.setPage(1);

daily.setLimit(99999);

MMGridPageVoBean ppp = (MMGridPageVoBean) petDailyService.getAllByLimit(daily);

List list = ppp.getRows();

for (PetDaily p : list){

p.setDateTime(MyUtils.getDate2String(p.getCreateTime(), “yyyy-MM-dd”));

model.addAttribute(“dailys”, list);

return “tj/tjDailyDoctor”;

/**

普通用户查询条件数据返回宠物日志

*/

@RequestMapping(“/tjDailyData”)

@ResponseBody

public Object tjDailyData(Long id){

PetDaily daily = new PetDaily();

daily.setPetId(id);

daily.setPage(1);

daily.setLimit(99999);

MMGridPageVoBean ppp = (MMGridPageVoBean) petDailyService.getAllByLimit(daily);

List list = ppp.getRows();

for (PetDaily p : list){

p.setDateTime(MyUtils.getDate2String(p.getCreateTime(), “yyyy-MM-dd”));

return list;

/**

医生查询条件数据返回宠物日志

*/

@RequestMapping(“/tjDailyDataDoctor”)

@ResponseBody

public Object tjDailyDataDoctor(Long id){

PetDaily daily = new PetDaily();

daily.setPetId(id);

daily.setPage(1);

daily.setLimit(99999);

MMGridPageVoBean ppp = (MMGridPageVoBean) petDailyService.getAllByLimit(daily);

List list = ppp.getRows();

for (PetDaily p : list){

p.setDateTime(MyUtils.getDate2String(p.getCreateTime(), “yyyy-MM-dd”));

return list;

/**

用户查看医生空闲时间

*/

@RequestMapping(value = “/freeTime”)

public String freeTime(Model model) {

List doctors = userService.listDoctor();

model.addAttribute(“doctors”, doctors);

Long docId = doctors.get(0).getId();

model.addAttribute(“docName”, doctors.get(0).getName());

String nowDateYMD = MyUtils.getNowDateYMD();

List<Map<String, Object>> map = appointmentService.getFreeTimeById(docId, nowDateYMD+MyUtils.START_HOUR);

List time = new ArrayList<>();

List value = new ArrayList<>();

for (Map<String, Object> m : map){

String df = (String) m.get(“df”);

time.add(df);

Long v = (Long) m.get(“c”);

if (v == null) {

value.add(0L);

}else {

value.add(v);

model.addAttribute(“time”, time);

model.addAttribute(“value”, value);

return “tj/freeTime”;

@RequestMapping(value = “/getFreeTime”)

@ResponseBody

public Object getFreeTime(Long id, String date) {

User doctors = userService.selectByPrimaryKey(id);

Map<String, Object> result = new HashMap<>();

result.put(“n”, doctors.getName());

List<Map<String, Object>> map = appointmentService.getFreeTimeById(id, date+MyUtils.START_HOUR);

List time = new ArrayList<>();

List value = new ArrayList<>();

for (Map<String, Object> m : map){

String df = (String) m.get(“df”);

time.add(df+“点”);

Long v = (Long) m.get(“c”);

if (v == null) {

value.add(0L);

}else {

value.add(v);

result.put(“t”, time);

result.put(“v”, value);

return result;

相关知识

基于Javaweb的宠物健康生活管理系统的设计与实现
案例12:Java宠物医院预约管理系统设计与实现开题报告
毕业设计:基于java的宠物管理系统设计与实现
Spring Boot宠物医院管理系统设计与实现
基于JavaWeb的宠物商城网站设计与实现
基于ssm+vue宠物医院预约管理系统(开题报告+程序+论文+java)
《基于javaweb+mysql数据库实现的宠物领养网站》宠物管理
Java基于SpringBoot+Vue的美容院预约管理系统设计与实现
springboot179基于javaweb的流浪宠物管理系统的设计与实现
基于django+vue宠物医院预约系统【开题报告+程序+论文】

网址: 基于javaweb的宠物医院预约管理系统设计和实现(java+springboot+mysql+ssm) https://m.mcbbbk.com/newsview207117.html

所属分类:萌宠日常
上一篇: 计算机毕业设计SSM宠物寄养预约
下一篇: 网上宠物店预约系统(源码+开题)