系统总流程图

登录界面

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
| package xyz.eabor.filter; import jakarta.servlet.*; import jakarta.servlet.annotation.WebFilter; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import lombok.extern.slf4j.Slf4j; import xyz.eabor.utils.JwtUtils; import java.io.IOException; @Slf4j @WebFilter(urlPatterns = "/*") public class TokenFilter implements Filter { @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) servletRequest; HttpServletResponse response = (HttpServletResponse) servletResponse; String requestURI = request.getRequestURI(); if (requestURI.contains("/login")){ log.info("登录请求, 放行"); filterChain.doFilter(request, response); return; } String token = request.getHeader("token"); if (token == null || token.isEmpty()){ log.info("令牌为空, 响应401"); response.setStatus(HttpServletResponse.SC_UNAUTHORIZED); return; } try { JwtUtils.parseToken(token); } catch (Exception e) { log.info("令牌非法, 响应401"); response.setStatus(HttpServletResponse.SC_UNAUTHORIZED); return; } log.info("令牌合法, 放行"); filterChain.doFilter(request, response); } }
|
登录模块流程图

系统首页以及布局

科室管理

以科室管理为例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204
| package xyz.eabor.pojo; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import java.time.LocalDateTime; @Data @NoArgsConstructor @AllArgsConstructor public class Dept { private Integer id; private String name; private LocalDateTime createTime; private LocalDateTime updateTime; } -------------------------------------------------
package xyz.eabor.controller; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import xyz.eabor.pojo.Dept; import xyz.eabor.pojo.Result; import xyz.eabor.service.DeptService; import java.util.List; @Slf4j @RequestMapping("/depts") @RestController public class DeptController { private final DeptService deptService; public DeptController(DeptService deptService) { this.deptService = deptService; }
@GetMapping public Result list() { log.info("查询全部部门数据"); List<Dept> deptList = deptService.findAll(); return Result.success(deptList); }
@DeleteMapping public Result delete(Integer id) { log.info("根据ID删除部门: {}", id); deptService.deleteById(id); return Result.success(); }
@PostMapping public Result add(@RequestBody Dept dept) { log.info("新增部门:{}", dept); deptService.add(dept); return Result.success(); }
@GetMapping("/{id}") public Result getInfo(@PathVariable Integer id){ log.info("根据ID查询部门: {}", id); Dept dept = deptService.getById(id); return Result.success(dept); }
@PutMapping public Result update(@RequestBody Dept dept){ log.info("修改部门:{}", dept); deptService.update(dept); return Result.success(); } } ----------------------------------------------
package xyz.eabor.service.impl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import xyz.eabor.exception.BusinessException; import xyz.eabor.mapper.DeptMapper; import xyz.eabor.mapper.EmpMapper; import xyz.eabor.pojo.Dept; import xyz.eabor.service.DeptService; import java.time.LocalDateTime; import java.util.List; @Service public class DeptServiceImpl implements DeptService{ private final DeptMapper deptMapper; public DeptServiceImpl(DeptMapper deptMapper, EmpMapper empMapper) { this.deptMapper = deptMapper; this.empMapper = empMapper; } private final EmpMapper empMapper; @Override public List<Dept> findAll() { return deptMapper.findAll(); } @Override public void deleteById(Integer id) { Integer count = empMapper.countByDeptId(id); if(count > 0){ throw new BusinessException("部门下有员工, 不能删除"); } deptMapper.deleteById(id); } @Override public void add(Dept dept) { dept.setUpdateTime(LocalDateTime.now()); deptMapper.insert(dept); } @Override public Dept getById(Integer id) { return deptMapper.getById(id); } @Override public void update(Dept dept) { dept.setUpdateTime(LocalDateTime.now()); deptMapper.update(dept); } } -----------------------------------------------
package xyz.eabor.mapper; import org.apache.ibatis.annotations.*; import xyz.eabor.pojo.Dept; import java.util.List; @Mapper public interface DeptMapper {
@Select("select id, name, create_time, update_time from dept order by update_time desc") List<Dept> findAll();
@Delete("delete from dept where id = #{id}") void deleteById(Integer id);
@Insert("insert into dept(name, create_time, update_time) values(#{name},#{createTime},#{updateTime})") void insert(Dept dept);
@Select("select id, name, create_time, update_time from dept where id = #{id}") Dept getById(Integer id);
@Update("update dept set name = #{name} , update_time = #{updateTime} where id = #{id}") void update(Dept dept); }
|
流程图

员工管理

病房管理

病人管理

病人数据

重要性分析


预测结果展示

