項目描述
臨近學期結束,還是畢業設計,你還在做java程式網絡程式設計,期末作業,老師的作業要求覺得大了嗎?不知道畢業設計該怎麼辦?網頁功能的數量是否太多?沒有合适的類型或系統?等等。這裡,你想解決的問題,今天給在家介紹一篇基于Springboot開發的醫院管理系統。
功能需求
本醫療系統通過分析和确定系統的角色和功能劃分,按照業務合理區分為不同的菜單功能子產品。從求醫患者和醫院相關管理人員的角度出發,對每個功能的需求實作點進行人性化詳細的構思。對每個功能的細節點進行分析設計整合完成整個醫療系統的設計。
具備以下功能:
- 門診管理子產品:即使用者挂号、處方規劃、項目規劃、項目繳費、項目檢查、藥品繳費、門診患者庫。
- 住院管理子產品:即入院登記、繳費管理、藥品記賬、項目記賬、出院結算、費用詳情等。
- 系統管理子產品:即菜單管理、角色管理、使用者管理、圖示管理、資料源監控等。
- 統計管理子產品:門診月年度統計、住院月年度統計、醫生統計對比、門診當天統計等。
- 資料中心:科室中心、醫生清單、藥品産地、挂号類型、倉庫、經辦人、計量機關、供貨商等。
- 藥房管理子產品:藥房詳情、門診取藥、住院取藥等。
- 倉庫管理子產品:入庫單、庫存查詢、出庫單、操作記錄、藥品回收等。
系統功能子產品架構圖
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnL2MGNkVDN0YmN0YzMzIDMhZTNjRDMxUGZkZzMjlzM5czLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
部分效果圖
登入界面:
系統首頁
處方劃價
使用者管理
庫存藥品資訊管理
菜單管理
使用者挂号界面
資料庫設計
系統中用到了36張表,針對每個表都進行了設計,下面對部分核心表進行彙總羅列展示。
(1)角色表
(2)治療報告表
(3)使用者角色表
(4)權限表
部分代碼
@Controller
@RequestMapping("user")
public class UserController {
@Autowired
private UserService userService;
@RequestMapping("selectAllUser")
@ResponseBody
public Object selectAllUser(Integer page,Integer limit,User user){
PageHelper.startPage(page, limit);
List<User> allUser = userService.selectAllUser(user);
PageInfo pageInfo = new PageInfo(allUser);
Map<String, Object> tableData = new HashMap<String, Object>();
//這是layui要求傳回的json資料格式
tableData.put("code", 0);
tableData.put("msg", "");
//将全部資料的條數作為count傳給前台(一共多少條)
tableData.put("count", pageInfo.getTotal());
//将分頁後的資料傳回(每頁要顯示的資料)
tableData.put("data", pageInfo.getList());
return tableData;
}
/*
* 修改使用者
* */
@RequestMapping("updateUser")
@ResponseBody
public Object updateUser(User user){
int i1 = userService.checkUser(user);
if(i1==1) {
return "目前登陸名已存在";
}else{
int i = userService.updateUser(user);
if(i>0){
return "修改成功";
}else{
return "修改失敗";
}
}
}
/*
* 删除使用者
* */
@RequestMapping("deleteUser")
@ResponseBody
public Object deleteUser(Integer userid){
userService.deleteUser(userid);
return "删除成功";
}
/*
* 初始化使用者配置設定角色
* */
@RequestMapping("initUserRole")
@ResponseBody
public DataGridView initUserRole(Integer userid){
return userService.queryUserRole(userid);
}
/*
* 添加使用者
* */
@RequestMapping("addUser")
@ResponseBody
public Object addUser(User user){
int i1 = userService.checkUser(user);
if(i1==1){
return "目前登陸名已存在";
}else {
//加鹽
String salt = UserCredentialsMatcher.generateSalt(6);
//MD5加密疊代兩次
user.setPwd(UserCredentialsMatcher.encryptPassword("md5", "123456", salt, 2));
user.setType(2);
user.setSalt(salt);
System.out.println(salt);
int i = userService.addUser(user);
if (i > 0) {
return "添加成功";
} else {
return "添加失敗";
}
}
}
/*
* 重置密碼
* */
@RequestMapping("resetUserPwd")
@ResponseBody
public Object resetUserPwd(User user,Integer userid){
user.setUserid(userid);
//加鹽
String salt = UserCredentialsMatcher.generateSalt(6);
//MD5加密疊代兩次
user.setPwd(UserCredentialsMatcher.encryptPassword("md5", "123456", salt, 2));
user.setType(2);
user.setSalt(salt);
userService.resetUserPwd(user);
return "重置成功";
}
/*
* 儲存使用者和角色的關系
* */
@RequestMapping("saveUserRole")
@ResponseBody
public Object saveUserRole(UserRole userRole){
userService.saveUserRole(userRole);
return "配置設定成功";
} /*
* 修改資料
* */
@RequestMapping("editLogin")
@ResponseBody
public Object editLogin(User user){
int i = userService.editLogin(user);
if(i==1){
return "修改成功";
}else{
return "修改失敗";
}
}
@Autowired
private MenuService menuService;
@RequestMapping("editPwd")
@ResponseBody
public Object editPwd(User user,String loginname,String pwd,String pwd1){
//第一步:建立subject
Subject subject = SecurityUtils.getSubject();
//第二步:封裝token 憑證
UsernamePasswordToken token = new UsernamePasswordToken(loginname, pwd);
try {
//隻要能通過認證就能通過了
subject.login(token);
//加鹽
String salt = UserCredentialsMatcher.generateSalt(6);
//MD5加密疊代兩次
user.setPwd(UserCredentialsMatcher.encryptPassword("md5", pwd1, salt, 2));
user.setSalt(salt);
userService.editPwd(user);
return "1";//修改成功
} catch (IncorrectCredentialsException e) {
return "0";//密碼錯誤
}
}
}
安裝部署需求
利用tomcat啟動運作
總體設計
本系統是一個基于springboot的微服務架構,前端使用熟知的JavaScript腳本實作系統頁面,在後期的釋出通過Tomcat伺服器部署,也可以通過nginx進行服務代理或者內建負載。
系統設計了基于角色的權限管控,超級管理者可以建立不同的角色,給每個使用者配置設定不用的角色,每個角色的使用者配置設定不同的工作任務和權限按鈕。這個系統的設計采用MVC模式,按照視圖、控制、資料處理、持久層劃分實作。簡化了大量的配置和程式代碼的耦合性。資料庫采用免費開源的MySQL資料庫,即節約了成本能夠支撐起真個系統業務資料和資訊化資料的存儲。
本項目用到的技術和架構
1.開發語言:Java
2.開發模式:B/S
3.資料庫:MySQL
本項目中的關鍵點
此系統的開發采用java語言開發,基于B/S結構,這些開發環境使系統更加完善。使用到的工具和技術都是開源免費的。
環境工具
開發工具 Eclipse/IDEA
語言 JDK1.8 、VUE、springboot,mybatis
硬體:筆記本電腦;
軟體:Tomcat9.0 Web伺服器、Navicat資料庫用戶端、MySQL;
作業系統:Windows 10;
其它軟體:截圖工具、常用浏覽器;
微信掃下方二維碼關注公衆号,經常分享一些技術上的了解文章。