炎性指标预测系统 - 前后端分离系统接口文档
部门管理
1 部门列表查询
1.1 基本信息
请求路径:/depts
请求方式:GET
接口描述:该接口用于部门列表数据查询
1.1 请求参数
无
1.1 响应数据
参数格式:application/json
参数说明:
参数名 |
类型 |
是否必须 |
|
code |
number |
必须 |
响应码,1 代表成功,0 代表失败 |
msg |
string |
非必须 |
提示信息 |
data |
object[ ] |
非必须 |
返回的数据 |
- id |
number |
非必须 |
id |
- name |
string |
非必须 |
部门名称 |
- createTime |
string |
非必须 |
创建时间 |
- updateTime |
string |
非必须 |
修改时间 |
响应数据样例: |
|
|
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| { "code": 1, "msg": "success", "data": [ { "id": 1, "name": "神经内科", "createTime": "2024-09-01T23:06:29", "updateTime": "2024-09-01T23:06:29" }, { "id": 2, "name": "神经外科", "createTime": "2024-09-01T23:06:29", "updateTime": "2024-09-01T23:06:29" } ] }
|
2 删除部门
2.1 基本信息
请求路径:/depts
请求方式:DELETE
接口描述:该接口用于根据ID删除部门数据
2.2 请求参数
参数说明:
参数名 |
类型 |
是否必须 |
备注 |
id |
number |
必须 |
部门ID |
请求参数样例: |
|
|
|
/depts?id=1 |
|
|
|
/depts?id=2 |
|
|
|
2.3 响应数据
参数名 |
类型 |
是否必须 |
备注 |
code |
number |
必须 |
响应码,1 代表成功,0 代表失败 |
msg |
string |
非必须 |
提示信息 |
data |
object |
非必须 |
返回的数据 |
响应数据样例: |
|
|
|
1 2 3 4 5
| { "code":1, "msg":"success", "data":null }
|
3 添加部门
3.1 基本信息
请求路径:/depts
请求方式:POST
接口描述:该接口用于添加部门数据
3.2 请求参数
格式:application/json
参数说明:
参数名 |
类型 |
是否必须 |
备注 |
name |
string |
必须 |
部门名称 |
请求参数样例: |
|
|
|
3.3 响应数据
参数格式:application/json
参数说明:
参数名 |
类型 |
是否必须 |
备注 |
code |
number |
必须 |
响应码,1 代表成功,0 代表失败 |
msg |
string |
非必须 |
提示信息 |
data |
object |
非必须 |
返回的数据 |
响应数据样例: |
|
|
|
1 2 3 4 5
| { "code":1, "msg":"success", "data":null }
|
4 根据ID查询
4.1 基本信息
请求路径:/depts/{id}
请求方式:GET
接口描述:该接口用于根据ID查询部门数据
4.2 请求参数
参数格式:路径参数
参数说明:
参数名 |
类型 |
是否必须 |
备注 |
id |
number |
必须 |
部门ID |
请求参数样例: |
|
|
|
/depts/1 |
|
|
|
/depts/3 |
|
|
|
4.3 响应数据
参数格式:application/json
参数说明:
参数名 |
类型 |
是否必须 |
备注 |
code |
number |
必须 |
响应码,1 代表成功,0 代表失败 |
msg |
string |
非必须 |
提示信息 |
data |
object |
非必须 |
返回的数据 |
- id |
number |
非必须 |
id |
- name |
string |
非必须 |
部门名称 |
- createTime |
string |
非必须 |
创建时间 |
- updateTime |
string |
非必须 |
修改时间 |
响应数据样例: |
|
|
|
1 2 3 4 5 6 7 8 9 10
| { "code": 1, "msg": "success", "data": { "id": 1, "name": "妇产科", "createTime": "20224-09-01T23:06:29", "updateTime": "2024-09-01T23:06:29" } }
|
5 修改部门
5.1 基本信息
请求路径:/depts
请求方式:PUT
接口描述:该接口用于修改部门数据
5.2 请求参数
格式:application/json
参数说明:
参数名 |
类型 |
是否必须 |
备注 |
id |
number |
必须 |
部门ID |
name |
string |
必须 |
部门名称 |
请求参数样例: |
|
|
|
1 2 3 4
| { "id": 1, "name": "教研部" }
|
5.3响应数据
参数格式:application/json
参数说明:
参数名 |
类型 |
是否必须 |
备注 |
code |
number |
必须 |
响应码,1 代表成功,0 代表失败 |
msg |
string |
非必须 |
提示信息 |
data |
object |
非必须 |
返回的数据 |
响应数据样例: |
|
|
|
1 2 3 4 5
| { "code":1, "msg":"success", "data":null }
|